Jump to content

    
Sign in to follow this  
zltigo

STM32F103xxx от ST

Recommended Posts

Сегодня попал мне в руки

http://www.st.com/mcu/contentid-105-110-STM3210B_PRIMER.html

http://www.stm32circle.com/resources/stm32primer.php

в качестве демоборды, всвязи с этим ознакомился с STM32F103 стоящем у него в потрохах. Очень достойный контроллер на первый взгляд. 72MHz, питание начиная с 2V, достаточно скромные милиамперы. Набор прериферии джентельменский по 2-3 UART, SPI, I2C, Timer, CAN, RTC, USB. Куча PWM и ADC. Из необычного - встроенный термодатчик. Для любителей помахать ножками тоже не плохо - 18MHz. Продвинутый контроллер прерываний и 16! внешних источников прерываний (ох как я несколько раз выкручивался с 4 штуками у LPC21xx :( ). Памяти, которой никогда много не бывает :(, правда 128 FLASH и 20 RAM по максимуму. Но все это в ценовой категории 4-5-6 баксов!

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

Share this post


Link to post
Share on other sites

Самое интересное, что каких-то выдающихся показателей по удельной производительности и плотности кода в STM32 обнаружить не удалось.

 

http://aly.projektas.lt/Tests/AllCPU/WhetsRes.htm#4

 

 

Как оказалось защита памяти расхваленная в Cortex-M3 тоже в большинстве реальных чипов не реализуется.

 

Но это так, ложка дегтя. :laughing:

 

STM32 во всяком случае сильно переплюнул Luminary.

 

 

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

Share this post


Link to post
Share on other sites
Самое интересное, что каких-то выдающихся показателей по удельной производительности и плотности кода в STM32 обнаружить не удалось.

Думаю, что за пару недель найду время свое портировать и тестики погонять, тогда и доложусь, что получилось.

STM32 во всяком случае сильно переплюнул Luminary.

Это понятно, и время прошло со времени первой ласточки, и фирма мощнее, и планку они себе изначально повыше определили.

Share this post


Link to post
Share on other sites

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

Если в плане помехоустойчивости STM32 будет хотя бы близок к PIC - однозначно перепрыгну на него.

Ну и ковыряться с первыми версиями кристаллов как-то не хочется: хоть STM и не NXP, но нет никаких гарантий, что в очередной еррате они не признаются, типа, "а проц может и не запуститься, пока вы не навесите на него это и то... или выкиньте купленную партию и юзайте след. версию кристалла".

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

Share this post


Link to post
Share on other sites

Кто продает их в Украине?

 

Судя по описаниям ядра - очень привлекательно.

Интересует также информация о применении GCC - есть/нет, версия.

А так-же плюсы и минусы THUMB2 на практике. А то THUMB расписан золотом а на практике IMHO проиграш скорости затмевает выиграш компактности.

Share this post


Link to post
Share on other sites
Интересует также информация о применении GCC - есть/нет, версия.

Есть. Пробовал 4.2.1

А так-же плюсы и минусы THUMB2 на практике.

Да ерунда все эти нюансы по большому счету. Тем более для Cortex вариантов не предусмотрено :). В принципе явно не хуже THUMB, хотя-бы отсутствием дергания между ARM/THUMB и наличием 32bit кодов, там, где нужно.

Со скоростью из FLASH, конкретно у ST думаю ничего особо шустрого нет - скорее всего, предполагаю, максимум, что есть это выбор одновременно двух команд из 32 из FLASH порядка 70ns. Хотя, конечно, надо будет и почитать рекламу и попробовать....

Share this post


Link to post
Share on other sites
Интересует также информация о применении GCC - есть/нет, версия.

усЁ есть! поддерживается thumb2 в общем случае, в частном можно подтюнить ключиками под armv7-a/r/m/a8/r4/m3

Share this post


Link to post
Share on other sites
А так-же плюсы и минусы THUMB2 на практике. А то THUMB расписан золотом а на практике IMHO проиграш скорости затмевает выиграш компактности.

Попробовал немножко кода скомпилить IAR-ом в THUMB2 - по компактности выигрыш почти 9% по сравнению с THUMB. На живое железо пока не вышел, посему о быстродействии ничего не скажу.

Share this post


Link to post
Share on other sites

Это из CrossWorks STM32F10x_Startup.s:

 

/*****************************************************************************

* Preprocessor Definitions

* ------------------------

*

* STARTUP_FROM_RESET

*

* If defined, the program will startup from power-on/reset. If not defined

* the program will just loop endlessly from power-on/reset.

*

* This definition is not defined by default on this target because the

* debugger is unable to reset this target and maintain control of it over the

* JTAG interface. The advantage of doing this is that it allows the debugger

* to reset the CPU and run programs from a known reset CPU state on each run.

* It also acts as a safety net if you accidently download a program in FLASH

* that crashes and prevents the debugger from taking control over JTAG

* rendering the target unusable over JTAG. The obvious disadvantage of doing

* this is that your application will not startup without the debugger.

*

* We advise that on this target you keep STARTUP_FROM_RESET undefined whilst

* you are developing and only define STARTUP_FROM_RESET when development is

* complete.

*

*****************************************************************************/

 

Чья проблема - Cortex или CrossWorks?

Share this post


Link to post
Share on other sites
Чья проблема - Cortex или CrossWorks?
CW. Та же проблема у него с остальными ARM, хотя все другие отладчики останавливают ядро на лету без циклов. И опять же остается непонятность - ведь хоть и в цикле, но программа крутится, так чем же такой останов отличается от останова при выполнении другой части программы?

Share this post


Link to post
Share on other sites
так чем же такой останов отличается от останова при выполнении другой части программы?

 

 

 

Тут у человека в соседней ветке lpc "заклинило", потому что у него WatchDog включается раньше, чем отладчик успевает перехватить управление... Таких примеров много. Уж лучше так.

Share this post


Link to post
Share on other sites
Тут у человека в соседней ветке lpc "заклинило", потому что у него WatchDog включается раньше, чем отладчик успевает перехватить управление... Таких примеров много. Уж лучше так.
Спорный вопрос. Встречается рекомендация делать при старте задержку ~0.5c, а уже потом запускать такую критичную периферию. Мне тоже удавалось отключить JTAG записью в P2SEL - один раз записал, с загрузчиком через терминалку пообщался - запомнил надолго. Теперь эти биты в исходнике особо закомментированы. С собакой хорошо сделано у атмела - на время останова отладчиком собака тоже тормозится. И зачем при работе с ним весь этот геморрой с #define?

Share this post


Link to post
Share on other sites
Уж лучше так.
Да, вы правы - это заглушка от подобных неприятных последствий некоторых действий. Сегодня на сахаре проскочила ссылка, где в конце они пишут, что могут остановить проц на всем скаку в любой момент.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this