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

 
 
4 страниц V  « < 2 3 4  
Reply to this topicStart new topic
> 3xSPI в небольшом корпусе, В TQFP64 или меньше?
sonycman
сообщение Dec 18 2008, 01:43
Сообщение #46


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

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



Цитата(koyodza @ Dec 17 2008, 23:00) *
Не выше 2,5МГц
И STM32 дает далеко не самый плохой результат
Шина АРВ2 тоже 72МГц
И забудьте про такты, здесь всё несколько иначе: количество тактов непостоянно

2,5 МГц? Ну это просто позорище. А я ещё думал про софтовый SPI...
Go to the top of the page
 
+Quote Post
koyodza
сообщение Dec 18 2008, 09:19
Сообщение #47


Местный
***

Группа: Свой
Сообщений: 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 свет клином не сошелся, ищите и обрящете smile.gif
Go to the top of the page
 
+Quote Post
sonycman
сообщение Dec 18 2008, 09:36
Сообщение #48


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

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



Да, я уже практически определился. Буду моделировать на стартер ките со "средним" STM32, а потом, если не хватит памяти (или возникнут проблемы с USART в роли SPI), заменю камень на более "заряженный" smile.gif
Ещё неплохие кортексы LM3S..., жаль только, что у них UART без синхронного режима - третий последовательный кканал негде взять sad.gif

Спасибо всем за советы!
Go to the top of the page
 
+Quote Post
sonycman
сообщение Dec 28 2008, 21:15
Сообщение #49


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

Группа: Свой
Сообщений: 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 ма, а я стабилизатор для макетки всего на сотню поставил, работает на пределе smile.gif

ЗЫ: ещё хотел спросить - на данном арме нет епром, а надо изредка перезаписывать несколько десятков байт конфигурации.
Что посоветуете - поставить внешнюю мелкую епромку, или использовать одну страницу (1 килобайт) программной памяти контроллера?
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Dec 29 2008, 11:03
Сообщение #50


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Цитата(sonycman @ Dec 29 2008, 00:15) *
или использовать одну страницу (1 килобайт) программной памяти контроллера?


У нее ресурс меньше на несколько порядков. Так что если часто перезаписывать - наверно лучше епромину. А если конфигурация, калибровочные таблицы, котрые меняютяся от силы раз тысячу за все время службы устройства- то можно и флешью обойтись.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
koyodza
сообщение Dec 31 2008, 20:07
Сообщение #51


Местный
***

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



Цитата
нет епром, а надо изредка перезаписывать несколько десятков байт конфигурации.
Что посоветуете - поставить внешнюю мелкую епромку, или использовать одну страницу (1 килобайт) программной памяти контроллера?

Этот вопрос довольно оригинально решен у ST в AN2594 и подобных.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Dec 31 2008, 23:18
Сообщение #52


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

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



Цитата(koyodza @ Jan 1 2009, 00:07) *
Этот вопрос довольно оригинально решен у ST в AN2594 и подобных.

Да, спасибо за ссылку. Но я тут подумал, и что-то париться не хочется, воткну лучше микроскопическую внешнюю епромку smile.gif
Что удивило - пишут, что епром на контроллерах класса STM32 и LM3S отсутствует из соображений снижения цены... а как-же копеечные AVR?

Не, атмеловцы и правда молодцы. Сейчас вот убил свой "опытный образец" LM3S601, путём случайного переназначения ножки TRST (JTAG) на GPIO... и всё - чип работает, но его больше невозможно перепрограммировать!
Разрабы пол-даташита исписали предупреждениями на этот счёт (не помогло, м-да!), но сделать дельную защиту/восстановление не захотели...
Тут сразу вспомнился "неубиваемый" SAM7. Атмелу - a14.gif


Эх, блин, подарочек себе устроил на новый год... crying.gif
Теперь ждать, пока другой камень пришлют 05.gif
Go to the top of the page
 
+Quote Post
defunct
сообщение Jan 1 2009, 04:09
Сообщение #53


кекс
******

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



Цитата(sonycman @ Jan 1 2009, 01:18) *
Сейчас вот убил свой "опытный образец" LM3S601, путём случайного переназначения ножки TRST (JTAG) на GPIO... и всё - чип работает, но его больше невозможно перепрограммировать!
Разрабы пол-даташита исписали предупреждениями на этот счёт (не помогло, м-да!), но сделать дельную защиту/восстановление не захотели...

