Программирование 32-х разрядных МК

diger67
Offline
Зарегистрирован: 25.07.2015

А это для общего развития или там что то более продвинутое чем у ST? Посмотрел обзор периферии, скудноватая она какая то.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Хочу в USB у Cortex-M0+ покопаться, жаба душит 072 серию покупать, а силабсы семплы охотнее шлют, чем ST, от которых я вообще ничего не добился...))

diger67
Offline
Зарегистрирован: 25.07.2015

Да ну, 072с8t6 100 - 120 рублей за корпус. Если изучать так и не жалко. Я так не жалею средств. Обзавелся камнями от f030 до f746, задумался прикупить f767, у него есть уже хардовый jpeg. Купил у китайцев платки под 144 ноги, можно любую серию припаять плюс там предусмотрены места для static RAM, NAND, EEPROM 24 и 25 серии, backup батарейка. Вобщем та еще доска.

ПОследнее преобритение:

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Купить сейчас на алике и ждать...или получить бесплатно, да ещё и вежливым курьером...)

Сегодня попробовал собрать себе J-Link OB aka On Board, в итоге получился сверхмаленький универсальный Cortex--программатор-отладчик, да ещё и поддерживающийся почти всем...материалы ннада?)

diger67
Offline
Зарегистрирован: 25.07.2015

Только вот незадача, тактовая частота как я понял там 48 МГц потолок.?? Кидай, пригодятся.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

У кортексов М0 от ST (F0 серия) - 48МГц, да, но изменением множителя PLL до 96 без проблем гнал, даже писал тут об этом когда-то...

У силабсов вообще 25МГц, зато жрут мало:D

 

diger67
Offline
Зарегистрирован: 25.07.2015

Yarik.Yar пишет:

У кортексов М0 от ST (F0 серия) - 48МГц, да, но изменением множителя PLL до 96 без проблем гнал, даже писал тут об этом когда-то...

У силабсов вообще 25МГц, зато жрут мало:D

 

Могут возникнуть проблемы стабильной работы флэша. Зависит от партии.

diger67
Offline
Зарегистрирован: 25.07.2015

У тебя триальная версия Keil???? Я спокойно создал проект под efm32g200f64.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Пишу только для M0/M0+, для них у Keil бесплатная лицензия)

J-Link - https://yadi.sk/d/YgQ8z53h36hcGW. ПО стандартное - https://www.segger.com/J-Link-software.html . Проверил пока только на 030F4, льёт быстро, по ощущениям быстрее ST-Link.

Такм в архиве ещё одна плата, которая просто jlink, она непроверенная, но там разведён ещё SWO и RST сигнал для таргета. После прошивки лучше обновить прошивку через J-Link Configurator.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

А чего ты делал? Скачал DFP и всё?

diger67
Offline
Зарегистрирован: 25.07.2015

Ну да. Правда у меня лицензия до 2020 года для про ARM.

diger67
Offline
Зарегистрирован: 25.07.2015

О блин. А каким софтом файлы *.lay6 открывать? Чегото стандартная прога его не хочет открывать.....

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Sprint Layout 6.0

diger67
Offline
Зарегистрирован: 25.07.2015

Не хочет, ругается.

 

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Вот отдельно jlink-mini - https://yadi.sk/d/1re3WWnn36hT3S

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Ты ломал/покупал?

diger67
Offline
Зарегистрирован: 25.07.2015

Э, 4000 эвро это дороговато.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

xD можешь накейгенить? yaryarikyar на ya.ru 

diger67
Offline
Зарегистрирован: 25.07.2015

У меня есть, зачем где то шаманить. CID скинь и почту.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Действительно, проблема была в лицензии. 

diger67
Offline
Зарегистрирован: 25.07.2015

Надо еще?????

 

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Нет, спасибо) нашёл сам таки)

diger67
Offline
Зарегистрирован: 25.07.2015

У меня как всегда, ноут разрядился, поэтому так долго не мог сделать. Удачи.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Нет проблем, спасибо.

А ты работал с USB? У старших серий он же чуть не поголовно...

diger67
Offline
Зарегистрирован: 25.07.2015

Пока нет, но если использовать упрощалки по типу Cube и HAL, то все достаточно просто, хотя как все это работает понять сложно. Зайди на Youtobe там много трансляций по этому вопросу. Посмотри канал Narod Stream https://www.youtube.com/watch?v=0NnIum2hAWg&t=0s

a5021
Offline
Зарегистрирован: 07.07.2013

Yarik.Yar пишет:
Хочу в USB у Cortex-M0+ покопаться

В M0+ нет никакого USB, а есть только:

Chapter 4. Cortex-M0+ Peripherals

The following sections describe the ARM Cortex-M0+ core peripherals:

 

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Детали, детали...Спасибо, что придрались-с.

a5021
Offline
Зарегистрирован: 07.07.2013

Выражаю ответную благодарность за удобную возможность придраться. USB в ядре уж больно глаз режет.

