Stm32 с чего начать изучение...

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Stm32 с чего начать изучение...

Сообщение Мурик »

Андрей Осипов писал(а):Вот так STM32 в Аrduino. пользую для самого начала знакомства с STM3/
И сколько раз за это время использовали DMA? Или таймеры в режиме ШИМ захвата? Или классику - аппаратный запуск АЦП событием таймера и сбор данных оцифровки с помощью DMA?
Андрей Осипов писал(а):Чтобы был UART и COM порт для отладки
В STM32 отладка осуществляется через JTAG/SWD. Вывод текста в USART это не отладка.
Реклама
Аватара пользователя
Андрей Осипов
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Сб авг 20, 2022 17:54:06

Re: Stm32 с чего начать изучение...

Сообщение Андрей Осипов »

[uquote="Мурик",url="/forum/viewtopic.php?p=4276221#p4276221"]
Андрей Осипов писал(а):Вот так STM32 в Аrduino. пользую для самого начала знакомства с STM3/
И сколько раз за это время использовали DMA? Или таймеры в режиме ШИМ захвата? Или классику - аппаратный запуск АЦП событием таймера и сбор данных оцифровки с помощью DMA?
Андрей Осипов писал(а):Чтобы был UART и COM порт для отладки
В STM32 отладка осуществляется через JTAG/SWD. Вывод текста в USART это не отладка.[/uquote]Мурик, мне пока сложно, хотя бы начать, познакомиться..
Это я потом обращусь, как SEGGEROM Кейлом emIDE Cube пользоваться..
Но там этот GPIO ... ужос сколько читать!
SEGGR пока завел - семь потов сошло.. все усы в узелки позавязывались..
Ужос..


Мне пока только Ардуино и NUCKLEO F103RB или Ардуино и ST-Link+USB UART на СН340G...
Реклама
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение Eddy_Em »

Ардуино
Жуть-то какая!
У меня тут студент пытался недавно на STM32F103C4T6 при помощи калокуба развернуть простенькую прошивочку (USB-CDC, работа с АЦП ну и немного всякого разного). Оно его послало куда подальше с аргументом, мол, флеша не хватает!
Я ему показал, что очень даже флеша хватает, если всяким дерьмищем не пользоваться (ну и голову включать: зачем использовать printf, флоаты и аллокаторы на МК, который не имеет ни MMU, ни аппаратных флоатов? а что до флоатов, то в его случае там fixed point вообще за глаза хватало).
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: Stm32 с чего начать изучение...

Сообщение COKPOWEHEU »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4276706#p4276706"]зачем использовать printf, флоаты и аллокаторы на МК, который не имеет ни MMU, ни аппаратных флоатов? а что до флоатов, то в его случае там fixed point вообще за глаза хватало).[/uquote]
fixed-point тоже не всегда спасает. Совсем недавно делал USB-(CDC + MSD) с АЦП и всем остальным. MSD использовался в том числе для калибровки: платка прикидывается флешкой, на которой есть файлик. Пользователь туда вписывает пары "реальное значение" - "показания АЦП", а контроллер потом аппроксимирует прямой линией. Вот аппроксимацию мне без float'ов сделать не удалось. Впрочем, они используются в единственном месте, где скорость не критична. А объем - его там еще немеряно: вся прошивка менее 20 кБ занимает с учетом readme файла, который тоже виден на "флешке".
Eddy_Em писал(а):STM32F103C4T6 при помощи калокуба развернуть простенькую прошивочку (USB-CDC, работа с АЦП ну и немного всякого разного). Оно его послало куда подальше с аргументом, мол, флеша не хватает!
У C4 конечно всего 16 кБ памяти, но ведь студенту только CDC надо было. Это ж один из простейших протоколов, сам по себе оно где-то 4 кБ займет, а то и меньше. Под что ушло остальное?
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение Eddy_Em »

COKPOWEHEU, Да я без понятия, что он там "наворотил", но калокуб его послал лесом, мол, не хватит ни флеша, ни оперативы.
А что до флоатов - да, иной раз бывают остро необходимы. Но в случае абдуринщиков… Эти ж их пихают вообще везде!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Реклама
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Stm32 с чего начать изучение...

Сообщение Мурик »

Андрей Осипов писал(а):Но там этот GPIO ... ужос сколько читать!
Очень сложный код?

Код: Выделить всё

#include "stm32f10x_conf.h"

