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

 
 
> 3xSPI в небольшом корпусе, В TQFP64 или меньше?
sonycman
сообщение Dec 13 2008, 23:57
Сообщение #1


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Хочется иметь в небольшом (типа TQFP64) корпусе три аппаратных SPI (что-то не тянет программно делить шину на несколько устройств).
Ядро типа ARM7, желательно, ~50 МГц.
Нашёл пока только AT32UC3B - все USART могут работать и как SPI, очень удобно smile.gif

А что-нибудь из Cortex`ов умеет такое?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sonycman
сообщение Dec 16 2008, 03:20
Сообщение #2


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Значит, на кортексе даже не нужно прилагать особых усилий, чтобы работали вложенные прерывания? Отлично!
А то, прочитав на сайте arm.com статью про NVIC, сложилось впечатление, что обработчики вызываются строго по очереди...
Go to the top of the page
 
+Quote Post
Sanek_spb
сообщение Dec 16 2008, 09:14
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 28-02-07
Пользователь №: 25 746



Цитата(sonycman @ Dec 16 2008, 06:20) *
Значит, на кортексе даже не нужно прилагать особых усилий, чтобы работали вложенные прерывания? Отлично!
А то, прочитав на сайте arm.com статью про NVIC, сложилось впечатление, что обработчики вызываются строго по очереди...


Такое впечатление у Вас сложилось наверно из-за того, что там довольно подробно расписан механизм, позволяющий не тратить время на восстановление и сохранение контекста приложения, если обработчики перываний выполняются друг за другом. Вернее даже не только друг за другом, а ,например, если между окончанием одного обработчика и вызовом другого (случилось прерывание) прошло мало времени, тогда процессор тоже не тратит время на сохранение контекста.

Вообще контроллер прерываний в кортексе очень не плох, портит его только SVC, который нельзя вызывать откуда угодно.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Dec 16 2008, 14:54
Сообщение #4


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(Sanek_spb @ Dec 16 2008, 13:14) *
Такое впечатление у Вас сложилось наверно из-за того, что там довольно подробно расписан механизм, позволяющий не тратить время на восстановление и сохранение контекста приложения, если обработчики перываний выполняются друг за другом. Вернее даже не только друг за другом, а ,например, если между окончанием одного обработчика и вызовом другого (случилось прерывание) прошло мало времени, тогда процессор тоже не тратит время на сохранение контекста.

Вообще контроллер прерываний в кортексе очень не плох, портит его только SVC, который нельзя вызывать откуда угодно.

Да, да. Ударились в описание работы tail-chaining. А я всё ждал откровений про вложенные прерывания... smile.gif

А что подразумевается под автоматическим сохранением контекста при возникновении исключения? Сохранение всех регистров CPU (12 штук плюс флаги состояния - больше 50-ти байт!), или только регистра состояния? Если первое, то это делается с похвальной скоростью - всего за 12 тактов!

SVC - это аналог SWI в ARMv4?

ЗЫ: какая разница между терминами exceptions и interrupts?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 16 2008, 15:01
Сообщение #5


Гуру
******

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



Цитата(sonycman @ Dec 16 2008, 17:54) *
А что подразумевается под автоматическим сохранением контекста при возникновении исключения? Сохранение всех регистров CPU (12 штук плюс флаги состояния - больше 50-ти байт!), или только регистра состояния? Если первое, то это делается с похвальной скоростью - всего за 12 тактов!

Написано же:
Цитата
When an exception takes place, the Program Counter, Program Status Register, Link Register and the R0-R3,R12 general purpose registers are pushed on to the stack.

Т.е. 8 регистров всего.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Dec 16 2008, 17:00
Сообщение #6


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(Sanek_spb @ Dec 16 2008, 20:38) *
Есть инструкция, которая пендит интеррапт под названием SerViceCall, она имеет тот же опкод что и SWI, служит примерно для того же, но есть разница в механизмах работы SWI и SVC поэтому и переименовали, чтобы люди разобрались и аккуратненько всё портанули со старых армов.

Ясно smile.gif

Цитата(aaarrr @ Dec 16 2008, 19:01) *
Написано же:

Т.е. 8 регистров всего.

Хм, но почему не сохранили остальные регистры? Все таки придётся дополнительно их сохранять... 05.gif
Go to the top of the page
 
+Quote Post
koyodza
сообщение Dec 16 2008, 18:22
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 213
Регистрация: 28-02-07
Из: Киев
Пользователь №: 25 744



Цитата(sonycman @ Dec 16 2008, 19:00) *
Ясно smile.gif
Хм, но почему не сохранили остальные регистры? Все таки придётся дополнительно их сохранять... 05.gif

Потому, что не так много фанатов пишут сейчас на асме, тем более на ARM, у которого асм - извращение редкостное. А компилятор с того же С эти особенности может использовать на пользу.

Цитата(sonycman @ Dec 16 2008, 20:07) *
когда, наконец, можно будет настраивать частоту SPI (и не только) более дискретно, а то или 18 мегабит, или сразу 9... тьфу cranky.gif

Интересно, как Вы это себе представляете? Отдельный PLL для SPI? Или fractional baud rate generator? Только ЗАЧЕМ?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 16 2008, 19:40
Сообщение #8


Гуру
******

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



Цитата(koyodza @ Dec 16 2008, 21:22) *
Потому, что не так много фанатов пишут сейчас на асме, тем более на ARM, у которого асм - извращение редкостное.

07.gif Что тогда не извращение? У ARM'а замечательно простой и понятный ассемблер.
Go to the top of the page
 
+Quote Post
koyodza
сообщение Dec 16 2008, 20:19
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 213
Регистрация: 28-02-07
Из: Киев
Пользователь №: 25 744



Цитата(aaarrr @ Dec 16 2008, 21:40) *
07.gif Что тогда не извращение? У ARM'а замечательно простой и понятный ассемблер.

Я раньше тоже "воинствующим ассемблеристом" был, ещё на 8080 и Z80, потом на 86. Но жисть расставила всё на свои места: достаточно крупный проект непросто сделать на ассемблере, а поддерживать тем более. Про использование чужого кода я вообще молчу. Не так давно дали мне проект на 51 немного "доработать", более 12000 строк. Написано, прямо скажу, ужасно. Да и необходимости писать на ассемблере в данном случае вообще не было. Короче, разобрался с функционалом, прошелся два раза по листингу и переписал на С, получил не более 5000 строк, дополнительные функции, и примерно тот же объём двоичного кода.
ЗАЧЕМ уродоваться на асме для ARM - не понимаю абсолютно. Экономить пару десятков нсек? Так всё равно один раз ножкой дёрнуть - и вся экономия коту под хвост, и улетели сотни Ваших сэкономленных наносекунд. Код ужимать? Что, не влазим в 128/256/512кБ кода? Это же ARM, это не 8051 с его 128 байт ОЗУ и 4кБ кода, там в этом конечно же был смысл.

Я ни в коем случае не призываю к отказу от оптимизации. Я сам ненавижу монстров, которых порождает современное программирование, с его гигабайтами кода и гигагерцами. Я только сторонник "срединного пути"
Go to the top of the page
 
+Quote Post
sonycman
сообщение Dec 17 2008, 01:59
Сообщение #10


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(koyodza @ Dec 17 2008, 00:19) *
ЗАЧЕМ уродоваться на асме для ARM - не понимаю абсолютно. Экономить пару десятков нсек? Так всё равно один раз ножкой дёрнуть - и вся экономия коту под хвост, и улетели сотни Ваших сэкономленных наносекунд.

А что, на STM32 так плохо с "дёрганием" ножками? Сколько это, приблизительно, занимает тактов?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sonycman   3xSPI в небольшом корпусе   Dec 13 2008, 23:57
- - Sanek_spb   Цитата(sonycman @ Dec 14 2008, 02:57) Хоч...   Dec 14 2008, 08:36
|- - sonycman   Цитата(Sanek_spb @ Dec 14 2008, 12:36) Да...   Dec 14 2008, 10:25
- - SpiritDance   Старенькие at91 имеют spi, способный работать посл...   Dec 14 2008, 10:28
|- - sonycman   Цитата(SpiritDance @ Dec 14 2008, 14:28) ...   Dec 14 2008, 10:32
|- - SpiritDance   Цитата(sonycman @ Dec 14 2008, 13:32) Это...   Dec 14 2008, 14:10
- - bigarmer   at91 just has one spi with several chip select. S...   Dec 14 2008, 14:40
|- - sonycman   Цитата(SpiritDance @ Dec 14 2008, 18:10) ...   Dec 14 2008, 15:57
|- - koyodza   Цитата(sonycman @ Dec 14 2008, 17:57) As ...   Dec 14 2008, 19:06
||- - sonycman   Цитата(koyodza @ Dec 14 2008, 23:06) По-м...   Dec 14 2008, 21:01
||- - Sanek_spb   Цитата(sonycman @ Dec 15 2008, 00:01) USA...   Dec 15 2008, 07:35
||- - sonycman   Цитата(SpiritDance @ Dec 15 2008, 10:34) ...   Dec 15 2008, 13:26
|- - SpiritDance   Цитата(sonycman @ Dec 14 2008, 18:57) pri...   Dec 15 2008, 06:34
|- - aaarrr   Цитата(SpiritDance @ Dec 15 2008, 09:34) ...   Dec 15 2008, 07:28
- - sonycman   Ещё хотел спросить про контроллер прерываний в кор...   Dec 15 2008, 20:51
|- - koyodza   Цитата(sonycman @ Dec 15 2008, 22:51) Ещё...   Dec 15 2008, 21:51
|- - aaarrr   Цитата(sonycman @ Dec 15 2008, 23:51) Как...   Dec 15 2008, 21:52
||- - aaarrr   Цитата(sonycman @ Dec 16 2008, 20:00) Хм,...   Dec 16 2008, 17:05
|||- - sonycman   Цитата(aaarrr @ Dec 16 2008, 21:05) Потом...   Dec 16 2008, 18:07
||- - sonycman   Цитата(koyodza @ Dec 16 2008, 22:22) Инте...   Dec 16 2008, 18:46
|||- - koyodza   Цитата(sonycman @ Dec 16 2008, 20:46) Ну,...   Dec 16 2008, 18:59
|||- - sonycman   Цитата(koyodza @ Dec 16 2008, 22:59) ЗАЧЕ...   Dec 16 2008, 19:02
|||- - koyodza   Цитата(sonycman @ Dec 16 2008, 21:02) Да,...   Dec 16 2008, 19:12
||- - koyodza   Цитата(sonycman @ Dec 17 2008, 03:59) А ч...   Dec 17 2008, 09:08
||- - Sanek_spb   Цитата(koyodza @ Dec 17 2008, 12:08) На В...   Dec 17 2008, 09:21
|- - Sanek_spb   Цитата(sonycman @ Dec 16 2008, 17:54) SVC...   Dec 16 2008, 16:38
- - aaarrr   Все верно, но где Вы узрели призыв писать все на а...   Dec 16 2008, 20:29
|- - koyodza   Цитата(aaarrr @ Dec 16 2008, 22:29) Все в...   Dec 16 2008, 20:38
- - aaarrr   "Понимает" и "знает в общих чертах...   Dec 16 2008, 20:45
|- - koyodza   Цитата(aaarrr @ Dec 16 2008, 22:45) ...   Dec 16 2008, 20:52
|- - aaarrr   Цитата(koyodza @ Dec 16 2008, 23:52) ...А...   Dec 16 2008, 21:10
- - aaarrr   Да, на "скоростное ногодрыганье" рассчит...   Dec 17 2008, 09:24
|- - sonycman   Цитата(aaarrr @ Dec 17 2008, 13:24) Да, н...   Dec 17 2008, 13:57
|- - koyodza   Цитата(sonycman @ Dec 17 2008, 15:57) То ...   Dec 17 2008, 19:00
|- - aaarrr   Цитата(koyodza @ Dec 17 2008, 22:00) Не в...   Dec 17 2008, 19:25
|- - sonycman   Цитата(koyodza @ Dec 17 2008, 23:00) Не в...   Dec 18 2008, 01:43
||- - koyodza   Цитата(sonycman @ Dec 18 2008, 03:43) 2,5...   Dec 18 2008, 09:19
|- - sonycman   Цитата(koyodza @ Dec 17 2008, 23:00) Цита...   Dec 28 2008, 21:15
|- - SpiritDance   Цитата(sonycman @ Dec 29 2008, 00:15) или...   Dec 29 2008, 11:03
|- - koyodza   Цитатанет епром, а надо изредка перезаписывать нес...   Dec 31 2008, 20:07
|- - sonycman   Цитата(koyodza @ Jan 1 2009, 00:07) Этот ...   Dec 31 2008, 23:18
|- - defunct   Цитата(sonycman @ Jan 1 2009, 01:18) Сейч...   Jan 1 2009, 04:09
|- - sonycman   Цитата(defunct @ Jan 1 2009, 08:09) Лумин...   Jan 1 2009, 10:14
|- - defunct   Цитата(sonycman @ Jan 1 2009, 12:14) Пишу...   Jan 1 2009, 19:45
|- - sonycman   Цитата(defunct @ Jan 1 2009, 23:45) Там п...   Jan 1 2009, 20:06
- - aaarrr   Цитата(sonycman @ Dec 17 2008, 16:57) То ...   Dec 17 2008, 14:08
- - sonycman   Да, я уже практически определился. Буду моделирова...   Dec 18 2008, 09:36
- - sonycman   Хм, SPI в STM32 поддерживает всего два формата пер...   Jan 1 2009, 17:42
- - sonycman   Попробовал STM32 на макс. быстрое переключение пор...   Jan 2 2009, 08:49
- - koyodza   Цитата(sonycman @ Jan 2 2009, 10:49) форм...   Jan 2 2009, 21:19
- - sonycman   Цитата(koyodza @ Jan 3 2009, 01:19) Нет т...   Jan 2 2009, 21:27


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

 


RSS Текстовая версия Сейчас: 21st June 2025 - 15:39
Рейтинг@Mail.ru


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