Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: С чего начать?
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Страницы: 1, 2, 3
internal enemy
Здравствуйте!
Хочу освоить программирование контроллеров и на работе тоже этого жаждут. Я программист, однако, к сожалению, с "железом" никогда не работал.
Почитав форумы включая этот нашел что хвалят Freescale, но я все равно без помощи не разберусь. Хотел бы взять отладочную плату для Cortex-M4, с экраном, USB, Ethernet, CAN, ЦАП/АЦП. Пока незнаю что еще может понадобиться. Хочется бесплатную IDE от производителя (пускай с ограничениями) работающую под Linux и встроенные средства отладки (если такое бывает).
Получается если связываться с freesale, то мне нужно брать плату Kinetis K70 120 MHz Tower System Module и остальеное докупать отдельно (экран, Ethernet)?
Это вооще реально купить в РФ в связи с санкциями?

Наверное, подобные темы уже раздражают, поэтому прошу меня простить.
A. Fig Lee
Лучше брать то, с чем все работают. Вопросы то задавать будете?
А это STM32
SII
Ну, с STM32 работают не все (я, например, работаю с NXPшными МК), хотя это действительно самые популярные МК. А вот фрискейловские или ТИшные встречаются весьма редко, насколько можно судить по форумам. Так что с этой точки зрения, пожалуй, для начала лучше выбирать либо STM32, либо NXP, либо Atmel (в порядке снижения их популярности).
=AK=
Цитата(internal enemy @ Jan 6 2015, 07:31) *
Почитав форумы включая этот нашел что хвалят Freescale

Кто это хвалит Freescale? Ни разу не видел. "Дешевка, она и есть дешевка" (с). Процессоры Freescale в настоящий момент дешевле конкурентов, а объясняется это, я полагаю, во-первых тем, что они долго раскачивались с Кинетисами и опоздали на рынок мелких ARM, а во-вторых тем, что с Кинетисами неудобно работать - и дока кривая, и глюки с ними какие-то. Так что с Фрискэйлами лучше иметь дело не начинающим, а наоборот, матерым арм-пользователям, у которых светит большая серия, а потому цена процев играет большую роль, а геморрой использования - маленькую.

Вот есть, к примеру, такой сайт mbed, где можно делать разработку официально нахаляву, не покупая ни компилятора, ни программатора/отладчика. Единственно что нужно - купить отладочную плату, одну из перечисленных. Купил я три платы из списка, LPC1768, KL25Z и L152RE. Ни с LPC1768, ни с L152RE - никаких проблем, работают с полпинка. А вот фрискэйловская KL25Z некоторое время вроде как работала, однако с тех пор как я перешел с WinXP на Win8 - накрылась медным тазом и работать перестала. Тaк что - в топку этот мусор.
jartsev
Цитата(internal enemy @ Jan 6 2015, 01:01) *
Здравствуйте!
Хочу освоить программирование контроллеров и на работе тоже этого жаждут.


Для начинающего лучше осваивать микроконтроллеры, которыми пользуются куча народа. Выбирай на вкус: http://electronix.ru/forum/index.php?showforum=74

Я к примеру пользуюсь PIC-ами уже лет 7. Для моих задач выше крыши, хотя есть и неприятные особенности.


internal enemy
Вообще с самого начала я нацелился на NXP. Поставил lpcxpresso IDE бесплатную версию. Не сказать что IDE логичная, но пользоваться можно. Радует что кросс-компилятор GNU. Стал читать раздел manual-а по GPIO. В принципе все понять можно, тем более много уроков, статей, можно почитать форумы. Потом на stackexchange вычитал что у Freescale лучшая поддержка. В принципе продолжить изучать NXP мне даже сподручнее, потому что я уже начал разбираться.

Тогда по NXP вопрос - если я возьму такую плату то с помощью чего ее прошивать и отлаживать?

Цитата(=AK= @ Jan 6 2015, 07:03) *
Вот есть, к примеру, такой сайт mbed, где можно делать разработку официально нахаляву, не покупая ни компилятора, ни программатора/отладчика.

mbed это высокоуровневая библиотека? Что-то не люблю начинать с таких вещей - ощущение от них что от меня все с прятали. Хотя, может я напрастно так.

AlexandrY
Цитата(internal enemy @ Jan 5 2015, 23:01) *
Здравствуйте!
Хочу освоить программирование контроллеров и на работе тоже этого жаждут. Я программист, однако, к сожалению, с "железом" никогда не работал.
Почитав форумы включая этот нашел что хвалят Freescale, но я все равно без помощи не разберусь. Хотел бы взять отладочную плату для Cortex-M4, с экраном, USB, Ethernet, CAN, ЦАП/АЦП. Пока незнаю что еще может понадобиться. Хочется бесплатную IDE от производителя (пускай с ограничениями) работающую под Linux и встроенные средства отладки (если такое бывает).
Получается если связываться с freesale, то мне нужно брать плату Kinetis K70 120 MHz Tower System Module и остальеное докупать отдельно (экран, Ethernet)?
Это вооще реально купить в РФ в связи с санкциями?

