您好!
我对 TLC5973有疑问
-能否使用微控制器的 GPIO 驱动 SDI 引脚? 如果否、请建议使用合适的引脚来驱动它
-此器件是否具有 EVM?
谢谢
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
以下基于 MSP432E401的代码供您参考、谢谢。
#define WRTCMD 0x3AA
#define CAST_N 2.
int main (空)
{
uint8_t jj;
uint64_t ii;
uint64_t GSOUT0[STACK_N]={0x0FA};//GS 数据//从 IC1到 IC_N 的数据
uint64_t GSOUT1[STACK_N]={0xF0F};
uint64_t GSOUT2[STACK_N]={0xFFF};
uint64_t 数据;
uint32_t systemClock;
/*将系统时钟配置为120 MHz */
系统时钟= MAP_SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSCTL_OSC_MAIN |
SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、
120000000);
/*启用 GPIO 端口 A 的时钟并等待其准备就绪*/
MAP_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
while (!(SysCtlPeripheralReady (SYSCTL_Periph_GPIOA)))
{
}
MAP_GPIOPinTypeGPIOOutput (GPIO_Porta_base、GPIO_PIN_2);//将一根导线设置为单线、SDI 的输出
//数据传输速率测量,设置 tcycle=48系统时间。 //速率500kHz
MAP_GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_2、4);//写入1
MAP_GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_2、0);//写入0
MAP_SysCtlDelay (240);/2us
MAP_GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_2、4);//写入1
MAP_GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_2、0);//写入0
//数据写入
while (1)
{
// GPIODirModeSet (、GPIO_PIN_2、GPIO_DIR_MODE_OUT);//将线缆设置为单线、SDI 的输出
for (jj=1;<cascade_N;jj++)//N-1 cascaded device data
{
Data=((((uint64_t) WRTCMD)<<12)+GSOUT2[jj-1];
Data=(Data<<12)+GSOUT1[jj-1];
Data=(Data<<12)+GSOUT0[jj-1];
for (ii = 48;ii > 0;ii -)//写入数据
{
MAP_GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_2、4);//写入1
MAP_GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_2、0);//写入0
MAP_SysCtlDelay (60);//<50%
MAP_GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_2、Data>>(i-3));//写入数据
MAP_SysCtlDelay (160);
MAP_GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_2、0);//写入0
}
MAP_SysCtlDelay (960);//等待4.5 tcycle 以生成 EOS
}
Data=((((uint64_t) WRTCMD)<<12)+GSOUT2[STACK_N-1];
Data=(Data<<12)+GSOUT1[STACK_N-1];
Data=(Data<<12)+GSOUT0[STACK_N-1];
for (ii = 48;ii > 0;ii -)//写入数据//最后一个数据
{
MAP_GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_2、4);//写入1
MAP_GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_2、0);//写入0
MAP_SysCtlDelay (60);//<50%
MAP_GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_2、Data>>(i-3));//写入数据
MAP_SysCtlDelay (160);
MAP_GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_2、0);//写入0
}
MAP_SysCtlDelay (2400);//LAT 生成、>8时钟
}
}