Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Оссицилограф на STM32

Вс ноя 06, 2022 13:13:20

День добрый. В отличие от avr про arm информации очень мало. Даже не найти описание машинных команд и комманд работы с регистрами, прерываниями и с прочими ресурсами. Но это ещё не законченный разговор. Нашёл интересное описание: ansvet.ru/stm32f103-2_2/stm32f103-2_2.shtml Думаю повторить. Такой конролёр есть в протусе. Но нормальный проект с этим конролёром даже не создать. Сделал проект из одной схемы. Вставил туда прошивку. Эмуляцию запустить не удалось. Может модель неудачная. Выход здесь пока видится один: тупо повторять всё, как в этой статье.
У меня вопрос: а кто нибудь это пробовал? Что нибудь получилось? Напишите пожалуйста.

Re: Оссицилограф на STM32

Вс ноя 06, 2022 13:21:06

Инфы очень мало? Да ну, вы что. Этой инфы, начиная примерно с 2012-го года - просто завались, тоннами валяются, на каждом углу. Хотя по непосредственно ассемблерным командам негусто, но есть. Во-первых, это Programming Manual PM0056 (для Cortex M3) на сайте st.com. А так же всю остальную инфу смотрите там же на том же сайте, вбив в поиск полное название вашего МК и перейдя на вкладку Documentation.
До недавнего времени STM32 был самым популярным МК в среде "не-ардуинщиков", опередив все эти AVR за счет низкой цены и высокой производительности.

В Протеусе есть некоторые старые STM32 одних из первых серий. Насколько они полноценно там работают, не знаю, не пробовал. Когда есть "железный" МК с пошаговым отладчиком, симулятор практически и не нужен.

Re: Оссицилограф на STM32

Вс ноя 06, 2022 13:57:44

Даже не найти описание машинных команд и комманд работы с регистрами, прерываниями и с прочими ресурсами.

Вот эту книгу смотрели? "Ядро Cortex M3 компании ARM. Полное руководство" / Джозеф Ю; пер. санrл. А. В. Евстифеева ?
sergs777 писал(а):Такой конролёр есть в протусе.
А надо с Протеза-то начинать? Возьмите реальную железяку и с ней развлекайтесь.

Re: Оссицилограф на STM32

Вс ноя 06, 2022 19:24:49

В отличие от avr про arm информации очень мало.
Звучит как начало диссера или минимум дипломной работы :)

Только вот даже не скроля можно наткнуться на 317-страничную тему про осцилл на STM32. :idea:

Re: Оссицилограф на STM32

Вс ноя 06, 2022 19:58:25

Но это ещё не законченный разговор.

То есть, нас тут ждет много интересных "открытий" и "откровений", когда топикстартер всё же случайно найдет сайт st.com и раздел Documentations в нём :)))

Re: Оссицилограф на STM32

Вс ноя 06, 2022 20:22:48

Каждый разработчик должен написать свой осциллограф на STM :))) .

Re: Оссицилограф на STM32

Вс ноя 06, 2022 20:27:29

И написать его на оверклоченной BluePill в ПРОТЕУСЕ! Там то как раз именно осциллографа то и не хватает.

Re: Оссицилограф на STM32

Пн ноя 07, 2022 11:30:53

Но это ещё не законченный разговор.

То есть, нас тут ждет много интересных "открытий" и "откровений", когда топикстартер всё же случайно найдет сайт st.com и раздел Documentations в нём :)))

Всё, что нашёл, в сундук сейчас положил. Ассемблерных инструкций в них обнаружить не удаётся. Сводной таблицы по регистрам нет. Отдельно описания есть в даташите по линейке . В описаниях функциональных узлов. В протеусе именно на stm32f103c8 проект с компиляцией кода создать не удаётся. stm32cube делает только заготовки на C. Для компиляции наверное линукс придётся на виртуалку ставить. Embitz сейчас в сундуке попался. Буду пробовать.

Re: Оссицилограф на STM32

Пн ноя 07, 2022 11:33:13

Да ну хоспидя, да ну вы что. Это уже больше 10 лет как есть. Документ RM0008 на сайте найдите.
https://www.st.com/resource/en/referenc ... ronics.pdf

https://www.st.com/resource/en/programm ... ronics.pdf

Там как бы все есть, надо только пролистать. Да, объем инфы немалый. Полный список инструкций занимает несколько страниц, а список регистров и битов разделён на разделы. Просто потому, что их оооочень много, просто очень, по сравнению с каким-нить PIC16F84A

Re: Оссицилограф на STM32

Пн ноя 07, 2022 12:34:38

Да ну хоспидя, да ну вы что. Это уже больше 10 лет как есть. Документ RM0008 на сайте найдите.
https://www.st.com/resource/en/referenc ... ronics.pdf

https://www.st.com/resource/en/programm ... ronics.pdf

Там как бы все есть, надо только пролистать. Да, объем инфы немалый. Полный список инструкций занимает несколько страниц, а список регистров и битов разделён на разделы. Просто потому, что их оооочень много, просто очень, по сравнению с каким-нить PIC16F84A

Спасибо. Скачал. Но ассемблерных инструкций через поиск не нашёл. Дома на большом экране изучу получше. Можно прошивку и на бумажке карандашом составить. Но для этого нужно описание машинных команд.

Re: Оссицилограф на STM32

Пн ноя 07, 2022 13:12:44

Ммм, вона чо... Не нашли. Стр. 44 документа PM0056, Cortex M3 Instruction set. Да-да, именно так выглядят ассемблере инструкции. Их больше 100 штук

Re: Оссицилограф на STM32

Пн ноя 07, 2022 14:06:01

