GPIO信号完整性测试,电源完整性测试

GPIO信号完整性测试,电源完整性测试

发布商家
北京淼森波信息技术有限公司
联系人
邓经理(先生)
手机
18601085302

信号包括三个:使能CSn,时钟CLK,编码器数据DO。一个完整的输出数据DO包括前12位有效数据和后6位校验数据,共18位。如此以来便不难实现信号的读取,只需将三个GPIO口分别设置为使能端口、时钟端口和数据接收端口即可。

       步骤一:首先将PC7设置为复用功能PWM输出。查阅STM32F407ZGT6芯片手册(P57,stm32f4xx的芯片手册都差不多)可得PC7复用TIM3的第二个通道。相关代码见【3】pwm.c。输出的PWM作为时钟信号用,本实验设置的时钟频率(也即PWM频率)为2kHz。

图2. PC7复用功能


图3. PWM输出波形(用作时钟信号)

       步骤二:其次,将PC6用作使能端口,将其配置为TTL电平开关量输出。相关代码见【4】switch.c。需要注意的是,SSI协议规定,使能信号是下降沿触发,而且必须满足下降沿之前的高电平长度大于时钟周期的二分之一,如此才能实现传感器数据输出。

       解决方法为在PC7设置为PWM输出功能的同时,设定定时器内部中断,中断类型为TIM_IT_Update(即更新中断,计数器每溢出1次出发一下中断,也即每个时钟周期触发一次中断)。PWM每输出18个时钟周期,将CSn电平拉高2个时钟周期,再将CSn电平拉低,持续18个时钟周期再拉高,如此反复。CSnx信号波形如图4。每当CSn电平拉低时,DO口开始传输编码器数据。此时每个时钟周期会产生一位编码器数据信息,只需在中断程序中将其记录即可。也就是进入到步骤三。

图4. CSn波形图

       步骤三:将PE5设置为普通输入模式,相关代码见【5】read.c。当CSn下降沿触发使能后,通过中断程序采集19个数据,每个数据(0或者1)代表图中DO输出的一位信息。传感器每次输出的一个完整数据是18位,为什么要采集19个数据呢?这是因为每次的时钟信号上升沿到来后就触发了中断,编码器输出的新的一位数据有一定延时,此时PE5采集到的数据信息属于上升沿之前的一位数据,因此采集19个数据,然后把个数据抛弃。

       用剩下的18位数据的后六位检测前12位数据的有效性,即可得成功捕获SSI信号。数据在示波器中的波形图见图5(看波形也没啥意义)。

图5. DO输出数据波形

       在ARM调试软

D0BB1430-7FF6-49FA-B873-29F085FC493D.pngE047D8E8-197E-458A-92A4-D896607BE9F1.png微信图片_20191219135153.png

人气
26
发布时间
2023-12-17 10:40
所属行业
电子产品检测
编号
40814392
我公司的其他供应信息
相关测试电源产品
18601085302 请卖家联系我