Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ESP32 I2S using buffered motion over DMA #584

Merged
merged 17 commits into from
Feb 3, 2024
Merged

Conversation

Paciente8159
Copy link
Owner

  • implemented I2S using buffered motion over DMA (better step timings)
  • real-time motions interpolator switch on RT motions like homing, probing, etc...
  • implemented step speed aliasing over the constant update step pulse
  • all software PWM and servo are also updated via the constant IO tick

- esp32 i2s loop implementation (no dma interrupts or event queues)
- in default mode continuously tries to feed the i2s buffer
commit 08e1238
Author: Paciente8159 <Paciente8159@users.noreply.github.com>
Date:   Mon Jan 8 20:58:55 2024 +0000

    restore defaults

commit 57470a6
Author: Paciente8159 <Paciente8159@users.noreply.github.com>
Date:   Mon Jan 8 17:01:07 2024 +0000

    correct mcu tick calculations

commit f66e817
Author: Paciente8159 <Paciente8159@users.noreply.github.com>
Date:   Mon Jan 8 16:36:33 2024 +0000

    fixed step mode

commit e59534c
Merge: 7c2e295 6cf0145
Author: Paciente8159 <Paciente8159@users.noreply.github.com>
Date:   Mon Jan 8 12:39:23 2024 +0000

    Merge branch 'v1.8.x' into alt-dma

commit 6cf0145
Merge: c626009 0d76fc6
Author: Paciente8159 <Paciente8159@users.noreply.github.com>
Date:   Mon Jan 8 12:30:49 2024 +0000

    Merge pull request #583 from Paciente8159/fix-home-flush-after-soft-reset

    Fixed home motion flushing after homing resume (with or without error)

commit 0d76fc6
Author: Paciente8159 <Paciente8159@users.noreply.github.com>
Date:   Mon Jan 8 12:16:45 2024 +0000

    Update cnc.c

commit c626009
Author: Paciente8159 <Paciente8159@users.noreply.github.com>
Date:   Mon Jan 8 12:12:40 2024 +0000

    fixed homing flush after soft reset

    - fixed homing flush after soft reset

commit 7c2e295
Author: Paciente8159 <Paciente8159@users.noreply.github.com>
Date:   Mon Jan 8 11:52:35 2024 +0000

    fix axis move after home soft reset

commit 5def8b7
Author: Paciente8159 <Paciente8159@users.noreply.github.com>
Date:   Mon Jan 8 11:30:34 2024 +0000

    Delete uCNC.ino.cpp

commit 321c1fb
Author: Paciente8159 <Paciente8159@users.noreply.github.com>
Date:   Mon Jan 8 11:30:16 2024 +0000

    modified itp ticks according step mode

    - modified itp ticks according step mode
    - modified I2S constants calculations

commit caeb1f8
Author: Paciente8159 <Paciente8159@users.noreply.github.com>
Date:   Sun Jan 7 09:51:36 2024 +0000

    I2S step mode controlled on I2S step task

commit f89a782
Author: Paciente8159 <Paciente8159@users.noreply.github.com>
Date:   Fri Jan 5 18:10:13 2024 +0000

    debug

commit 1c21740
Author: Paciente8159 <Paciente8159@users.noreply.github.com>
Date:   Fri Jan 5 17:32:48 2024 +0000

    alternative I2S DMA managment
commit 00fdfb1
Author: Paciente8159 <Paciente8159@users.noreply.github.com>
Date:   Fri Jan 12 22:23:19 2024 +0000

    Update mcu_esp32.c

commit d50defc
Author: Paciente8159 <Paciente8159@users.noreply.github.com>
Date:   Fri Jan 12 13:06:35 2024 +0000

    multiple fixes and realtime mode

commit d923d6a
Author: Paciente8159 <Paciente8159@users.noreply.github.com>
Date:   Thu Jan 11 19:36:46 2024 +0000

    fixed pure ISR IO update and update algorithm

commit f88487b
Author: Paciente8159 <Paciente8159@users.noreply.github.com>
Date:   Thu Jan 11 08:55:56 2024 +0000

    cleaned code

commit 87e10e2
Author: Paciente8159 <Paciente8159@users.noreply.github.com>
Date:   Tue Jan 9 17:50:23 2024 +0000

    modify I2S to 256KHz to match servo timer clock
@Paciente8159 Paciente8159 added needs: testing needs: testing HAL: ESP32 HAL: ESP32 labels Jan 12, 2024
@Paciente8159 Paciente8159 added the HAL: ESP8266 HAL: ESP8266 label Jan 13, 2024
@Paciente8159
Copy link
Owner Author

Adds step aliasing to ESP8266 and servo outputs. I2S pinout uses the RX uart pin so this makes it less ideal to implement I2S hardware support on this MCU.

- added oneshot to ESP32 stream mode
- reverted io_control change to step en function
- made bitbang call to 74h595 update atomic to prevent interrupt transmition midway
@Paciente8159 Paciente8159 linked an issue Jan 15, 2024 that may be closed by this pull request
@Paciente8159 Paciente8159 added tested: OK tested: OK and ready to integrate and removed needs: testing needs: testing labels Feb 3, 2024
@Paciente8159 Paciente8159 changed the base branch from v1.8.x to master February 3, 2024 12:40
@Paciente8159 Paciente8159 merged commit ded7efc into master Feb 3, 2024
38 checks passed
@Paciente8159 Paciente8159 deleted the esp32-i2s-dma branch February 3, 2024 18:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
HAL: ESP32 HAL: ESP32 HAL: ESP8266 HAL: ESP8266 tested: OK tested: OK and ready to integrate
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BUG] ESP8266 step frequency variations
1 participant