|
18 | 18 | #include <modm/platform.hpp>
|
19 | 19 | #include <modm/architecture/interface/clock.hpp>
|
20 | 20 | #include <modm/driver/inertial/lis3dsh.hpp>
|
| 21 | +#include <modm/math/units.hpp> |
21 | 22 |
|
22 | 23 | using namespace modm::platform;
|
23 | 24 |
|
@@ -148,12 +149,16 @@ using Mclk = GpioOutputC7; // I2S3_MCK
|
148 | 149 | using Sclk = GpioOutputC10; // I2S3_SCK
|
149 | 150 | using Sdin = GpioOutputC12; // I2S3_SD
|
150 | 151 |
|
| 152 | +using DmaTx = Dma1::Channel5; |
| 153 | + |
151 | 154 | using Reset = GpioOutputD4; // Audio_RST
|
152 | 155 | using Scl = GpioB6; // Audio_SCL
|
153 | 156 | using Sda = GpioB9; // Audio_SDA
|
154 | 157 |
|
155 | 158 | using I2cMaster = I2cMaster1;
|
156 |
| -using I2sMaster = I2sMaster3; |
| 159 | +using I2sMaster = I2sMaster3<DmaTx>; |
| 160 | + |
| 161 | +static constexpr uint8_t I2CAddress = 0x94; |
157 | 162 | }
|
158 | 163 |
|
159 | 164 |
|
@@ -201,13 +206,13 @@ initializeLis3()
|
201 | 206 | lis3::SpiMaster::setDataMode(lis3::SpiMaster::DataMode::Mode3);
|
202 | 207 | }
|
203 | 208 |
|
204 |
| -/// not supported yet, due to missing I2S driver |
| 209 | +template< modm::frequency_t samplerate=48_kHz, modm::percent_t tolerance=modm::pct(0.019) > |
205 | 210 | inline void
|
206 | 211 | initializeCs43()
|
207 | 212 | {
|
208 | 213 | cs43::I2sMaster::connect<cs43::Mclk::Mck, cs43::Sclk::Ck,
|
209 | 214 | cs43::Lrck::Ws, cs43::Sdin::Sd>();
|
210 |
| - cs43::I2sMaster::initialize<SystemClock, 48_kHz>(); |
| 215 | + cs43::I2sMaster::initialize<SystemClock, samplerate, tolerance>(); |
211 | 216 | cs43::Reset::setOutput(modm::Gpio::High);
|
212 | 217 |
|
213 | 218 | cs43::I2cMaster::connect<cs43::Scl::Scl, cs43::Sda::Sda>();
|
|
0 commit comments