aboutsummaryrefslogtreecommitdiff
path: root/embassy-rp/src/pio_programs
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #5061 from ericseppanen/pio_dividerHEADmainDario Nieuwenhuis2025-12-191-6/+55
|\ | | | | | | embassy_rp: improve calculate_pio_clock_divider
| * clock_divider: use core::assert in const fnEric Seppanen2025-12-131-3/+3
| | | | | | | | defmt::assert gives a compile error in const context.
| * improve pio clock divider mathEric Seppanen2025-12-131-11/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Ensure that the fractional part of the clock divider is accurately calculated. This does additional u32 division/mod operations, which I think is better than using u64 for its extra precision. Also: - Add additional asserts to catch out-of-bounds results. - Make the version that accepts the system clock as a parameter const and public, so if anyone wants to hardcode the system frequency they can avoid any runtime computation. - Remove the `inline` attributes because the function has grown quite a bit.
| * add unit test for calculate_pio_clock_dividerEric Seppanen2025-12-131-1/+29
| | | | | | | | | | The test will fail, because the current implementation doesn't calculate the fractional part.
* | Update to embedded-io 0.7Dario Nieuwenhuis2025-12-191-0/+4
|/
* fix formattingRobert Williams2025-11-031-1/+1
|
* docs: color order methods traits missing docsRobert Williams2025-11-031-0/+12
|
* split into multiple methodsRobert Williams2025-11-031-6/+30
|
* fix: split traits to avoid inference problemsRobert Williams2025-11-031-23/+19
|
* embassy-rp: add color order to ws2812 pio programRobert Williams2025-11-031-15/+78
|
* Disable PIO SM before setting Y registerMichael Turner2025-11-021-3/+15
|
* embassy-rp: doc comment spelling passRob Wells2025-10-274-13/+13
| | | | | All changes but one are to documentation comments, and one to an ordinary comment.
* Rustfmt for edition 2024.Dario Nieuwenhuis2025-10-068-13/+9
|
* rp/pio: Add onewire strong pullups, parasite powerMatt Johnston2025-09-141-3/+42
| | | | | | | | | | | | | | DS18B20 sensors require a strong pullup to be applied for the duration of the temperature conversion, within 10us of the command. The rp2xxx pins have sufficient drive strength to use as the pullup (no external mosfet needed). Add a new write_bytes_pullup() that will apply the pullup after bytes are written. Existing read_bytes()/write_bytes() has no change to onewire timing. A pio_onewire_parasite example reads multiple sensors individually, applying the strong pullup.
* Merge pull request #4210 from mcaveniathor/pio_i2s_rxDario Nieuwenhuis2025-09-051-4/+92
|\ | | | | | | Add PioI2sIn, PioI2sInProgram, and example binary
| * Add PioI2sIn, PioI2sInProgram, and example binaryThor McAvenia2025-09-051-4/+92
| |
* | rp: move pio pin configs after set_configAdrian Wowk2025-09-051-4/+5
| | | | | | | | | | This is needed for the program to work correctly on rp235xb when using the higher pin numbers.
* | rp: add pio spi runtime reconfigurationAdrian Wowk2025-09-051-39/+80
| |
* | style: cleanup with rustfmtAdrian Wowk2025-09-051-11/+10
| |
* | rp: add new pio spi programAdrian Wowk2025-09-052-0/+434
|/ | | | | | | | | This commit adds a new PIO program which implements SPI. This allows you to drive more than 2 SPI buses by using PIO state machines as additional duplex SPI interfaces. The driver supports both blocking and async modes of operation and exclusively uses the DMA for async IO.
* rustfmtMatrixSenpai2025-05-221-3/+6
|
* adding compatibility with ws2812 leds that have 4 addressable lightsMatrixSenpai2025-05-221-4/+67
|
* Make bit-depth of I2S PIO program configurableMarvin Gudel2025-05-131-5/+13
| | | | Also the channel argument is removed, since only 2 channels are supported.
* Add PIO clock divider utility and refactor related modules1-rafael-12025-05-035-25/+43
|
* fmt1-rafael-12025-04-261-2/+2
|
* Scale clock dividers in HD44780, rotary encoder, and stepper driver based on ↵1-rafael-12025-04-263-5/+23
| | | | system clock frequency
* Some small improvementsMarc2025-04-251-8/+6
|
* Search can use the normal write/read instructionsMarc2025-04-251-61/+56
|
* Refactor Onewire PIO implementationMarc2025-04-251-61/+254
|
* Remove Peripheral trait, rename PeripheralRef->Peri.Dario Nieuwenhuis2025-03-278-76/+68
|
* Added access to the byte swap flag for RP2*** chips for the PIO state ↵eden barby2025-03-013-4/+4
| | | | machine DMA calls.
* rp/pio: update pio-rs crate, reexport it so users don't get version mismatches.Dario Nieuwenhuis2025-02-187-14/+16
|
* i2s frequency relative to sysclkvinsynth2024-12-141-2/+1
|
* add sysclk frequency argument to PioI2Out::newvinsynth2024-12-141-1/+2
|
* Make the docs be docsCaleb Jamison2024-10-091-1/+1
|
* fmtCaleb Jamison2024-10-091-3/+2
|
* Better docs and adding of release for PioPwmBjorn2024-10-091-5/+14
|
* cargo +nightly fmtCaleb Jamison2024-10-096-30/+28
|
* Move pio programs into embassy-rpCaleb Jamison2024-10-099-0/+1055