Наверное, подобные темы уже раздражают, поэтому прошу меня простить.


Kinetis это правильный выбор.
Самая широкая линейка предложений, самая развитая поддержка разработки firmware.
В проекте embed они тоже участвуют.

Наш форум конечно популярный, но вообще он не может служить показателем популярности чего либо кроме себя.
Смотреть надо на активность форумов производителей. Форум Freescale один из самых оживленных.

Tower System хорошее решение, может кого-то привлекает его необычность, но на мой взгляд все очень громоздко и не юзабельно.
Как подступиться к внутренней плате в такой конструкции? Ни померить что-то на внутренних платах, ни встроить в стандартный корпус.
И уж больно усложнено. Надо докупать платы. Для Wi-Fi одна плата, для USB FS - другая, для USB HS - третья, дисплей тоже другая плата.
Все вместе одновременно не может работать. Очень много конфигурационных всяких перемычек.

Если что то могу предложить свою плату:
Нажмите для просмотра прикрепленного файла

На ней стоит два микроконтроллера MK70 и MK60.
Идеально подходит для отладки межпроцессорного обмена. Поскольку эта фича нынче в тренде и только будет набирать обороты.
Все есть: Ethernet, Wi-Fi, USB HS, USB OTG, USB FS.
Есть аппаратный сдвоенный USB HS virtual COM порт, т.е. работа через терминал с UART-ами обоих микроконтроллеров на скорости более 10 мбит без необходимости писать вообще какой либо софт.
Эти же порты конфигурируются как SPI-USB мосты и могут напрямую программировать оба голых чипа одновременно с PC, без JTAG и проч. аппаратных адаптеров.
Есть плата дисплея - http://www.indemsys.ru/armgs-hmi21. Эта плата совместима с предыдущими моими проектами.

На плату портирована RTOS MQX с TCP стеком, файловой системой на SD карте и NAND и проч. Есть специальные проекты тестов платы.






internal enemy
Чем прошивать NXP я вроде нашел

AlexandrY
Спасибо! Вот есть над чем подумать. Про Tower System больше всего ненравится "надо докупать платы" и "Все вместе одновременно не может работать" совершенно не понравилось.
Lmx2315
..нет ничего лучше чем атмега и самый удобный компилятор - Codevision.
=AK=
Цитата(internal enemy @ Jan 6 2015, 17:39) *
mbed это высокоуровневая библиотека?

Нет, mbed - это полная среда разработки он-лайн: IDE, компилятор, репозиторий, библиотеки, и т.п. Их подход в чем-то напоминает Arduino. Очень удобно для быстрого старта/освоения, при этом всегда есть возможность перейти в обычную среду разработки.

Цитата(AlexandrY @ Jan 6 2015, 17:39) *
Смотреть надо на активность форумов производителей. Форум Freescale один из самых оживленных.

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

Можно вспомнить, что фрискэйловские 16-битники НС12 были очень глюкавыми. Мой товарищ их юзал и плевался.
Dog Pawlowa
Цитата(=AK= @ Jan 6 2015, 11:39) *
Оживленность форума производителя вполне может быть свидетельством проблем с железом и паршивой документации.

... и странных подходов к поддержке:

Thank you for your interest in Freescale Semiconductor products and the opportunity to serve you.

We attempt to provide good and responsive technical support through the community, especially if a question seems to be not customer specific and not requiring to reveal confidential details. This builds up the publicly available knowledge for everyone. Your question seems to be suitable to be handled in the community space or might have been answered previously already.

Please first use the Freescale community at https://community.freescale.com/ and search for previously asked and answered questions. You are welcome to submit your question through our Community.

До этого я спросил на этом Community, никакого ответа не получил.

Но в целом контроллеры весьма приличные. CM4 за 3,5 доллара, образцы высылают. Жалко, что досадные мелочи отравляют.
AlexandrY
Цитата(=AK= @ Jan 6 2015, 10:39) *
Оживленность форума производителя вполне может быть свидетельством проблем с железом и паршивой документации. Когда у людей нет проблем и им все понятно, то на форум производителя им ходить незачем.

Можно вспомнить, что фрискэйловские 16-битники НС12 были очень глюкавыми. Мой товарищ их юзал и плевался.


Оживленность форума в первую очередь свидетельствует о наличии желающих отвечать, а не спрашивать.
А если отвечают, то народ спрашивает и когда надо и когда не надо.

