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
@@ -154,12 +155,16 @@ using Mclk = GpioOutputC7; // I2S3_MCK
154
155
using Sclk = GpioOutputC10; // I2S3_SCK
155
156
using Sdin = GpioOutputC12; // I2S3_SD
156
157
158
+ using DmaTx = Dma1::Channel5;
159
+
157
160
using Reset = GpioOutputD4; // Audio_RST
158
161
using Scl = GpioB6; // Audio_SCL
159
162
using Sda = GpioB9; // Audio_SDA
160
163
161
164
using I2cMaster = I2cMaster1;
162
- using I2sMaster = I2sMaster3;
165
+ using I2sMaster = I2sMaster3<DmaTx>;
166
+
167
+ static constexpr uint8_t I2CAddress = 0x4a ; // (0x94 >> 1)
163
168
// / @}
164
169
}
165
170
@@ -215,13 +220,13 @@ initializeLis3()
215
220
lis3::SpiMaster::setDataMode (lis3::SpiMaster::DataMode::Mode3);
216
221
}
217
222
218
- // / not supported yet, due to missing I2S driver
223
+ template < modm:: frequency_t samplerate=48_kHz, modm:: percent_t tolerance=modm::pct( 0.019 ) >
219
224
inline void
220
225
initializeCs43 ()
221
226
{
222
227
cs43::I2sMaster::connect<cs43::Mclk::Mck, cs43::Sclk::Ck,
223
228
cs43::Lrck::Ws, cs43::Sdin::Sd>();
224
- cs43::I2sMaster::initialize<SystemClock, 48_kHz >();
229
+ cs43::I2sMaster::initialize<SystemClock, samplerate, tolerance >();
225
230
cs43::Reset::setOutput (modm::Gpio::High);
226
231
227
232
cs43::I2cMaster::connect<cs43::Scl::Scl, cs43::Sda::Sda>();
@@ -230,7 +235,7 @@ initializeCs43()
230
235
cs43::Reset::setOutput (modm::Gpio::Low);
231
236
modm::delay_ms (2 );
232
237
cs43::Reset::setOutput (modm::Gpio::High);
233
-
238
+
234
239
}
235
240
236
241
// / not supported yet, due to missing I2S driver
0 commit comments