12139|4

72

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

STM32F103如何在io口上输出连续高速的高低电平变化? [复制链接]

我把问题重新说明一下,之前的一个帖子可能没有说的很明白。
我现在要实现的就是把我SD卡中的一个文件内的数据,通过一个IO口,把数据的8位连续的在这个io口上输出。
比如数据库中的数据是AA,55,33,那么如果高位在前输出的话,这个IO口上要连续输出10101010 01010101 00110011。
当然这样是没有问题,可以用SPI和DMA结合输出大容量数据。
但是我现在的问题是,我的数据比如AA,55,33,我只需要连续输出每个byte中的高7位数据,也就是IO口上连续输出1010101 0101010 0011001。
而且每个数据的7bit之间都不能有空隙,必须是全部连续的,现在要实现2Mhz的频率发送,也就是0.5us一个bit,如果每个byte发送7位数据,按上面的例子,就是要占用3*7*0.5us=10.5us。
当然,我的数据量远远不止3个,有几万个数据。
如果是这样的情况,用这个STM32F103要如何实现啊?实在想不到好的方法。
(不知道这样说明情况是否清楚,如果有不清楚的,我继续说明)
此帖出自stm32/stm8论坛

最新回复

                                 从SD卡读取的速度跟不上的。2MHz呢  详情 回复 发表于 2010-12-2 08:34
点赞 关注
 

回复
举报

81

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
当然,我把我要发送的数据的具体格式也发上来,大家可以也看一下。

送给 SDI 脚的输入信号必须遵循下列定义:
a. 有效输入数据必须为曼彻斯特编码,信号从高到低跳变表示"1",从低到高
跳变表示"0"
b. 在芯片上电后必须先发一次同步帧,以便芯片检测通讯的波特率。同步帧的
格式为:15’b111111111111111+4’b0001+11’b00000000000,在发送同步
帧后必须延时一段时间再发送数据帧,这样做是为了每个芯片都能准确检测
到通讯的波特率,延时时间(us)大于:连接芯片数÷通讯波率(MHz)×30
c. 在发送若干帧数据后,重新发送一次复位帧,等待1ms 之后,再发送一次同
步帧, 以便芯片消除积累误差, 复位帧格式为:
15’b111111111111111+4’b0100
d. 数据帧格式为:15’b111111111111111+4’b0010(数据头)+ 第一个芯片
39bit 数据 + 第二个芯片39bit 数据 + …… + 第n 个芯片39bit 数据
e. 第一个芯片为最先接收数据的芯片,芯片的数据格式为:1’ b0(标识位) + 12’
bxxxxxxxxxxxx(输出端口1 数据) + 1’ b0(标识位) + 12’ bxxxxxxxxxxxx(输
出端口2 数据) + 1’ b0(标识位) + 12’ bxxxxxxxxxxxx(输出端口3 数据),
x 为1 或则0
f. 数据先发送 MSB(最高位)
g. SDI 输入脚在空闲状态时,必须保持低电平
h. 同一帧数据发送过程中,必须连续发送,中间不能有中断,发送频率也不能
改变。
此帖出自stm32/stm8论坛
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
                                 确实是个棘手的问题。考虑用SPI+DMA?可能在启动DMA之前先要拼合数据,每个字节去掉一位才行。麻烦啊。
此帖出自stm32/stm8论坛
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

4
 
是的,非常麻烦。
所以有考虑外加cpld或者fpga。
也有可能可以考虑用fpga上nios来完成所有功能。
郁闷啊。纠结啊。
此帖出自stm32/stm8论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

5
 
                                 从SD卡读取的速度跟不上的。2MHz呢
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
Microchip 直播|利用motorBench开发套件高效开发电机磁场定向控制方案 报名中!
直播主题:利用motorBench开发套件高效开发电机磁场定向控制方案
直播时间:2025年3月25日(星期二)上午10:30-11:30
快来报名!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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