微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > AVR单片机串口通信问题请教!

AVR单片机串口通信问题请教!

时间:10-02 整理:3721RD 点击:
问题描述:Atmega64作为主机----使用片内8M时钟
Atmega16作为从机----使用片外8M晶振

从主机向从机发送指令(5字节16进制),采用500K速率。发现:数据接收时对时错,用示波器抓波形,发现两种情况下主机发送给从机的波形是完全一致的。

分析是由于时钟同步造成的,但是单片机串口采用的是异步通信方式,哪位大神能帮忙分析下?PS:由于硬件限制,主机端不好加片外的时钟。而且个人理解,即使加了也需要考虑时钟同源的影响吧。

片内时钟还真没用过,片外的应该没这种问题

这是最初设计的缺陷,一般而言500K速率对于单片机而言,采用片内时钟是很不可靠的。
就是不能理解,为什么对于相同的波形,接收端有时能正确接收,有时又是错的?
原先在一个手册上看到USART的接收是通过采样判决来实现的,从这一方面考虑,那就是接收端应该还存在与发送端的一个同步问题?

波特率弄低点儿试过没

从主机发回上位机采用的是115200速率,都能正确接收。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top