Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы

Глючит uasart в mega16

Непрочитано 11.06.2013, 11:32  
igor351
Прописка
 
Регистрация: 04.11.2007
Сообщений: 100
Сказал спасибо: 61
Сказали Спасибо 173 раз(а) в 33 сообщении(ях)
igor351 на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

У меня на 2313 такое было разок - либо кварц ставить либо контролер менять, от внутреннего генератора этот мк так и не получилось связать с терминалом Упсс пропустил что от кварца... Может все таки кварц подглючивает?
Реклама:

Последний раз редактировалось igor351; 11.06.2013 в 11:35.
igor351 вне форума  
Непрочитано 11.06.2013, 13:55  
vynt
Почётный гражданин KAZUS.RUN
 
Аватар для vynt
 
Регистрация: 02.03.2011
Адрес: Россия, КБР
Сообщений: 629
Сказал спасибо: 108
Сказали Спасибо 596 раз(а) в 334 сообщении(ях)
vynt на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

1. Причина смены IDE? Был ли перенос на другой ПК/другая ОС? - возможно причина кракозябр кроется в ОС (кодовая страница терминала)
2. Модем с МК работает то? кракозябры только в терминале?
3. Очень редко, но бывает - какая либо опция оптимизации линковщика убирает из програмы код, по её мнению "не обязательный"
vynt вне форума  
Непрочитано 11.06.2013, 14:15  
vynt
Почётный гражданин KAZUS.RUN
 
Аватар для vynt
 
Регистрация: 02.03.2011
Адрес: Россия, КБР
Сообщений: 629
Сказал спасибо: 108
Сказали Спасибо 596 раз(а) в 334 сообщении(ях)
vynt на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

внимательнее посмотрел на "буфер" и исходник... судя по содержимому буфера это не кодировка терминала, а всё таки или частота кварца или настройки UART (чтоб лишний раз убедиться - посылать по одному символу и смотреть эхо ответ модема)
1. почему скорость 9600? у модемов она обычно 57200
2. почему кварц 8МГц? лучше уж 11059200Гц, или другой с % ошибок 0!
3. в функцию USART_Init настоятельно рекомендую добавить код проверки пуст ли приёмник и передатчик (иначе UART однажды может просто заткнуться, поможет только выключение питания)
4. и очень, очень внимательно читать DataSheet на все устройства
vynt вне форума  
Непрочитано 11.06.2013, 15:14  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

Сообщение от TechMike Посмотреть сообщение
Глючит uasart в mega16
Прочтите наконец инструкцию.
omercury вне форума  
Непрочитано 11.06.2013, 16:00  
usr10000
Временная регистрация
 
Регистрация: 12.11.2008
Адрес: LT
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 33 раз(а) в 23 сообщении(ях)
usr10000 на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

Сообщение от TechMike Посмотреть сообщение
Второй день бьюсь с проблемой обмена mega16 с siemens tc35
Скорости явно не совпадают - в буфере, что ни число, то несколько нулей подряд в бинарном виде. И символов в два раза больше - скорость usart МК примерно в два раза больше. Смотрите отладчиком что в UBRR, правильно ли установлен бит U2X. Наконец, сделайте вставку с постоянной посылкой 0x55 и осциллографом гляньте.
usr10000 вне форума  
Непрочитано 11.06.2013, 22:02  
TechMike
Вид на жительство
 
Регистрация: 02.11.2008
Сообщений: 319
Сказал спасибо: 17
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
TechMike на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

По порядку:
1. заменил МК на заведомо рабочий - не помогло, симптомы теже.
2. из терминала дал модему команды:
Код:
AT+IPR=9600
OK
AT+IPR?
+IPR: 9600

OK
AT&W0
OK
Передернул питания всего, теперь модем выдает
Код:
^SYSSTART
Т.е. команду модем понял - проблему это не решило.
3. настраиваю usart вот так:
Код:
void USART_Init(unsigned int ubrr)
{
/* Set baud rate */
UBRRH = 0b00000000;
UBRRL =0b00110011; 
/* Enable receiver and transmitter */
UCSRB = (1‹‹RXEN)|(1‹‹TXEN)|(1‹‹RXCIE);
/* Set frame format: 8data, 1stop bit, Parity Disabled, Asynchronous Operation*/
UCSRC = (1‹‹URSEL)|(0‹‹USBS)|(3‹‹UCSZ0);

}
Смотрю в отладке и датащит конечно, все верно, но проблема остается.
4. пытаюсь всю настройку usart переделать на побитное присвоение вот так:
Код:
void USART_Init(unsigned int ubrr)
{
/* Set baud rate */
UBRRH = 0b00000000;
UBRRL =0b00110011; 
/* Enable receiver and transmitter */
//UCSRB = (1‹‹RXEN)|(1‹‹TXEN)|(1‹‹RXCIE);
UCSRA=0b00000011;
UCSRB = 0b00011011;
/* Set frame format: 8data, 1stop bit, Parity Disabled, Asynchronous Operation*/
//UCSRC = (1‹‹URSEL)|(0‹‹USBS)|(3‹‹UCSZ0);
UCSRC =0b01100001; 
}
Не помогло но теперь МК не выдает ничего в модем. Пока разбираюсь, но судя по отладке, не ставится бит RXEN в UCSRB, хотя присваиваю его =1.
5. проверяю монтаж, передергиваю провода на макетке - результат нулевой, проблема та же.
TechMike вне форума  
Непрочитано 12.06.2013, 10:42  
_Слон_
Прописка
 
Аватар для _Слон_
 
Регистрация: 25.02.2011
Сообщений: 122
Сказал спасибо: 61
Сказали Спасибо 23 раз(а) в 19 сообщении(ях)
_Слон_ на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

