Tool/software: Code Composer Studio
i cant communition with drv8308 and tm4c1294ncpdti board using internal registor pwm mode
#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_memmap.h"
#include "inc/hw_ssi.h"
#include "inc/hw_types.h"
#include "driverlib/ssi.h"
#include "driverlib/gpio.h"
#include "driverlib/pin_map.h"
#include "driverlib/sysctl.h"
uint32_t ui32SysClkFreq;
#define NUM_SSI_DATA 12
uint8_t pui8DataTx[NUM_SSI_DATA];
uint8_t pui8DataTxdataMSB[NUM_SSI_DATA];
uint8_t pui8DataTxdataLSB[NUM_SSI_DATA];
int main(void)
{
uint32_t ui32Index;
uint32_t ui32Data;
ui32SysClkFreq = SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480), 120000000);
SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, GPIO_PIN_3);
GPIOPinConfigure(GPIO_PA2_SSI0CLK);
// GPIOPinConfigure(GPIO_PA3_SSI0FSS);
GPIOPinConfigure(GPIO_PA4_SSI0XDAT0);
GPIOPinTypeSSI(GPIO_PORTA_BASE,GPIO_PIN_4|GPIO_PIN_2);
SSIConfigSetExpClk(SSI0_BASE, ui32SysClkFreq, SSI_FRF_MOTO_MODE_1, SSI_MODE_MASTER, 1000000, 8);
SSIEnable(SSI0_BASE);
//
// Initialize address byte0
//
pui8DataTx[0] = 0x00;
pui8DataTx[1] = 0x01;
pui8DataTx[2] = 0x02;
pui8DataTx[3] = 0x03;
pui8DataTx[4] = 0x04;
pui8DataTx[5] = 0x05;
pui8DataTx[6] = 0x06;
pui8DataTx[7] = 0x07;
pui8DataTx[8] = 0x08;
pui8DataTx[9] = 0x09;
pui8DataTx[10] = 0x0A;
pui8DataTx[11] = 0x0B;
//tx data for msb data byte1
pui8DataTxdataMSB[0] = 0x20;
pui8DataTxdataMSB[1] = 0x00;
pui8DataTxdataMSB[2] = 0x03;
pui8DataTxdataMSB[3] = 0x65;
pui8DataTxdataMSB[4] = 0x02;
pui8DataTxdataMSB[5] = 0x10;
pui8DataTxdataMSB[6] = 0x14;
pui8DataTxdataMSB[7] = 0x03;
pui8DataTxdataMSB[8] = 0x11;
pui8DataTxdataMSB[9] = 0x32;
pui8DataTxdataMSB[10] = 0xF4;
pui8DataTxdataMSB[11] = 0x0F;
//tx data for Lsb data byte2
pui8DataTxdataLSB[0] = 0x11;
pui8DataTxdataLSB[1] = 0x57;
pui8DataTxdataLSB[2] = 0xB4;
pui8DataTxdataLSB[3] = 0xDC;
pui8DataTxdataLSB[4] = 0x55;
pui8DataTxdataLSB[5] = 0x5B;
pui8DataTxdataLSB[6] = 0xB1;
pui8DataTxdataLSB[7] = 0xB6;
pui8DataTxdataLSB[8] = 0x2C;
pui8DataTxdataLSB[9] = 0x58;
pui8DataTxdataLSB[10] = 0x79;
pui8DataTxdataLSB[11] = 0xA0;
while(1)
{
for(ui32Index = 0; ui32Index < NUM_SSI_DATA; ui32Index++)
{
GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_3,0x00);
ui32Data =ui32Index;
// SSIDataPut(SSI0_BASE, 0x00);
SSIDataPut(SSI0_BASE, pui8DataTx[ui32Data]);
SSIDataPut(SSI0_BASE, pui8DataTxdataMSB[ui32Data]);
SSIDataPut(SSI0_BASE, pui8DataTxdataLSB[ui32Data]);
/* for(ui32Index = 0; ui32Index < NUM_SSI_DATA; ui32Index++)
{
ui32Data =ui32Index;
SSIDataPut(SSI0_BASE, *pui8DataTxdataMSB[ui32Data]);
for(ui32Index = 0; ui32Index < NUM_SSI_DATA; ui32Index++)
{
ui32Data =ui32Index;
SSIDataPut(SSI0_BASE, *pui8DataTxdataLSB[ui32Data]);
}
}
*/
GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_3,GPIO_PIN_3);
// SSIBusy(SSI0_BASE)
while(SSIBusy(SSI0_BASE))
{
}
}
}
}