[atmega UART] Помеха при работе

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Ср апр 16, 2008 21:13:04

Сообщение zi4rox »

Всем добрый день,

Пытаюсь заставить корректно работать 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

Вот что получаю на самом деле в терминале:

Код: Выделить всё

%%%%%%%%%%%

Т.е. - как видно символ '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 скачиваний
Контактная информация:
Реклама
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Сообщение uk8amk »

max232 имеет различные буквы в своем названии. Есть экземпляры которые работают с кондерами 1мкф, есть те что с 0.1мкф. Посмотрите в ДШ на какие кондеры рассчитана ваша ИМС. Хотя у меня работала и с 0.1мкф, но вдруг поможет.
Еше вопрос каким терминалом пользуетесь и смотрели ли настройки порта в нем?
Реклама
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Ср апр 16, 2008 21:13:04

Сообщение zi4rox »

max232 ACSE

В ДШ - указано и 1мкф и 0,1 мкф (я думаю если бы 0,1 не подошли то проверку что номер 2 не прошла бы)

Терминалом пользуюсь:
1. Terminal v1.9b
2. COM Port Toolkit 3.9

Значения порта конечно же смотрел, выставлял в соответствие с тем что на мк идет. А также перебором игрался с параметрами - но все равно лишний шум не уходит =(
Контактная информация:
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Ср апр 16, 2008 21:13:04

Сообщение zi4rox »

Я не знаю как это получилось, но решил руководствуясь замечанием поменять местами RxD TxD (от max232 до меги) - и что самое интересное оно заработало! (Хотя я был уверен что при неправильном подключении просто ничего не будет происходить)

Как всегда - все оказалось банально до немогу. Постейшая невнимательность. Всем ОГРОМНОЕ спасибо.
Буду разбираться ещё немного и писать код под свою задачу - если что обязательно спрошу. Ещё раз всем спасибо
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Ср апр 16, 2008 21:13:04

Сообщение zi4rox »

Обнаружилась следующая нехорошая вещь:

При таком соединении:
T2IN - TxD
R2OUT - RxD


UART работает как надо и нареканий нет, вот только на блоке питания спустя 1-2 минуты начинают жутко греться стабилизаторы (кренки)
Навряд ли там уарт такой большой ток кушает, начал искать кз. Схемы проверил, всё прозвонил - нигде нет.

Удалось установить, что:
Если я поменяю местами
T2IN - RxD
R2OUT - TxD


то перестает греться, но и уарт не работает как надо (куча мусора лезет - то что в начале было)

В каком направлении искать сие загадочную пакость?
Контактная информация:
Реклама
Модератор
Аватара пользователя
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург

Сообщение Aheir »

И больше ничего не греется, кроме КРЕНок? Возможно внутреннее замыкание в MAXe из-за Ваших экспериментов.
Оптимизм х (Опыт + Знания) = const
Контактная информация:
Реклама
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Ср апр 16, 2008 21:13:04

Сообщение zi4rox »

Да, греются только кренки и больше ничего. Попробую достать новый макс
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 703
Зарегистрирован: Вс янв 18, 2009 21:12:49

Сообщение asteroid7 »

zi4rox писал(а):...
Удалось установить, что:
Если я поменяю местами
T2IN - RxD
R2OUT - TxD
...
Так как у вас сейчас соединено? На схеме первого поста - неправильно.
Свободные входы MAX подтяните к общему.
Не фиг использовать не UART-овский кварц. На приведённом вами ответе "в терминале" без программ видно, что не ловится стартовый бит.
После каждого отправленного байта поставьте задержку в 2 бита. Если не поможет - меняйте кварц.
Собутыльник Кота
Аватара пользователя
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев

Сообщение BCluster »

бодрейт с 8Мгц кварцем без error rate 600 бод...
9600 - там эррор рэйт какой у вас?
Контактная информация:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»