曼彻斯特解码器问题

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
japa_4759791
Level 1
Level 1
First question asked First reply posted

最近开始了一个新工程 用的是PSOC4 KIT 这块开发板 ,工程的主要功能是匹配数据帧头然后给从机下发片选信号CS和数据MOSI ,原理图和波形如下 为什么PWM输出的波形会 有问题造成解码错误 还有这个PWM 的原理是什么 为什么能产生3/4周期脉冲呢。

Snipaste_2020-08-22_16-24-00.png

Snipaste_2020-08-22_16-25-58.png

0 点赞
1 解答
Vison_Zhang
Moderator
Moderator
Moderator
First comment on KBA 750 replies posted 250 sign-ins

NCO PWM 的比较值不是随便设置的,是需要计算得到的,这个比较值决定了 3/4周期位置采样点的发生时间。举例说明:

例1:Manchester 数据流为 1K 波特率,NCO PWM 的主时钟时 100KHz, 那么此时NCO PWM compare 的值 Compare Value =  (100K/1K) * 0.75 = 75.

例2:Manchester 数据流为 4M 波特率,NCO PWM 的主时钟是48MHz, 那么此时NCO PWM compare 的值 Compare Value =  (48M/4M) * 0.75 = 9。 但是整个数字系统的内部信号传输有一定的延时,所以综合测试之后发现 compare value = 4~8均可以得到正确的解析,最终选择中间值 6 作为 compare value.

请你按照上面的方法调整 compare value

在原帖中查看解决方案

0 点赞
9 回复数
LinglingG_46
Moderator
Moderator
Moderator
500 solutions authored 1000 replies posted 10 questions asked

1: 拖一个pin脚,接到PWM的line。测这个line有没有问题。

2:你这个PWM的period 配的是65535,compare是3,请确认这个地方有没有问题?

3:你这个Decode_PWM_LINE_N 信号,是怎么测的?测试的你原理图上面哪一个点?

0 点赞

Decode_PWM_LINE_N 对应 PWM上的LINE_N  这个3/4的原理是什么呢 没有用到campare来比较调制脉宽的方式 这个compare 调多少都不影响3/4周期的输出的

0 点赞
Vison_Zhang
Moderator
Moderator
Moderator
First comment on KBA 750 replies posted 250 sign-ins

请问你要解析的 manchester 数据流的精确数据速率是多少?

0 点赞
Vison_Zhang
Moderator
Moderator
Moderator
First comment on KBA 750 replies posted 250 sign-ins

NCO PWM 的比较值不是随便设置的,是需要计算得到的,这个比较值决定了 3/4周期位置采样点的发生时间。举例说明:

例1:Manchester 数据流为 1K 波特率,NCO PWM 的主时钟时 100KHz, 那么此时NCO PWM compare 的值 Compare Value =  (100K/1K) * 0.75 = 75.

例2:Manchester 数据流为 4M 波特率,NCO PWM 的主时钟是48MHz, 那么此时NCO PWM compare 的值 Compare Value =  (48M/4M) * 0.75 = 9。 但是整个数字系统的内部信号传输有一定的延时,所以综合测试之后发现 compare value = 4~8均可以得到正确的解析,最终选择中间值 6 作为 compare value.

请你按照上面的方法调整 compare value

0 点赞

你好 我要解析的数据是 5M的 那我这个PWM该怎么设置呢

0 点赞

我的compare值 怎么调整都对 PWM_LINE_N 出3/4周期不影响啊 ,这是我很奇怪的 一点 。我修改了以后就用逻辑分析仪去 抓波形 ,不管调成多少 对 解码时产生的 PWM_LINE_N 3/4周期 都不会影响的,所以我很好奇这个 PWM出 3/4周期的原理

0 点赞
Vison_Zhang
Moderator
Moderator
Moderator
First comment on KBA 750 replies posted 250 sign-ins

不清楚这个架构能不能做到那么快的解码,建议你把NCO_CLK 改为 48MHz, 然后根据计算比较值应该设成 7左右,我估计实际设置成 3或者4应该比较好,具体看实测。

修改比较值对你的测试结果没影响的话,建议你查看一下 skip code generation 是不是设置成 TURE了

0 点赞

skip code generation 是在哪里

0 点赞
Roy_Liu
Moderator
Moderator
Moderator
5 comments on KBA First comment on KBA 10 questions asked

“skip code generation” 在 Project > Build Settings... > Code Generation里:

pastedImage_0.png

Roy Liu
0 点赞