Но ассемблерных инструкций через поиск не нашёл.

Красиво тут.
На лучше освоить СИ. Примеров на asm очень мало. Это не AVR.

Re: Оссицилограф на STM32

Пн ноя 07, 2022 14:58:25

Но для этого нужно описание машинных команд.
Это единственное, чего не хватает, чтобы осцилл забабахать? :)

Re: Оссицилограф на STM32

Пн ноя 07, 2022 15:33:37

Да, потому что настоящий осцилл должен делаться на ассемблере и на разогнанном до 120 МГц замученном несчастном STM32F103C8.
При том, что уже в широком доступе есть такая же плата на F411CC с лучшими характеристиками.

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

Кстати, прошивку осцилла на ассемблере карандашом на бумажке не составишь. Там же несколько ТЫСЯЧ строк будет, даже несколько десятков тысяч. Не говоря уже о том, что для начала нужно вообще руками и глазами посмотреть и понять, как это в железе работает

Re: Оссицилограф на STM32

Пн ноя 07, 2022 16:20:38

А разве F303 не круче в плане аналоговых входов и т.п.? Подумаешь, что частота меньше, зато АЦП у какое! И всякие предусилители и прочее есть. Правда, это вроде как есть и в F407. Я с ним на днях начал знакомство. Несколько часов потратил на "блинк". Благо, уже писал базовые настройки HSI/HSE под F303 (правда, это не сильно помогло с F407: у него немножко по-другому), а вот линкер-скрипт от F303 прямо-таки превосходно к F407 подходит (хоть я специальной областью ОЗУ и не пользуюсь: я вообще не представляю себе, как можно больше 20-30кБ ОЗУ занять, у меня и прошивки-то за 30кБ не вылезают, разве что шрифтов туда напихать). Теперь вот для отладки запилю UART, и буду USB переносить (но с OTG, чувствую, будет та еще жесть, особенно учитывая то, что у F407 еще и FS есть). Ну, если таки этим хотя бы по 2-3 часа на работе заниматься, авось, через полгода осилю написать весь необходимый набор сниппетов.

В общем, чем толще даташит, тем страшней и больше времени тратится ☺
В STM8 я въезжал куда быстрей, но там и с периферией попроще, да и нет всяких армовских заморочек (типа тех же стартапа и линкер-скрипта). А вот для того же STM32 первое мое приближение к USB я чуть ли не год писал!

Интересно, сколько времени убьет ТС, если будет на асме хоть тот же USB реализовывать. Особенно если двойную буферизацию задумает.

Re: Оссицилограф на STM32

Пн ноя 07, 2022 18:44:57

сколько времени убьет ТС,

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

Re: Оссицилограф на STM32

Пн ноя 07, 2022 18:53:17

Да уж, с параллельным интерфейсом дисплея на 48-ногом F103 может возникнуть внезапный прикол: ТС просто не найдет свободного порта, чтобы ноги подряд шли - для передачи данных эмуляцией FSMC на DMA по таймеру через BSRR. И придется ему дрыгать ногами в прерывании таймера. А на обработку данных с АЦП времени и не останется ☺
Хотя, можно, конечно, просто сначала захватывать, а потом отображать - без псевдореального времени. В этом случае вообще можно дисплей на SPI или даже I2C взять. Но по-хорошему таки нужно брать чип с аппаратной поддержкой параллельного интерфейса. И дисплей желательно на 16-битной параллельной шине…
И внезапно окажется, что у F103 нет FPU! И будет ТС частотный анализ пытаться делать в целых числах или с фиксированной запятой…
В общем, странный выбор чипа для осциллографа, и уж тем более странно пытаться разработку на МК начать с осциллографа. Я со всем своим багажом сниппетов осциллограф не меньше года бы разрабатывал. И получилась бы какая-нибудь фигня на 20МГц…

Re: Оссицилограф на STM32

Пн ноя 07, 2022 20:31:59

Показанный в том проекте дисплей на ILI9341 может получать картинку как по параллельному 8-битному (так сделано в большинстве китайских модулей), либо по SPI, который можно разогнать до 32 - 36 МГц (я пробовал).
Дисплеи по I2C имеют катастрофически низкую скорость передачи - 50'000 байт/с, это подходит только для монохромных OLED-ов.

Re: Оссицилограф на STM32

Вт ноя 08, 2022 01:57:59

Но для этого нужно описание машинных команд.
Это единственное, чего не хватает, чтобы осцилл забабахать? :)

А вдруг не заработает? Платку можно будет использовать для испытания флюсов? Эту ветку создал, что бы узнать, а не пробовал ли это кто повторять? Если есть положительные результаты заказать и собрать точно по этой статье. Ни шагу влево. Ни шагу в право. Только входные цепи доработать. А стоит ли серьёзно изучать stm32 пока не определился. На avr уже неплохое рабочее место собрал. Свой вариант разводки популярной платки есть. Решу проблему с недотравом, попробую собрать. Получится, доработаю. Сейчас уже много по stm32 нашёл. Спасибо,что откликнулись на этом форуме. Уже можно заказывать и пробовать.

Re: Оссицилограф на STM32

Вт ноя 08, 2022 06:23:52

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


Иронично. Кажется, у меня изучение шло какими-то зигзагами.
Диодиками помигал, а потом на ассемблере написал осциллограв под ATMega8535. Ну не умел я тогда в Си =]
Хотя осциллографом это можно было назвать с очень большой натяжкой, но показания АЦП он выводил довольно красиво на экранчик TIC-96. I2C, 128*32 (вроди бы).
А только потом лапки мои добрались до сегментников и Си :\
Ответить