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

最近有个项目是使用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软件进行测试,并换不同波特率测试,均可正常工作。

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

原文发布于微信公众号 - 嵌入式程序猿(InterruptISR)

原文发表时间:2018-04-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏分享达人秀

Android开发环境概述

工欲善其事,必先利其器。Android开发人员在自己的计算机上编写和测试应用程序,然后将其部署到实际的设备上,那首先必不可少的就是开发环境的搭建。 ...

3035
来自专栏CSDN技术头条

京东商品详情页应对“双11”大流量的技术实践

【编者按】此文是根据京东资深Java工程师张开涛11月21日在msup主办的 into100沙龙第14期《京东商品详情页应对大流量的一些实践》演讲中的分享内容整...

30910
来自专栏顾宇的研习笔记

用操作系统课的知识解决自助餐排队问题背景 总结——如何对系统进行优化

这是在北京刚刚结束的2016年的第11届ThoughtWorks China AwayDay上发生的一件事:

872
来自专栏携程技术中心

干货 | 携程图片服务架构

2306
来自专栏企鹅号快讯

Go 语言如何去解决 Web 开发人员面临的众多问题?

坦白的说,我的团队非常厌恶我对 Go 语言传道的方式,每当我们团队的代码库出现问题时,他们希望我用一种更委婉的方式提出。 我学会的第一门编程语言是 PHP,这是...

32910
来自专栏云计算D1net

如何在云中处理特权用户管理问题

对于在云中进行操作的企业来说,特权用户管理是非常重要的。专家Dave Shackleford在本文中介绍了一些最佳做法以帮助确保云访问控制的安全性。 很多企业正...

2858
来自专栏Java架构师学习

数据库高可用实战案例:架构优化背景前期调研详细调研测试过程实施过程细节问题处理

2446
来自专栏杨建荣的学习笔记

SQL审核的整体设计和落地

SQL审核目前已做差不多了,整个过程其实看起来,要远比我们想的c/s服务调用要复杂的多。

2172
来自专栏沃趣科技

Gitlab删库事件回顾,备份手段还停留在“原始社会”?

作者简介:孙朝阳 沃趣科技高级产品经理。 Gitlab简介 Gitlab是大家很熟悉的开源Git代码托管工具,国内公司大多使用社区版自行搭建私有化的内部代码托...

3666
来自专栏微信公众号:Java团长

剖析公司技术栈

来源:www.cnblogs.com/wangsen/p/9329735.html

1254

扫码关注云+社区

领取腾讯云代金券