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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 09.04.2010, 12:00  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: AVR USART+прерывания=потеря данных

Сообщение от SasaVitebsk Посмотреть сообщение
USART AVR
буферизуется 1 байт. Причём в первых и этого не было
Что значит - не было? Первым появился 90S1200, в нем самого модуля UART не было. Вторым 2313, а в нем уже была буферизация. И так и пошло - UART особо и не менялся.
Реклама:
kison вне форума  
Непрочитано 09.04.2010, 12:30  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: AVR USART+прерывания=потеря данных

Сообщение от kison Посмотреть сообщение
а в нем уже была буферизация. И так и пошло - UART особо и не менялся.
у PIC сразу 2 байта буфер.

Сообщение от umgah Посмотреть сообщение
Не длиннее. Проверял. Немного впритык, но не длиннее.
Либо неправильно распределены ресурсы МК либо этих ресурсов действительно не хватает. Чаще неправильно распределяют...

В прерывании длинее чем приём 1 байта УСАРТ, разрешить (примерно посредине по времени) прерывание приёма УСАРТ в буфер, либо разбить это прерывание на ветки и выполнять за неск проходов, либо оставить внутри регистрацию события а обработку события вынести из прерывания.
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов
picavr вне форума  
Непрочитано 09.04.2010, 13:27  
ilya_sh
Прописка
 
Регистрация: 09.10.2007
Сообщений: 235
Сказал спасибо: 27
Сказали Спасибо 24 раз(а) в 24 сообщении(ях)
ilya_sh на пути к лучшему
По умолчанию Re: AVR USART+прерывания=потеря данных

Сообщение от picavr Посмотреть сообщение
В прерывании длинее чем приём 1 байта УСАРТ, разрешить (примерно посредине по времени) прерывание приёма УСАРТ в буфер
Плохой подход - глоб. флаг установил - неизвестно какое прерывание сработает... Тем более, что усарт последний
Цитата:
либо разбить это прерывание на ветки и выполнять за неск проходов, либо оставить внутри регистрацию события а обработку события вынести из прерывания.
Вот это лучше
Но главное, как тут уже было замечено, надо еще уметь правильно рассчитывать длительность прерываний...
ilya_sh вне форума  
Непрочитано 09.04.2010, 22:41  
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: AVR USART+прерывания=потеря данных

Сообщение от kison Посмотреть сообщение
Что значит - не было? Первым появился 90S1200, в нем самого модуля UART не было. Вторым 2313, а в нем уже была буферизация. И так и пошло - UART особо и не менялся.
В atmega8515 есть фуз "AT90S4414/8515 compatibility" почитайте что он делает.
SasaVitebsk вне форума  
Непрочитано 09.04.2010, 22:49  
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: AVR USART+прерывания=потеря данных

Сообщение от picavr Посмотреть сообщение
у PIC сразу 2 байта буфер.
У AVR тоже 2 фактически, у LPC21xx - 16, у х51 - 1 байт. Что это меняет? работать можно с любым. Просто надо учитывать особенности аппаратного построения и соответственно писать программы.
SasaVitebsk вне форума  
Непрочитано 09.04.2010, 22:57  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: AVR USART+прерывания=потеря данных

Сообщение от SasaVitebsk Посмотреть сообщение
В atmega8515 есть фуз "AT90S4414/8515 compatibility" почитайте что он делает.
Отключает буфер на ВТОРОЙ принятый байт. Т.е. буферизация все равно остается. И АВР-ов без нее не было вообще. Буфер на 1 байт был и в 90S8515 и в 4414. Это SPI может существовать без буфера или I2C, а вот асинхронный интерфейс без этой фичи неработоспособен в принципе.
Кстати и в 51 буфер тоже ЕМНИП был. Его просто не могло не быть
kison вне форума  
Непрочитано 10.04.2010, 01:36  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: AVR USART+прерывания=потеря данных

Сообщение от ilya_sh Посмотреть сообщение
Плохой подход - глоб. флаг установил - неизвестно какое прерывание сработает.
Почему же НЕИЗВЕСТНО? Те которые не нужны ВЫКЛЮЧИЛ на время обработки, а после обработки перед выходом - ВКЛЮЧИЛ.