void Delay(volatile uint32_t nCount) {
	for (; nCount != 0; nCount--);
}

int main(void)
{

   GPIO_InitTypeDef gpio;

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

	gpio.GPIO_Pin = GPIO_Pin_13;
	gpio.GPIO_Mode = GPIO_Mode_Out_PP;
	gpio.GPIO_Speed = GPIO_Speed_50MHz;

	GPIO_Init(GPIOC, &gpio);

    while(1)
    {
        GPIO_SetBits(GPIOC, GPIO_Pin_13);
        Delay(2000000);
        GPIO_ResetBits(GPIOC, GPIO_Pin_13);
        Delay(2000000);
    }
}
Даже на регистрах ничего сложного. В сети полно статей на эту тему http://dimoon.ru/obuchalka/stm32f1/prog ... -gpio.html
Андрей Осипов писал(а):SEGGR пока завел - семь потов сошло.. все усы в узелки позавязывались..
Китайский ST-Link прекрасно работает. Не нужно ничего настраивать. Подключили ST-Link и целевым МК и запускаете в IDE отладку или прошивку.
Реклама
Аватара пользователя
Андрей Осипов
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Сб авг 20, 2022 17:54:06

Re: Stm32 с чего начать изучение...

Сообщение Андрей Осипов »

Даже на регистрах ничего сложного. В сети полно статей на эту тему http://dimoon.ru/obuchalka/stm32f1/prog ... -gpio.html.
Мурик, спасибо, ссылка шикарная.. :))

Но тут..
Китайский ST-Link прекрасно работает. Не нужно ничего настраивать. Подключили ST-Link и целевым МК и запускаете в IDE отладку или прошивку.
Да, спасибо, ST-Link V2 работает...
Но я пока только готовым проектом в Кейле пользуюсь..

С GPIO еще можно было бы разобраться, ладно..
Но я пытался открыть новый проект для STN32 в Кейле - ничего не получается..
Как набивать файлы в эти папки проекта в Кейл и где их создавать в Кейле для STM32??
деревья проектов в Кейл 4.jpg
(32.4 КБ) 83 скачивания

В Ардуино все на порядок проще было, раз и готово..... :o
А к IAR ARM я даже не подходил..
Запустил только Кейл для ARM, CoIDE STM32 и 32 emIDE с примерами.....


И как этот проект в Кейл для STM 32создавать?...
От этих трудностей уже лапы ломит и хвост отваливается... :cry: :cry:

Вот тут читал, читал для Кейла 4го
http://easyelectronics.ru/arm-uchebnyj- ... oekta.html
Но, но...
Моего там не было.

Не в этих файлах было дело...
Дело было в:
Flash-Configure Flash Tools - C/C++ - Preprocessors Sumbols - Define - STM32F10X_MD
уфф....

СРАЗУ ВСЕ В ПОРЯДКЕ.
Rebuild target 'STM 32'
assembling startup_stm32f10x_md.s...
compiling system_stm32f10x.c...
compiling hello.c...
compiling Retarget.c...
compiling Serial.c...
linking...
Program Size: Code=1252 RO-data=348 RW-data=32 ZI-data=1632
FromELF: creating hex file...
".\example Keil project.axf" - 0 Error(s), 0 Warning(s).
Аватара пользователя
Андрей Осипов
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Сб авг 20, 2022 17:54:06

Re: Stm32 с чего начать изучение...

Сообщение Андрей Осипов »

Наконец нормально подключил китайский J-Link SEGGER к STM32....

Изображение

Только берите буферированный..
Чтобы кроме одной большой микросхемы стояла пара поменьше, перед кабелем на 20 пинов..

Вот такой

Изображение

Бывает без буферных микросзхем..

Так вот, к CoIDE STM32 и emIDE даже напрямую SEGGER J-Link подключался только через сервер, как удаленная микросхема.. Никаких других вариантов я не нашел..
Натерпелся я с этими серверами...

Потом поставил Keil и все сразу заработало...
Выбрал в Flash Propertis -> Dounload и Debagger вариант J-LINK/J-TRACE Cortex ...
И все встало на мсвои места..

Только я сначала подключался к плате на STM32F103C8T6 с разъемом 20 pin JTAG/SWD
Который подходит к 20 пиновому кабелю SEGGERа


Изображение

Он подошел к вот такой плате на STM32F103C8T6 с разъемом 20 pin

Изображение

Там с обратной стороны все названия выводов подробно расписаны!