Знаю не со слов товарища, что у Freescale не более глючные чипы чем у любых других. Работал c HC8, i.MX, Kinetis
Гораздо важнее среда разработки и промежуточный софт.
kovigor
Цитата(A. Fig Lee @ Jan 6 2015, 05:38) *
Лучше брать то, с чем все работают. А это STM32

STM для начала категорически не советую - слишком сложно. И, что обидно, эта сложность ничем не оправдана, ИМХО ...
Xenia
Вот какой! Плохо только, что китайский. А так все интерфейсы, что заказаны, есть и даже больше:


На список интерфесов сами смотрите по ссылке:
http://openmcu.buy.chinapackagenet.com/pz5...isplays-ic.html
а то он настолько большой, что я затрудняюсь его здесь процитировать.
SII
Цитата(internal enemy @ Jan 6 2015, 10:22) *
Чем прошивать NXP я вроде нашел


Если работать с АРМами, то брать надо, думается, только Segger'овский программатор/отладчик (J-Link). Они поддерживаются практически во всех средах разработки, а сами работают с любыми АРМами, а не только конкретного производителя. Да и глюков у самого отладчика довольно мало, хотя и имеются.

А насчёт платы -- одобряю. Правда, конкретно её я на практике не видел, но сам МК очень неплох и весьма прост для освоения. Хотя косяки и просто глупые решения есть, пожалуй, везде.
Aner
QUOTE (kovigor @ Jan 6 2015, 16:39) *
STM для начала категорически не советую - слишком сложно. И, что обидно, эта сложность ничем не оправдана, ИМХО ...

Ничего подобного STMы, самые простые, понятные, навороченые, удобоваримые, доступные, дешевые, хорошо поддержаные для отладки, ... и кстати не только на этом форуме.
kovigor
Цитата(Aner @ Jan 6 2015, 17:40) *
Ничего подобного STMы, самые простые ...

Самые простые ? У меня сложилось как раз прямо противоположное мнение ...
Aner
противоположное мнение ...
Непонятно ведь, о чем вы тута противополагаете. Вашей подготовленности, знаний, образования, компетентности, того что вы в этой теме не так долго...
Xenia
Цитата(kovigor @ Jan 6 2015, 16:45) *
Самые простые ? У меня сложилось как раз прямо противоположное мнение ...


STM4F сложные, если ... их программировать самой. sm.gif Однако на практике многие даже не пытаются разобраться в премудростях этого МК, а используют библиотеки, которые к нему прилагаются.

Я знаю одного мужика (по интернету), который вообще не программист, хотя для PIC'а что-то пописывал (типа поток данных от АЦП гнать на COM-порт). Когда он демо-плату STM32F429I-DISCO собрался покупать, то я его тоже отговаривать пыталась, мол, сложная это плата, трудно будет. Но он меня не послушался (и слава Богу!), купил две таких штуки, и уже через три дня у него не только на этой плате заработало все то, что он раньше на PIC'е делал, но и на дисплее цветные графики задвигались в реальном времени!

Я когда видео-ролик от него поучила, буквально ошалела. Как, говорю, так так быстро смог это освоить? А он ответил, что и не старался ничего осваивать, а лишь приспособил готовые программные модули ADC, USB и LCD. Или, как у нас на форуме говорят, "подружил". sm.gif
SII
Ну так использование всего готового -- это не настоящее освоение, если уж на то пошло. А писать всё необходимое самому для STM32, как по мне, зачастую сложней, чем под Атмелы или NXP. STMки какие-то... странные, что ли, да и "плотность" неудачных решений, как по мне, у них зашкаливает -- начиная от GPIO с EXTI. Впрочем, на вкус и цвет...
Plain
Присоединяюсь. Программирование микроконтроллеров никак не равно знанию микроконтроллеров. До понимания физических принципов это будет зубрёжка с однозначным незачётом при первом же перекрёстном допросе.
A. Fig Lee
Цитата(SII @ Jan 6 2015, 10:07) *
Ну так использование всего готового -- это не настоящее освоение, если уж на то пошло. А писать всё необходимое самому для STM32, как по мне, зачастую сложней, чем под Атмелы или NXP. STMки какие-то... странные, что ли, да и "плотность" неудачных решений, как по мне, у них зашкаливает -- начиная от GPIO с EXTI. Впрочем, на вкус и цвет...


Ну тогда для понимания надо AVR. Или PIC. PIC лучше, там граблей больше, сразу начнешь понимать что хорошо, что плохо.
Особенно если на ассемблере какойнибудь 2х килобайтный PIC16F628 с банками. rolleyes.gif
kovigor
Цитата(Xenia @ Jan 6 2015, 18:10) *
STM4F сложные, если ... их программировать самой. sm.gif Однако на практике многие даже не пытаются разобраться в премудростях этого МК, а используют библиотеки, которые к нему прилагаются.

