Commit graph

485 commits

Author SHA1 Message Date
Rich Lane c8bb2e43c7 spi: support zero post-divide
This allows you to use a 62.5 MHz SPI baud rate assuming the default 125
MHz peripheral clock. It would previously crash due to a division by
zero.
2021-10-17 21:38:53 +11:00
Jonathan Pallant dd4a9a8f22
Merge pull request #165 from 42-technology-ltd/bootrom_functions_update
Bootrom functions update
2021-10-13 15:09:24 +01:00
Jonathan Pallant (42 Technology) 6a4a4fd247 Formatting. 2021-10-11 16:41:51 +01:00
Jonathan Pallant (42 Technology) 74ea262f65 Cleaning up the comment summaries. 2021-10-11 16:40:23 +01:00
Jonathan Pallant (42 Technology) 2423e42eb9 Clean up comments. 2021-10-11 16:39:12 +01:00
Jonathan Pallant (42 Technology) 5c55af76d2 Typo 2021-10-11 16:37:50 +01:00
Jonathan Pallant (42 Technology) e1afb70bd2 Moved float and double functions into modules.
Makes the docs cleaner.
2021-10-11 16:37:16 +01:00
Jonathan Pallant (42 Technology) ae66ac4cb6 Tweak doc comments. 2021-10-11 16:22:35 +01:00
Jonathan Pallant (42 Technology) 64207a62e5 Add comment to calc_delta function as it's non-obvious. 2021-10-11 16:22:11 +01:00
Jonathan Pallant (42 Technology) f56369e1c7 Add example which uses the ROM functions 2021-10-11 15:45:44 +01:00
Jonathan Pallant (42 Technology) 7a05b8f3a7 Fix the ROM function table code.
The floating point table lookup was incorrect.
2021-10-11 15:45:34 +01:00
9names 02cb4b8b06
Merge pull request #157 from 42-technology-ltd/add-cargo-config-helptext
Add some help text to cargo/config
2021-10-07 09:59:29 +11:00
9names a0740a5ac3
Merge pull request #147 from Lichtso/feature/gpio_interrupt
Add GPIO interrupt configuration functions
2021-10-07 09:52:21 +11:00
9names f92c9900cf
Merge pull request #152 from anall/feature/rom_data_unsafe_reapply
split rom_data into safe and unsafe functions (reapply due to inadvertent revert)
2021-10-07 09:40:57 +11:00
Jan Niehusmann e63f1f6dee Make pio-proc a dev-dependency
It's only used in an example, so it doesn't need to be a regular
dependency.
2021-10-07 09:39:08 +11:00
Jonathan Pallant (42 Technology) 3d8ccf55ab Add some help text. 2021-10-05 11:51:20 +01:00
Andrea Nall dab619d627 split rom_data into safe and unsafe functions
This was originally applied in 71a7057b76
and got inadvertently reverted as part of e3be4f8025
2021-10-02 11:22:32 -05:00
9names 8690d93a6a Use local rp2040-hal version when building in-crate 2021-10-02 20:05:22 +10:00
Wilfried Chauveau c8609e9ef1 Update WS2812 usage after PIO api's breaking change. 2021-10-02 20:05:22 +10:00
Jan Niehusmann ad68c9d696
Fix i2c write read (#146)
* i2c write_read: don't continue with read if write aborted

* i2c write_read: use correct length of read buffer
2021-10-02 17:43:05 +10:00
Stephen Onnen 800f71a1b8 Implement QT Py BSP with example 2021-10-02 17:42:03 +10:00
9names ede25a4f15
Merge pull request #143 from mgottschlag/pio-rework
Rework the PIO API
2021-10-02 16:41:38 +10:00
9names 666b22f56b
Update example feather_neopixel_rainbow.rs with new Timer syntax (#148) 2021-10-02 16:03:36 +10:00
Jordan Williams 82dfd8e2cc Add an example using the Feather RP2040's onboard NeoPixel
This uses PIO just like the Pro Micro does.
2021-10-02 15:46:09 +10:00
Alexander Meißner 90470b6ff3
Adds reset for timer, otherwise it would not run. (#136) 2021-10-02 15:41:04 +10:00
Jan Niehusmann 2b6de3a3c9
implement embedded-hal 1.0.0-alpha.5 (#131)
* implement embedded-hal 1.0.0-alpha.5

* Depend on specific alpha version of embedded-hal.

* enable feature eh1_0_alpha for CI check
2021-10-02 15:36:40 +10:00
Mathias Gottschlag 4db944ad4e pio: Fix clippy warnings and examples in doc comments. 2021-10-01 18:41:10 +02:00
Alexander Meißner dbd4c7dfea Implements interrupts for GPIO pins. 2021-10-01 14:32:24 +02:00
Mathias Gottschlag d1bbceaab4 Add changelog entry about PIO changes.. 2021-10-01 08:50:18 +02:00
Mathias Gottschlag 2fc42e07f2 pio: Rename read_rx/write_tx to read/write. 2021-10-01 08:47:16 +02:00
Mathias Gottschlag 207f5aebdb pio: Split RX and TX FIFO functions into different types.
We need separate types for any blocking or DMA operations - otherwise, it
would not be possible to perform both RX and TX transfers at the same time.
2021-09-30 09:07:15 +02:00
Mathias Gottschlag dbe7f48699 pio: Identify state machines via generic parameters.
Eventually, the read and write FIFOs need to be split into separate
objects for DMA. To be able to safely rejoin them only when they belong to
the same state machine, the state machine index needs to be encoded into
the type.
2021-09-29 21:42:05 +02:00
Mathias Gottschlag 64fa8441d8 pio: Fix bugs spotted in the review. 2021-09-29 20:55:24 +02:00
Mathias Gottschlag 684f483859 pio: Improve documentation and add an example that uses pio_proc::pio!(). 2021-09-28 21:48:05 +02:00
Mathias Gottschlag 515eac5553 pio: Differentiate between uninitialized/stopped/running state machines.
Some operations must only be performed in a specific state. For example,
pin directions must not be changed while the state machine is running, as
the operation modifies PINCTRL. The new API makes wrong usage a lot harder.

Also, the code now supports uninitializing state machines to free
instruction space or to select a different function.
2021-09-28 21:15:28 +02:00
Mathias Gottschlag 4d97d9fe75 pio: Enable code sharing between SMs via objects for installed programs.
Multiple state machines may want to execute the same program (e.g., two
state machines are used to implement two I2C buses), in which code sharing
saves space.
2021-09-28 20:27:40 +02:00
Mathias Gottschlag 959f714fb9 pio: Fix marking used instruction space. 2021-09-28 20:27:40 +02:00
Mathias Gottschlag 2ff9ae156f pio: Fix some doc comments. 2021-09-28 20:27:40 +02:00
Mathias Gottschlag e5a7c325b0 pio: Split PIO into multiple objects that can be moved around separately.
One PIO block often implements multiple functions that are used in
different parts of the codebase. Previously, that would be impossible, as
PIO contained all StateMachine instances.

Now, StateMachine instances use atomic operations whenever accessing shared
registers, so they can be used concurrently.
2021-09-28 20:27:22 +02:00
Jonathan Pallant da89888ccb
Merge pull request #137 from 42-technology-ltd/ensure-hal-examples-non-board-specific
Working on README and examples
2021-09-28 10:46:42 +01:00
Jonathan Pallant (42 Technology) 49ad970d31 Typo: micontroller 2021-09-28 10:05:25 +01:00
Jonathan Pallant (42 Technology) fc0075a381 Addressing review comments. 2021-09-28 09:26:31 +01:00
Jonathan Pallant (42 Technology) 0beedde69b Ugh. Thanks, rustfmt. 2021-09-27 19:03:07 +01:00
Jonathan Pallant (42 Technology) d251627e47 Make trait comments more consistent. 2021-09-27 19:01:46 +01:00
Jonathan Pallant (42 Technology) 8876159687 Ah, rustfmt. 2021-09-27 18:58:16 +01:00
Jonathan Pallant (42 Technology) c04f439020 Polish the watchdog example. 2021-09-27 18:57:19 +01:00
Jonathan Pallant (42 Technology) b005128a73 Oh, make sure uart example actually builds. 2021-09-27 18:57:10 +01:00
Jonathan Pallant (42 Technology) 7e03772687 Polish the UART example. 2021-09-27 18:52:13 +01:00
Jonathan Pallant (42 Technology) b894ab9ce7 Cleaning up. 2021-09-27 18:43:01 +01:00
Jonathan Pallant (42 Technology) 225eabb449 Use peripheral clock to describe the clock signal given to peripherals. 2021-09-27 18:42:36 +01:00