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

 
 
> Проблема с USART на ATmega8
coolibin
сообщение May 24 2008, 15:22
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 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.


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
MrYuran
сообщение May 24 2008, 15:47
Сообщение #2


Беспросветный оптимист
******

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



как вариант -сопля между ногами.
Цитата
Я делал задержку между вызовами этих функций, ничего это не дало

а какой эффект ожидался?
если байт пришёл в УАРТ, то он там будет, независимо от того, считаете вы его сразу или после паузы


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
coolibin
сообщение May 24 2008, 16:46
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



Цитата
как вариант -сопля между ногами.

Я пробывал выключать приём при передачи и наоборот, ничего не поменялось.

Цитата
а какой эффект ожидался?
если байт пришёл в УАРТ, то он там будет, независимо от того, считаете вы его сразу или после паузы

Да просто так, может повезётsmile.gif


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение May 24 2008, 18:48
Сообщение #4





Guests






Цитата(coolibin @ May 24 2008, 20:46) *
Я пробывал выключать приём при передачи и наоборот, ничего не поменялось.
Да просто так, может повезётsmile.gif

Не исключены "наводки"... (схемку бы глянуть?).
Для начала попробуйте "подтянуть" вход и выход USARTа к питанию (5В) резисторами 5-10К.
...
Go to the top of the page
 
+Quote Post
radiohobbyt
сообщение May 24 2008, 19:44
Сообщение #5


Участник
*

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



Цитата(coolibin @ May 24 2008, 19:22) *
У меня возникла проблема с USART'ом на моей ATmega8. К процессору подключена микросхема преобразования уровней(MAX232), к ней со стороны RS232 не подключено ничего. Когда я просто пытаюсь принять байт, всё работает нормально, байт не принемается, а вот когда я перед принятием байта посылаю байт через USART, то принимается какой то байт, чего быть не должно.

Не тем ты занимаешься))) Даже думать ничего не надо- откуда все это узнать можно, но только силы зря потратишь. Лучше подключайся к СОМ порту и пробуй снова. +МАХ232 (схемы нет, могу только предположить) у тебя без питания скорее всего. А что тут произойдет- я не знаю. А подтягивать надо его входы, но только если у него есть питание)))
Go to the top of the page
 
+Quote Post
coolibin
сообщение May 26 2008, 07:12
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



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


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 26 2008, 07:23
Сообщение #7


Беспросветный оптимист
******

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



Цитата(coolibin @ May 26 2008, 10:12) *
Первый, выключил USART, отправил байт, включил USART, принимаю байт, байт пришел! Почему так происходит

байт не "отправился", а попал в буфер передатчика
после включения передатчика он отправился уже натурально и попал в приёмник таким же путём, как и раньше
Цитата
Второй, отключил выводы TxD, RxD от схемы(просто подогнул ножки). Всё нормально! никакого "левого" байта не пришло!

100% - сопля или наводка!
чудес не бывает (имхо)


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
coolibin
сообщение May 26 2008, 08:43
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



Цитата(MrYuran @ May 26 2008, 10:23) *
байт не "отправился", а попал в буфер передатчика
после включения передатчика он отправился уже натурально и попал в приёмник таким же путём, как и раньше
...

А буфер большой? потому что я отправляю 3 байта и принимаю 3 байта.


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение May 27 2008, 17:35
Сообщение #9





Guests






Цитата(coolibin @ May 26 2008, 12:43) *
А буфер большой? потому что я отправляю 3 байта и принимаю 3 байта.

Ув., coolibin! Представьте, наконец, схемку того, что Вы там напаяли! smile.gif Тогда, может быть, последуют конструктивные советы.
Go to the top of the page
 
+Quote Post
coolibin
сообщение May 28 2008, 09:48
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



Цитата(@Ark @ May 27 2008, 20:35) *
Ув., coolibin! Представьте, наконец, схемку того, что Вы там напаяли! smile.gif Тогда, может быть, последуют конструктивные советы.

Только сейчас нашел всю необходимую информацию и да, кстати, забыл сказать, я не занимался разработкой данного девайса и электронщик с меня никакой так что не бейте сильно, если ляпну что не так. Схема в прикреплённых файлах, а ДШ здесь. Сопротивление между ножками RxD, TxD около 30К. Проверил осциллографом сигнал на обеих ножках и оказалось, что на ножке RxD почти то же самое что и на ножке TxD, т. е. те же 3 байта. Откуда они берутся?(((
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 28 2008, 09:56
Сообщение #11


Беспросветный оптимист
******

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



Да.. Самого интересного как раз и нет...


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
coolibin
сообщение May 28 2008, 11:22
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



Цитата(MrYuran @ May 28 2008, 12:56) *
Да.. Самого интересного как раз и нет...

Чего же, если не секрет?


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 28 2008, 11:43
Сообщение #13


Беспросветный оптимист
******

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



Куда же, собственно, уходят линии от ног RxD и TxD...
И где они коротятся


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
coolibin
сообщение May 28 2008, 11:56
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



Цитата(MrYuran @ May 28 2008, 14:43) *
Куда же, собственно, уходят линии от ног RxD и TxD...
И где они коротятся

Ну, как раз это на схеме есть. RxD идёт на RX(ножка 1 микросхемы), TxD идёт на TX(ножка 4 микросхемы). Микросхема L9637D, ДШ я указал.


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 28 2008, 12:09
Сообщение #15


Беспросветный оптимист
******

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



А, так это K-Line чтоли...
А вы сами то ДШ смотрели?
вот этот кусок...
Прикрепленное изображение

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

Вот, раскрасил...
Прикрепленное изображение

Похоже, придётся смириться, либо запрещать приём на время передачи


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post

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

 


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


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