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

 
 
7 страниц V  « < 5 6 7  
Reply to this topicStart new topic
> Эффективность DMA в SAM7, Выделено из "ARM много,..."
Dron_Gus
сообщение Sep 30 2008, 11:45
Сообщение #91


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

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Раз уж пошел оффтопик полный. Предлагаю высказаться по поводу реализации DMA (да и FIFO) в STR912FAW**. На мой скромный взгляд, очень качественно и гибко. Это, конечно, уже ARM9...


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
VslavX
сообщение Sep 30 2008, 12:32
Сообщение #92


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(aaarrr @ Sep 30 2008, 14:15) *
А необходимость мгновенной реакции на прерывание не напрягает? ИМХО, для UART'а как раз он очень удобен.

"Мгновенность" критична только на приеме. У меня максималка 115200 -~100мкс (пользую два стопа почти всегда) примерно в запасе есть, чтобы забрать байт. В 99.9999% байты успешно забираются, а если какие-то проблемы - это все решается протоколом на канальном уровне - ретрансмитты и прочее.
Без таких "решающих" протоколов вылазить на RS-485 бессмысленно, ну и заодно они "решат" проблему если кто-то "не успел".
Вообще я иногда тестирую свои системы на realtime - как правило время реакции на прерывание - не хуже 15-20мкс на TNKernel на 48МГц SAM7. На LPC-ях пока не гонял, должно быть еще веселее.
И даже взял моду "сложные" прерывания (типа USB, EMAC) обрабатывать в отдельном высокоприоритетном потоке - время переключения считанные мкс, а структура программы становится линейной и упрощается чуть ли не в разы, на синхронизацию доступа к регистрам оборудования можно вообще забить.
Go to the top of the page
 
+Quote Post
defunct
сообщение Sep 30 2008, 13:23
Сообщение #93


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(aaarrr @ Sep 30 2008, 14:15) *
ИМХО, для UART'а как раз он очень удобен.

+1 для TX бесспорно.
для RX куда приятнее побайтово, будь-то пакетный протокол или консоль с упр. символами.

Цитата
А необходимость мгновенной реакции на прерывание не напрягает?

А зачем мгновенная реакция? Проц 55Mhz, частота прерываний uart'a at max - 11.52kHz (на 115200).

Цитата(aaarrr @ Sep 29 2008, 22:15) *
Вместо старого NXP лучше взять новый NXP, а не старый Atmel. О чем спорить-то?

В таком ключе пожалуй не о чем ;>

А вместо старого SAM'a, стоит ли брать новый NXP?
Go to the top of the page
 
+Quote Post
VslavX
сообщение Sep 30 2008, 13:53
Сообщение #94


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(defunct @ Sep 30 2008, 16:23) *
+1 для TX бесспорно.

Не-а, для сколько-нибудь сложных протоколов для TX тоже приятнее побайтово - не надо заводить отдельный буфер, копировать туда куски разных полей, потом вычислять сумму пакета за один проход.
А "побайтово" - генерируешь многие куски пакета "на лету" и вычисление суммы "размазывается" по времени. Реализация "моего" протокола без PDC мне больше понравилась. Хотя - "случаи - они разные бывают".
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 30 2008, 14:10
Сообщение #95


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(defunct @ Sep 30 2008, 17:23) *
А зачем мгновенная реакция? Проц 55Mhz, частота прерываний uart'a at max - 11.52kHz (на 115200).

Ну, в основном их заводят на 48MHz. И UART бывает не только на 115200, особенно если это RS-485.

Цитата(defunct @ Sep 30 2008, 17:23) *
А вместо старого SAM'a, стоит ли брать новый NXP?

ИМХО, стоит.
Go to the top of the page
 
+Quote Post
defunct
сообщение Sep 30 2008, 16:14
Сообщение #96


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(VslavX @ Sep 30 2008, 16:53) *
Не-а, для сколько-нибудь сложных протоколов для TX тоже приятнее побайтово - не надо заводить отдельный буфер, копировать туда куски разных полей, потом вычислять сумму пакета за один проход.

У меня обычно любой протокол сводится к
xx_SendPacket( U8 *pData, int size);
Просто и дубово, считать CS удобнее.
Заводить отдельный буфер не надо, можно использовать буфер принятого пакета для формирования отправляемого.

Цитата(aaarrr @ Sep 30 2008, 17:10) *
И UART бывает не только на 115200, особенно если это RS-485.

Угу, бывает и 9600 особенно 485.
Насчет же скоростей выше 115200, есть и более подходящие для этого интерфейсы (eth/usb)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 30 2008, 16:52
Сообщение #97


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(defunct @ Sep 30 2008, 15:23) *
А вместо старого SAM'a, стоит ли брать новый NXP?

Без вариантов. На самом старом семействе типа LPC211x/22xx/210x там выбор может быть очень труден, для LPC213x/4x - ну только если чего-то типа I2S требуется, или совсем в масть что-то ложится. А на LPC23xx/24xx просто без вариантов. Тем более,что новые семейства дешевле и старых, и SAM7. http://mt-system.ru/index.php?store_search=lpc2&id=5


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

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

 


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


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