|
|
  |
3xSPI в небольшом корпусе, В TQFP64 или меньше? |
|
|
|
Dec 18 2008, 09:19
|

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

|
Цитата(sonycman @ Dec 18 2008, 03:43)  2,5 МГц? Ну это просто позорище. А я ещё думал про софтовый SPI... Софтовый можно, но медленный и с малым траффиком. Повторюсь: для задачи нужно ПРАВИЛЬНО выбирать МК, а не потому что он 32-битный или новый или красивый. Вам должен подойти High-density STM32, у них есть 3 SPI, тем более если надо поддерживать файловую систему, то еще и ОЗУ нужно побольше (у High-density по 48 или 64кБ, у Medium только до 20кБ) Кроме того, USART можно использовать как SPI, но там можете не разойтись по каналам DMA (критично для высокого траффика), нужно внимательно смотреть. Я бы без разговоров брал High-density STM32 и закрывал тему. А "ногодрыг" надо по-возможности заменять на аппаратные модули, благо здесь они уже очень неплохи. То, что в STR91 я городил на 3 таймерах с синхронизацией друг друга, здесь легко сделал на одном. Можно и на STR91 сделать, там 2SPI, но в качестве третьего можно (не пробовал) настроить USART, здесь и ОЗУ побольше (64 или 96кБ), и побыстрее он, но два питания (1,8В и 3,3В) и периферия похуже, чем у STM32. Конечно, на одной ST свет клином не сошелся, ищите и обрящете
|
|
|
|
|
Dec 28 2008, 21:15
|

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

|
Цитата(koyodza @ Dec 17 2008, 23:00)  Цитата То есть для STM32 при частоте ядра в 72 МГц (пер. шина=36 МГц) последовательная установка и сброс пина займут 12 тактов = импульсы частотой 6 МГц?
Не выше 2,5МГц И STM32 дает далеко не самый плохой результат Шина АРВ2 тоже 72МГц И забудьте про такты, здесь всё несколько иначе: количество тактов непостоянно Хе, попробовал на LM3S601 при тактовой 50 МГц. На пине присутствуют импульсы с частотой ~8 МГц:
Код исполняется из флеш, причём интересно, что полупериоды сигнала одинаковы по времени, несмотря на присутствие перехода после команды сброса пина... Код 15: SetPin(LED); 0x000001B4 F8C01080 STR r1,[r0,#0x80] 16: ClrPin(LED); 0x000001B8 F8C02080 STR r2,[r0,#0x80] 12: while(1) 0x000001BC E7FA B 0x000001B4 Правда, потребление чипа при этом ~90 ма, а я стабилизатор для макетки всего на сотню поставил, работает на пределе  ЗЫ: ещё хотел спросить - на данном арме нет епром, а надо изредка перезаписывать несколько десятков байт конфигурации. Что посоветуете - поставить внешнюю мелкую епромку, или использовать одну страницу (1 килобайт) программной памяти контроллера?
|
|
|
|
|
Dec 31 2008, 20:07
|

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

|
Цитата нет епром, а надо изредка перезаписывать несколько десятков байт конфигурации. Что посоветуете - поставить внешнюю мелкую епромку, или использовать одну страницу (1 килобайт) программной памяти контроллера? Этот вопрос довольно оригинально решен у ST в AN2594 и подобных.
|
|
|
|
|
Dec 31 2008, 23:18
|

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

|
Цитата(koyodza @ Jan 1 2009, 00:07)  Этот вопрос довольно оригинально решен у ST в AN2594 и подобных. Да, спасибо за ссылку. Но я тут подумал, и что-то париться не хочется, воткну лучше микроскопическую внешнюю епромку Что удивило - пишут, что епром на контроллерах класса STM32 и LM3S отсутствует из соображений снижения цены... а как-же копеечные AVR? Не, атмеловцы и правда молодцы. Сейчас вот убил свой "опытный образец" LM3S601, путём случайного переназначения ножки TRST (JTAG) на GPIO... и всё - чип работает, но его больше невозможно перепрограммировать! Разрабы пол-даташита исписали предупреждениями на этот счёт (не помогло, м-да!), но сделать дельную защиту/восстановление не захотели... Тут сразу вспомнился "неубиваемый" SAM7. Атмелу - Эх, блин, подарочек себе устроил на новый год... Теперь ждать, пока другой камень пришлют
|
|
|
|
|
Jan 1 2009, 10:14
|

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

|
Цитата(defunct @ Jan 1 2009, 08:09)  Луминаровцы "перестарались" с секурностью, через чур много всего "одноразового"  Хотя в остальном чипы очень привлекательные. Пишут, что это бага ядра - при назначении пина PB7 (альтернативная - И ГЛАВНАЯ - его функция - TRST пин JTAG) как пина GPIO житаг висит на "вечном" сбросе, и его уже нет возможности включить... по крайней мере, на ревизии B5...  Жать, что не предусмотрен пин для стирания памяти, как на сэмах. А так этот кортекс хорош - особенно маленьким 48 пиновым корпусом  И однотактовой флеш во всём диапазоне частот. Ладно, пока не приедет новый LM, поюзаю STM32, посмотрим, что за рыбка
|
|
|
|
|
Jan 1 2009, 20:06
|

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

|
Цитата(defunct @ Jan 1 2009, 23:45)  Там помимо этого есть еще "одноразовое" отключение JTAG DAP, "одноразовая" защита страницы флеш  Короче, есть проблемы, это да... причём довольно серьёзные - приходится чипы выкидывать С STM32 тоже весело - вот я не хочу пользоваться громоздкими и неудобными библиотеками для выполнения простейших действий по записи/чтению периферийных/конфигурационных регистров контроллера. Почему производитель не предоставил обычных хидеров с определениями регистров и их битов? Например, нет определений битов готовности PLL и внешнего генератора в регистре Clock control register (RCC_CR). Точнее, они есть, но в форме, пригодной только для библиотечной функции... Вот урюки! Теперь надо самому определять некоторые значения... У Luminance с этим всё в порядке
|
|
|
|
|
Jan 2 2009, 08:49
|

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

|
Попробовал STM32 на макс. быстрое переключение портов - как делал выше со Стелларисом. Получилось не менее быстро, частота под ~9МГц (несмотря на 1 wait state при чтении флэш), но форма сигнала далека от идеальной (в отличие от LM3S):
Код одинаковый в обоих случаях: Код 22: ClrPin(TEST); 0x080001D6 6148 STR r0,[r1,#0x14] 23: SetPin(TEST); 0x080001D8 6108 STR r0,[r1,#0x10] 18: while (1) 0x080001DA E7FC B 0x080001D6 STM32F103RBT6 работает на 48 МГц, от HSE через PLL, выводы GPIO настроены на макс. частоту. Полупериоды с логической единицей идут различной ширины - видимо, сказывается наличие перехода после команды установки пина. Но как-то через раз  ЗЫ: чёрт, форма импульсов просто ужасная, вольтовые выбросы - и это на олимексовской плате! Стелларис на самопальной плате смотрится гораздо симпатичнее.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|