реклама на сайте
подробности

 
 
> прерывания по фронту(edge sensitive)
pitt
сообщение Oct 20 2012, 13:50
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Прошу прощения за терминологию: русскую или забыл или не знал.
Работаю с LPC1768. Пишу HAL- hardware abstraction layer (не знаю перевод). К своему ужасу обнаружил, что UART(перевод?) генерирует прерывания по фронту: если "Пустои передающий буфер", например, было замаскировано, то после снятия маски прерывание потеряно, даже если условие - буфер, по прежнему, пустой сохранилось. Сильно подозреваю, что то же ждет меня с другой переферией. Хочу услышать ваши советы.
1. Зачем Phillips так делает? В чем преимущества? Чем просто маски недостаточно?
2. Способы борьбы. Вдруг узнаю что-то, чего еще не знаю. Учтите, у меня за плечами более 30 лет опыта работы в СССР и США
3. Другой М3, например, Atmel SAM3... или что-то подобное. Предварительный обзор, сделаный до меня, рекомендавал NXP за лучший интерфейс с периферией. Кстати, на М3 мы переключились после провала использовать NIOS-II в среде ALTIUM TASKING. Их порт ни в какие ворота не лезит: все дырявое и корявое, хотя на бумаге все прекрасно...

Спасибо.

Сообщение отредактировал pitt - Oct 20 2012, 13:54


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post
2 страниц V  < 1 2  
Start new topic
Ответов (15 - 26)
pitt
сообщение Oct 21 2012, 20:34
Сообщение #16


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Цитата(KnightIgor @ Oct 21 2012, 14:29) *
С LPC1xxx не работал, есть опыт с STM32F, SAM3 и EFM32. У них прерывания работают "по уровню": если разрешить прерывание по, например, TX для UART еще ДО передачи, то, обнаружив флаг TX, система вызовет прерывание. Если LPC1xxx действительно ведет себя по-другому, - это большая проблема для... NXP, поскольку лучше выбирать процессоры, которые ведут себя в таком вопросе как большинство.

Поделитесь пожалуйста, проблемами SAM3. Про STM32F известно, что I2C кривой

Спасибо

Цитата(_Артём_ @ Oct 21 2012, 15:05) *
Ну не знаю, Cortex-M, как и все ...

В настоящий момент УТВЕРЖДАЮ, что LPC1768 UART THRE interrupt is edge sensitive, т.е по фронту. На основаниии предыдущего опыта ожидаю аналогичного поведения с CAN.
Пожалуйста укажите процитированный документ иначе...

Спасибо


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Oct 21 2012, 21:55
Сообщение #17


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(pitt @ Oct 21 2012, 22:34) *
Поделитесь пожалуйста, проблемами SAM3.

Принципиальных, кроме начальных проблем с поставками и старыми библиотеками, не вижу. Мне нравится концепция периферии SAM3, особенно PDA. А I2C там вообще делает все сам; SPI|I2S очень гибкий. SAM3U - пока единственный Cortex-M3 с High-Speed USB PHY.
Цитата
Про STM32F известно, что I2C кривой

Верно лишь частично: интерфейс стабилен и работоспособен, если разобраться, на что нужно время. Он не кривой, он по-просту перемудренный (из-за двойной буферизации и особых случаев выдачи ACK/NACK) и не очень быстрый (1MHz появился лишь у F2xx|F4xx). STM еще не успел выдать "на гора" свою кривую синхронную библиотеку, как I2C уже летал у меня с использованием прерываний и DMA.

В STM подкупает отличный "drop in replacement" по всей семье Cortex-Mx, доступность и цены: на правильно разведеную плату можно поставить как 1xx, так и вплоть до 4xx, хорошо скалируя производительность.

Go to the top of the page
 
