OpenEdv-开源电子网

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

STM8S IO口高频翻转的方法 最好能达到ns级别

[复制链接]

26

主题

357

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1770
金钱
1770
注册时间
2017-4-1
在线时间
432 小时
发表于 2017-8-29 11:46:08 | 显示全部楼层 |阅读模式
STM8S 库函数使用时,IO翻转频率只能达到10Mhz 但是我现在需要精确到ns级别的延时翻转,据说汇编操作IO口能快一些,有哪位前辈能够指点一下汇编操作STM8S IO口的基本操作吗
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

26

主题

357

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1770
金钱
1770
注册时间
2017-4-1
在线时间
432 小时
 楼主| 发表于 2017-10-14 09:02:27 | 显示全部楼层
楼主已经找到方法,分享给大家:采用SPI DMA操作信号输出能够达到ns级别的信号输出,我主要是用在了WS2812灯珠的稳定控制。
回复 支持 反对

使用道具 举报

32

主题

881

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3923
金钱
3923
注册时间
2015-11-14
在线时间
535 小时
发表于 2017-10-14 17:52:01 | 显示全部楼层
STM8S没有DMA吧
回复 支持 反对

使用道具 举报

26

主题

357

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1770
金钱
1770
注册时间
2017-4-1
在线时间
432 小时
 楼主| 发表于 2017-10-20 20:36:30 | 显示全部楼层

抱歉,忘了说换主控了,换成了STM32F103了,同时用STM32验证了SPI 和PWM 都可以实现预期的功能,如果用STM8的 PWM 实现ns级电平翻转控制的话,建议用外部晶振比较准确。
回复 支持 反对

使用道具 举报

2

主题

258

帖子

0

精华

高级会员

Rank: 4

积分
821
金钱
821
注册时间
2013-6-5
在线时间
141 小时
发表于 2017-10-21 22:14:28 | 显示全部楼层
STC 15W 内部RC24MHz 不用汇编,都能驱动   WS2812,STM8S 不行?仔细调试一下.
回复 支持 反对

使用道具 举报

26

主题

357

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1770
金钱
1770
注册时间
2017-4-1
在线时间
432 小时
 楼主| 发表于 2017-10-22 17:13:49 | 显示全部楼层
本帖最后由 陈皮皮 于 2017-10-22 17:18 编辑
zhxzhx 发表于 2017-10-21 22:14
STC 15W 内部RC24MHz 不用汇编,都能驱动   WS2812,STM8S 不行?仔细调试一下.

行是行 直接用IO口电平反转 目前用示波器测出来的周期可能不大准 所以能实现基本控制 但是不是很稳定,出现了无关灯偶尔闪烁的情况,现在换主控板了,但是应该STM8s用定时器PWM也能做出来的,没有做实验验证 ,而且STM8S内部晶振16M 实测出来IO翻转最大频率在3-4M间,所以采用PWM会更准确,频率会更高一些
回复 支持 反对

使用道具 举报

2

主题

258

帖子

0

精华

高级会员

Rank: 4

积分
821
金钱
821
注册时间
2013-6-5
在线时间
141 小时
发表于 2017-10-22 17:22:13 | 显示全部楼层
本帖最后由 zhxzhx 于 2017-10-22 17:24 编辑
陈皮皮 发表于 2017-10-22 17:13
行是行 直接用IO口电平反转 目前用示波器测出来的周期可能不大准 所以能实现基本控制 但是不是很稳定,出 ...

不准是因为,你在驱动的时候开中断了,关闭一切中断,它的复位时间可以很长,在这个时间里处理需要处理的数据。我用STC做过驱动128个IC的。
回复 支持 反对

使用道具 举报

26

主题

357

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1770
金钱
1770
注册时间
2017-4-1
在线时间
432 小时
 楼主| 发表于 2017-10-22 17:36:54 | 显示全部楼层
zhxzhx 发表于 2017-10-22 17:22
不准是因为,你在驱动的时候开中断了,关闭一切中断,它的复位时间可以很长,在这个时间里处理需要处理的 ...

串口中断是要有的 现在有用上位机来进行485通信,也有可能是这个问题吧、现在换方案之后也能控制400个以上 谢谢您的解答
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-6-16 16:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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