реклама на сайте
подробности

 
 
> Как заставить работатьUSART на Tiny2313?, искажает принимаемые и передаваемые данные
amdei
сообщение Sep 20 2009, 00:37
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 16-05-05
Пользователь №: 5 083



Tiny2313 на 12 МГц.
Пытаюсь заставить принимать данные от внешнего устройства.

Принимает она совсем не то что передается. sad.gif
Инициализация и прочие параметры - как во множестве примеров в интернете.
BAUD расчитан по формуле на 118 странице мануала - 77.
Делитель частоты на 8 убран.
В Протеусе всё работает как часы.

Шью в железку - принимает и передает мусор (повторяющийся).

Tiny менял на другой такой-же экземпляр. Кварц менял. С фьюзами игрался. Даташит читал. BAUD менял туда-сюда. Не работает.

Написал прграммулину, что записывает принимаемые данные в EEPROM - мусор.
Написал прграммулину, выдающую фиксированную строку на терминал - мусор!
В Протеусе всё работает как часы.

Скажите, в каком месте мне стоит руки поправить?
Какая информация поможет локализовать проблему?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
amdei
сообщение Sep 21 2009, 01:23
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 16-05-05
Пользователь №: 5 083



ООО!!! Свершилось!

2@Ark: спасибо за отсылку к схеме!
2vvs157: Ну да... "Сами мы не местные...", осцилографов у нас не водиться...

Вобшем дело было в тупняке: MAX232 таки нужна.
Возникает вопрос: неужто я настолько туп что этого не знал? К сожалению это не так.
Сбило меня с понталыку то, что устройство (LV-MaxSonar-EZ1), будучи подключенное к COM-порту напрямую прекрасно работет. Без сбоев. Несмотря на то что на выходе там TTL-уровни в чистом виде.
А если его эхом подключить через Tiny, то первую полусотню символов на выход выдаются правильно, а потом - мусор.
Поэтому я полез в программу и кристалы, а не в конверсию TTL в RS232....

Вот жеж блин!
Go to the top of the page
 
+Quote Post
amdei
сообщение Sep 21 2009, 02:24
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 16-05-05
Пользователь №: 5 083



Цитата(amdei @ Sep 21 2009, 05:23) *
Вот жеж блин!


Черт!
Вот везде написано, что мол не получиться у вас втыкать USART в COM-порт напрямую, так чтобы всё работало без преобразователя уровней.
Но вот почему- или мелким шривтом на полях, либо вообще никак.

А дело-то все в том, что логический ноль в RS-232 - это ПОЛОЖИТЕЛЬНОЕ напряжение. 1111493779.gif
А в TTL - ноль это ноль.
Соответственно, даже если COM-порт на компьютере воспринимает не +/- 12V, а 0/+5 - ему все равно инвертор нужен.
Отсюда вывод: если на устройстве написано, что оно выдает данные в формате RS-232, но напряжение TTL-ное (как на моем сонаре) - это значит что напрямую воткнуть его в Tiny не выйдет....
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 04:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.01382 секунд с 7
ELECTRONIX ©2004-2016