Возможен и глюк компилятора. У меня раз были траблы в 6-ой атмеловской студии с мегой 32. Когда в мейк-файле была прописана ATmega32A, код неправильно работал с прерываниями (кажется...точно не помню). Нужно было исправить на ATmega32(без буквы А), и всё заработало.
_Слон_ вне форума  
Непрочитано 12.06.2013, 17:09  
vynt
Почётный гражданин KAZUS.RUN
 
Аватар для vynt
 
Регистрация: 02.03.2011
Адрес: Россия, КБР
Сообщений: 629
Сказал спасибо: 108
Сказали Спасибо 596 раз(а) в 334 сообщении(ях)
vynt на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

Внимательно смотрим секцию Include...
Я не увидел подключения необходимого файла с описанием специфики данного конкретного чипа (регистр=адрес, бит=номер). Файл должен имеет название iom16.h или наподобие (WinAvr не пользуюсь). Подключить к проекту просто io.h не достаточно.

я инициализацию делаю так (Mega162, 11059200Hz):
void uart0_init(void) //UART0 initialisation 9600bps
{
unsigned char a;
UCSR0B = 0x00; //disable while setting baud rate
while( (UCSR0A & (1‹‹RXC0)) ) a=UDR0;
while( (UCSR0A & (1‹‹TXC0)) ) ;
UCSR0A = 0x00; //0x02
UCSR0C = 0xA6; //parity: Even, char size: 8 bit
UBRR0L = 0x47; //set baud rate lo
UBRR0H = 0x00; //set baud rate hi
UCSR0B = 0xD8; //
}

Последний раз редактировалось vynt; 12.06.2013 в 17:37.
vynt вне форума  
Непрочитано 12.06.2013, 22:22  
TechMike
Вид на жительство
 
Регистрация: 02.11.2008
Сообщений: 319
Сказал спасибо: 17
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
TechMike на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

Сообщение от vynt Посмотреть сообщение
Внимательно смотрим секцию Include...
Я не увидел подключения необходимого файла с описанием специфики данного конкретного чипа (регистр=адрес, бит=номер). Файл должен имеет название iom16.h или наподобие (WinAvr не пользуюсь). Подключить к проекту просто io.h не достаточно.

я инициализацию делаю так (Mega162, 11059200Hz):
void uart0_init(void) //UART0 initialisation 9600bps
{
unsigned char a;
UCSR0B = 0x00; //disable while setting baud rate
while( (UCSR0A & (1‹‹RXC0)) ) a=UDR0;
while( (UCSR0A & (1‹‹TXC0)) ) ;
UCSR0A = 0x00; //0x02
UCSR0C = 0xA6; //parity: Even, char size: 8 bit
UBRR0L = 0x47; //set baud rate lo
UBRR0H = 0x00; //set baud rate hi
UCSR0B = 0xD8; //
}
Подключено все правильно, это рекомендации GCC(WinAvr) нужно подключить io.h и потом в makefile описать тип МК.
Попробовал как вы рекомендовали инициализировать usart - не помогло.
Код:
void USART_Init(unsigned int ubrr)
{
 unsigned char a;
 UCSRB = 0x00; //disable while setting baud rate
 while( (UCSRA & (1‹‹RXC)) ) a=UDR;
 while( (UCSRA & (1‹‹TXC)) ) ;
 UCSRA = 0x00; //0x02
 UCSRC = 0xA6; //parity: Even, char size: 8 bit
 UBRRL = 0b00110011; //set baud rate lo
 UBRRH = 0x00; //set baud rate hi
 /* Enable receiver and transmitter */
 UCSRB = (1‹‹RXEN)|(1‹‹TXEN)|(1‹‹RXCIE);
 /* Set frame format: 8data, 1stop bit, Parity Disabled, Asynchronous Operation*/
 UCSRC = (1‹‹URSEL)|(0‹‹USBS)|(3‹‹UCSZ0);
}
TechMike вне форума  
Непрочитано 12.06.2013, 23:45  
Someone
Гражданин KAZUS.RUN
 
Регистрация: 16.06.2005
Сообщений: 942
Сказал спасибо: 25
Сказали Спасибо 174 раз(а) в 123 сообщении(ях)
Someone на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

Сообщение от TechMike Посмотреть сообщение
//UCSRC = (1‹‹URSEL)|(0‹‹USBS)|(3‹‹UCSZ0);
UCSRC =0b01100001;
Хинт: это вовсе не равнозначные записи. Даже если оно и запишется в правильный регистр, в чём сомневаюсь, т.к. бит7, урсел который, равен 0, и значит значение пойдёт не в управляющий регистр, а в битрейт(убрраш), делая его далеко не 9600, то ты получишь синхронный режим, евен парити, символ 5 бит, и вдобавок поменяешь полярность клока.
Someone вне форума  
 
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цифровой фильтр на Mega16 AlexPi Песочница (вопросы новичков) 21 10.06.2013 11:35
mega16+hd44780+ds18b20 глючит при работе в железе Jkot Микроконтроллеры, АЦП, память и т.д 3 18.11.2009 15:50
Генерация стабильных импульсов на mega16 moroz_gr Микроконтроллеры, АЦП, память и т.д 14 02.03.2009 17:58
Mega16: вход в противофазу OCR1A и B code-by Микроконтроллеры, АЦП, память и т.д 8 10.11.2008 12:18
Как померять низкочастотный сигнал на лапке Mega16 ? TiN_TM Микроконтроллеры, АЦП, память и т.д 4 25.07.2006 12:53


Часовой пояс GMT +4, время: 02:26.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.