Так вот я и пытался программировать сам. Библиотеки меня не интересовали, категорически. Интересовало именно железо и Standalone - программирование, для самых разных подсистем - от GPIO до USB - движка. До этого работал, и весьма серьезно, с 8086, MSC51, AVR, ARM7, ARM9 (ATMEL, NXP). Так что я далеко не новичок. Так вот, ничего сложнее и заумнее, чем STM32, я до этого не встречал. Плюс из рук вон плохая и неполная документация (по этому параметру STM может сравниться разве что с TI). Сейчас я с ними не работаю, так что не знаю, возможно, документацию уже поправили.
Нет, я допускаю, что дело может быть в моей тупости, есть ведь же люди, которые на лету портируют Линукс на новые платформы и держат в голове сотни переменных из десятка исходников и .h - файлов. Моя же голова идет вразнос от на порядки более простых задач. Вообще, ненавижу рыться без острейшей необходимости в чужих исходниках, хоть сколько-нибудь сложных. Особенно не люблю ковырять исходники Линукса. Ну не мое это, хоть тресни. Мне гораздо проще написать все по-своему, чем разбираться в чужих программах. У каждого свои способности. Я всего лишь высказал свою точку зрения по предложенному вопросу ...
toweroff
Ура!
Новый холивар sm.gif

пока точную потребность (ну прям эдак совсем) не узнаем, смело раздуваем
kovigor
Цитата(toweroff @ Jan 6 2015, 23:37) *
Новый холивар sm.gif

Нет, я всего лишь высказал свое частное мнение. sm.gif
Xenia
Цитата(kovigor @ Jan 6 2015, 23:28) *
Нет, я допускаю, что дело в моей тупости, есть ведь же люди, которые на лету портируют Линукс на новые платформы и держат в голове сотни переменных из десятка исходников и .h - файлов. Моя же голова идет вразнос от на порядки более простых задач. У каждого свои способности. Я всего лишь высказал свою точку зрения по предложенному вопросу ...


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

Я поняла его просьбу так, что он просит не контроллер попроще ему выбрать, а готовую плату с требуемым функционалом ("Cortex-M4, с экраном, USB, Ethernet, CAN, ЦАП/АЦП"). А Cortex-M4 он, по-видимому, назвал только потому, что ему нужна аппаратная плавучка. Вот какую-то из таких плат и надо ему посоветовать, а не пугать сложностями програмирования. Тем более что его положение нынче таково, что он не програмирования боится, а железа.
kovigor
Цитата(Xenia @ Jan 6 2015, 23:43) *
Вот какую-то из таких плат и надо ему посоветовать, а не пугать сложностями програмирования

Конечно, у нас задачи совершенно разные. Меня интересовало исключительно standolone - программирование. Ставлю сто против одного, что профессионал такой "ерундой" заниматься не будет, а применит или ОС, или готовые библиотеки ...
psL
начинайте с постановки задачи. Для реализации "экран, Ethernet" производительности и ресурсов Cortex-M может оказаться недостаточно
AlexandrY
Цитата(Xenia @ Jan 6 2015, 22:43) *
Обращаю ваше внимание, что несмотря на раздел "В помощь начинающему", топикстартер - профессиональный программист! А стало быть, ваши трудности для него могут быть не принципиальными. В том числе и сложности спецификации того или иного микроконтроллера.

Я поняла его просьбу так, что он просит не контроллер попроще ему выбрать, а готовую плату с требуемым функционалом ("Cortex-M4, с экраном, USB, Ethernet, CAN, ЦАП/АЦП"). А Cortex-M4 он, по-видимому, назвал только потому, что ему нужна аппаратная плавучка. Вот какую-то из таких плат и надо ему посоветовать, а не пугать сложностями програмирования. Тем более что его положение нынче таково, что он не програмирования боится, а железа.


Не стоит недооценивать сложность спецификации.
Тут надо опереться на какой нибудь количественный критерий.
Я бы предложил количество страниц в мануале и качество рисунков.

И что видим:
Freescale K70 - 2259 листов. 96 рисунков в разделе FlexTimer. Есть цветные рисунки.

ST STM32F4xx - 1422 листа. 48 рисунков в разделе Advanced-control timers. Все рисунки черно-белые. Мануал весь черно-белый

NXP LPC408x - 947 листов. Всего 14 рисунков на четыре раздела Timer0/1/2/3, Pulse Width Modulators, Motor control PWM, Quadrature Encoder Interface (у конкурентов за это все отвечает единый таймер)

