5214|2

11

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

GPIO模拟SLAVE SPI [复制链接]

大家好!
           我现在要用TI M3的GPIO来实现接收SPI上的数据,SPI的格式如下:

主机SPI信号描述: 在SYN_EN保持低电平的期间,SYN_DATA发送24bit数据。时钟SYN_CLK为4.5MHZ
我现在板子上的硬件是这样的,SYN_EN信号连在LMS2793的GPIOE_0上,SYN_CLK直接连在GPIOE_1上,SYN_DATA直接连在GPIOE_2上。
我想用中断的方式来实现:
第一步初始化:用内部时钟16MHZ,将GPIOE_0,GPIOE_1和GPIOE_2设置为GPIO,都定义为输入信号,3个输入信号都内部设置为上拉,.
第二步定义中断:设置GPIOE_0(SYN_EN)为下降沿检测,打开GPIOE端口中断,开始等中断;
第三步调用中断程序:即当检测到SYN_EN信号,即GPIOE_0信号有下降沿时,调用中断程序SPI_ISR,在中断程序中如果检测到GPI0E_1为高且GPIOE_0为低同时成立时,读取GPIOE_2上的数据,延迟一定时间后,再去重复23次判断GPIOE_0为高和GPIOE_0为低同时成立,读取GPIO_2上的数据,这样就能读出完成的24bit SYN_DATA数据。
我现在几个问题: 1.我在第二步中打开GPIOE端口的中断后,应该是GPIOE口的8个PIN脚中的任意一个有下降沿(假设不是GPIOE_0 PIN脚),应该都会触发中断,这样是不是会带来误判。
                              2.在弟三步中,每读取一次GPIOE_2上的值,都要延迟一定的时间,这个时间怎么去精确的设置呢? 假设如果这个延迟时间太短,会在一个SYN_CLK的高电平期间,会重复的读取GPIOE_2上的值;如果延迟时间太长,会漏掉GPIOE_2上的一些值。
                              3.  如果我不去考虑这个延迟的话,我能不能在SPI_ISR中再嵌套一个中断,即检测到GPIOE_0下降沿后,调用SPI_ISR, 在SPI_ISR中断子程序中去检测GPIOE_1上的上升沿,如果检测到,则调用另外一个中断程序Read_value,在Read_value中去读GPIOE_2上的值。  因为这几个信号都在同一个GPIO断(GPIOE),这种方式能实现吗? 如何实现?

最新回复

1:通过设置某一个io触发中断,不能全中断 2:你应该结合时钟做逻辑,时钟的边沿检测数据和移位,脱离时钟就没逻辑了 3:如2..  详情 回复 发表于 2013-5-31 11:55
 
点赞 关注

回复
举报

4005

帖子

0

TA的资源

版主

沙发
 
1:通过设置某一个io触发中断,不能全中断
2:你应该结合时钟做逻辑,时钟的边沿检测数据和移位,脱离时钟就没逻辑了
3:如2..
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
我发现有GPIO模拟SLAVE SPI,GPIO读取速度没有那么快,我听从网上的建议,还是用M3专用的SPI接口,将其配为8bit,当接收FIFO里面有数据时,连续读取3次。我用两种方式实现:
1. 当检测的FIFO里面有数据时,对FIFO连续的读取3次,此时读出来的值为接收到的24bit的前8bit,后来连续2次读的结果都是0;
2. 当检测到FIFO里面有数据时,对FIFO读取一次,之后等待再次检测到FIFO里面有数据,再对FIFO读取一次数据,这样子重复3次,但是这样出来的结果是对应于3个24bit数据的前8bit数据。
这两种方法我都无法完成对一个24bit的数据完全读出来。各位大侠还有没有其他法子?
谢谢!

[ 本帖最后由 yangsheng0328 于 2013-6-4 12:09 编辑 ]
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表