|
Проблема с USART на ATmega8 |
|
|
|
May 24 2008, 15:22
|
Местный
  
Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228

|
У меня возникла проблема с USART'ом на моей ATmega8. К процессору подключена микросхема преобразования уровней(MAX232), к ней со стороны RS232 не подключено ничего. Когда я просто пытаюсь принять байт, всё работает нормально, байт не принемается, а вот когда я перед принятием байта посылаю байт через USART, то принимается какой то байт, чего быть не должно. Собственно, сам код: Код USART_Transmit: sbis UCSRA, UDRE rjmp USART_Transmit out UDR, r16 ret
USART_Receive: sbis UCSRA, RXC rjmp USART_Receive in r16, UDR ret ... rcall USART_Transmit rcall USART_Receive rcall TextOut ... А если закоментить строку: Код .. ;rcall USART_Transmit ... то всё работает правильно, текст не выводится. Я делал задержку между вызовами этих функций, ничего это не дало. Функции USART_Transmit/USART_Receive взяты из ДШ ATmega8.
--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 14)
|
May 24 2008, 15:47
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
как вариант -сопля между ногами. Цитата Я делал задержку между вызовами этих функций, ничего это не дало а какой эффект ожидался? если байт пришёл в УАРТ, то он там будет, независимо от того, считаете вы его сразу или после паузы
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 24 2008, 16:46
|
Местный
  
Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228

|
Цитата как вариант -сопля между ногами. Я пробывал выключать приём при передачи и наоборот, ничего не поменялось. Цитата а какой эффект ожидался? если байт пришёл в УАРТ, то он там будет, независимо от того, считаете вы его сразу или после паузы Да просто так, может повезёт
--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
|
|
|
|
Guest_@Ark_*
|
May 24 2008, 18:48
|
Guests

|
Цитата(coolibin @ May 24 2008, 20:46)  Я пробывал выключать приём при передачи и наоборот, ничего не поменялось. Да просто так, может повезёт  Не исключены "наводки"... (схемку бы глянуть?). Для начала попробуйте "подтянуть" вход и выход USARTа к питанию (5В) резисторами 5-10К. ...
|
|
|
|
|
May 24 2008, 19:44
|
Участник

Группа: Участник
Сообщений: 55
Регистрация: 20-02-08
Пользователь №: 35 217

|
Цитата(coolibin @ May 24 2008, 19:22)  У меня возникла проблема с USART'ом на моей ATmega8. К процессору подключена микросхема преобразования уровней(MAX232), к ней со стороны RS232 не подключено ничего. Когда я просто пытаюсь принять байт, всё работает нормально, байт не принемается, а вот когда я перед принятием байта посылаю байт через USART, то принимается какой то байт, чего быть не должно. Не тем ты занимаешься))) Даже думать ничего не надо- откуда все это узнать можно, но только силы зря потратишь. Лучше подключайся к СОМ порту и пробуй снова. +МАХ232 (схемы нет, могу только предположить) у тебя без питания скорее всего. А что тут произойдет- я не знаю. А подтягивать надо его входы, но только если у него есть питание)))
|
|
|
|
|
May 26 2008, 07:12
|
Местный
  
Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228

|
Может что то Вам подскажет следующая информация. Провёл два эксперимента. Первый, выключил USART, отправил байт, включил USART, принимаю байт, байт пришел! Почему так происходит, если по ходу при выключенном USART'е на ножке TxD ничего не генерируется? или я что то не так понял? это я всё по поводу наводок. Второй, отключил выводы TxD, RxD от схемы(просто подогнул ножки). Всё нормально! никакого "левого" байта не пришло!
--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
|
|
|
|
|
May 26 2008, 07:23
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(coolibin @ May 26 2008, 10:12)  Первый, выключил USART, отправил байт, включил USART, принимаю байт, байт пришел! Почему так происходит байт не "отправился", а попал в буфер передатчика после включения передатчика он отправился уже натурально и попал в приёмник таким же путём, как и раньше Цитата Второй, отключил выводы TxD, RxD от схемы(просто подогнул ножки). Всё нормально! никакого "левого" байта не пришло! 100% - сопля или наводка! чудес не бывает (имхо)
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 26 2008, 08:43
|
Местный
  
Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228

|
Цитата(MrYuran @ May 26 2008, 10:23)  байт не "отправился", а попал в буфер передатчика после включения передатчика он отправился уже натурально и попал в приёмник таким же путём, как и раньше ... А буфер большой? потому что я отправляю 3 байта и принимаю 3 байта.
--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
|
|
|
|
Guest_@Ark_*
|
May 27 2008, 17:35
|
Guests

|
Цитата(coolibin @ May 26 2008, 12:43)  А буфер большой? потому что я отправляю 3 байта и принимаю 3 байта. Ув., coolibin! Представьте, наконец, схемку того, что Вы там напаяли!  Тогда, может быть, последуют конструктивные советы.
|
|
|
|
|
May 28 2008, 09:48
|
Местный
  
Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228

|
Цитата(@Ark @ May 27 2008, 20:35)  Ув., coolibin! Представьте, наконец, схемку того, что Вы там напаяли!  Тогда, может быть, последуют конструктивные советы. Только сейчас нашел всю необходимую информацию и да, кстати, забыл сказать, я не занимался разработкой данного девайса и электронщик с меня никакой так что не бейте сильно, если ляпну что не так. Схема в прикреплённых файлах, а ДШ здесь. Сопротивление между ножками RxD, TxD около 30К. Проверил осциллографом сигнал на обеих ножках и оказалось, что на ножке RxD почти то же самое что и на ножке TxD, т. е. те же 3 байта. Откуда они берутся?(((
Эскизы прикрепленных изображений
--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
|
|
|
|
|
May 28 2008, 11:22
|
Местный
  
Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228

|
Цитата(MrYuran @ May 28 2008, 12:56)  Да.. Самого интересного как раз и нет... Чего же, если не секрет?
--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
|
|
|
|
|
May 28 2008, 11:56
|
Местный
  
Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228

|
Цитата(MrYuran @ May 28 2008, 14:43)  Куда же, собственно, уходят линии от ног RxD и TxD... И где они коротятся Ну, как раз это на схеме есть. RxD идёт на RX(ножка 1 микросхемы), TxD идёт на TX(ножка 4 микросхемы). Микросхема L9637D, ДШ я указал.
--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
|
|
|
|
|
May 28 2008, 12:09
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
А, так это K-Line чтоли... А вы сами то ДШ смотрели? вот этот кусок...
Если я правильно понимаю, данные с выхода автоматически попадают на вход (забыл раскрасить) Если не прав, извиняйте, башка чё-то гудит... Вот, раскрасил...
Похоже, придётся смириться, либо запрещать приём на время передачи
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|