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

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

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

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

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

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

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

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

http://yadi.sk/d/DkqD4sNL5liFV
скриншот симулятора, мега слушает сама себя, в терминале справа вверху то что мега передаёт, справа внизу буфер приёмника меги, видно что получает она то же что передаёт...
Реклама:
vynt вне форума  
Непрочитано 13.06.2013, 13:18  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

Сообщение от akegor Посмотреть сообщение
Сообщение от vynt Посмотреть сообщение
Остаётся ещё возможная причина - залезание собственных переменных в область памяти спец.регистров (в те же настройки UART), или туда же попадает стек.
В AVR это крайне маловероятно - доступ разный, эт не STM.
Не такой уж он и разный. Сделать так, чтобы компилятор разместил переменные в I/O-адресах, действительно "трудновато", но стеком туда "наступить" или отрицательными индексами в массивах - вполне возможно, я думаю. Стек, разумеется, перед этим все переменные затрет.
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 13.06.2013, 13:55  
vynt
Почётный гражданин KAZUS.RU
 
Аватар для vynt
 
Регистрация: 02.03.2011
Адрес: Россия, КБР
Сообщений: 629
Сказал спасибо: 108
Сказали Спасибо 596 раз(а) в 334 сообщении(ях)
vynt на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

Сообщение от TechMike Посмотреть сообщение
Терминал для отладки, при рождении проект успешно работал с сотовым телефоном, теперь с модемом. Типа эволюционирует.
Осциллограф Вам в помощь! Это терминал (вернее RS232 компа) коверкает символы на RX. Программа принимает то что сама передаёт без искажений. Уберёте "подслушивающий" терминал с шины RX, МК будет принимать от модема так же всё без искажений. 99,9% гарантии, с одной оговоркой, что частота точно 8МГц.
Если терминал всё таки нужен, ставьте в разрыв "RX - терминал" диод, пойдёт любой т.к. скорость 9600 не такая уж и высокая. После отладки диод можно убирать. Диод в сторону терминала должен пропускать только +12(логический ноль). TX(модема) - TTL/RS232 - точка подключения терминала - RS232/TTL - RX(меги). У Вас такое соединение? комп к точке подключения цеплять так: точка подключения - диод -|›|- RS232 (терминал). TX терминала вообще не подключать, или так же через диод, но поставить наоборот.
Смысл этих манипуляций - устранить влияние подвешивающей единицы (-12В) с порта компьютера.
з.ы.
схема "Кабель контроля (мониторинга) RS-232"
http://www.gaw.ru/html.cgi/txt/inter...s232/start.htm
з.ы.ы.
для надёжности, я бы ещё один диод воткнул и так: ... точка подключения терминала -|›| - RS232/TTL - RX(меги)

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

Сообщение от vynt Посмотреть сообщение
Осциллограф Вам в помощь! Это терминал (вернее RS232 компа) коверкает символы на RX. Программа принимает то что сама передаёт без искажений. Уберёте "подслушивающий" терминал с шины RX, МК будет принимать от модема так же всё без искажений. 99,9% гарантии, с одной оговоркой, что частота точно 8МГц.
Если терминал всё таки нужен, ставьте в разрыв "RX - терминал" диод, пойдёт любой т.к. скорость 9600 не такая уж и высокая. После отладки диод можно убирать. Диод в сторону терминала должен пропускать только +12(логический ноль). TX(модема) - TTL/RS232 - точка подключения терминала - RS232/TTL - RX(меги). У Вас такое соединение? комп к точке подключения цеплять так: точка подключения - диод -|›|- RS232 (терминал). TX терминала вообще не подключать, или так же через диод, но поставить наоборот.
Смысл этих манипуляций - устранить влияние подвешивающей единицы (-12В) с порта компьютера.
з.ы.
схема "Кабель контроля (мониторинга) RS-232"
http://www.gaw.ru/html.cgi/txt/inter...s232/start.htm
з.ы.ы.
для надёжности, я бы ещё один диод воткнул и так: ... точка подключения терминала -|›| - RS232/TTL - RX(меги)
Так у меня и было с прошлой схемой, через два диода подключена была max232 и это только для мониторинга. Сейчас попробую восстановить на макетке и выключить max232 на модеме.
TechMike вне форума  
Непрочитано 13.06.2013, 23:32  
Someone
Гражданин KAZUS.RU
 
Регистрация: 16.06.2005
Сообщений: 945
Сказал спасибо: 25
Сказали Спасибо 175 раз(а) в 124 сообщении(ях)
Someone на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