Silicon Labs EFM32 - 843 листа. 27 рисунков в разделе Timer. Но цветастый мануал.

Замечу, что FlexTimer у Freescale, Advanced-control timers у ST и Timer у Silicon Labs почти одно и тоже.

Очевидно Freescale больше всех вкладывается в документацию. Но и читать ее в пару раз дольше. И это путь джедая.
А кто ищет легких путей должен выбирать EFM32 или LPC4 и до пенсии делать дивайсы на батарейках для ёлочных гирлянд.
Xenia
Цитата(AlexandrY @ Jan 7 2015, 02:03) *
Не стоит недооценивать сложность спецификации.
Тут надо опереться на какой нибудь количественный критерий.
Я бы предложил количество страниц в мануале и качество рисунков.
...
Очевидно Freescale больше всех вкладывается в документацию.


А я сперва подумала наоборот - чем короче спецификация, тем проще контроллер. sm.gif
Сергей Борщ
Цитата(kovigor @ Jan 6 2015, 22:28) *
Плюс из рук вон плохая и неполная документация (по этому параметру STM может сравниться разве что с TI). Сейчас я с ними не работаю, так что не знаю, возможно, документацию уже поправили.
Я пока не начал работать с STM тоже читал на этом форуме много жалоб на качество и неполноту документации, что люди разбирают исходники SPL чтобы понять какие-то неописанные тонкости. А когда начал работать - начал с чтения документации и мне за четыре года ни разу не потребовалось лезть в эти исходники SPL. Да, порой приходится перечитать раздел по несколько раз, но никаких катастрофических ужасов в этой документации я не обнаружил.
ViKo
Качество микроконтроллеров STM и документации на них меня более, чем устраивает. И цена. И платки Discovery - простые, дешевые, удобные. Если я чего-то не понимаю - сам виноват.
А всякие библиотеки-Кубы-Гиперкубы - не устраивают. Там скачут от одной функции к другой "всё вглубь, всё настежь", чтобы сделать элементарное действие.
Ruslan1
Цитата(Xenia @ Jan 6 2015, 15:19) *
Вот какой! Плохо только, что китайский.

А что, еще какие-то кроме китайских бывают? У меня в последние годы впечатление что киты некитайских продавцов сделаны для отпугивания потенциальных пользователей. sm.gif

Но мне очень понравился другой отладочный комплект, про который я тему создавал когда покупал, и спасибо что он китайский.
http://electronix.ru/forum/index.php?showt...t&p=1161084
Пользовали не все модули из заказанных, но все что пользовали- работало.

Правда, сейчас уже с F407 на F429 переползаем из-за размера внутреннего RAM и наличия поддержки SDRAM.
Xenia
Цитата(Ruslan1 @ Jan 7 2015, 14:05) *
А что, еще какие-то кроме китайских бывают? У меня в последние годы впечатление что киты некитайских продавцов сделаны для отпугивания потенциальных пользователей. sm.gif

Но мне очень понравился другой отладочный комплект, про который я тему создавал когда покупал, и спасибо что он китайский.
http://electronix.ru/forum/index.php?showt...t&p=1161084


Вы очень своевременно дали ссылку на раздел "ARM > Отладочные платы", т.к. вопрос темы явно просится именно туда. Здесь же мы видим сложение эффектов от неудачно выбранного подфорума "В помощь начинающему" и плохо озаглавленной темы "С чего начать?", что в купе породило советы типа "начните изучение с AVR" sm.gif.

Что же касается вашего впечатления от "китов некитайских продавцов", то что-то такое действительно есть. Поскольку демонстрационные платы производителей МК, чаще всего, не только бедны периферией, но и почти демонстративно ее не содержат. Как будто боятся того, что демо-плата будет использована не по назначению - т.е. не как демо, а как готовое устройство. А может быть и так, что в демо-варианте они стремятся до предела уменьшить себестоимость, экономя на спичках. В результате чего, в большинстве случаев, имеем пустые платы с контактами на краях, которые на глаз выглядят как сделанные для смеха огромные переходники от мелкой микросхемы, распятой в центре, до размера здоровенной вентиляционной трубы sm.gif. И это касается не только демоплат для МК, но и демоплат для АЦП, выпускаемых TI.

