Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы с USART
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
haker_fox
Здравствуйте! Недавно на учебном оборудовании (STK500) заметил, что изредка в момент включения МК, через USART передаются некорректные данные. Передача стартует сразу после включения МК, вернее после 10-15 команд инициализации периферии. Предполагаю, что такое происходит из за разгона внутреннего RC-генератора, поскольку потом уже все передается правильно. Вопрос, будет ли корректным и не кривым обходом проблемы реализовать программную задержку, скажем из 255 nop'ов после инициализации периферии? Ну как в ARM'е) Заранее благодарю за ответы!
З.Ы. Частота генератора 8 МГц.
prottoss
Цитата(haker_fox @ Sep 1 2010, 10:15) *
Не пробовали играться с фьюзами, отвечающими за задержку до старта - SUT ?
@Ark
Цитата
что изредка в момент включения МК, через USART передаются некорректные данные.

Посмотрите схему устройства. Одна из возможных причин появления "мусора" при включении -
отсутствие внешних подтягивающих резисторов к питанию на входе и на выходе USART.
mempfis_
Цитата(haker_fox @ Sep 1 2010, 06:15) *
Здравствуйте! Недавно на учебном оборудовании (STK500) заметил, что изредка в момент включения МК, через USART передаются некорректные данные. Передача стартует сразу после включения МК, вернее после 10-15 команд инициализации периферии. Предполагаю, что такое происходит из за разгона внутреннего RC-генератора, поскольку потом уже все передается правильно. Вопрос, будет ли корректным и не кривым обходом проблемы реализовать программную задержку, скажем из 255 nop'ов после инициализации периферии? Ну как в ARM'е) Заранее благодарю за ответы!
З.Ы. Частота генератора 8 МГц.


Возможно Вам правильно подсказали по поводу SUT. Я в при программировании avr всегда ставлю максимальный startup-time в 16 килоциклов чтоб гарантированно запустился тактовый генератор. Задержку после инициализации переферии никогда не делал. Лишних посылок по usart не замечал даже в устройствах работающих от встроенной RC-цепочки. Также для устройств работающих от RC -цепочки OSCCAL всегда инициализирую до инициализации перефирии.
haker_fox
QUOTE (prottoss @ Sep 1 2010, 13:46) *
Не пробовали играться с фьюзами, отвечающими за задержку до старта - SUT ?

А это идея, спасибо!

QUOTE (@Ark @ Sep 1 2010, 14:18) *
Посмотрите схему устройства. Одна из возможных причин появления "мусора" при включении -
отсутствие внешних подтягивающих резисторов к питанию на входе и на выходе USART.

К сожалению, там не "мусор". Данные искажены. Часть передается правильно, часть нет. Количество переданных байт верно.
acorn
Инициализируй TX как вход. Выходом его сделает сам USART. Должно помочь.
demiurg_spb
Цитата(acorn @ Sep 4 2010, 01:01) *
Инициализируй TX как вход.
Висящий в воздухе?
777777
А у меня другой вопрос: если контроллер работает от RC-генератора, как вы собираетесь обеспечивать требую точность USART?
acorn
Цитата(demiurg_spb @ Sep 4 2010, 18:09) *
Висящий в воздухе?

при старте если на нем выход и состояние = 0, получаем start condition, что может создать проблемы.
Висящий вход - плохо, конечно, но попробовать-то можно, чтоб локализовать проблему?
demiurg_spb
Цитата(acorn @ Sep 4 2010, 22:25) *
при старте если на нем выход и состояние = 0, получаем start condition, что может создать проблемы.
Висящий вход - плохо
Какие ещё варианты остались (не так и много...)?

Цитата(777777 @ Sep 4 2010, 20:06) *
А у меня другой вопрос: если контроллер работает от RC-генератора, как вы собираетесь обеспечивать требую точность USART?
Может он по часовому кварцу калибруется...
acorn
Цитата(demiurg_spb @ Sep 4 2010, 22:27) *
Какие ещё варианты остались (не так и много...)?

Автор пропал. Решение было предложено вполне рабочее - вход висит только от сброса до инициализации USART, после чего становится выходом. Цена вопроса - одна строчка в коде для прояснения ситуации. Я так делал и не жалею.
В реальности автор, скорее всего, тактируется от нестабильного RC и проблема в несоответствии частот.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.