不废话,进入正题。楼主之前发过文章关于905的。但是使用的430做的。IO以及引脚兼容3.3V。所以没太大的问题。后来因为有项目需求需用到freescale充当ECU来实现通信系统的数据传输。主要有2中用处。
一:用来接受数据实时监控车载系统的状况然后在传给上位机,
二:是上位机通过此系统给车载系统发送指令进行相应的操作。
这里遇到了问题。首先是引脚的问题。freescale是5V的。而905是3.3的不兼容。当时想的是通过电平转换芯片来弥补此过世。很多人说没什么必要。IO只看电流的。还是担心可能会烧了IO。所以串了一个1K的电阻。没有上拉。
说说905.调试成功的关键并不是参考了代码。而是用示波器看波形对不对。以及相关的寄存器有没有设置好。有一个很好的办法就是写进去的数据能不能读出来。如过能。那恭喜你。已经成功了一半。然后就是看相关的寄存器设置好了在看能不能喝另外一个通信成功。至于905的相关的寄存器。估计有太多。写不完。
另外为了显示数据。这一版算是前期测试用的12864显示。
为了给上位机通信引入了串口芯片。
另外给了DA输出。TLV5638。这是个好的DA,
12位DA16位的寄存器。双路输出
输出电压时输入数据所占比例乘上REF的2倍。这里特别注意。因为很多DA都是一倍的关系。这里比较特殊。这一类的芯片都是比较特殊的就是输出是2倍。类似的芯片还有TLV5616之类的。5616以前就是这个没注意感觉好奇怪。当时对英文文档不在行。试了好多然后又看资料才看到了这个。
另外数据更新有好几种模式。设置相应的位数就行了。
他的REF是可以通过程序改变的。设置REF1 REF0二位就可以改变参考电压。如下图。也可以用外部参考就你自己加一个REF就行。
另外设置输出以及更新数据要仔细看看如下寄存器操作,小小的细节。大大的道理你懂得。至于时序。SPI这里不截图了。你懂得。通信系统的时序主要有2个大问题。一是看时序对不对。而是延时的问题。如果延时不够是会出现问题的。这里估计很多人遇到通信不成功的问题就是因为这个吧。f
另外freescale自身也有参考。用做AD的数据转换。这里采用TI的ref5040.因为常用。所以选他了。操作很简单。另外这里测量时候一定要接负载测量才能看到输出。有一回用的参考没有接负载。不管是容性负载还是阻性负载都行。不接测量就有时不准了。
总体如下,后来还接了二路放大器输入
这纹波忘了是哪个纹波了。应该不是输出电压的纹波或者档位搞错了。不至于这么大。
这里楼主下载了好多3D 库。所以在封装里面全部加载进去了。所以生成的图带有模型。这个纯粹为了好看。如果想要仿真的功能的话简单的可以用其他的软件区实现。至于这种带高性能的MCU还是做实物靠谱。