Hi all,
AT91SAM7S64, GCC, FreeRTOS 5.3.
Cannot get i2s to send any data, clk works. For the beginning Just want to check if any data is going out:
Code:
AT91C_BASE_PIOA->PIO_PDR = AT91C_PA15_TF | AT91C_PA16_TK | AT91C_PA17_TD; // Disable pins in PIO.
AT91C_BASE_PIOA->PIO_ASR = AT91C_PA15_TF | AT91C_PA16_TK | AT91C_PA17_TD; // Pins work in peripheral A.
AT91C_BASE_PMC->PMC_PCER = 0x1 << AT91C_ID_SSC; // Enable clock on SSC.
AT91C_BASE_AIC->AIC_IECR = 0x1 << AT91C_ID_SSC; // Enable SSC irq on AIC.
AT91C_BASE_SSC->SSC_CR = AT91C_SSC_RXDIS | AT91C_SSC_TXEN | AT91C_SSC_SWRST; // Disable RX, enable TX, perform sw reset.
AT91C_BASE_SSC->SSC_CMR = (18432000 / (2 * (8 * 2) * 8000)) + 1;
AT91C_BASE_SSC->SSC_TCMR = (AT91C_SSC_CKS_DIV & AT91C_SSC_CKS) |
(AT91C_SSC_CKO & AT91C_SSC_CKO_CONTINOUS) |
(5 << 8) | (8 << 24);
AT91C_BASE_SSC->SSC_TFMR = 7;
while (1)
{
data++;
AT91C_BASE_SSC->SSC_THR = data;
while (!(AT91C_BASE_SSC->SSC_SR & AT91C_SSC_TXRDY));
}