+Quote Post
pitt
сообщение Oct 21 2012, 22:28
Сообщение #18


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Цитата(KnightIgor @ Oct 21 2012, 17:55) *
Принципиальных, кроме начальных проблем с поставками и старыми библиотеками, не вижу. Мне нравится концепция периферии SAM3, особенно PDA. А I2C там вообще делает все сам; SPI|I2S очень гибкий. SAM3U - пока единственный Cortex-M3 с High-Speed USB PHY.

Верно лишь частично: интерфейс стабилен и работоспособен, если разобраться, на что нужно время. Он не кривой, он по-просту перемудренный (из-за двойной буферизации и особых случаев выдачи ACK/NACK) и не очень быстрый (1MHz появился лишь у F2xx|F4xx). STM еще не успел выдать "на гора" свою кривую синхронную библиотеку, как I2C уже летал у меня с использованием прерываний и DMA.

В STM подкупает отличный "drop in replacement" по всей семье Cortex-Mx, доступность и цены: на правильно разведеную плату можно поставить как 1xx, так и вплоть до 4xx, хорошо скалируя производительность.

Спасибо. Атмел знаю по AVR а от STM получил discovery board и ... примеры кода написаны электриками, а не software professionals и поэтому наши электрики "забраковали".


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Oct 21 2012, 23:03
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(pitt @ Oct 22 2012, 01:28) *
Атмел знаю по AVR

Про АВР мы ту, наверное все знаем. Но АВР уже устарело.

Цитата(pitt @ Oct 22 2012, 01:28) *
а от STM получил discovery board и

А мне не прислали...Ну и что?

Цитата(pitt @ Oct 22 2012, 01:28) *
... примеры кода написаны электриками, а не software professionals и поэтому наши электрики "забраковали".

А кто ж тогда писал примеры для LPC11? Индусские "электрики"?
Или у STM ещё хуже?
Go to the top of the page
 
+Quote Post
pitt
сообщение Oct 21 2012, 23:16
Сообщение #20


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Цитата(_Артём_ @ Oct 21 2012, 19:03) *
Про АВР мы ту, наверное все знаем. Но АВР уже устарело.


А мне не прислали...Ну и что?


А кто ж тогда писал примеры для LPC11? Индусские "электрики"?
Или у STM ещё хуже?

Старый конь борозды не потит: каждый наш продукт содержит несколько AVR8 и продолжаем под него писать!
Мне неважно откуда электрики: их код видно издалека...
<<Индусские "электрики">> не думают, а делают как им сказали.


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post
jcxz
сообщение Oct 22 2012, 04:56
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(pitt @ Oct 21 2012, 19:32) *
Должен ли я с сожалением констатировать, что все три мои вопроса остались без ответа? Будет жаль.

По-моему - проблема выеденного яйца не стоит.

Если при завершении передачи (нет больше данных для передачи) в ISR вы маскируете THRE, то потом, когда фоновая задача хочет записать новые даные для передачи, она делает следующее:
1. мьютекс/запрет прерываний.
2. проверка - THRE замаскировано(запрещено)? нет - переход к 5.
3. размаскируем THRE
4. заполняем TX fifo.
5. освобождение мьютекса/разрешение прерываний.

Если при завершении передачи (нет больше данных для передачи) в ISR вы не маскируете THRE, а просто выходите из ISR (предварительно сбросив программный флаг "TX в процессе"), то потом, когда фоновая задача хочет записать новые даные для передачи, она делает следующее:
1. мьютекс/запрет прерываний.
2. проверяете флаг "TX в процессе". Если стоит - переход к 5.
3. уставливаем флаг "TX в процессе"
4. заполняем TX fifo.
5. освобождение мьютекса/разрешение прерываний.
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Oct 22 2012, 06:54
Сообщение #22


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(jcxz @ Oct 22 2012, 06:56) *
По-моему - проблема выеденного яйца не стоит.

