Пытаюсь заставить корректно работать UART на меге для связи с компьютером, и вот что получается:
Исходные данные:
1. Схема по которой это все работает:

* Вот здесь брал описание: http://easyelectronics.ru/svyaz-mikroko ... rs232.html
2. Прошивка для мк:
* Она сгенерирована CodeWizard'ом в CVAVR на такие параметры:
Код: Выделить всё
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x98;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x19;
Код: Выделить всё
UDR = 'R';
Вот что получаю на самом деле в терминале:
Код: Выделить всё
%%%%%%%%%%%
Т.е. - как видно символ 'R' он таки передаёт, но помимо него шлется ещё куча всякого мусора. [u]Откуда он берется и как главное с ним бороться?[/u]
[b][color=darkblue]Что уже попробывал:[/color][/b]
1. Протестил саму прошивку в VMLAB - все четко, без ошибок, работает как часы.
2. Без контроллера, просто замкнул выводы TxD и RxD, и подал питание на схему - в терминале все тоже работает - переданные байты тутже возвращаются эхом назад.
3. Пробывал менять кварц 8мгц/4мгц, игрался с разными значениями бодрейта - не помогает.
Комбинация фьюзов что на меге сейчас (под кварцы 3-8мгц):
CKSEL0-3: 1111 SUT0-1: 11 CKOPT 1
(вообще, если это вдруг поможет - сейчас у меня все фьюзы выставлены в 1)
4. Монтаж проверял неоднократно - все в порядке
5. Пробывал также запускать UART использую бит паритета четный/нечетный - все равно мусор не уходит
Помогите пожалуйста побороть злостную помеху- Вложения
-
- uart.gif
- Схема UART
- (16.3 КБ) 668 скачиваний


