历史上的今天
今天是:2024年09月10日(星期二)
2018年09月10日 | STM8L SPI使用过程记录
2018-09-10 来源:eefocus
STM8L SPI使用过程记录
工作需要,需要使用SPI方式和DSP进行通信,关于SPI通信,作为一名新手,还停留在大学时候学的MOSI/MISO阶段,没有实际的应用经验,所以遇到了不少有趣的事情,记录一下,防止以后再犯同样的错误。
SPI从机:STM8L
SPI主机:DSP
问题一:主机接收异常
现象:从机向主机发送 “1234”,主机收到“11223334”
过程及分析: 从机向主机数据的时候,主机轮训去读,但是一直读到数据如上,一直不正常,主机SPI频率为4M,从机主机频率为8M,通过示波器测量也是只要主机发送clk去读,从机就返回异常的数据,一直找不到原因,后来询问别人猜测是主机SPI频率太快导致的此问题
解决方法:降低SPI主机的频率,数据接收正常
问题二:从机接收异常
现象:主机发送“12345”,从机只能接收到“12”
过程及分析:有点尴尬了,刚刚主机接收正常。马上从机接收异常。。。。当时在从机中采用的是接收到一个字符,就立马通过printf重定向的方式打印出来,后来采取接收几个字符再一起打印出来。猜测原因是STM8L中的printf重定向占用太多时间,导致接收数据异常
解决方法:去掉printf重定向
问题三:从机接收到大量0xFF无用数据
现象:从机发送完数据后,立马读取数据,会读到0XFF等无用数据
过程及分析:从机在向主机发送数据后,立马会读到0xff无用数据,通过询问电子得知,当主机在读数据的时候,MOSI引脚被拉高,此时从机去读数据,则会读到0xFF,因此需要做些判断,如果是0Xff,则丢弃无用数据
解决方法:从机读数据时做判断
问题四:从机配置成接收中断方式,当发送数据过程中,系统卡死
现象:从机配置成接收中断方式,当发送数据过程中,系统卡死,没有反应
过程及分析:以上现象比较奇怪,后来通过添加打印信息进行分析,其实原因和上面一样,当从机发送数据之后,主机读数据会导致MOSI拉高,而从机又被配置成接收中断,此时就会触发中断,然后从机就会一直接收,导致吸引卡死,因此我们现在的方法是在从机发送数据之前先关闭接收中断,当确认数据发送完毕之后,再打开接收中断
解决方法:发送时候关闭接收中断,发送完毕打开接收中断
问题五:从机接收或者发送阻塞
现象:从机接收或者发送数据时候可能会阻塞
过程及分析:特别是在接收中断中,可能触发中断后,从机就会接收阻塞,导致整个系统没有反应,现在采用的方法是增加超时机制,超过一定时间数据没有接收到或者没有发送出去,就直接退出,不用阻塞
解决方法:增加超时机制
史海拾趣
|
提供另一種 Cadence Allegro SPB 16.2 的 安裝資料 Allegro 另外一種安裝方式的說明, 先安裝 License 文件, 再安裝 Allegro [ 本帖最后由 dale 于 2009-11-16 01:21 编辑 ]… 查看全部问答> |
|
为什么EVC创建建Pocket PC 2003 程序时,默认就变standardsdk了? 然后我选Pocket PC 2003 平台,evc就卡住了 .无法响应 都重装好几次EVC,Pocket PC 2003 SDK了… 查看全部问答> |
|
为什么sysgen hpc 产生两个大小不同的ceshell.lib C:\\WINCE500\\PBWorkspaces\\simu3\\WINCE500\\Emulator_x86\\cesysgen\\sdk\\lib\\x86\\retail\\ceshell.lib (5K) C:\\WINCE500\\PUBLIC\\SHELL\\OAK\\LIB\\X86\\RETAIL\\ceshell.lib (1150K) 我的hpc是从wince老版本 ...… 查看全部问答> |
|
各位好: 我买开发板的时候经常听到有人问这种开发板能不能支持某一种操作系统,比如VxWorks操作系统。 我是菜鸟,我不理解所谓的开发板能不能支持什么操作系统。但我查了有关资料之后就产生如下理解: “一种开发板能不能支持某一种操作系统, ...… 查看全部问答> |
|
一个学了一年VC的人去做车载音响软件开发需要学习什么硬件知识,请大家帮忙! 各位好,请过来人帮忙!我本来是准备走VC应用程序道路的,大四上学期才开始学的VC,找了将近半年多的VC工作没有找到。现在反而找到一个机会去做车载音响软件开发。当时面试官说你学桌面软件的,但我们是做那种单片机 ...… 查看全部问答> |
|
(MSP430分享)使用MSP430单片机做产品写程序的体会 使用TI的MSP430芯片已经有几年了,最近做产品用到了一款MSP430G2231,很愿意和大家分享一下。 先说一下这个MSP430G2231,面对巨大的中低端MCU市场的诱惑,TI终于不再沉默,推出了G2xx系列超值MCU,其实它和Fxx系列mcu完全兼容,只是 ...… 查看全部问答> |
|
实验室管理工程师 设备管理工程师 电池质量工程师 EMC整改工程师 信号完整性分析工程师 硬件电路设计工程师 软件工程师 硬件工程师 Windows程序开发工程师 电池管理系统控制策略开发工程师 电池管理系统安全工程师 电网配电工程师 充电 ...… 查看全部问答> |