Китайцы же, напротив, стремятся к тому, чтобы их продукция имела как можно больше потенциальных применений, а потому многие их изделия можно считать уже готовыми устройствами, непосредственно пригодными для конкретных практических применений. Впрочем, это же стремление зачастую бывает свойственно не только китайцам, но всем сторонним производителям демонстрационных и отладочных плат, поскольку они, как и китайцы, в спартанском минимуме не заинтересованы.
AlexandrY
Цитата(Xenia @ Jan 7 2015, 12:59) *
Китайцы же, напротив, стремятся к тому, чтобы их продукция имела как можно больше потенциальных применений, а потому многие их изделия можно считать уже готовыми устройствами, непосредственно пригодными для конкретных практических применений. Впрочем, это же стремление зачастую бывает свойственно не только китайцам, но всем сторонним производителям демонстрационных и отладочных плат, поскольку они, как и китайцы, в спартанском минимуме не заинтересованы.


Да китайцы просто иллюзионисты.
У чипа 144 ноги, а они напихали периферии, что аж периметра платы не хватает.
И схему заныкали. И не даром. Интересные бы вещи выплыли.
Как они все это смультиплексировали на 144 ноги включая NOR, SRAM, NAND, SD и проч.?
Уверен что все одновременно и в произвольных комбинациях не работает и требует ручных перекоммутаций или вообще тюнинга проводами.

По честному это как делает Freescale. Есть материнка и есть addon-ы. И только так можно задействовать все возможности чипа.
И даже тут не все варианты совместной работы периферии можете получить.

Я иду другим путем.
Ставлю микроконтроллер и обвешиваю его по полной, что осталось не мапированным на внешнюю периферию из-за ограниченности ног мапирую рядом на втором почти аналогичном микроконтроллере.
В результате на плате можно в реальности задействовать всю! периферию семейства работающую одновременно или в любых вариациях.
=AK=
Цитата(SII @ Jan 7 2015, 01:37) *
Ну так использование всего готового -- это не настоящее освоение, если уж на то пошло. А писать всё необходимое самому для STM32, как по мне, зачастую сложней, чем под Атмелы или NXP. STMки какие-то... странные, что ли, да и "плотность" неудачных решений, как по мне, у них зашкаливает -- начиная от GPIO с EXTI.

Я полагаю, что сама суть разработки меняется у нас на глазах, но еще не все это уловили. Нет больше нужды вручную рашпилем вытачивать из заготовки деталь, надо взять готовые полуфабрикаты и научиться соединять их вместе. Это естественный ход вещей. Так произошел преход от ламп и транзисторов к микросхемам малой и средней степени интеграции, затем от них - к БИС и СБИС. Так произошел переход от ассемблера к ЯВУ и стандартным библиотекам. С МК сейчас все происходит точно то же самое, при посредстве Ардуино, Нетдуино, мбед и т.п.

Так что - использование всего готового и есть самое что ни на есть освоение на современном этапе. Кто способен быстро перелопатить горы док и задать правильный вопрос на форуме поддержки, тот и на коне. А вовсе не тот, кто в уединении изобретает велосипед. Конечный критерий успеха - результат и сроки, а вовсе не способ его достижения.
SII
Цитата(=AK= @ Jan 7 2015, 14:52) *
Так что - использование всего готового и есть самое что ни на есть освоение на современном этапе. Кто способен быстро перелопатить горы док и задать правильный вопрос на форуме поддержки, тот и на коне. А вовсе не тот, кто в уединении изобретает велосипед. Конечный критерий успеха - результат и сроки, а вовсе не способ его достижения.


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

Что же до сроков разработки, то тут не поспоришь: чтобы делать быстро, надо использовать готовое. Однако между "слепым и тупым" и грамотным, вдумчивым использованием -- очень большая разница. К примеру, если мне надо сделать на ПК оконную программу с несколькими полями ввода, кнопками и прочими элементами пользовательского интерфейса, но с примитивной логикой, нетребовательную к производительности и т.д., я её быстренько набросаю на Дельфях, совершенно не задумываясь о том, как и что там работает или сколько памяти сожрёт. Но, в отличие от основной массы "дельфиноидов-формошлёпов", я знаю, как работают дельфозные компоненты и библиотека в целом, а при необходимости способен решить ту же задачу хоть на голом Паскале или Си (дёргая ручками вызовы Win32 API), хоть на ассемблере. Т.е. я использую готовое, но когда-то я его освоил на куда более глубоком уровне, чем требуется для простого использования.

То же самое касается и микроконтроллеров. Естественно, не обязательно каждый раз всё писать с нуля, но знать, как оно в действительности работает, я считаю необходимым -- а узнать это можно только путём освоения голого железа. Так что, думаю, каждый должен научиться самостоятельно настраивать синхронизацию, дёргать GPIO, работать с UART, SPI, I2C и другими широко распространёнными вещами хотя бы для одного МК -- чтобы понять, а как оно вообще делается. Конечно, при "переезде" на другой МК "железные" аспекты могут измениться, и очень сильно, но базовые принципы никуда не денутся, и человек, освоивший одно железо, сможет быстро и без особых усилий освоить и другое, если такая нужда возникнет. А она может возникнуть даже при наличии готовых библиотек. Например, мой коллега пару-тройку дней убил на попытки заставить работать одну железяку на каком-то STM32. Как в итоге оказалось, он всё делал правильно, но в библиотеке (кажись, для SPI) писавший её индус-быдлокодер допустил тупую ошибку (что-то вроде |= вместо &=, вероятно), из-за чего в определённых ситуациях библиотека работала неправильно. Ну и как разобраться в такой проблеме, не имея представления о том, что такое SPI, как он работает и как его программировать на уровне регистров контроллера?