Кстати сказать, если бы мне захотелось покопаться с USB, то я бы лучше смотрел куда-то в сторону

или

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

diger67
Offline
Зарегистрирован: 25.07.2015

 Вот ковыряюсь с stm32f429 sram tft dma, у кого какие предложения и идеи по данному вопросу.

https://youtu.be/2yn_j_dLoy4

https://youtu.be/wYmzSF-hkl0

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Я с Cortex-M3 не работал от слова вообще (помигать ледиком с SPL не считается), так что равнозначно будет начинать и с ними, и с силабами. F103C8T6 лежит ещё штуки 3, пригодились для всяких минископов, тот же jlink сделал на его основе. Кстати, вполне работает. Есть ещё и пара плат с ними, может и займусь, кто знает...

 

diger67
Offline
Зарегистрирован: 25.07.2015

Yarik.Yar пишет:

Я с Cortex-M3 не работал от слова вообще (помигать ледиком с SPL не считается), так что равнозначно будет начинать и с ними, и с силабами. F103C8T6 лежит ещё штуки 3, пригодились для всяких минископов, тот же jlink сделал на его основе. Кстати, вполне работает. Есть ещё и пара плат с ними, может и займусь, кто знает...

 

Ну для общего развития можно их посмотреть, я на них почти со вем, кроме USB, ознакомился. Но это уже вчерашний день, лучше смотреть в сторону M4, M7. По деньгам немного дороже, но на практике качество реализации задачь выше.

a5021
Offline
Зарегистрирован: 07.07.2013

Yarik.Yar пишет:
Я с Cortex-M3 не работал от слова вообще (помигать ледиком с SPL не считается), так что равнозначно будет начинать и с ними, и с силабами.

Я ни в коем случае не возмусь сказать, что оные "силабы" чем-то плохи. Где-то могут быть чуть интереснее стм-ов, где-то наоборот и если сравнивать камни отвлеченно, то на то и выходит. Ощутимые же минусы вылезают за пределами технической стороны дела. Любопытсва ради, я прошелся по списку силабовских кортексов и пометил, какие бы камешки могли предсталять для меня интерес, а потом попробовал найти в интернете то место, где бы их можно было купить по приемлемой цене. Выяснилось, что мой выбор невозможно купить не только по приемлемой цене, но и по неприемлемой тоже. Мой поход по интернет-магазинам выявил, что нужный мне товар полностью отсутствует в продаже. Безусловно допускаю, что я не там искал и не так, как нужно, но почему-то в отношении похожих товаров от того же ст-микро подобных проблем у меня обычно не возникает.

Второй момент -- сообщество. Из всех 32-битных МК на базе ARM-а, самое большое сообщество, безусловно у STM32. В инернетах можно обнаружить и менее многочисленные сообщества вокруг МК от NXP (LPC) и Freescale (Kinetis), которые теперь уже, правда, принадлежат одному производителю, но какая-то движуха в них определенно наблюдается. Силабовские EFM32 на этом фоне в гугловыдаче выглядят единичными записями на разных сайтах и блогах, которые как-либо соотнести с понятием комьюнити довольно затруднительно.

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

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

ssss, прекратите спамить.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Итак, пришли EFM32. Сделал девборд для EFM32ZG222F32, серия Zero Gecko, USB нет, но корпус паябельный, да и лениво было на скорую руку USB разводить...) В общем, настройка периферии (пока что копался в GPIO) очень отличается от STM32F0 (на уровне CMSIS), всё запутано ещё больше, например:

- В CMSIS STM32 доступ к регистру GPIOA_MODER будет таким:

GPIOA->MODER 

- В CMSIS EFM32 доступ к похожему по функциям регистру GPIOA MODEH (их там два, MODEL и MODEH) будет таким:

GPIO->P[0].MODEH // 0-A, 1-B, 3-C,...

Связано с тем, что у всех GPIO в целом имеются общие регистры контроля (что-то связанное с просыпанием изо сна), а портозависимые регистры хранятся в структуре из массива структур в структуре...уфф. 

Система тактирования на первый взгляд проще, но, соответственно, подстроек меньше. Внешний кварц не разводил, у внутреннего есть несколько значений (макс. частота внутреннего у этой серии - 21МГц, т.е. без кварца 24МГц не развить) и несколько предделителей - отдельных для ядра и периферии. Периферия, получается, тактируется от одной шины, конфигурируется в одном регистре. 

В итоге, CMSIS запутанней, но с RM в руках всё разруливается на ура. Для любителей High Access Level есть подобие SPL, можно добавить в проект (вкладка Device) во время создания (Keil v5) - но и с pure CMSIS несложно. Думаю, буду писать свой комплект определений регистров, чтобы уйти от древа структур, но вот определения состояний пинов - просто само совершенство, когда конфигурируешь пин, можно в RM и не смотреть, всё видно из хидера, всё то множество возможных режимов работы пина, из-за которых регистр режима размножили на два.

a5021
Offline
Зарегистрирован: 07.07.2013