Сообщение от vynt Посмотреть сообщение
флаг RXC конечно же
The Receive Complete (RXC) Flag indicates if there are unread data present in the receive buffer. This flag is one when unread data exist in the receive buffer, and zero when the receive buffer is empty (i.e., does not contain any unread data). If the receiver is disabled (RXEN = 0), the receive buffer will be flushed and consequently the RXC bit will become zero.

Повторюсь. Никакие циклы в обычных условиях не нужны. Достаточно отключить модуль. В авр почти всё чётко логично, и незачем плодить сущности.
Someone вне форума  
Непрочитано 14.06.2013, 00:43  
vynt
Почётный гражданин KAZUS.RU
 
Аватар для vynt
 
Регистрация: 02.03.2011
Адрес: Россия, КБР
Сообщений: 629
Сказал спасибо: 108
Сказали Спасибо 596 раз(а) в 334 сообщении(ях)
vynt на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

Сообщение от Someone Посмотреть сообщение
The Receive Complete (RXC) Flag indicates if there are unread data present in the receive buffer. This flag is one when unread data exist in the receive buffer, and zero when the receive buffer is empty (i.e., does not contain any unread data). If the receiver is disabled (RXEN = 0), the receive buffer will be flushed and consequently the RXC bit will become zero.

Повторюсь. Никакие циклы в обычных условиях не нужны. Достаточно отключить модуль. В авр почти всё чётко логично, и незачем плодить сущности.
Хм...Вы что, диллер ATMEL?
Эх, взять хотя бы в пример обсуждаемую программу... В теле main присутствуют CLI и SEI, если между этими вызовами выполняться два условия: приём окончен и произойдёт сброс (сработает вачдог внутренний или внешний, или поступит внешний сброс, или глюканёт программа и перескочит на нулевой адрес) - прерывания UART не будут выполнятся до выключения питания или до чтения из UDR байта. Ситуацию не сложно генерировать: пускаем TX на RX, включаем UART (с настройками прерываний), заводим вачдог, передаём один байт (именно так, глобально прерывания не разрешаем, или разрешаем но байт не считываем), и всё... через время сработает вачдог, мега сброситься но UART больше ничего не сможет принять... Ну да ладно, нет так нет. Я подсветил грабли, а наступать на них или нет дело личное.

the receive buffer может быть и be flushed а вот consequently the RXC bit will become zero фигушки... В самом начале инициализации UARTа у меня, если заметили, присутствует присвоение UCSRB=0. Практика показала, что не достаточно этого чтобы после описанной проблемы вновь завезти UART на срабатывание по прерыванию.

Последний раз редактировалось vynt; 14.06.2013 в 00:49.
vynt вне форума  
Непрочитано 15.06.2013, 21:47  
Someone
Гражданин KAZUS.RU
 
Регистрация: 16.06.2005
Сообщений: 945
Сказал спасибо: 25
Сказали Спасибо 175 раз(а) в 124 сообщении(ях)
Someone на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

Сообщение от vynt Посмотреть сообщение
Хм...Вы что, диллер ATMEL?
Мне просто повезло с первым начальником - он сам не столько начальником был, сколько программистом, и когда я находил очередной баг микроконтроллера, типа не соответствия режима ацп, неправильную работу модуля усарт с флагами , искажением байта, передаваемого по спи в строго определённых условиях, или же ошибку компилятора - типа понаписал бреда, он даже не слушая "доказательства" говорил - "иди читай доку, ищи ошибку". И как ни странно - позже, через день-два-неделю я находил свою ошибку. проработав так с полгода я понял простую вещь - в 99.9% случаев "не работы", "сбоев", "странного поведения" (речь есс-но о микроконтроллерах) - это вина программиста.

Сообщение от vynt Посмотреть сообщение
Ситуацию не сложно генерировать: пускаем TX на RX, включаем UART (с настройками прерываний), заводим вачдог, передаём один байт (именно так, глобально прерывания не разрешаем, или разрешаем но байт не считываем), и всё... через время сработает вачдог, мега сброситься но UART больше ничего не сможет принять
Ну так накидайте код, проверим, почему за более чем десятилетие существования архитектуры авр такой глюк с флагами не только не вошел в ерраты, но и как-то миновал сотни тысяч пользователей с десятками тысяч проектов (впрочем, за 10 лет и программистов, и проектов, может и поболя набраться)
Someone вне форума  
Непрочитано 17.06.2013, 19:15  
TechMike
Вид на жительство
 
Регистрация: 02.11.2008
Сообщений: 319
Сказал спасибо: 17
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
TechMike на пути к лучшему
По умолчанию Re: Глючит uasart в mega16

убыл в отпуск,попробовать с подслушиванием не успел.через недельку попробую.
TechMike вне форума  
 

Закладки
Опции темы

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

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, время: 22:58.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot