Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STR91x - поделитесь впечатлениями
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
ek74
Хочу в новое устройство заложить STR91x (STR910FW32X). Кто-нибудь их уже реально использовал? Поделитесь впечатлениями.
VAI
Там посмотрите
http://aly.projektas.lt/Projects/STR91_Start/STR91.htm
ek74
Цитата(VAI @ Sep 7 2006, 12:34) *


Спасибо, но это я уже видел. Мне хочется большего smile.gif , так сказать "личных впечатлений" от общения с этими камнями: как ведёт себя периферия, есть ли какие ошибки (ерату я уже смотрел), ну т.д. и т.п.

Попутно еще вопрос: кто у нас (в России) этим реально торгует. Просто я делал поиск поставщиков и результаты очень меня расстроили sad.gif . Практически ноль.
AlexandrY
Цитата(ek74 @ Sep 7 2006, 12:51) *
Цитата(VAI @ Sep 7 2006, 12:34) *


Спасибо, но это я уже видел. Мне хочется большего smile.gif , так сказать "личных впечатлений" от общения с этими камнями: как ведёт себя периферия, есть ли какие ошибки (ерату я уже смотрел), ну т.д. и т.п.

Попутно еще вопрос: кто у нас (в России) этим реально торгует. Просто я делал поиск поставщиков и результаты очень меня расстроили sad.gif . Практически ноль.


Все еще не протестировал, но проблем подозрительно много.
Ошибки в документации, например, неправильно указан формат записи в регистры адресов банков Flash.
Кривизна - таймеры сбрасываются не в 0, а в 0xFFFC
Глюки - при выборе тактирования от PLL 96 МГц ULink почему-то делает ошибку при флешировании ячеек с 0x0000 по 0x0003. В других режимах шьет нормально.
Скрытая информация - например, в startupe KEIL есть следы установки регистра конфигурирования Flash, но только следы потому что непосредственой команды записи нет. В доке же говорится, что регистр доступен только по JTAG. Это напоминает ситуацию с LPC и предсказывает еще много чудных глюков.
ek74
Цитата(AlexandrY @ Sep 8 2006, 16:51) *
Все еще не протестировал, но проблем подозрительно много.


Понял, спасибо. Получается, что пока нет смысла их использовать. Обидно, уж больно "вкусный" камушек.
SGP
Я работаю с STR912 но думаю что впечатления будут справедливы и для вашего случая. Общее впечатление об контроллере: периферию делали програмисты, уж очень непривычно (мягко сказано) она выглядит. Кофигурирование портов разбросано по разным местам, но всё вроде работает. UART - FIFO прерывания сделаны криво -послав один байт вы никогда не дождётессь прерывания по передаче, один вектор прерывания на передачу и приём что не совсем удобно. В результате работаю без FIFO это оказалось проще чем дополнительно контролировать длину пакета. PLL работает, нареканий не вызвал. Таймер убогий нет даже автоперезагрузки, что существенно ограничивает его возможности. SPI -вроде бы работает, протестировал не доконца. Общее впечатление - работать можно несмотря на некоторую кособокость.
Впечатления о средствах разработки: Кеил не показывает периферию, такое впечатление что лекарство помогает не до конца. Сижу на кейле из за ULINK. Виглер подключить не удалось.
AlexandrY
Цитата(SGP @ Sep 9 2006, 08:32) *
PLL работает, нареканий не вызвал.
Впечатления о средствах разработки: Кеил не показывает периферию, такое впечатление что лекарство помогает не до конца. Сижу на кейле из за ULINK. Виглер подключить не удалось.


Вы хотите сказать, что установив fMSTR=fPLL на частоте 96 Мгц вы нормально можете включиться в отладку через ULink?
Может startup файл переписали. Или конфигурируете PLL уже где-то в приложении?
Кстати, используете ли вы стандартную библиотеку от ST или сами пишете работу с периферией?
KostyantynT
Подняли на нем USB и сетку (плата своя, два слоя). TCP/IP стек - LWIP. На внешнюю шину подключили 512 SRAM,. Полет нормальный. Мелкая серия покажет надежность кристалла в работе (у ST обычно с этим нареканий нет). Вигглер работает без проблем в CW1.5 . Сделали свои map файлы, переписали лоадер, добавили его в визард. Поменял GCC на 4.1. Смысла переползать на другие компилеры не вижу. Библиотеки используем стандартные.
AlexandrY
Цитата(КонстантинТ @ Sep 9 2006, 13:23) *
Подняли на нем USB и сетку (плата своя, два слоя). TCP/IP стек - LWIP. На внешнюю шину подключили 512 SRAM,. Полет нормальный. Мелкая серия покажет надежность кристалла в работе (у ST обычно с этим нареканий нет). Вигглер работает без проблем в CW1.5 . Сделали свои map файлы, переписали лоадер, добавили его в визард. Поменял GCC на 4.1. Смысла переползать на другие компилеры не вижу. Библиотеки используем стандартные.


А на какой частоте запустили внутреннюю FLASH?
У меня не получается сделать рестарт на 96 МГц, виснет.
А зачем лоадер переписывали, и разве есть где исходники оригинального чтобы можно было переписать?
KostyantynT
Цитата(AlexandrY @ Sep 9 2006, 13:31) *
Цитата(КонстантинТ @ Sep 9 2006, 13:23) *

Подняли на нем USB и сетку (плата своя, два слоя). TCP/IP стек - LWIP. На внешнюю шину подключили 512 SRAM,. Полет нормальный. Мелкая серия покажет надежность кристалла в работе (у ST обычно с этим нареканий нет). Вигглер работает без проблем в CW1.5 . Сделали свои map файлы, переписали лоадер, добавили его в визард. Поменял GCC на 4.1. Смысла переползать на другие компилеры не вижу. Библиотеки используем стандартные.


А на какой частоте запустили внутреннюю FLASH?
У меня не получается сделать рестарт на 96 МГц, виснет.
А зачем лоадер переписывали, и разве есть где исходники оригинального чтобы можно было переписать?


96 МГц и два вайтстейта. Переписали стандартный лоадер, входящий в комплект CW1.5.
AlexandrY
Цитата(КонстантинТ @ Sep 9 2006, 14:06) *
96 МГц и два вайтстейта. Переписали стандартный лоадер, входящий в комплект CW1.5.


Так какая там производительность из FLASH у вас получилась. Меньше чем у LPC ?
Как нибудь с чем нибудь по скрости сравнивали?
KostyantynT
Членометрией не занимались, нет времени :-) Субъекnивно - быстрее, с учетом наличия DMA стек работает быстрее.
AlexandrY
Цитата(КонстантинТ @ Sep 9 2006, 14:25) *
Членометрией не занимались, нет времени :-) Субъекnивно - быстрее, с учетом наличия DMA стек работает быстрее.

А почему тогда выбрали STR91? У него только одно преимущество и есть - скорость. Но и та под сомнением.
Или вам уже поздно с него слезать? wink.gif
AlexandrY
Кстати, обнаружил, что програмный такт у STR в 1.4 раза длинее чем у LPC при выполнении из RAM.
Т.е. если симулятор для LPC покажет 60 000 000 тактов при выполнении процедуры, а потом измерить это время при выполнении на мекете с частотой ядра 60 Мгц то получим ровно 1 сек. Для STR91 получим 1.4 сек при выполнении из области DTCM RAM, а из области мапированной на AHB RAM еще длинее.
KostyantynT
Для нашего применения у него есть на борту вся периферия. Будет время - запустим тесты, проверим скорость. Того что есть хватает с головой.
ek74
А АЦП у них кто-нибудь проверял, как оно работает и соответствует ли документации (Throughput Rate fADC = 25 MHz 1400 ksps)
AlexandrY
Цитата(ek74 @ Sep 11 2006, 10:40) *
А АЦП у них кто-нибудь проверял, как оно работает и соответствует ли документации (Throughput Rate fADC = 25 MHz 1400 ksps)


АЦП мне понравился. Работает надежно.
Разгонял STR912FW44 до 133 Мгц, делал предделитель у АЦП = 1 т.е. подавал все 133 Мгц, а он продолжал работать как ни в чем не бывало. Только показания ушли где-то на пол бита по сравнению с показаниями на 25 МГц. Измерял среднее и среднеквадратическое на 1000 отсчетов.
Линейность АЦП я не проверял, но оверсамплингом легко можно добиться 4-х стоячих десятичных разрядов на середине шкалы (1.5 В).
Среднеквадратическое на 1000 отсчетов на всем диапазоне входных напряжения не превышало 0.25 бита
Проверял на переменном резисторе 10К на eval плате от ST. Ревизия кристалла - D
SGP
Ulink нормально работает на 96MHz, единствунный ньюанс, при первом включении компютера не находит его и приходится каждый раз передёргивать USB разьём. Тайминги все стоят по умолчанию я их не трогал. KEIL версии 3.02, с 3.00 будет виснуть.
ek74
Ещё вопрос, вернее проясните ситуацию с таймерами.

To AlexandrY: Вы пишите таймеры сбрасываются не в 0, а в 0xFFFC, т.е. имеется в виду вот это - Writing in the TIM_CNTR register resets the free running counter to the FFFCh value (STR91xF reference manual, стр. 126). Судя по тому, что регистр TIM_CNTR доступен только на чтение, запись в него любого значения приводит к сбросу регистра счёта в состояние 0xFFFC. Я правильно понял?

To SGP: Что Вы имели ввиду - Таймер убогий нет даже автоперезагрузки?
AlexandrY
Цитата(ek74 @ Sep 12 2006, 12:08) *
Ещё вопрос, вернее проясните ситуацию с таймерами.

To AlexandrY: Вы пишите таймеры сбрасываются не в 0, а в 0xFFFC, т.е. имеется в виду вот это - Writing in the TIM_CNTR register resets the free running counter to the FFFCh value (STR91xF reference manual, стр. 126). Судя по тому, что регистр TIM_CNTR доступен только на чтение, запись в него любого значения приводит к сбросу регистра счёта в состояние 0xFFFC. Я правильно понял?


Да именно так, записываю туда че нить, а он сбрасывается в 0xFFFC. Немного неудобно.
В фирменной библиотеке туда пишут 0x1234 почему-то. Я писал 0 - тот же эффект.

Отсутствие автоперегрузки (наверно произвольным значением имелось в виду) счетчика таймера не такой уж и сильный недостаток, compare логика и четыре блока таймеров вполне позволяет его приодолеть для формирования произвольных временных интервалов.
Но счетчики 16-и разрядные, вот это неудобство.
Зато есть источник тактирования от RTC независимый от тактовой ядра с периодом тиков очень удобным при портировании RTOS.
Еще ценное свойство - остановка периферии и счетчиков в том числе при захвате ядра JTAG-ом. Такого ни у кого из uC на ARM-ах еще не видел.
Вообщем, по периферии, по моему, паритет с конкурентами.
Dainis
Цитата(AlexandrY @ Sep 12 2006, 19:09) *
Еще ценное свойство - остановка периферии и счетчиков в том числе при захвате ядра JTAG-ом. Такого ни у кого из uC на ARM-ах еще не видел.


Netsilicon NS9xxx тоже это умеет.
ek74
Да, с таймерами они немного перемудрили smile.gif , ну да бог с ними. Короче созрел я, буду брать STR91X-SK/KEI и штук 5 камней на попробовать. Посмотрю, может не всё так страшно smile.gif
sensor_ua
Собрался применить 911. КонстантинТ посоветовал. Отказался от LPC2138 - нужно хранящееся от батарейки SRAM, хотя USB, CAN и Ethernet не нужны. Жалко только, что таймеры кривоваты, чуть некрасивше потребление и отсутсвует встроенный стабилизатор напряжения ядра.
zltigo
Цитата(sensor_ua @ Sep 28 2006, 21:52) *
Отказался от LPC2138 - нужно хранящееся от батарейки SRAM

LPC23xx уже в прайслистах появились, скоро и живьем появятся - это к вопросу о SRAM с батарейкой.
sensor_ua
Цитата(zltigo @ Sep 28 2006, 23:29) *
Цитата(sensor_ua @ Sep 28 2006, 21:52) *

Отказался от LPC2138 - нужно хранящееся от батарейки SRAM

LPC23xx уже в прайслистах появились, скоро и живьем появятся - это к вопросу о SRAM с батарейкой.

Спасибо, смотрел уже. Там только 2К от батарейки можно держать. Неплохо, конечно, но мне нужно больше 32К. Как вариант делал "мюнхаузеновскую схему" горячей отключаемой подпитки LPC2138 от батарейки и на один из SPI вешал FRAM для перегрузки содержимого ОЗУ перед отключением. В принципе могло бы и устроить, но аккуратности с программой требуется побольше, чем у наших программистов;(
SGP
Проблема с прерываниями Имеется контроллер STR912FW44X6 ревизия D код 610. Одновременно работают таймер TIM3, АЦП и UART1. Таймер и ацп заведены на VIC0, UART1 подключён к VIC1.Обработчики прерываний написаны на С Кеil_3.02. При интенсивном обмене по UART1, на скорости 115200 выкачивается содержимое ОЗУ, происходит вылет программы на нулевой адрес в режиме IRQ. По отдельности всё работает. Перенос UART1 на FIQ нечего не дал. Иследования показали что дело скорее всего в арбитраже между VIC0 и VIC1. Чтото похожее описывается в ерате: "2.1 VIC interrupt controller wrong vector fetch."Хотелось бы услышать мнение общества: кто нибудь сталкивался с подобной проблемой или первопричина в кривизне моей программы.
Andy_ry
Цитата(SGP @ Oct 11 2006, 07:39) *
Проблема с прерываниями

Та же ерунда и у меня! Когда использую прерывания одного контроллера - всё нормально, если задействую оба - вылетает. Эта проблема уже почти год обсуждается в форуме ST (английский). Одни говорят, что в новых ревизиях этой проблемы уже нет. Другие снова обнаруживают... Может проблема уже решена?
SimpleSoft
Цитата(Andy_ry @ Feb 5 2008, 16:27) *
Та же ерунда и у меня! Когда использую прерывания одного контроллера - всё нормально, если задействую оба - вылетает. Эта проблема уже почти год обсуждается в форуме ST (английский). Одни говорят, что в новых ревизиях этой проблемы уже нет. Другие снова обнаруживают... Может проблема уже решена?


Меня както просвещал AlexandrY:

Цитата
1. Обязательно считывать вектора из обоих VIC во время прерывания, а то зависнет VIC. А прога будет крутиться дальше.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.