From 4b4c5bb3fa573c3c2f34605bbbc0936925d4360d Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Mon, 1 Sep 2014 19:58:25 +0200 Subject: More I2S driver work. --- firmware/drivers/wm8523.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'firmware/drivers/wm8523.c') diff --git a/firmware/drivers/wm8523.c b/firmware/drivers/wm8523.c index 96d5cae..e1711fd 100644 --- a/firmware/drivers/wm8523.c +++ b/firmware/drivers/wm8523.c @@ -113,6 +113,10 @@ void wm8523_init(uint8_t portnum, wm8523_samplerate_t fs) if(portnum == 0) SSP0Init(); else SSP1Init(); +#if 1 + i2s_init(); + (void)fs; +#else I2SInit(); // pg. 482 @@ -138,8 +142,8 @@ void wm8523_init(uint8_t portnum, wm8523_samplerate_t fs) // I2STXBITRATE 0x400A 8028 // bit 0-5 I2S transmit bit rate. This value plus one is used to divide TX_MCLK to produce the transmit bit clock. // set to 31 (divide by 32): stereo (2) * 16bit - uint32_t *i2stxbirate = (uint32_t *)0x400a8028; - *i2stxbirate = 7; + uint32_t *i2stxbitrate = (uint32_t *)0x400a8028; + *i2stxbitrate = 7; // bitclock = mclock / (divider+1) // samplerate = mclock / bitclock @@ -179,7 +183,8 @@ void wm8523_init(uint8_t portnum, wm8523_samplerate_t fs) (0b1111 << 4) | // Divide by 16 (0b1 << 8) // Enable ; - */ + */ +#endif } unsigned short wm8523_get_chip_id(uint8_t portnum) @@ -315,7 +320,8 @@ void wm8523_tone() NVIC_EnableIRQ(I2S_IRQn); // RX FIFO depth is 1, TX FIFO depth is 8. - I2SStart(); + //I2SStart(); + i2s_tx_start(); LPC_I2S->I2SIRQ = (8 << 16) | (1 << 8) | (0x01 << 0); //uint32_t val = 0; -- cgit v1.2.3