Все запело и заиграло..
Питания подается прямо с SEGGER не нужно внешнего питания..

Если что сбору 4 штырька, на которые GND - TXD - RTХ - 5 вольт.
Очень удобно.

Если в наборе с SEGGERом купить переходник

Изображение

То маленький 4 пина белый разьем можно подключать прямо к плате BLUE PILL

Изображение

Все работает в Keil.

До этого использовал ST-Link V2

Вот такой
Изображение

и вот такой, подешевле...

Изображение

в Кейле они также выбираются и подключаются как ST-Link..
Даже в Arduino эти ST-Link V2 - работают с STM32...

Но SEGGER в Кейл позволяет отлаживаться как по SWD так и по JTAG...
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Stm32 с чего начать изучение...

Сообщение Мурик »

Андрей Осипов писал(а):позволяет отлаживаться как по SWD так и по JTAG
Применительно к STM32 какое преимущество дал JTAG по сравнению с SWD? Больше проводов? Разве это преимущество?
Аватара пользователя
Андрей Осипов
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Сб авг 20, 2022 17:54:06

Re: Stm32 с чего начать изучение...

Сообщение Андрей Осипов »

[uquote="Мурик",url="/forum/viewtopic.php?p=4303978#p4303978"]
Андрей Осипов писал(а):позволяет отлаживаться как по SWD так и по JTAG
Применительно к STM32 какое преимущество дал JTAG по сравнению с SWD? Больше проводов? Разве это преимущество?[/uquote]Больше проводов - это круче, можно с экрана любые команды давать..
И проходит быстрее.

Я читал, что JTAG использовался для проверки самих микросхем...
И что он как-то сильно круче.
Но, насколько понимаю, он уже устаревает...
И насколько круче, мне точно неизвестно.
Я не настольуо продвинут..

Я тут вообще, как-то разочаровавшись и устав от SEGGERа когда использовал его без Кейла с его localhost-ами даже прикупил китайский ULINK 2, он только по JTAG отлаживает и загружает..
Хотел поотлаживать..
Да уж..

Изображение

Но все оказалось не очень хорошо..
1 - он реально медленее грузит по JTAG чем китайский SEGGER...
Оочень медленно отлаживает...
И иногда не слишком стабильно...

SEGGER отлаживает и грузит одинаково быстро как по SWD так и по JTAG..
Насколько я понимаю, про JTAG мне можно не думать...
И даже про отладку по SWD....

Да, SWD бывает двух типов..
с 4 проводами и с 6 проводами.
В ST-Link V2 используется SWD -4 4 провода..

В SEGGER можно использовать и 6 и 4..
Вон, на фото два белых - это как раз SWD-4 (ST-Link V2) и SWD-6...

Изображение

с обратной стороны видны названия контактов,
там SWD-6 вверху и SWD-4 внизу..

Изображение


Насколько я понимаю, SWD-6 прочти также крут как и JTAG...

Хотя в JTAG - 9 - девять проводов...
Наверно таки серьезнее...

Но для меня пока для отладки программ вообще достаточно UARTа, а для аппаратной части - светодиодов и осциллографа..

Мне эти регистры и ассемблер 32й пока мало что дают..
Если бы была символьная отладка для программ...
Но где ее искать?

Пока только только printff() и вывод на терминал PUTTY через USB-COM порт(на СН340) через РА9 (это выход UARTа на STM32F103C8T6 ) ..


Если хочешь поиграться с отладкой по SWD и JTAG то купи китайскийJ-Link SEGGER и вот эту

Изображение

20 пиновую плату

Можно SEGGER и к BLUE PILL подключить, но я часто провода путаю..
Сожгу нафиг..
И перепроверять контакты по много раз...



Если хочется поотлаживать, то лучше купить китайскийJ-Link SEGGER

Вот схемы подключения к SEGGER по JTAG и SWD-6. (но можно и по SWD-4 )
JTAG - Jlink цоколевка.jpg
(136.78 КБ) 74 скачивания
Вот SWD - 6 (я провод контроля питания не считаю)
SWD - Jlink цоколевка.jpg
(119.3 КБ) 68 скачиваний
Сравнение трех вариантов - STM32 интерфейсы SWD - JTAG - UART.
STM32 интерфейсы SWD - JTAG - UART.jpg
(45.4 КБ) 68 скачиваний
На Али для SEGGER есть недорогой переходник с 20 на SWD-4..
Вот он у меня . не нашел фото в инете..
Там названия нужно поменять на SWCLK и SWDIO..
SWD-4 SEGGER 1.jpg
(41.74 КБ) 73 скачивания
SWD-4 SEGGER 2.jpg
(33.05 КБ) 61 скачивание
Хотя мне очень нравится работать с NUCLEO-F103RB STM32F103RBT6 и Arduino STM32