Ну и про критерии успеха. Результат и сроки -- оно хорошо, конечно, но Вы забыли ещё про качество. Вряд ли наспех собранный из готовых кусков проект будет им обладать.
jcxz
Цитата(internal enemy @ Jan 6 2015, 13:22) *
Чем прошивать NXP я вроде нашел

Прошивать NXP-ые ARM-ы можно через обычный UART с помощью FlashMagic.
Но лучше всё-же использовать J-Link. Плюс - IAR.

А вообще - вначале нужно определиться с задачей и уж только потом - выбирать инструмент.
А то как-то странно: что делать - то-ли яму копать, то-ли самолёт строить - Вы ещё не определились, а топор уже выбираете biggrin.gif
Xenia
Цитата(internal enemy @ Jan 6 2015, 11:22) *
Чем прошивать NXP я вроде нашел


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

Например, популярные (по причине своей дешевизны) платы STM32F429I-DISCO и STM32F4DISCOVERY уже имеют такие средства в виде специальной миросхемины, запаянной прямо на плате с отдельным для нее USB-разъемом, предназначенным исключительно для целей прошивки/отладки. Соединяешь его обычным кабелем с USB-розеткой компьютера - и дело в шляпе - компилятор (а точнее его IDE) сам будет заливать и отлаживать программу в пошаговом режиме. Драйвер только нужно установить при первом присоединении, а больше ничего.

А то в наше время фирменный J-Link стоит целое состояние sm.gif, то бишь даже дороже навороченной платы. А с его более дешевыми китайскими клонами надо еще найти общий язык, т.к. гарантии тут ненадежные.
SII
Цитата(Xenia @ Jan 7 2015, 17:46) *
А с его более дешевыми китайскими клонами надо еще найти общий язык, т.к. гарантии тут ненадежные.


Со Стартеркитовскими у меня и коллег пока проблем не было...
internal enemy
Скажите пожалуйста, а зачем в одном контроллере комбинируют два ядра M4 и M0? В общих чертах, в каких областях это применимо?
Xenia
Цитата(internal enemy @ Jan 7 2015, 20:52) *
Скажите пожалуйста, а зачем в одном контроллере комбинируют два ядра M4 и M0? В общих чертах, в каких областях это применимо?


Чаще всего в таких парах более слабое ядро используют, как процессор ввода-вывода. Или даже явно устанавливают на плате два контроллера - один для "математики", а другой дисплеем управлять и прочей периферией.

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

P.S. Помимо сказанного, бывает и более банальная причина, которую уже назвал AlexandrY, - на развитую периферию у одного контроллера просто не хватает своих ног. sm.gif
jcxz
Цитата(SII @ Jan 7 2015, 22:49) *
Со Стартеркитовскими у меня и коллег пока проблем не было...

У нас в конторе кста тоже их куча работает уже много лет в компании с IAR - проблем не замечено. Надёжные.
AlexandrY
Цитата(Xenia @ Jan 7 2015, 19:02) *
P.S. Помимо сказанного, бывает и более банальная причина, которую уже назвал AlexandrY, - на развитую периферию у одного контроллера просто не хватает своих ног. sm.gif


Ну это не тот случай.
NXP в своем LPC4300 сделало два ядра чтобы компенсировать убогость периферии своих ARM-ов и даже переплюнуть конкурентов в плане периферии.
Они изобрели такой периферийный модуль - SGPIO, который просто нуждается в дополнительном процессоре.
Скажем через него они подключают камеру, но не имеет достаточно развитого DMA, ну так функции предварительной буферизации и перепаковки пиксел берет на себя сопроцессор.
Или у них есть апнот как сделать до 8-и полнодуплексных UART-ов на этом SGPIO, опять без сопроцессора не обойтись.

Но опять же сравнительно мелкий корпус заставляет выбрать либо одно либо другое. Это не прорыв.

Другое дело Freescale. (Прошу не банить за вынужденную рекламу biggrin.gif )