Если рассуждать феноменологически - есть процессор, который продается, значит написать для него работоспособный код возможно. Наверное, и приведеный алгоритм применим. Однако меня настораживает то (я еще не работал с LPC1xxx), что NXP выпендрился и избрал особый путь в генерации прерываний от флагов периферии для своих Cortex. Из моего опыта я вижу, что по крайней мере тут 1:3 не в пользу NXP в сравнении с другими тремя распространенными Cortex-Mx. А как я понял из контекста автора ветки, речь идет и о выборе, в сторону какого Cortex грабли развернуть.
Go to the top of the page
 
+Quote Post
gladov
сообщение Oct 22 2012, 07:57
Сообщение #23


Частый гость
**

Группа: Свой
Сообщений: 169
Регистрация: 10-11-05
Из: Воронеж
Пользователь №: 10 687



Цитата(KnightIgor @ Oct 22 2012, 10:54) *
NXP выпендрился и избрал особый путь в генерации прерываний от флагов периферии для своих Cortex. Из моего опыта я вижу, что по крайней мере тут 1:3 не в пользу NXP в сравнении с другими тремя распространенными Cortex-Mx.

Дело в том, что NXP взял за основу UART 16650. Именно эта архитектура в точности повторена в контроллерах NXP, а, как известно, на этой архитектуре десятилетиями работали компьютеры. Так что оба подхода: "классический микроконтроллерный" и от NXP имеют право на жизнь и тут еще можно поспорить какой вариант более классический и распространенный.
Go to the top of the page
 
+Quote Post
pitt
сообщение Oct 22 2012, 23:50
Сообщение #24


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Цитата(jcxz @ Oct 22 2012, 00:56) *

http://electronix.ru/forum/index.php?showt...p;#entry1104736
Можно и проще, и изящнее, и без мютекса!
А проблема в самом наличии проблемы, где ее вообще не должно было быть!

Цитата(gladov @ Oct 22 2012, 03:57) *
Дело в том, что NXP взял за основу UART 16650. Именно эта архитектура в точности повторена в контроллерах NXP, а, как известно, на этой архитектуре десятилетиями работали компьютеры. Так что оба подхода: "классический микроконтроллерный" и от NXP имеют право на жизнь и тут еще можно поспорить какой вариант более классический и распространенный.

А Вас не затруднит указать хотя бы одно преимущество подхода "от NXP"?

Сообщение отредактировал pitt - Oct 22 2012, 23:48


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Oct 23 2012, 19:22
Сообщение #25


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(gladov @ Oct 22 2012, 09:57) *
Дело в том, что NXP взял за основу UART 16650... и тут еще можно поспорить какой вариант более классический и распространенный.

О фактах не спорят: 1:3 не в пользу NXP. И даже 1:4, если покопать TI (Luminary).
Go to the top of the page
 
+Quote Post
Allregia
сообщение Oct 24 2012, 06:05
Сообщение #26


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(pitt @ Oct 20 2012, 17:51) *
Не знаю точно, но предполагаю, что примеры, которые входят в состав eval-kit(а как по-русски?) легче сочетаются с документацией и более прозрачне для ЕЕ(элетронщики?), которые имеют первый голос при выборе микроконтроллера. Насколько я осведомлен, они тестируют эвал-киты инициализируя периферию(по-видимому, NXP оказался самым простым, удобным, понятным...) и на том удовлетворяются.


Примеры, которые с eva-kit'ами, пишут не электронщики а индусы, причем самые что ни на есть software professionals, ну которые после "трехмесячных курсов переквалификации из погонщиков слонов в программисты" sm.gif

Цитата
Я embedded SOFTWARE инженер и слово SOFTWARE выделил и повторил не случайо. Электрики пишут и довольствуются кодом, а я разрабатываю программное обеспечение, а не код. Разница существенная и тема для другого отдельного топика, так что, пожалуйста, давайте не будем здесь ее обсуждать.


Это уже на манечку похоже...
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Oct 24 2012, 08:18
Сообщение #27


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Хватит оффтопа, давайте вернёмся к обсуждению темы (если ещё есть, что сказать).
Модератор.
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 23:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01409 секунд с 7
ELECTRONIX ©2004-2016