Изображение

У нее там все есть через один USB
Даже окно UART1 открывается в Arduinо, вывод UART через Sprintf1 ().
Можно и вводить через клаву , но я не пробовал.
Осваивать и знакомиться с STM32 в Arduino очень удобно.
Не мучают жуткие GPIO...
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Stm32 с чего начать изучение...

Сообщение Мурик »

Андрей Осипов писал(а):Больше проводов - это круче
Больше не значит круче!
Андрей Осипов писал(а):можно с экрана любые команды давать
Какие команды вы передавали по JTAG которые нельзя передать по SWD?
Андрей Осипов писал(а):И проходит быстрее.
Что в JTAG, что в SWD последовательный метод передачи данных. Большинство проводов это общий провод.
Андрей Осипов писал(а):Я читал, что JTAG использовался для проверки самих микросхем...И что он как-то сильно круче.
Ну и где ссылки на статьи? А то знаете написать можно все что угодно.
Спойлер
- Правда, что академик Акопян выиграл "Волгу" в лотерею?
- Правда. Только не Акопян, а Айвазян, и не "Волгу", а "Запорожец", и не в лотерею, а в преферанс, и не выиграл, а проиграл.
Андрей Осипов писал(а):Да, SWD бывает двух типов..с 4 проводами и с 6 проводами. В ST-Link V2 используется SWD -4 4 провода
Данные по SWD передаются по двум проводам - SWDIO и SWCLK. Остальные провода это питание, сброс и др.
Необходимый минимум это 3 провода - SWDIO SWCLK и общий провод.
Андрей Осипов писал(а):Насколько я понимаю, SWD-6 прочти также крут как и JTAG
По названиям контактов разве не ясно для чего они? Сразу должно быть понятно в чем отличие 4-ех и 6-ти выводного разъема. Если не понятно, то вы точно не заметите разницы между JTAG и SWD.
Андрей Осипов писал(а):Если бы была символьная отладка для программ...Но где ее искать?
В STM32 нормальная отладка.
СпойлерИзображение

Изображение
Андрей Осипов писал(а):Если хочешь поиграться с отладкой по SWD и JTAG то купи китайскийJ-Link SEGGER и вот эту
Смысл если точно также можно поиграться с китайским st-link и платой с STM32F103C6T6 BKB STM32F103C8T6? Выйдет дешевле, а результат тот же.
В плане STM32 st-link ничем не хуже j-link.
Аватара пользователя
Андрей Осипов
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Сб авг 20, 2022 17:54:06

Re: Stm32 с чего начать изучение...

Сообщение Андрей Осипов »

[uquote="Мурик",url="/forum/viewtopic.php?p=4304017#p4304017"]В STM32 нормальная отладка.
СпойлерИзображение

Изображение
[/uquote]А это какая IDE?
Откуда эта картинка?

И откуда это:
[uquote="Мурик",url="/forum/viewtopic.php?p=4278074#p4278074"]Очень сложный код?

#include "stm32f10x_conf.h"

void Delay(volatile uint32_t nCount) {
for (; nCount != 0; nCount--);
}

int main(void)
{

GPIO_InitTypeDef gpio;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

gpio.GPIO_Pin = GPIO_Pin_13;
gpio.GPIO_Mode = GPIO_Mode_Out_PP;
gpio.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOC, &gpio);

while(1)
{
GPIO_SetBits(GPIOC, GPIO_Pin_13);
Delay(2000000);
GPIO_ResetBits(GPIOC, GPIO_Pin_13);
Delay(2000000);
}
}[/uquote] Какая IDE, какой транслятор?
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Stm32 с чего начать изучение...

Сообщение Мурик »

Андрей Осипов писал(а):А это какая IDE?
EmBitz. Но ее отладчик по умолчанию работает совестно с ST-Link, а не J-Link.
Андрей Осипов писал(а):Откуда эта картинка?
Это скриншот окна IDE...
Андрей Осипов писал(а):И откуда это
А откуда вообще берется код? :)
Его пишут! :)
Андрей Осипов писал(а):Какая IDE, какой транслятор?
Этот код не привязан к IDE и его можно собрать практически в любой.
Sergi
Мучитель микросхем
Сообщения: 412
Зарегистрирован: Ср янв 04, 2012 11:57:40
Откуда: Алчевск