Луминаровцы "перестарались" с секурностью, через чур много всего "одноразового" sad.gif
Хотя в остальном чипы очень привлекательные.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jan 1 2009, 10:14
Сообщение #54


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

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



Цитата(defunct @ Jan 1 2009, 08:09) *
Луминаровцы "перестарались" с секурностью, через чур много всего "одноразового" sad.gif
Хотя в остальном чипы очень привлекательные.

Пишут, что это бага ядра - при назначении пина PB7 (альтернативная - И ГЛАВНАЯ - его функция - TRST пин JTAG) как пина GPIO житаг висит на "вечном" сбросе, и его уже нет возможности включить... по крайней мере, на ревизии B5... crying.gif

Жать, что не предусмотрен пин для стирания памяти, как на сэмах.
А так этот кортекс хорош - особенно маленьким 48 пиновым корпусом smile.gif
И однотактовой флеш во всём диапазоне частот.

Ладно, пока не приедет новый LM, поюзаю STM32, посмотрим, что за рыбка smile.gif
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jan 1 2009, 17:42
Сообщение #55


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

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



Хм, SPI в STM32 поддерживает всего два формата передачи - 8 бит и 16 бит.
А моему ЖКИ на это плевать, ему подавай 9 бит sad.gif

Мда, стыдно, ARM и такой примитивный SPI, придётся как на AVR изголяться с девятым битом... smile.gif
Go to the top of the page
 
+Quote Post
defunct
сообщение Jan 1 2009, 19:45
Сообщение #56


кекс
******

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



Цитата(sonycman @ Jan 1 2009, 12:14) *
Пишут, что это бага ядра - при назначении пина PB7 (альтернативная - И ГЛАВНАЯ - его функция - TRST пин JTAG) как пина GPIO житаг висит на "вечном" сбросе, и его уже нет возможности включить... по крайней мере, на ревизии B5... crying.gif

Там помимо этого есть еще "одноразовое" отключение JTAG DAP, "одноразовая" защита страницы флеш sad.gif
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jan 1 2009, 20:06
Сообщение #57


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

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



Цитата(defunct @ Jan 1 2009, 23:45) *
Там помимо этого есть еще "одноразовое" отключение JTAG DAP, "одноразовая" защита страницы флеш sad.gif

Короче, есть проблемы, это да... причём довольно серьёзные - приходится чипы выкидывать twak.gif

С STM32 тоже весело - вот я не хочу пользоваться громоздкими и неудобными библиотеками для выполнения простейших действий по записи/чтению периферийных/конфигурационных регистров контроллера.
Почему производитель не предоставил обычных хидеров с определениями регистров и их битов?
Например, нет определений битов готовности PLL и внешнего генератора в регистре Clock control register (RCC_CR).
Точнее, они есть, но в форме, пригодной только для библиотечной функции...
Вот урюки! sad.gif

Теперь надо самому определять некоторые значения...

У Luminance с этим всё в порядке smile.gif
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jan 2 2009, 08:49
Сообщение #58


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

Группа: Свой
Сообщений: 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 настроены на макс. частоту.
Полупериоды с логической единицей идут различной ширины - видимо, сказывается наличие перехода после команды установки пина. Но как-то через раз smile.gif

ЗЫ: чёрт, форма импульсов просто ужасная, вольтовые выбросы - и это на олимексовской плате!
Стелларис на самопальной плате смотрится гораздо симпатичнее.
Go to the top of the page
 
+Quote Post
koyodza
сообщение Jan 2 2009, 21:19
Сообщение #59


Местный
***

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



Цитата(sonycman @ Jan 2 2009, 10:49) *
форма импульсов просто ужасная, вольтовые выбросы - и это на олимексовской плате!

Нет там таких выбросов. Это у Вас осциллограф какой-то неправильный. Или земля подключена через ж... USB-кабель.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jan 2 2009, 21:27
Сообщение #60


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

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



Цитата(koyodza @ Jan 3 2009, 01:19) *
Нет там таких выбросов. Это у Вас осциллограф какой-то неправильный. Или земля подключена через ж... USB-кабель.

Не исключаю. Однако условия одинаковые - один и тот же осциллограф и одни и те-же кабели.
Разные только платы и чипы.
Разница - налицо smile.gif
Go to the top of the page
 
+Quote Post

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

 


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


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