Easyelectronics.ru

Электроника для всех
Текущее время: 22 авг 2019, 20:54

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Обмен по USART PinBoard с компом.
СообщениеДобавлено: 11 окт 2015, 22:21 
Только пришел

Зарегистрирован: 21 сен 2015, 22:50
Сообщения: 8
При прошивке в МК простейшей программы обмена по порту вижу неправильные данные.
Дано MK ATmega16A на 8 Мгц
Инициализация порта банальна, автогенерённая CodeVisionAVR 3.12
Код:
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 19200
UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM);
UCSRB=(1<<RXCIE) | (1<<TXCIE) | (0<<UDRIE) | (1<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL);
UBRRH=0x00;
UBRRL=0x19;

Не используя прерывания, в таймере каждые 1 сек посылаю символ от 1 до 30
Код:
char test;
...
if (test<30)  UDR = test;
  test++;

На выходе вот такая пурга:
00 FF 01 FF 02 FF 03 FF 04 FF 05 FF 06 07 FF 18 FF 19 FF 1A FF 1B FF 1C FF 1D FF 1E 1F FF 20 21 FF 22 FF 23 24 FF 25 26 FF 27 FF 38 FF 39 FF 3A FF 3B FF
То бишь, на каждый мой символ приходит символ и FF - при этом символ тоже не верен
Если же в терминале ставлю какой либо вид четности (нелогично, но я уже по всякому пробовал!), то получаю вот:
00 01 02 03 04 05 06 07 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 38 39 3A 3B 3C 3D
то бишь FF уходит, но символы всё равно не верны.
при наличии бита 3 в символе - есть обязательно бит 4.
Еще один нюанс. При замене USB кабеля от пинборда к компу - получаем такой же результат, но там связаны биты 2 и 3

При тестах использованы: Пинборда - 1 шт. МК - 2 шт. USB кабели 2 шт, компы 2 шт - один с Win7, второй с WinXP. Скорости выставлялись и программиировались 19200 и 9600.
В любых комбинациях.
Да, терминалки тоже две пробовал. HyperTerm и терминалку от Бр@я.

USB кабели рабочие - сняты с работающих принтеров. МК тоже рабочие - один с поставки, второй свежекупленный. В пинборде проверен тракт USART порта как закольцовкой джампером, так и закольцовкой в панельке для МК - работает.
Если бы была проблема в кабеле - то МК бы не прошивался, или выдавал бы ошибки. Но прошивает сразу и без проблем на 19200
Проги тож разные пробовал. и через прерывание - 1 раз вызывается, и через стандартную putchar.
Да, это всё тот же пинбоард, который не работает через бутлоадер (http://forum.easyelectronics.ru/viewtopic.php?f=23&t=23193)

Что посоветуете?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обмен по USART PinBoard с компом.
СообщениеДобавлено: 12 окт 2015, 00:40 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1405
Похоже дело в скорости порта у мк, попробуйте посылать не 1-30, а E1-FF, вторые байты должны пропасть


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обмен по USART PinBoard с компом.
СообщениеДобавлено: 12 окт 2015, 04:25 
Администратор
Аватара пользователя

Зарегистрирован: 16 янв 2010, 06:09
Сообщения: 6272
Откуда: Челябинск
Дело в скорости похоже.

_________________
Хозяин дома


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обмен по USART PinBoard с компом.
СообщениеДобавлено: 12 окт 2015, 23:18 
Только пришел

Зарегистрирован: 21 сен 2015, 22:50
Сообщения: 8
Вопрос решен
Действительно, ответ заключался в настройках скорости и внутреннего генератора. Данный конкретный образец МК отвечал корректно так:
запрограммированная - реальная (диапазон стабильной работы)
9600 - 8500 (8100-9000)
19200 - 17100 (16400-17800)
38400 - 34200 (33300-35100)
115200 - 111500 (107000-116000)
Благо, терминалка от Брая позволяет устанавливать произвольную скорость обмена


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB