Part Number:TMS570LC4357
您好:
- 在进行配置时,与是否意味着我需要发送16位数据,不满足8个字后面自动补0?
- 关于片选信号。在我执行mibspiSetData()这个函数时,片选信号是否自动拉高?因为我是要与外部flash数据交换,在我向他发送指令后,外部flash向主机发送数据,那么mibspiGetData()这个函数执行过程中,片选信号是否也是自动拉高?
- 最后附上我的代码,希望您能帮忙解答。
uint16_t data[3]={0};
uint16_t command[1]={0x9F};
uint8_t ID1,ID2,ID3;
uint32_t ID;
//mibspiReset(mibspiREG4);
mibspiSetData(mibspiREG4,0,command);
mibspiTransfer(mibspiREG4,0);
while(mibspiIsTransferComplete(mibspiREG4,0)==1){
mibspiGetData(mibspiREG4,0,data);
ID1=data[0];
mibspiGetData(mibspiREG4,1,data);
ID2=data[1];
mibspiGetData(mibspiREG4,1,data);
ID3=data[2];
ID=(ID1<<16)|(ID2<<8)|(ID3);
}
Cherry Zhou:
您好我们已收到您的问题并升级到英文论坛寻求帮助,如有答复将尽快回复您。谢谢!
,
Cherry Zhou:
您好,
Yuanyi Li 说:在进行配置时,与是否意味着我需要发送16位数据,
不,如果 charlen (字符长度)为8位,则表示将传输8个数据位。 这意味着当我们将数据写入 SPIDATA 寄存器时,16位 TXDATA 的低8位将在 MO 引脚上移位。
Yuanyi Li 说:不满足8个字后面自动补0?
这个配置与多缓冲器相关,MibSPI 有一个可编程多缓冲器阵列,此阵列可实现已编程传输的完成而无需 CPU 干预。
因此,可以在这里为每个发送组配置触发源,每当触发发生时,它都会传输该发送组中配置的缓冲区。 如果没有将任何数据写入相应传输组的缓冲区数组,并且在接收到触发信号后,它会在该数组中发送默认0。
Yuanyi Li 说:关于片选信号。在我执行mibspiSetData()这个函数时,片选信号是否自动拉高?因为我是要与外部flash数据交换,在我向他发送指令后,外部flash向主机发送数据,那么mibspiGetData()这个函数执行过程中,片选信号是否也是自动拉高?
是的,它将由 SPI 硬件自动控制。
在master mode下,如果 SPICS 引脚配置为功能引脚,则引脚将处于输出模式。 对主器件的 SPIDAT1/SPIDAT0寄存器的写入将自动将 SPICS 信号驱动为低电平。 完成数据位的传输后,主器件将 SPICS 信号再次驱动为高电平。
更多详细信息请参阅 TRM 中的第28.2.5节。
,
Yuanyi Li:
感谢您的回答!