大家好啊。有个问题想请教下:
在使用LM3S6911单片机时,用到了内部的SPI口与外部ADC、DAC进行通信。
手册上给出spi的时钟频率,主机时最高可以到主频/2。也即25MHz。但实际配置SPI时,如果位时钟为25MHz时:
1.时钟线高电平正常,低电平为1V以上。
2.而且此时,时钟波形为类似锯齿波,而不是方波
3.实际可用的位时钟频率为10MHz左右
4.请教下,你们也有碰到类似问题嘛?
求大神指教啊。谢谢
大家好啊。有个问题想请教下:
在使用LM3S6911单片机时,用到了内部的SPI口与外部ADC、DAC进行通信。
手册上给出spi的时钟频率,主机时最高可以到主频/2。也即25MHz。但实际配置SPI时,如果位时钟为25MHz时:
1.时钟线高电平正常,低电平为1V以上。
2.而且此时,时钟波形为类似锯齿波,而不是方波
3.实际可用的位时钟频率为10MHz左右
4.请教下,你们也有碰到类似问题嘛?
求大神指教啊。谢谢
25Mhz时钟肯定是可以的,我用SPI连接外部Flash也是用的25Mhz在跑。
你可以配置SPI端口为8mA、不带摆率、推拉输出驱动试试。如果还不行那就是是负载问题了,可以看看手册中驱动电流与负载电容规范,看看实际有没有超过。
希望对你有帮助。
非常感谢你啊:
1. 8mA,不带摆率,推拉输出。你的意思是值在配置SSI摸块前设置设置用
GPIOPadConfigSet(GPIO_PORTA_BASE, GPIO_PIN_0, GPIO_STRENGTH_4MA, GPIO_PIN_TYPE_STD);
类似的语句设置SSI对应的引脚的特性么?
2. 如果是这样设置,那后面初始化SSI的时候,又重新定义了这些引脚的特性,他们之间不会冲突嘛?
重定义引脚功能,不会改变PAD配置。
你在所有SSI配置完成后调用GPIOPadConfigSet(?,?,GPIO_STRENGTH_8MA,GPIO_PIN_TYPE_STD)配置即可
xiong,谢谢你啊。问题解决了。
还有想请教下:
SPI单片机从外部器件接收数据的时候,为什么不能主动产生时钟,而是要先执行SSIDataPut(SSI_BASE, 0x0000) 这种写数据语句,依靠这句产生的时钟来读数据。
可以直接不用写语句,而直接读数据吗?
SPI接口通讯时主机与从机相当于两个首尾环形连接的74HC595,主机通过MOSI发送一个字节数据时,从机也从MISO向主机回送了一个字节数据。SPI通讯时钟由主机提供,必须调用主机发送程序启动数据接收,没有不写总线直接读数据概念。