aboutsummaryrefslogtreecommitdiff
path: root/embassy-nrf/src/chips
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2022-12-09 07:49:40 +0000
committerGitHub <[email protected]>2022-12-09 07:49:40 +0000
commit58ab82904970f2df3984e54c722955a7b7c81391 (patch)
treebb29792ca17a791411182c8e5f3aa6414cefed85 /embassy-nrf/src/chips
parent1b8c0733e690108994654c43387e438c2f64cfaa (diff)
parent5fdd521a767fd8825a2d55d6b833fd99627353d7 (diff)
Merge #1049
1049: embassy-nrf: Add I2S module r=lulf a=chris-zen This PR adds I2S support for the nrf52 series (`nrf52832`, `nrf52833`, `nrf52840`). We could only test it in a `nrf52840` in master mode for an output stream (see `i2s_waveform` example), using a clone of the [Adafruit I2S Stereo Decoder - UDA1334A](https://learn.adafruit.com/adafruit-i2s-stereo-decoder-uda1334a/overview). We were wondering if this could be a welcome addition to embassy, as we are working on this very informally and don't have much free time for it. <img src="https://user-images.githubusercontent.com/932644/202316127-a8cf90ef-1e1a-4e1d-b796-961b8ad6cef5.png" width="600"> https://user-images.githubusercontent.com/932644/202316609-e53cd912-e463-4e01-839e-0bbdf37020da.mp4 Co-authored-by: `@brainstorm` <[email protected]> Co-authored-by: Christian Perez Llamas <[email protected]> Co-authored-by: Roman Valls Guimera <[email protected]>
Diffstat (limited to 'embassy-nrf/src/chips')
-rw-r--r--embassy-nrf/src/chips/nrf52832.rs7
-rw-r--r--embassy-nrf/src/chips/nrf52833.rs7
-rw-r--r--embassy-nrf/src/chips/nrf52840.rs7
3 files changed, 18 insertions, 3 deletions
diff --git a/embassy-nrf/src/chips/nrf52832.rs b/embassy-nrf/src/chips/nrf52832.rs
index 879600adb..152dad4e3 100644
--- a/embassy-nrf/src/chips/nrf52832.rs
+++ b/embassy-nrf/src/chips/nrf52832.rs
@@ -138,6 +138,9 @@ embassy_hal_common::peripherals! {
138 138
139 // QDEC 139 // QDEC
140 QDEC, 140 QDEC,
141
142 // I2S
143 I2S,
141} 144}
142 145
143impl_uarte!(UARTE0, UARTE0, UARTE0_UART0); 146impl_uarte!(UARTE0, UARTE0, UARTE0_UART0);
@@ -241,6 +244,8 @@ impl_saadc_input!(P0_29, ANALOG_INPUT5);
241impl_saadc_input!(P0_30, ANALOG_INPUT6); 244impl_saadc_input!(P0_30, ANALOG_INPUT6);
242impl_saadc_input!(P0_31, ANALOG_INPUT7); 245impl_saadc_input!(P0_31, ANALOG_INPUT7);
243 246
247impl_i2s!(I2S, I2S, I2S);
248
244pub mod irqs { 249pub mod irqs {
245 use embassy_cortex_m::interrupt::_export::declare; 250 use embassy_cortex_m::interrupt::_export::declare;
246 251
@@ -281,6 +286,6 @@ pub mod irqs {
281 declare!(PWM2); 286 declare!(PWM2);
282 declare!(SPIM2_SPIS2_SPI2); 287 declare!(SPIM2_SPIS2_SPI2);
283 declare!(RTC2); 288 declare!(RTC2);
284 declare!(I2S);
285 declare!(FPU); 289 declare!(FPU);
290 declare!(I2S);
286} 291}
diff --git a/embassy-nrf/src/chips/nrf52833.rs b/embassy-nrf/src/chips/nrf52833.rs
index d406c32c2..a99ca6343 100644
--- a/embassy-nrf/src/chips/nrf52833.rs
+++ b/embassy-nrf/src/chips/nrf52833.rs
@@ -161,6 +161,9 @@ embassy_hal_common::peripherals! {
161 161
162 // PDM 162 // PDM
163 PDM, 163 PDM,
164
165 // I2S
166 I2S,
164} 167}
165 168
166#[cfg(feature = "nightly")] 169#[cfg(feature = "nightly")]
@@ -287,6 +290,8 @@ impl_saadc_input!(P0_29, ANALOG_INPUT5);
287impl_saadc_input!(P0_30, ANALOG_INPUT6); 290impl_saadc_input!(P0_30, ANALOG_INPUT6);
288impl_saadc_input!(P0_31, ANALOG_INPUT7); 291impl_saadc_input!(P0_31, ANALOG_INPUT7);
289 292
293impl_i2s!(I2S, I2S, I2S);
294
290pub mod irqs { 295pub mod irqs {
291 use embassy_cortex_m::interrupt::_export::declare; 296 use embassy_cortex_m::interrupt::_export::declare;
292 297
@@ -327,10 +332,10 @@ pub mod irqs {
327 declare!(PWM2); 332 declare!(PWM2);
328 declare!(SPIM2_SPIS2_SPI2); 333 declare!(SPIM2_SPIS2_SPI2);
329 declare!(RTC2); 334 declare!(RTC2);
330 declare!(I2S);
331 declare!(FPU); 335 declare!(FPU);
332 declare!(USBD); 336 declare!(USBD);
333 declare!(UARTE1); 337 declare!(UARTE1);
334 declare!(PWM3); 338 declare!(PWM3);
335 declare!(SPIM3); 339 declare!(SPIM3);
340 declare!(I2S);
336} 341}
diff --git a/embassy-nrf/src/chips/nrf52840.rs b/embassy-nrf/src/chips/nrf52840.rs
index f9e271c97..4f7463be2 100644
--- a/embassy-nrf/src/chips/nrf52840.rs
+++ b/embassy-nrf/src/chips/nrf52840.rs
@@ -164,6 +164,9 @@ embassy_hal_common::peripherals! {
164 164
165 // PDM 165 // PDM
166 PDM, 166 PDM,
167
168 // I2S
169 I2S,
167} 170}
168 171
169#[cfg(feature = "nightly")] 172#[cfg(feature = "nightly")]
@@ -292,6 +295,8 @@ impl_saadc_input!(P0_29, ANALOG_INPUT5);
292impl_saadc_input!(P0_30, ANALOG_INPUT6); 295impl_saadc_input!(P0_30, ANALOG_INPUT6);
293impl_saadc_input!(P0_31, ANALOG_INPUT7); 296impl_saadc_input!(P0_31, ANALOG_INPUT7);
294 297
298impl_i2s!(I2S, I2S, I2S);
299
295pub mod irqs { 300pub mod irqs {
296 use embassy_cortex_m::interrupt::_export::declare; 301 use embassy_cortex_m::interrupt::_export::declare;
297 302
@@ -332,7 +337,6 @@ pub mod irqs {
332 declare!(PWM2); 337 declare!(PWM2);
333 declare!(SPIM2_SPIS2_SPI2); 338 declare!(SPIM2_SPIS2_SPI2);
334 declare!(RTC2); 339 declare!(RTC2);
335 declare!(I2S);
336 declare!(FPU); 340 declare!(FPU);
337 declare!(USBD); 341 declare!(USBD);
338 declare!(UARTE1); 342 declare!(UARTE1);
@@ -340,4 +344,5 @@ pub mod irqs {
340 declare!(CRYPTOCELL); 344 declare!(CRYPTOCELL);
341 declare!(PWM3); 345 declare!(PWM3);
342 declare!(SPIM3); 346 declare!(SPIM3);
347 declare!(I2S);
343} 348}