Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> LPC2106 и прерывание от UART, Есть ли прерывание от TSR 
:(
    Опции темы
xelax
Дата 7.11.2006, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 12.4.2005

Репутация: 0
Всего: 1



Начал разбираться с LPC 2106. Купил книжку Тревора Мартина "Микроконтроллеры семейство ARM7 LPC2000 компании Philips". Так вот там мимоходом так в главе про универсальный асинхронный приёмопередатчик сказанно дословно :
"FIFO буфер передачи генерирует прерывания при опустошении регистра хранения передатчика THR, а также при опустошении сдвтгового регитсра передатчика TSR".

В юзермануале ничего похожего не нашёл. Вообще про прерывание по освобождению TSR ни слова.

Кто может прокомментировать расхождение в книжке и мануале.

UART у меня заведён на драйвер RS485, и по окончанию передачи мне его надо переводить на приём. Пока сделал тупо - после прерывания от THR последнего символа, в цикле жду пока поднимется флажок в регистре LSR.
Пока не вижу как сделать более корректно. Прерывание от TSR спасло бы ситуацию.
PM MAIL   Вверх
Ivan.
Дата 7.11.2006, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 2.11.2004

Репутация: 1
Всего: 2



Я еще плохо знаю как там реализованно в ARM (руки не доносят), но в AVR сделано так:
- там есть аппаратный буфер их 2-х байт,
- прерывание принятого байта (все просто),
- прерывание об присудствии свободного места в буфере (тоесть пока контроллер отправляет один байт, ты можешь подготавливать следующий байт, чтобы не разрывать пакет),
- и прерывание об полностью освободившемся буфере (тоесть данные полностью улетели и ты можешь занимать линию (переключать прием-передачу)).
В ARM есть прямой доступ к памяти DMA, два указателя на буферы отправки и размеры этих буферов.
принцип: ты заполнил один буфер, дал команду отправлять, заполнил второй буфер и добавил его в очередь.
когда контроллер отправит один буфер, он вызывает прерывания, говоря, что есть свободное место в очереди.
Если тебе надо отправить еще данные - ты заполняешь следующий буфер и ставишь его в очередь.
Когда оба буфера освободяться - вызывается другое прерывание, каторое скорей всего и говорит о том, что данные полностью отправлены.
также там есть непосредственный регистротправки, в каторый ты можешь класть данные. (он помоему занимает 10 бит).
Не скажу, что 100% информация, но я понял так.


--------------------
Я могу ВСЁ, вопрос - сколько времени у меня это займет!
PM MAIL ICQ   Вверх
PILOT
Дата 7.11.2006, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: 20
Всего: 54



Ivan, 
прям как в анекдоте про студента который выучил один билет из 25 про червяков, ему попадается про слона, тогда он рассказывает:
слон - животное с червеобразным хоботом, черви бывают...

По делу: я сам сейчас ковыряюсь с АРМ7ом, и делаю это исключительно по даташиту, в даташите указанного прерывания нет, а значит его нет и в кристалле.

Вот все прерывания USART (маски):
• RXRDY: RXRDY Interrupt Enable
• TXRDY: TXRDY Interrupt Enable
• RXBRK: Receiver Break Interrupt Enable
• ENDRX: End of Receive Transfer Interrupt Enable
• ENDTX: End of Transmit Interrupt Enable
• OVRE: Overrun Error Interrupt Enable
• FRAME: Framing Error Interrupt Enable
• PARE: Parity Error Interrupt Enable
• TIMEOUT: Time-out Interrupt Enable
• TXEMPTY: TXEMPTY Interrupt Enable
• ITERATION: Iteration Interrupt Enable
• TXBUFE: Buffer Empty Interrupt Enable
• RXBUFF: Buffer Full Interrupt Enable
• NACK: Non Acknowledge Interrupt Enable
• RIIC: Ring Indicator Input Change Enable (2)
• DSRIC: Data Set Ready Input Change Enable (2)
• DCDIC: Data Carrier Detect Input Change Interrupt Enable (2)
• CTSIC: Clear to Send Input Change Interrupt Enable
• MANE: Manchester Error Interrupt Enable(1)

Под описание больше всего подходит:
• TXRDY: TXRDY Interrupt Enable
• TXBUFE: Buffer Empty Interrupt Enable
• TXEMPTY: TXEMPTY Interrupt Enable

СУВ.

Добавлено @ 23:01 
Есть смысл посмотреть на:
AT91SAM7S2...8_64_321_32.pdf страница 339.

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
Ivan.
Дата 8.11.2006, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 2.11.2004

Репутация: 1
Всего: 2



лоханулся


--------------------
Я могу ВСЁ, вопрос - сколько времени у меня это займет!
PM MAIL ICQ   Вверх
xelax
Дата 10.11.2006, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 12.4.2005

Репутация: 0
Всего: 1



У Atmelа  гораздо лучше продуманная работа с UARTом. Но у меня выхода нет, уже готовая железяка досталась на LPC. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0657 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.