Их VF6xx имеет на борту ARM Cortex-A5 и Cortex-M4.
И это очевидно нужно чтобы линукс на Cortex-A5 изолировать от надежной прикладной функциональности на Cortex-M4.
Т.е. вся логика приложения делается на Cortex-M4 с использованием RTOS MQX.
А на Cortex-A5 делают малоответственный пользовательский интерфейс и сетевой стек которые имеют обыкновение постоянно виснуть и тормозить.
jcxz
Цитата(AlexandrY @ Jan 7 2015, 23:36) *
NXP в своем LPC4300 сделало два ядра чтобы компенсировать убогость периферии своих ARM-ов

Ай-яй-яй! Модератор, а розжигаете религиозную войну! rolleyes.gif

Всяка тварь на пользу человеку. Одним одно нравится, другим - другое. Дело вкуса.
ViKo
Цитата(internal enemy @ Jan 7 2015, 19:52) *
Скажите пожалуйста, а зачем в одном контроллере комбинируют два ядра M4 и M0? В общих чертах, в каких областях это применимо?

Просто. M0 обрабатывает панель управления - кнопки, энкодеры, или принимает/передает, в-общем, выполняет монотонную рутину, а M4 - обрабатывает, творит.
Скажем, устранение дребезга кнопок - работа не очень тяжелая, но тратить время на регулярные прерывания (особенно вход и выход из прерывания) - жалко.

В PC в клавиатуре тоже стоит свой микроконтроллер. А в ZX Spectrum - нет. Что лучше? :-)
AlexandrY
Цитата(ViKo @ Jan 7 2015, 21:18) *
Скажем, устранение дребезга кнопок - работа не очень тяжелая, но тратить время на регулярные прерывания (особенно вход и выход из прерывания) - жалко.


Да ну, это мелочь. Да и никто (т.е. Я laughing.gif ) дребезг по прерываниям не отрабатывает.
А то так можно любой процессор завалить.
Дребезг может длиться десятки миллисекунд с полным заполнением микросекундными импульсами.

А вот в Kinetis от Freescale на всех GPIO линиях есть специальные настраиваемые аппаратные фильтры против дребезга.
A. Fig Lee
Цитата(AlexandrY @ Jan 7 2015, 15:25) *
Да ну, это мелочь. Да и никто (т.е. Я laughing.gif ) дребезг по прерываниям не отрабатывает.
А то так можно любой процессор завалить.
Дребезг может длиться десятки миллисекунд с полным заполнением микросекундными импульсами.

А вот в Kinetis от Freescale на всех GPIO линиях есть специальные настраиваемые аппаратные фильтры против дребезга.

А я отрабатываю. Первый раз поймал кнопку на прерывании, запретил, завел переменную для таймера.
Таймер отщелкал по прерыванию, установил флажок, поймал его - кнопка нажата. Или не установил.

А правильные пацаны как? В лупе крутятся 20 миллисекунд?

Цитата(ViKo @ Jan 7 2015, 14:18) *
Просто. M0 обрабатывает панель управления - кнопки, энкодеры, или принимает/передает, в-общем, выполняет монотонную рутину, а M4 - обрабатывает, творит.
Скажем, устранение дребезга кнопок - работа не очень тяжелая, но тратить время на регулярные прерывания (особенно вход и выход из прерывания) - жалко.

В PC в клавиатуре тоже стоит свой микроконтроллер. А в ZX Spectrum - нет. Что лучше? :-)

Вы кстати, с ним чего нибудь запустили? Я в итоге отказался от LPC1143.
Не понравился он мне.
Поддержка у NXP на форуме никакая.
ViKo
Цитата(AlexandrY @ Jan 7 2015, 23:25) *
Да ну, это мелочь. Да и никто (т.е. Я laughing.gif ) дребезг по прерываниям не отрабатывает.

Конечно. Все (например, Я rolleyes.gif ) опрашивают кнопки по прерыванию от таймера. Но частота опроса должна быть достаточной для отработки вращения энкодера, например, и решение о нажатой кнопке должно приниматься по истечению времени дребезга. Т.е. хватает чем бестолковым занять процессор.
A. Fig Lee
Цитата(Xenia @ Jan 7 2015, 05:59) *
Как будто боятся того, что демо-плата будет использована не по назначению - т.е. не как демо, а как готовое устройство. А может быть и так, что в демо-варианте они стремятся до предела уменьшить себестоимость, экономя на спичках. В результате чего, в большинстве случаев, имеем пустые платы с контактами на краях, которые на глаз выглядят как сделанные для смеха огромные переходники от мелкой микросхемы, распятой в центре, до размера здоровенной вентиляционной трубы sm.gif. И это касается не только демоплат для МК, но и демоплат для АЦП, выпускаемых TI.

Демоплаты они для демонстрации, зачем им мелкий размер?
На STM3210C-EVAL чего только нет, например..
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.