首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

请教飞思卡尔问题

请教飞思卡尔问题

aboluo 15小时前
不好意思,由于网速太慢,输不出验证码,只好出此下策,直接请教管理员了。。。   
       飞思卡尔8位机的LIN收发问题
近来特郁闷,首先是被迫选择了飞思卡尔的老8位机MC68HC908GZ32,其次就是调试LIN的时候出了bug,搞的焦头烂额.....具体描述如下,真诚希望大虾们指教。

     LIN收发器选择的是TJA1020,控制芯片当然就是那个冤家MC68HC908GZ32了。在作为LIN主机发送报文头的时候,我不想主机接收到自己发出的报文头,于是就做了设置: SCC2_RE  = 0;SCC2_TE  = 1;——只发不收,当brake场,同步场和ID发送完成后再重新设置SCC2_RE  = 1;SCC2_TE  = 0;——只收不发,然后等待从机的响应,串口中断接收数据场和校验。可是无论我如何改进程序,接收到的都是乱七八糟的数据!但是我并不死心,因为可能是从机响应的问题(从机是NI的一个LIN调试工具,也大胆怀疑下吧....)。于是找来示波器,结果让我彻底彻底郁闷——从示波器上将数据一位一位读出来,我发送的报文头和从机回应的数据场,校验场居然都是正确的!就是说我的接受数据在单片机出错了!后来用专用工具将LIN数据转换成232数据发到串口助手,也证明了这一点。到底是怎么回事呢?难道是收发之间的切换后的接收器还没有稳定就进入了接受状态?于是乎,我换了一种方法,就是允许接受自己发出的数据SCC2_RE  = 1;SCC2_TE  = 1;完成后再剔除自己发出的东西,结果竟然是完全正确的!彻底无语......飞思卡尔,告诉我到底是怎么了!
返回列表