Jump to content

    
Sign in to follow this  
starmos

STM32 или LPC17xx?

Recommended Posts

Оба семейства мне подходят (и на сейчас есть что выбрать и на перспективу). Я было выбрал STM32F103 по цене, но прочитал здесь про STM отзывы аж с 2008 сколько смог и приуныл. Глюки в документации, работа с периферией через библиотеки, а если нет (как я обычно), то недокументировано и т.д. Версия ядра с глюками... Кто сейчас активно их использует - изменилось что-нибудь в лучшую сторону или только цена привлекает по прежнему? Или LPC понадежней будет?

И заодно, с LPC23xx наверное уже не стоит связываться в свете наличия Cortex'ов?

Share this post


Link to post
Share on other sites

По поводу STM32 - необходимость расковыривать библиотеки для того, чтобы написать нормальный код, действительно огорчает. Но к этому быстро привыкаешь (ИМХО). Кроме того - не вполне настоящий DMA - в смысле того, что он не имеет своей шины. Но в остальном - вполне рабочая лошадка.

Share this post


Link to post
Share on other sites
Оба семейства мне подходят (и на сейчас есть что выбрать и на перспективу). Я было выбрал STM32F103 по цене, но прочитал здесь про STM отзывы аж с 2008 сколько смог и приуныл. Глюки в документации, работа с периферией через библиотеки, а если нет (как я обычно), то недокументировано и т.д. Версия ядра с глюками... Кто сейчас активно их использует - изменилось что-нибудь в лучшую сторону или только цена привлекает по прежнему? Или LPC понадежней будет?

Приунывать - не стоит. Правда я не работал с LPC17xx, но документация на STM32F (user manual) вполне приличная. Просто сам контроллер, в плане переферии, уж больно навороченный. Поэтому сложно разобраться и нюансов возникает куча. Есть и некоторые вопросы к разработчикам. Например по целессообразности и т.п.

 

Работа с библиотеками - ваше дело. Я попробовал работать ч/з них. С одной стороны - общий подход и стиль. Развитие дальнейшее. Очень большой объём описаний. Особенно учитывая что средний переферийный блок - 20-30 регистров. То есть с одной стороны - большой объём проделанной работы за вас. С другой - они не могут писать на все случаи жизни. То есть иногда - хочется переписать либо изменить. Универсальность также привела к большому колличеству избыточного кода. Ещё один очень отрицательный момент - это очень слабое описание ф-ций. Точнее - функции описаны не до уровня работы железа. Таким образом для работы с библиотекой один фиг надо сначала прочитать мануал, разобраться в нём, понять что нужно сделать, потом перечитать описание библиотеки и подобрать средства - как именно сделать то, что ты хочешь, с помощью данной библиотеки. Не помешает также посмотреть и примеры приведённые.

Отдельный момент, что очень слабо в мануале просматриваются взаимосвязи. Ну скажем, читаешь какой-нибудь АЦП. Разобрался - настроил - а он не работает. Оказывается в RCC надо ему частоту подать. И там это описано, а в самом ADC - нет. (Это я для примера).

 

Ошибку я одну нашёл но только не в библиотеке, а в примере. Причём пример какой-то левый.

 

Я не претендую на полноту картины, и, пока, мало работал с контроллером, но, просто объективности ради хотел пару слов здесь привести.

 

Ну и ещё из того что мне нравится - один кристалл - много корпусов. Кристалл достаточно дубовый. Так мне на порт завели 8 ног 24V ч/з резистор 1к (входы). Я практически полностью отладил прогу, покак он задымился. Понравилась мне и возможность работы с 5V сигналами. В частности на плате MBI5168, полевики с 5V, и умудрились ресивер CAN поставить 5V. Всё удалось запустить лишь навесив резисторы подпоры.

Share this post


Link to post
Share on other sites

Малое потребление мне не критично, а вот хорошее описание, пусть и на английском - да. Так что похоже все же LPC, тем более что я последние проекты делал на LPC21xx/22xx. Кроме этого я тут обнаружил что не все выводы портов STM32 совместимы с 5V. Спасибо за советы.

Share this post


Link to post
Share on other sites
работа с периферией через библиотеки, а если нет (как я обычно), то недокументировано

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

тоесть хотите сказать,что в документации регистры периферии не описаны?

посмотрел док. "RM0008 Reference manual STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx advanced ARM-based 32-bit MCUs" - описание регистров есть. сильно не вникал правда

с либами работать не планирую, все чиство вручную...

 

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

Share this post


Link to post
Share on other sites
... а вот хорошее описание, пусть и на английском - да. .... Кроме этого я тут обнаружил что не все выводы портов STM32 совместимы с 5V.

 

 

тоесть хотите сказать,что в документации регистры периферии не описаны?

 

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

 

Не совместимы с 5V линии ADC. По-моему, там этого и не должно быть.

PS: Посмотрел LPC13xx - действительно у них все ноги толерантны.

 

Share this post


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

спасибо. прикуплю парочку данных девайсов на пробу ;)

 

Не совместимы с 5V линии ADC. По-моему, там этого и не должно быть.

согласен

Share this post


Link to post
Share on other sites
тоесть хотите сказать,что в документации регистры периферии не описаны?...

 

Описаны, конечно... Только мне этого не хватило. Без текстов библиотек до нужной степени не разобрался. Но допускаю, что это только мои проблемы...

Share this post


Link to post
Share on other sites
Глюки в документации, работа с периферией через библиотеки, а если нет (как я обычно), то недокументировано и т.д. Версия ядра с глюками...

Использую STM32, раньше доводилось использовать STR710. Глюков в документации не встречал, библиотеки для периферии никогда не применял, ничего недокументированного не встречал, глюков ядра не видел. Откуда все эти страшилки?

Share this post


Link to post
Share on other sites

Может офф, но я работал с LPC17xx - документация отличная. Пытался работать с STM32 - не так притягивает. Если кто будет пользоваться библиотекой CMSIS - будьте внимательны, очень много багов.

Share this post


Link to post
Share on other sites
Глюков в документации не встречал...

С USB, наверно, не работали? В режиме двойной буферизации для bulk endpoints?

Описание регистров Transmission\Reception byte count для этого режима не соответствует действительности :(

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