[DSP编程] 前辈们,GPIO高低电平的持续时间是多少啊?

[复制链接]
 楼主| zhengyu12 发表于 2016-7-27 19:02 | 显示全部楼层 |阅读模式
本帖最后由 zhengyu12 于 2016-7-28 08:25 编辑

我编写完一段代码,设置好gpio,本应在管脚处输出高低电平,为方波,结果示波器一看,是乱的,尖刺很多
我考虑是不是因为gpio输出电平持续时间短的原因造成的,然而我看芯片手册上说是2c,c=sysclk4,这是dsp内部时钟分频后的时间吗,那是多少啊?是固定的还是可变的?望前辈们告知
 楼主| zhengyu12 发表于 2016-7-28 08:27 | 显示全部楼层
有人吗
玄德 发表于 2016-7-28 09:26 | 显示全部楼层

就是个GPIO操作吗?
上波形图看看。


 楼主| zhengyu12 发表于 2016-7-28 10:39 | 显示全部楼层
玄德 发表于 2016-7-28 09:26
就是个GPIO操作吗?
上波形图看看。

我是在dsp内部产生一个信号和一个三角波,两个做比较,大于在gpio输出寄存器置1,小于置0;理论上用示波器看对应管脚输出的应该是方波,结果不是

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| zhengyu12 发表于 2016-7-28 10:41 | 显示全部楼层
zhengyu12 发表于 2016-7-28 10:39
我是在dsp内部产生一个信号和一个三角波,两个做比较,大于在gpio输出寄存器置1,小于置0;理论上用示波 ...

蓝色是输出
 楼主| zhengyu12 发表于 2016-7-28 10:49 | 显示全部楼层

理论上输出应该是这样的方波,这幅图与上幅图的区别是信号与零做比较,然后分别在gpio输出寄存器上置0和1,上幅图是与三角波做比较得到0和1.
但是我觉得应该没区别啊,无论我做什么,最终在gpio管脚输出的都应该是高低电平啊,为什么会是带有尖刺的那样呢(楼上)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
JY-DX-JY 发表于 2016-7-28 11:05 | 显示全部楼层
你设置高低电平的程序是怎样的?你测试过了吗?
 楼主| zhengyu12 发表于 2016-7-28 11:31 | 显示全部楼层
JY-DX-JY 发表于 2016-7-28 11:05
你设置高低电平的程序是怎样的?你测试过了吗?

根据我产生的信号对gpio输出寄存器的相应位置0和1。理论输出那幅图是正确的gpio输出方波,这个应该算测试了吧
goonce 发表于 2016-7-28 14:01 | 显示全部楼层
是不是高低电平切换太快了导致信号跳变,或者是示波器测试的问题?这几个图的时间刻度一样的吗?可以对gpio输出加一个延时看看
 楼主| zhengyu12 发表于 2016-7-28 15:19 | 显示全部楼层
goonce 发表于 2016-7-28 14:01
是不是高低电平切换太快了导致信号跳变,或者是示波器测试的问题?这几个图的时间刻度一样的吗?可以对gpio ...

这是两张时间刻度一样的结果,我的信号与三角波比较得到的高低电平gpio输出有尖刺,而与0比较是较好的方波。
与三角波比较之后的高低电平变化的速度一定是比与零比较的高低电平变化速度快的,然而最快也只是1/(1.2M),因为我的定时器设置是每过20个计数周期(外部晶振为24M)给一个中断,在中断函数里,对gpio输出寄存器进行置0或者1进行操作,我在想1.2M的变换速度能使信号达到这样的效果吗?
我之前曾怀疑过示波器采样率的问题,官方数据显示示波器采样率普遍在GSa/s,然而我对局部尖刺放大(图2)之后是这样的如图3,图4,从这l两幅图我看不出来采样率达到G(注意时间刻度),也没有看出来高电平持续1/(1.2M)s.请前辈教我,我是之后该加时延?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| zhengyu12 发表于 2016-7-29 08:50 | 显示全部楼层
大神们救救我吧
 楼主| zhengyu12 发表于 2016-7-29 09:17 | 显示全部楼层
GPIO高电平持续时间是多少啊?或者是你一直保持高电平,直到输出寄存器相应位置0才变为低电平
goonce 发表于 2016-7-29 16:17 | 显示全部楼层
zhengyu12 发表于 2016-7-28 15:19
这是两张时间刻度一样的结果,我的信号与三角波比较得到的高低电平gpio输出有尖刺,而与0比较是较好的方 ...

1.2M的信号显然可以达到这样的效果,你正常的信号频率才10KHz,那些尖刺差不多就是那个频率。你可以试一试直接拉一个1MHz的方波看一下波形是否正常,也可以看看芯片手册支持的gpio翻转的最大速率是多少
 楼主| zhengyu12 发表于 2016-7-29 17:28 | 显示全部楼层
goonce 发表于 2016-7-29 16:17
1.2M的信号显然可以达到这样的效果,你正常的信号频率才10KHz,那些尖刺差不多就是那个频率。你可以试一 ...

这个我试试,谢谢大神
 楼主| zhengyu12 发表于 2016-7-29 19:05 | 显示全部楼层
goonce 发表于 2016-7-29 16:17
1.2M的信号显然可以达到这样的效果,你正常的信号频率才10KHz,那些尖刺差不多就是那个频率。你可以试一 ...

这个是我产生一组随机数,随机的对gpio输出寄存器置0和1,输出转化速率为1.2M,当连续输出为101或者010就产生尖刺,我看图中,是不是跟上升沿和下降沿的过渡时间太长有关系?从示波器上看上升时间或下降时间就差不多有0.5us了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
云上华仙 发表于 2016-7-31 15:54 | 显示全部楼层

这是方波啊???
云上华仙 发表于 2016-7-31 15:55 | 显示全部楼层
zhengyu12 发表于 2016-7-28 10:49
理论上输出应该是这样的方波,这幅图与上幅图的区别是信号与零做比较,然后分别在gpio输出寄存器上置0和1 ...

理论输出是同一个GPIO出来的吗?
 楼主| zhengyu12 发表于 2016-8-1 09:40 | 显示全部楼层
云上华仙 发表于 2016-7-31 15:55
理论输出是同一个GPIO出来的吗?

是,从现在看我觉得应该是gpio输出上升沿和下降沿的过渡时间的问题
goonce 发表于 2016-8-1 18:50 | 显示全部楼层
zhengyu12 发表于 2016-7-29 19:05
这个是我产生一组随机数,随机的对gpio输出寄存器置0和1,输出转化速率为1.2M,当连续输出为101或者010就 ...

你这基本就是gpio翻转速度的问题,说明芯片不支持这么快的翻转速度,芯片型号是多少?看看手册啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

20

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部