OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4747|回复: 8

怎么提高单片机信号引脚的输出速度?

[复制链接]

15

主题

143

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2014-10-31
在线时间
4 小时
发表于 2015-1-10 21:08:52 | 显示全部楼层 |阅读模式
5金钱
用示波器测了下信号引脚:
while(1)
{
GPIOG->BSRR=GPIO_Pin_5;
  GPIOG->BRR=GPIO_Pin_5;
}
这样基本能达到6MHz;问题1:能提的更高吗?系统时钟是72Mhz
while (1)
{
    u32 i=0,dat=0x5a;
   for(i=0;i<8;i++)
    {
    if(dat&0x80)
    {
    BMOSI_L();
    }
    else
    {
    BMOSI_H();
    }

    ASRCK_L();
    dat=dat<<1;
    ASRCK_H();
   }
}
问题2:按位来送的话,只有760kHz左右,怎么才能最大提高信号的输出速度?

总有一天,要为自由而活
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

58

主题

499

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1920
金钱
1920
注册时间
2013-11-18
在线时间
268 小时
发表于 2015-1-10 21:30:05 | 显示全部楼层
楼主是用GPIO来模拟SPI??如果用硬件SPI的话,可以跑到36Mhz。
已经放下多年的FPGA,要重新再拾起来,却是如此的陌生
回复

使用道具 举报

15

主题

143

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2014-10-31
在线时间
4 小时
 楼主| 发表于 2015-1-10 21:41:25 | 显示全部楼层
回复【2楼】mzwhhwj:
---------------------------------
嗯,谢谢你的回答,可是我现在想知道用软件的方法还能不能进一步的提升速度
总有一天,要为自由而活
回复

使用道具 举报

58

主题

499

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1920
金钱
1920
注册时间
2013-11-18
在线时间
268 小时
发表于 2015-1-10 21:53:33 | 显示全部楼层
回复【3楼】LIUYABO:
---------------------------------
可以用DMA来直接驱动GPIO来提高GPIO的速度
已经放下多年的FPGA,要重新再拾起来,却是如此的陌生
回复

使用道具 举报

15

主题

143

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2014-10-31
在线时间
4 小时
 楼主| 发表于 2015-1-10 22:12:55 | 显示全部楼层
回复【4楼】mzwhhwj:
---------------------------------
DMA不是提供在外设和存储器之间或者存储器和存储器之间的高速数据传输的吗,普通I/O口也可以用吗?
总有一天,要为自由而活
回复

使用道具 举报

58

主题

499

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1920
金钱
1920
注册时间
2013-11-18
在线时间
268 小时
发表于 2015-1-10 22:56:50 | 显示全部楼层
可以的,DMA传输也就是RAM跟寄存器之间的传输,GPIO的配置也是用寄存器啊,当然可以通过DMA来改写GPIO相关的寄存器。我刚做了就Timer来触发DMA,然后用DMA来改写GPIO的寄存器来控制GPIO的时序,这样就可以做到完全不用CPU来干预来让GPIO输出我们想要的时序
已经放下多年的FPGA,要重新再拾起来,却是如此的陌生
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-1-10 23:14:19 | 显示全部楼层
硬件SPI只能到18M,到不了36M.
要速度的话,用汇编最高效
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

58

主题

499

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1920
金钱
1920
注册时间
2013-11-18
在线时间
268 小时
发表于 2015-1-10 23:21:41 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
呵呵,我用是F303,虽然也是72M的主频,但是SPI可以达到36M
已经放下多年的FPGA,要重新再拾起来,却是如此的陌生
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-1-11 00:14:10 | 显示全部楼层
回复【8楼】mzwhhwj:
---------------------------------
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-27 05:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表