AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
17.01.2014, 04:10
|
#1
|
Прописка
Регистрация: 25.10.2012
Сообщений: 112
Сказал спасибо: 50
Сказали Спасибо 1 раз в 1 сообщении
|
ATmega32 UART, приём байтов не работает....
Привет всем.
Разбираюсь с UART'ом на ATmega32.
Отправка байтов с компа не идет ни в какую (хотя в Proteus'e работает на ура). Использую Terminal 1.9b. Вместо того, чтобы ждать, пока юзер введет символ, в терминале "ловятся" левые кракозябры....
Функция обычная, как в даташите....
Код:
|
unsigned char USART_Receive( void )
{
unsigned char data, status;
/* Wait for data to be received */
while(!(UCSRA & (1‹‹RXC))); // Wait for incomming data
/* Get and return received data from buffer */
status = UCSRA;
data = UDR;
return(data);
} |
Из железа - обычная МАХ232ACPE с четырьмя электролитами.
Может кто сталкивался? Проект в AVRStudio 5 и Proteus 7.10 прилагается.....
|
|
|
|
17.01.2014, 07:56
|
#2
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: ATmega32 UART, приём байтов не работает....
Втыкается в железный СОМ-порт, или в переходник ЮСБ-СОМ?
Переходнику инверсия МАХа не нужна, контроллеру тоже
Лог приема приложи, только не в архиве
|
|
|
|
17.01.2014, 08:18
|
#3
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,044
Сказал спасибо: 2,559
Сказали Спасибо 11,882 раз(а) в 5,959 сообщении(ях)
|
Re: ATmega32 UART, приём байтов не работает....
Первое при разборках в непонятках - перемычка Rx-Tx по высоковольтной и низковольтной стороне. Обычно, на этом этапе что-то отлавливается.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
17.01.2014, 08:43
|
#4
|
Почётный гражданин KAZUS.RU
Регистрация: 29.12.2012
Адрес: Питер
Сообщений: 982
Сказал спасибо: 131
Сказали Спасибо 230 раз(а) в 157 сообщении(ях)
|
Re: ATmega32 UART, приём байтов не работает....
Сообщение от pavned
|
МАХ232ACPE с четырьмя электролитами
|
К MAX232A рекомендовано вешать конденсаторы по 0.1 uF.
Проверьте напряжение на 2 и 6 выводах МАХа(относительно массы). Должно быть + и - удвоенное напряжение питания. Если этого нет - то:
1. Либо неправильно выбраны конденсаторы
2. Либо нерабочий макс
3. Проблема с общим питанием.
Сообщение от niXto
|
Переходнику инверсия МАХа не нужна
|
Смотря какому. Если USB‹-›COM - нужна, USB‹-›UART - нет.
|
|
|
|
17.01.2014, 10:31
|
#5
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,999
Сказал спасибо: 3,017
Сказали Спасибо 3,191 раз(а) в 2,164 сообщении(ях)
|
Re: ATmega32 UART, приём байтов не работает....
Сообщение от pavned
|
в терминале "ловятся" левые кракозябры....
|
Что-то с общим проводом? Что-то с фузами CKSEL?
Сообщение от akegor
|
перемычка Rx-Tx по высоковольтной и низковольтной стороне.
|
Плюсую.
Сообщение от Wiza_
|
К MAX232A рекомендовано вешать конденсаторы по 0.1 uF.
...
Смотря какому. Если USB‹-›COM - нужна, USB‹-›UART - нет.
|
Первое: в данном случае, больше - не хуже (если, конечно, без фанатизма).
Второе: Плюсую.
|
|
|
|
17.01.2014, 12:41
|
#6
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,044
Сказал спасибо: 2,559
Сказали Спасибо 11,882 раз(а) в 5,959 сообщении(ях)
|
Re: ATmega32 UART, приём байтов не работает....
Сообщение от ForcePoint
|
Первое: в данном случае, больше - не хуже
|
Накалывался на этом. Тоже так подумал и впер керамику по 1 мкФ, "чтоб под любого". Пришлось, блин, менять на 0.1
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
17.01.2014, 12:57
|
#7
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,999
Сказал спасибо: 3,017
Сказали Спасибо 3,191 раз(а) в 2,164 сообщении(ях)
|
Re: ATmega32 UART, приём байтов не работает....
Сообщение от akegor
|
Накалывался на этом. Тоже так подумал и впер керамику по 1 мкФ, "чтоб под любого". Пришлось, блин, менять на 0.1
|
Ну не знаю, а что за "тушка" была?
Вот, на вскидку:
HIN232A Intersil " Increasing the values of C1 and C2 will lower the output impedance of the voltage doubler and inverter, increasing the values of the reservoir capacitors, C3 and C4, lowers the ripple on the V+ and V- supplies."
SP232A Sipex " ... will operate in their sockets with capacitors ranging from 0.1 to 100uF, either polarized or non–polarized ..."
ST232A STmicro. " C1-4 capacitors can even be 1uF ones"
|
|
|
|
17.01.2014, 13:10
|
#8
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,044
Сказал спасибо: 2,559
Сказали Спасибо 11,882 раз(а) в 5,959 сообщении(ях)
|
Re: ATmega32 UART, приём байтов не работает....
Сообщение от ForcePoint
|
а что за "тушка" была?
|
Не скажу. В ходу были максы 232 и адмы 202 и 232, кто-то из них.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
17.01.2014, 13:16
|
#9
|
Вид на жительство
Регистрация: 09.01.2011
Сообщений: 364
Сказал спасибо: 31
Сказали Спасибо 86 раз(а) в 59 сообщении(ях)
|
Re: ATmega32 UART, приём байтов не работает....
Сообщение от pavned
|
Вместо того, чтобы ждать, пока юзер введет символ, в терминале "ловятся" левые кракозябры....
|
А когда юзер все-таки удосужится и введет символ - то работает?
|
|
|
|
17.01.2014, 22:31
|
#10
|
Прописка
Регистрация: 25.10.2012
Сообщений: 112
Сказал спасибо: 50
Сказали Спасибо 1 раз в 1 сообщении
|
Re: ATmega32 UART, приём байтов не работает....
Сообщение от Wiza_
|
К MAX232A рекомендовано вешать конденсаторы по 0.1 uF.
Проверьте напряжение на 2 и 6 выводах МАХа(относительно массы). Должно быть + и - удвоенное напряжение питания. Если этого нет - то:
1. Либо неправильно выбраны конденсаторы
2. Либо нерабочий макс
3. Проблема с общим питанием.
|
В точку. Конденсаторы стояли электролиты по 1 µF. И правда, при напряжении питания 5В, на 2 и 6 выводах МАХа было +4.3В, -4.3В.
Поменял на керамику 0.1 µF и вуаля - ничего не изменилось!! Те же +4.3В, -4.3В. Но работать стало хуже, кракозябр больше...
Перепроверил схему - забыл +5В подпаять на 16ый вывод. Сделал - на выводах 2 и 6 МАХа +9.8В, -9.8В. Теперь конечно все работает.
Менять назад не буду, но думаю проблема была не в конденсаторах...
Сообщение от niXto
|
Втыкается в железный СОМ-порт, или в переходник ЮСБ-СОМ?
Переходнику инверсия МАХа не нужна, контроллеру тоже
Лог приема приложи, только не в архиве
|
Пробовал с переходником ЮСБ-СОМ (Digitus) и без него - результат был тот же - рандомные кракозябры....
Теперь работает норм - ждет пока юзер соизволит что-то ввести:
Код:
|
** UART OK **
UART OK. Enter some char....
You entered char 'k' or 0x6b. Good luck!
UART OK. Sleep for 2 sec....
UART OK. Enter some char....
You entered char 'd' or 0x64. Good luck!
UART OK. Sleep for 2 sec.... |
Сообщение от ForcePoint
|
Что-то с общим проводом? Что-то с фузами CKSEL?
|
Земля как земля. Без замкнутых контуров)
CKSEL - 1111 (для кварца 16 МГц)
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:59.
|
|