Сообщение от ilya_sh Посмотреть сообщение
Но главное, как тут уже было замечено, надо еще уметь правильно рассчитывать длительность прерываний...
Это самое важное правильно распределить время процессора до написания программы )))))
а не рассчитывать написанное...
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов

Последний раз редактировалось picavr; 10.04.2010 в 01:44.
picavr вне форума  
Непрочитано 10.04.2010, 02:44  
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: AVR USART+прерывания=потеря данных

Сообщение от kison Посмотреть сообщение
Отключает буфер на ВТОРОЙ принятый байт. Т.е. буферизация все равно остается. И АВР-ов без нее не было вообще. Буфер на 1 байт был и в 90S8515 и в 4414. Это SPI может существовать без буфера или I2C, а вот асинхронный интерфейс без этой фичи неработоспособен в принципе.
Кстати и в 51 буфер тоже ЕМНИП был. Его просто не могло не быть
Слушайте, при всём моём к вам уважении, давайте не будем вырывать слов из контекста и наводить тень на плетень. И вы и я понимаем о чём шла речь. В моём ответе для picavr я пишу "У AVR тоже 2 фактически". Но реально, буферезуется 1 байт, второй просто принимается в сдвиговый регистр. В момент когда он будет принят, он перепишется в "буферный", а тот будет потерян. С точки зрения обработчика это эквивалентно 2 символам в буфере. В первых - был просто сдвиговый регистр, равно как и в х51. Именно об этом я и написал.
Ежу понятно, что такой же регистр есть скажем и в ARM7 + фифо на 16. Но они же не пишут 16+1.

Вы же понимаете, что я не просто это вычитал в даташите. Я с этим работал. Я работал с AVR ещё тогда, когда макс. частота была 8 и в службе техподдержки мне отвечали: повышение не планируется. Тогда, когда у них были реальные хомуты с той же eeprom и флэш. И когда вышла новая версия USART я её тестировал на серийном изделии. И в моём варианте этот фуз был не нужен. Моя прога работала что так, что этак. А вы пишете "особо и не менялся".
SasaVitebsk вне форума  
Непрочитано 10.04.2010, 03:05  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: AVR USART+прерывания=потеря данных

Сообщение от SasaVitebsk Посмотреть сообщение
В первых - был просто сдвиговый регистр, равно как и в х51. Именно об этом я и написал.
Однако. А даташит утверждает иное. Смотрю на давно умерший 90s8515 и вижу сдвиговый регистр + регистр UDR. По Вашей логике этого регистра там нет, и чтение идет сразу из сдвигового? Зачем тогда бит переполнения в статусном регистре?
Ну и логика работы -
Цитата:
Whether or not a valid stop bit is detected at the end of a character-reception cycle, the data is transferred to UDR and the RXC flag in USR is set.
Т.е. происходит передача из сдвигового в.. в никуда??? Вот ведь чудеса
Вот ровно то же самое и в MCS51 - сдвиговый регистр + регистр результата.
Привести блок-схемы?
kison вне форума  
Непрочитано 10.04.2010, 03:09  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: AVR USART+прерывания=потеря данных

Сообщение от kison Посмотреть сообщение
А даташит утверждает иное
А по логике вещей должен быть ещё хотя бы 1 регистр - буфер. Между сдвиговым и UDR.

Сообщение от SasaVitebsk Посмотреть сообщение
Но реально, буферезуется 1 байт, второй просто принимается в сдвиговый регистр.
ИМЕННО !!! с такой граблей я и сталкивался. Пишут 2 а есть 1 ))))) После PIC был удивлён, в PIC можно было взять 2 байта из UDR пока принимается ещё один в сдвиговый.
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов

Последний раз редактировалось picavr; 10.04.2010 в 03:18.
picavr вне форума  
 

Закладки

Метки
avr, uart
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача данных с ATmega8 на COM порт ПК sergx1300 Микроконтроллеры, АЦП, память и т.д 32 20.04.2010 14:19
прерывания usart в avr studio 4.13 zubr_ Микроконтроллеры, АЦП, память и т.д 6 14.10.2009 18:33


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


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