dear ,
actually i want to send data to DAC 7731 i have written code for this but i am unable to get the output of DAC. i am using SSI port of TM4C129XNCZAD and i am using PA2 as a SCLK PA3 as a Chip select and PA4 for sending data. DAC output is sitting at mimimum value although SSI output seems correct i am enclosing code please tell me where i am wrong please help me
int main(void)
{
uint32_t pui32DataTx;
ui32Loop = SYSCTL_RCGCGPIO_R;
SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_16MHZ);
MT_SysTick_Set();
SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
GPIOPinConfigure(GPIO_PA2_SSI0CLK);
GPIOPinConfigure(GPIO_PA3_SSI0FSS);
GPIOPinConfigure(GPIO_PA4_SSI0RX);
GPIOPinConfigure(GPIO_PA5_SSI0TX);
GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_5 | GPIO_PIN_4 | GPIO_PIN_3 | GPIO_PIN_2);
SSIConfigSetExpClk(SSI0_BASE, SysCtlClockGet(), SSI_FRF_MOTO_MODE_3,
SSI_MODE_MASTER, 1000000, 8);
SSIEnable(SSI0_BASE);
DAC_ldac();
while(1)
{
MAP_GPIOPinWrite(GPIO_PORTS_BASE, GPIO_PIN_7,GPIO_PIN_7);
pui32DataTx=0x5472;
SSIDataPut(SSI0_BASE, pui32DataTx);
while(SSIBusy(SSI0_BASE))
{
}
SSIIntClear(SSI0_BASE,SSI_RXFF);
SysCtlDelay(100);
MAP_GPIOPinWrite(GPIO_PORTS_BASE, GPIO_PIN_7, 0);
SysCtlDelay(100);
MAP_GPIOPinWrite(GPIO_PORTS_BASE, GPIO_PIN_7, GPIO_PIN_7); //LDAC rising edge
}
}
void DAC_ldac()
{
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOS);
MAP_GPIOPinTypeGPIOOutput(GPIO_PORTS_BASE, GPIO_PIN_7);
MAP_GPIOPinWrite(GPIO_PORTS_BASE, GPIO_PIN_7, GPIO_PIN_7);
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
MAP_GPIOPinTypeGPIOOutput(GPIO_PORTE_BASE, GPIO_PIN_1);
MAP_GPIOPinWrite(GPIO_PORTE_BASE, GPIO_PIN_1, 0);
}