Benno
6d917f498e
Change UART raw read return type and fix full read ( #189 )
...
* UART read_raw returns bytes read
This also fixed broken read_full_blocking code.
* chang documentation to reflect return value change
2021-11-01 10:24:24 +11:00
contradict
fb69308058
Add methods to set and clear the PWM Interrupt force register.
2021-10-30 20:40:33 +11:00
Jan Niehusmann
b1dc9aec8c
Fix UART init code
...
Set uartlcr_h before enabling the UART.
Writing uartlcr_h while the UART is enabled is forbidden by the datasheet.
Details can be found here:
https://developer.arm.com/documentation/ddi0183/g/programmers-model/register-descriptions/line-control-register--uartlcr-h?lang=en
(As referenced from the Datasheet)
2021-10-30 10:19:13 +11:00
Jan Niehusmann
73431a847b
fix UART rx ( #187 )
2021-10-30 10:16:43 +11:00
contradict
fe1e55b8c0
Mark PIO StateMachine, Rx and Tx as Send ( #177 )
...
* Mark PIO StateMachine, Rx and Tx as Send
* Improve comment grammar.
Co-authored-by: Wilfried Chauveau <wilfried.chauveau@ithinuel.me>
2021-10-27 21:34:08 +11:00
Wilfried Chauveau
73e2c6921f
Make ReadableOutput public to match the visibility of other Type-level variant of PinMode.
2021-10-27 21:32:38 +11:00
Jonathan 'theJPster' Pallant
3b019fb91d
Merge pull request #182 from jannic/issue-181
...
Correct limit for PIOBuilder::out_pins count argument
2021-10-25 13:17:05 +01:00
Jan Niehusmann
9f55608f92
Correct limit for PIOBuilder::out_pins count argument
...
This value is written to the PINCTRL register field
OUT_COUNT, which accoding to the data sheet has a valid range
of 0-32.
Fixes #181
2021-10-23 13:34:05 +00:00
contradict
11aaf9be79
API to enable/disable interrupts for each PWM channel. ( #175 )
...
* API to enable/disable interrupts for each PWM channel.
* Better name for overflow check.
2021-10-23 22:47:08 +11:00
Wilfried Chauveau
46e580b852
Adds an example of using the PIO as I2C driver to control an LM75B temperature sensor ( #180 )
...
* Add pico_i2c_pio example
* Update pico_i2c_pio's main function documentation
* Update bootloader reference.
* Implement uart output for the pico_i2c_pio example.
* pin to a specific rev of i2c-pio
* Bump i2c-pio to get the fix for write_read
2021-10-23 22:45:13 +11:00
contradict
97079489ef
Mark Timer as sync
...
Since all accesses are read-only there is no synchronizing to be done.
2021-10-23 00:03:30 +11:00
Jan Niehusmann
4c4d12e23c
minor docs improvements in pio.rs
2021-10-22 23:52:14 +11:00
Jan Niehusmann
bac6714f09
Use volatile register access for gpio interrupts ( #170 )
...
* Use volatile register access for gpio interrupts
* Provide functions for atomic register updates
* Use atomic register access functions in pio.rs
* Improve doc comments
* Limit visibility of atomic register access functions
Also remove write_xor for now, as it's not yet used anywhere
2021-10-22 23:30:30 +11:00
Wilfried Chauveau
0eb65ee99b
Add PIO features required for PIO as I2C support ( #179 )
...
* Implements methods to allow presetting the pin state & direction
Enabling those methods allows to save a few valuable instructions
in the PIO's memory.
* Use IntoIterator rather than Iterator.
* Use proper types instead of bool to be more idiomatic.
* Change set_pindirs_with_mask to a more idiomatic rust approach.
* Update pio_proc_blink with new set_pindirs_with_iter
* Force reset on startup to guaranty consistency with type-states.
* Expose more accessors to allow more advanced driver to be implemented.
* Add the ability to restart the state machine from its wrap point.
This method also clears the ISR/OSR to give the state machine a clean
restart.
* Add a comment about the impact of autopull on OUT & PULL instructions
* Fix broken internal doc reference & add an important note on Tx<SM>::has_stalled
* rename block methods to register_block.
This change is made to avoid confusion with "block" as a verb.
2021-10-22 22:09:10 +11:00
Wilfried Chauveau
2eb7923ebe
Implements methods to allow presetting the pin state & direction ( #167 )
...
* Implements methods to allow presetting the pin state & direction
Enabling those methods allows to save a few valuable instructions
in the PIO's memory.
* Update pio_proc_blink with new set_pindirs
2021-10-22 21:13:22 +11:00
Jan Niehusmann
233f7c9475
README: Add option --locked to cargo install elf2uf2-rs
...
Without the --locked option, cargo currently tries to compile it using
clap v3.0.0-beta.5, which fails:
```
[...]
Compiling clap v3.0.0-beta.5
Compiling elf2uf2-rs v1.3.5
error[E0432]: unresolved import `clap::Clap`
-->
/home/jan/.cargo/registry/src/github.com-1ecc6299db9ec823/elf2uf2-rs-1.3.5/src/main.rs:3:5
|
3 | use clap::Clap;
| ^^^^^^^^^^ no `Clap` in the root
[...]
```
With --locked, it uses clap v3.0.0-beta.4, which works.
2021-10-22 00:01:47 +11:00
Jonathan Pallant
6330dab44e
Merge pull request #171 from 42-technology-ltd/update_boot2
...
Switch to new rp2040-boot2 crate.
2021-10-18 11:45:32 +01:00
Jonathan Pallant (42 Technology)
e48323c983
Ah, missed one after the rebase.
2021-10-18 10:58:38 +01:00
Jonathan Pallant (42 Technology)
e3f9125a87
Can we build without GCC now?
2021-10-18 10:56:30 +01:00
Jonathan Pallant (42 Technology)
8e66ddcfb1
Switch to new rp2040-boot2 crate.
2021-10-18 10:53:17 +01:00
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