Yarik.Yar пишет:
Итак, пришли EFM32. Сделал девборд для EFM32ZG222F32, серия Zero Gecko, USB нет,

Ну вот, USB да USB, а USB и нет.

Цитата:
Для любителей High Access Level есть подобие SPL, можно добавить в проект (вкладка Device) во время создания (Keil v5) - но и с pure CMSIS несложно.

Я когда разглядывал их (с вашей подачи), то видел на сайте силабсов описание некой софтины на базе эклипса, которая по фунционалу чем-то напоминает стм-овский куб. Типа, выбираем мышой блоки периферии, задаем нужные режимы, а оно потом проект создает и како-то там код варит. Ничего я не напутал? Есть такая? Не пробовали?

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Видел, не пробовал. Как были проблемы с добавлением их МК в Keil, думал, что придётся качать, но коли уж в Keil'е работает...В CMSIS определено всё, что только можно определить) Как USB займусь, наверное, на первых порах придётся лезть в HAL.

 

diger67
Offline
Зарегистрирован: 25.07.2015

Начал писать что то вроде библиотеки для TFT, фишка в том что используется внешняя SRAM память, там создются несколько экранов. Можно делать копию из flash, можно формировать програмно. Думаю что удобнее, написать дампы шрифтов разных размеров или использовать один дамп и маштабировать его. В первом случае надо большую внешнюю flash подключать, во втором при размере более чем size*3 буквы и цыфры выглядят убого. Вот что уже получилось и скоро выложу последнии наработки.

https://youtu.be/OnpP7y9HBw4

https://youtu.be/nulBXs08cjs

https://youtu.be/OnpP7y9HBw4

https://youtu.be/nulBXs08cjs

https://youtu.be/G_QIx3eDdDc

https://youtu.be/oycXAoZCJm4

diger67
Offline
Зарегистрирован: 25.07.2015

Есть несколко вариантов хранения элементов выводимых на экран, SD, NOR flassh parallel, NOR flash QSPI. Для последнего варианта пришлось перейти на stm32f446ZET. За благо что на плату можно без безболезненно ставть чип любой серии на 144 ноги.

a5021
Offline
Зарегистрирован: 07.07.2013

Появилась прямая поддержка отладочных плат на STM32 в Arduino IDE.

Число плат пока не велико, но обещают, что поддержка будет расширяться.

В качестве пробы собрал Blink для STM32F0xx. Никаких вопросов не возникло.

В состав библиотек для сборки входит и фирменный STM-овский HAL, уж не знаю, хорошо здесь это или плохо.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Интересно, скажем так. Сколько весит пустой скетч?

a5021
Offline
Зарегистрирован: 07.07.2013

Blink получился размером 13к.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Это для 030? OMG. 

У меня есть небольшой проект метеостанции, написан на C в Keil, CMSIS only. Безо всяких оптимизаций, как компиляторных так и просто кода (бета-тест, все написано в кучу) проект весит 11 с чем-то Кб...это и работа с SSD1306, и с BMP180 (даа, вычисление туевой хучи коэффициентов), SI7021...

Имеет, получается, смысл, если только большие камушки ставить, с F4P6 не поиграешься.

a5021
Offline
Зарегистрирован: 07.07.2013

Yarik.Yar пишет:
Это для 030? OMG.

Нет, это для 091RC.

Цитата:
получается, смысл, если только большие камушки ставить, с F4P6 не поиграешься.

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

ssss
Offline
Зарегистрирован: 01.07.2016

a5021 пишет:

Blink получился размером 13к.

"Какая гадость, эта ваша ардуина!"(с)... Ффтопку её!

ssss
Offline
Зарегистрирован: 01.07.2016

a5021 пишет:

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

Да не томи, слабай что-нибудь, типа Мурки. Посмотрим что и как там распухнет. Хоть повеселимся от души!

a5021
Offline
Зарегистрирован: 07.07.2013

Бог подаст. За пухлявость ваш HAL надо благодарить.

ssss
Offline
Зарегистрирован: 01.07.2016

Не бузи так коряво! Ты ж тут типа ардуно-Бох! А HAL я и в глаза не видел, он мне на не впёрся. Давай без ХАЛа, чиста по ардуиновски, ну ты ж умеешь. А то при таком подходе я начну верить в предсказания Архатыча, что АРМ станет на ручник похлеще Меги. Вот это прикол будет! Гы! )))))))))))))))

СТМ32 + HAL + Ардуина == мечта обкуренного Буратино ))))))))))))))

a5021
Offline
Зарегистрирован: 07.07.2013

см. первое предложение в #296.

diger67
Offline
Зарегистрирован: 25.07.2015

Теория, теория, теория. Всего то разговоров о "Помигать светодиодом" или "Обработать данные с мемс". А вот что бы к примеру из програмы запустить на исполнение другую програму в ОЗУ или определить регионы и их распределение и использование. Все на уровне линейного построения программы. Детский сад, да и только.

a5021
Offline
Зарегистрирован: 07.07.2013

Вы сейчас о чем и с кем разговаривали?