Re: Stm32 с чего начать изучение...

Сообщение Sergi »

Вот в F0 нет JTAG. Только SWD. Не вижу плюса от JTAGa. Перешивал STlink в Jlink и обратно.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Stm32 с чего начать изучение...

Сообщение VladislavS »

Софт для j-link реализует удобную технологию RTT.
Аватара пользователя
Андрей Осипов
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Сб авг 20, 2022 17:54:06

Re: Stm32 с чего начать изучение...

Сообщение Андрей Осипов »

[uquote="Sergi",url="/forum/viewtopic.php?p=4304429#p4304429"]Вот в F0 нет JTAG. Только SWD. Не вижу плюса от JTAGa. Перешивал STlink в Jlink и обратно.[/uquote]А как и где?


[uquote="VladislavS",url="/forum/viewtopic.php?p=4304438#p4304438"]Софт для j-link реализует удобную технологию RTT.[/uquote]Насколько я понял, это про SEGGER J-Link, а не про ST Link V2 (свисток).
А какой SEGGER?
SEGGER J-Link V9 пойдет?
И какой Кейл? у меня Кейл 4.7 на ХР...
На STM32F103C8T6 пойдет RTT?
Или это только на старших моделях STM32?

Да, RTT - это мой любимый виртуальный UART с printf() от SEGGER J-Link..
SEGGER_RTT_printf(0, "Текст = %s \ r \ n", текст);
Только гораздо быстрее и удобнее..
Но мне сложновато пока будет.
Я пока пользуюсь стандартным UARTом и Putty.

Но RTT красиво......

https://habr.com/ru/post/259205/
Технология Real Time Terminal от Segger

https://russianblogs.com/article/3849662830/
Меморандум об отладке - использование J-Link
RTT (принцип + учебник + приложение + код)

Советы и рекомендации по отладке Segger J-Link
https://translated.turbopages.org/proxy ... sTricks.md

Как же хорошо живут некоторые люди.... эх...

А J-Link RTT Viewer у меня стоит....
Если бы еще заработал бы..
Последний раз редактировалось Андрей Осипов Чт окт 13, 2022 23:33:19, всего редактировалось 5 раз.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Stm32 с чего начать изучение...

Сообщение Мурик »

jcxz
Мудрый кот
Сообщения: 1717
Зарегистрирован: Вт авг 15, 2017 10:51:13

Re: Stm32 с чего начать изучение...

Сообщение jcxz »

[uquote="Андрей Осипов",url="/forum/viewtopic.php?p=4304008#p4304008"]Больше проводов - это круче[/uquote]Точно! Больше меди - гуд! В пункте сдачи металлолома можно выручить больше монет. 8)

Добавлено after 4 minutes 14 seconds:
[uquote="Андрей Осипов",url="/forum/viewtopic.php?p=4304008#p4304008"]прикупил китайский ULINK 2[/uquote]Так давно известно - "скупой платит дважды". А в вашем случае даже - трижды. 8)
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Stm32 с чего начать изучение...

Сообщение Eddy_Em »

Андрей Осипов, да не надо так из-за убогого RTT расстраиваться! Ну какая там частота SWD? 4МГц? RTT фактически означает, что поллится состояние некоего флага. Как только он ==1, считывается буфер (можно флагом сделать длину данных в буфере, тогда еще лучше будет). Считали буфер - обнулили флаг, поллим снова.
Если же просто взять UART, настроить на 3МГц и при помощи DMA слать буфер по достижению "\n", будет примерно то же самое. Но без необходимости полезные ноги тратить на уродский SWD!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
Андрей Осипов
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Сб авг 20, 2022 17:54:06

Re: Stm32 с чего начать изучение...

Сообщение Андрей Осипов »

[uquote="jcxz",url="/forum/viewtopic.php?p=4304701#p4304701"]Добавлено after 4 minutes 14 seconds:[uquote="Андрей Осипов",url="/forum/viewtopic.php?p=4304008#p4304008"]прикупил китайский ULINK 2[/uquote]Так давно известно - "скупой платит дважды". А в вашем случае даже - трижды. 8)[/uquote]Эх...
Могу даром отдать ULINK 2 в Мск...
Изображение
Ответить

Вернуться в «ARM»