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 = 0x4a ; // (0x94 >> 1)
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>();
@@ -216,7 +221,7 @@ initializeCs43()
216
221
cs43::Reset::setOutput (modm::Gpio::Low);
217
222
modm::delay_ms (2 );
218
223
cs43::Reset::setOutput (modm::Gpio::High);
219
-
224
+
220
225
}
221
226
222
227
// / not supported yet, due to missing I2S driver
0 commit comments