前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我怼了硬件工程师,让你不按datasheet设计

我怼了硬件工程师,让你不按datasheet设计

作者头像
用户1605515
发布2018-04-17 14:36:24
1.2K0
发布2018-04-17 14:36:24
举报
文章被收录于专栏:嵌入式程序猿嵌入式程序猿

最近有个项目是使用NXP的KEAZ64芯片,基于cortex M0+内核。带有mscan模块,mscan是NXP的8位机和低端32位上用的CAN模块外设,和我们之前使用并介绍过的flexcan模块在寄存器级别有很大区别,寄存器和消息缓存都不一样,需要仔细看数据手册,之前先在开发板上使用例程跑过回环测试是可以的,随后就禁掉回环,配置为正常模式,移植到我们的板子上,从硬件工程师那拿到板子后,由于时间紧,硬件工程师没有做大量的测试,修改完程序后在板子上跑了下,上位机收不到数据,随开始调试。

分析了mscan的驱动层所有代码,没有找见问题,重新分析计算波特率也没有问题,因硬件功能工程师设计的板子没有外部晶振,首先把时钟改为内部时钟,重新配置在测试,仍旧接收不到数据,前前后后又把代码分析了一遍,在官网重新找了个驱动修改后测试还是不通,折腾了一天没有找见问题。实在找不见问题,随仔细看了下原理图,初看好像没什么问题,因为之前项目上也用过can,硬件电路上应该不会有问题,用示波器测了下MCU端发送端有信号。仔细看了下收发器部分的电路,在看了看收发器的数据手册,发现有一个管脚接的不对,S管脚。

看了下收发器sn65hvd1050的数据手册,在手册第三页里面写到:

也就是说在正常通信模式下,S脚也就是芯片的8脚需要接地,但原理图上被接到了5V高电平,所以导致CAN收发器工作在监听模式,所有上位机收不到mscan发送的数据。找到原因后,迅速动手拆掉R16和C21,并将S脚接地,在上电运行刚才的软件,一切ok,通讯可以正常收发,测试软件是将收到的上位机数据在从下位机发送回上位机,使用CANTest软件进行测试,并换不同波特率测试,均可正常工作。

总结这次的调试经验,硬件工程师在硬件设计时候,一定要严格按照数据手册的要求进行电路设计,软件工程师软件调试时候,要快速定位问题,解决问题,嵌入式工程师一定要软件和硬件都要懂才能快速找到问题。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嵌入式程序猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云代码分析
腾讯云代码分析(内部代号CodeDog)是集众多代码分析工具的云原生、分布式、高性能的代码综合分析跟踪管理平台,其主要功能是持续跟踪分析代码,观测项目代码质量,支撑团队传承代码文化。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档