Jeff Epler
bef07961ab
raspberrypi: audiopwmout: subtle for #5092
...
I noticed that the loop over 65535 possible denominators took a long time,
causing up to 100ms wait for a sound sample to start playing!
This algorithm, adapted from an algorithm shown in Python's fractions.py,
is guaranteed to find the best denominator in a small number of steps
(I think log2-many steps but I'm not sure). In practice, it means the time
between samples playing is just 10ms, and some of that is recreating the
sine wave sample in Python each time.
It often finds the same solution as the old code, but sometimes it finds
one a bit better since it compares the ratios using float point instead
of integer arithmetic.
2021-08-24 16:33:20 -05:00
Jeff Epler
77b0c76a37
raspberrypi: audiopwmout: simple fix for #5092
2021-08-24 15:54:06 -05:00
Scott Shawcroft
0390f812be
Fix RP2040 I2C instance check
2021-08-18 08:55:52 -07:00
Scott Shawcroft
de796e2304
Move OneWire to onewireio
from busio
...
This will allow finer grained inclusion in 8.0.0
Fixes #5135
2021-08-12 10:47:14 -07:00
Dan Halbert
35aac3d26b
display SPI now 10MHz; set PWM duty cycle to zero at stop to quiet output
2021-08-11 10:48:53 -04:00
Dan Halbert
24e61a7da8
Track more carefully which audio buffers to fill, based on interrupt channels
2021-08-10 22:00:09 -04:00
Dan Halbert
2451c788f4
valid channels in audio_dma_stop; cleaner supervisor_ticks mgmt in keypad
2021-08-09 09:47:13 -04:00
Dan Halbert
fd71d924d2
partial buffer mgmt fix
2021-08-09 09:47:13 -04:00
Scott Shawcroft
9e54606ba1
Set output low in SIO
2021-07-28 09:00:36 -07:00
Scott Shawcroft
4be904fd4a
Switch to gpio mux to disable/enable pwm signal
2021-07-27 12:38:18 -07:00
Scott Shawcroft
e87e1d8175
Block when setting duty_cycle until the new value is taken
2021-07-27 12:37:35 -07:00
Scott Shawcroft
412eb87080
Switch to pin, frequency and duty_cycle PulseOut
...
Passing in a PWMOut still works but is deprecated. It will be
removed in CircuitPython 8.0.0
This also switches STM32 timer indices and channel indices to
0-based in our pin data rather than `- 1` everywhere. The latter is
more bug prone.
Most of the way for #3264
Tested on Metro M0, Metro M4, Feather S2, Feather nRF52840, Feather
STM32F4 and Arduino RP2040.
2021-07-26 18:35:49 -07:00
Nathan Young
04ce6a6e8c
Check jmp_pin specified when JMP PIN opcodes used
2021-07-23 13:35:20 +02:00
Nathan Young
8221a12cf6
Added support for specifying the JMP pin (RP2 PIO)
2021-07-22 18:39:04 +02:00
Scott Shawcroft
8723a0335f
Merge pull request #5032 from DavePutz/multi_pulseout
...
Moved global variables to support multiple RP2040 PulseOuts
2021-07-21 10:26:17 -07:00
root
b2d6203c63
fix formatting
2021-07-21 10:05:09 -05:00
root
0559fcd1c0
Moved global variables to support multiple PulseOuts
2021-07-21 09:52:17 -05:00
Scott Shawcroft
db0adf1253
Merge pull request #5025 from DavePutz/issue_5016
...
Turn off PWM pin during PulseOut construct
2021-07-20 17:25:10 -07:00
root
8fe4fa0114
Turn off PWN pin during PulseOut construct
2021-07-20 17:17:41 -05:00
Dan Halbert
128bedae7e
Merge pull request #5019 from DavePutz/issue_5016
...
Ensure RP2040 pin is left low after PulseOut
2021-07-19 17:57:42 -04:00
Dan Halbert
d2f2afe57b
Merge pull request #4925 from microDev1/update-run-mode
...
Add RunMode.UF2 and update esp32s2 run-modes
2021-07-19 16:37:46 -04:00
root
8d79d4e5ee
Ensure pin is left low after PulseOut
2021-07-19 11:46:09 -05:00
microDev
3c25d8e2a0
Merge pull request #5013 from DavePutz/issue_5012
...
Issue #5012 - RP2040 moved globals to PulseIn object to fix multiple instances
2021-07-19 00:21:55 +05:30
root
43275e0b0d
Made suggested changes (mostly)
2021-07-18 12:00:37 -05:00
microDev
9ac607dffa
update run-mode
...
- add microcontroller.RunMode.UF2
- add UF2, NORMAL and BOOTLOADER run-modes to esp32s2
2021-07-18 00:00:58 +05:30
root
1c80696746
iFix formatting
2021-07-16 17:18:06 -05:00
root
588a19a1ab
Issue #5012 - Moved globals to PulseIn object to fix multiple instances
2021-07-16 15:59:08 -05:00
Scott Shawcroft
bba611336c
Merge pull request #4964 from DavePutz/issue_4937
...
Fix for issue #4937 - Implement minimum PulseOut time
2021-07-16 11:29:32 -07:00
root
eebddbb16d
Change min pulse calculation
2021-07-15 21:27:23 -05:00
Scott Shawcroft
c2685970af
Merge pull request #4987 from DavePutz/issue_4983
...
Fix for Issue #4983 - stop state machine before restarting
2021-07-13 12:16:33 -07:00
root
5c9823d8cb
Change order of operations in restart
2021-07-13 11:17:03 -05:00
root
490f263a41
Added code to reset SM program counter during a restart
2021-07-12 14:09:11 -05:00
root
9d5fbea7a3
Fix for Issue #4983 - stop state machine before restarting
2021-07-11 21:02:28 -05:00
root
0ea750b2d0
Fix handling of short pulses
2021-07-11 16:38:24 -05:00
Scott Shawcroft
58fdf9e940
Merge pull request #4975 from DavePutz/issue_4945
...
Issue #4945 - handle multiple PulseIns
2021-07-09 11:03:16 -07:00
root
4046b0fb0a
Issue #4945 - handle multiple PulseIns
2021-07-08 14:09:21 -05:00
Dan Halbert
ab52a92704
Disallow ctrl-C interrupts of RP2040 SPI and PIO
2021-07-08 13:42:24 -04:00
Dan Halbert
bd6826496c
Fix various RP2040 audio dma things: (see detailed commit message)
...
1. Check for correct error values from dma_claim_unused_channel.
2. Introduce a .stereo flag for simplicity.
3. Clarify PWM carrier frequency choice.
4. Start introducing quiescent audio value. Still need to ramp up/down.
5. Redo audio stop logic a bit.
6. Fix (unrelated) displayio dependency things.
There is still an interference problem between other DMA users and audio. Still debugging this.
2021-07-08 08:14:49 -04:00
root
f98ec0cfd6
Fix formatting
2021-07-06 14:43:46 -05:00
root
bfa777c55a
Add check for timer success
2021-07-06 14:34:15 -05:00
root
b2e72b2912
fix formatting
2021-07-05 23:13:18 -05:00
root
6e4613f1a1
Fix formatting
2021-07-05 12:30:26 -05:00
root
9814386d2e
Fix for issue #4937 - Implement minimum pulseout time
2021-07-05 11:38:05 -05:00
Dan Halbert
33bbb8b1f4
RP2040 PWMAudioOut: Release DMA channels after play has finished.
2021-07-01 17:36:29 -04:00
Scott Shawcroft
061d3a16ff
Merge pull request #4911 from DavePutz/issue_4908
...
Fix for issue #4908 - pulseout leaving line high
2021-06-24 15:32:48 -07:00
Dan Halbert
836db4e4a1
Merge pull request #4816 from hierophect/rp2040-alarms
...
RP2040: add Alarm module
2021-06-24 08:15:57 -04:00
root
ab1d7429f1
Fix for issue #4908 - pulseout leaving line high
2021-06-23 21:09:27 -05:00
Lucian Copeland
1f3d69d87c
Clean up sleep memory, mark as not-implemented
2021-06-20 17:57:51 -04:00
Jeff Epler
268717e427
ParallelImageCapture: Switch to taking a list of pins
...
.. adopting validate_pins from RGBMatrix into shared-bindings
.. updating other platforms for API change
2021-06-10 11:15:18 -05:00
Lucian Copeland
63c1791d87
Merge remote-tracking branch 'upstream/main' into rp2040-alarms
2021-06-07 14:11:41 -04:00