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

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

Вс авг 21, 2022 11:07:07

Андрей Осипов писал(а):Вот так STM32 в Аrduino. пользую для самого начала знакомства с STM3/
И сколько раз за это время использовали DMA? Или таймеры в режиме ШИМ захвата? Или классику - аппаратный запуск АЦП событием таймера и сбор данных оцифровки с помощью DMA?

Андрей Осипов писал(а):Чтобы был UART и COM порт для отладки
В STM32 отладка осуществляется через JTAG/SWD. Вывод текста в USART это не отладка.

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

Пн авг 22, 2022 16:23:35

Андрей Осипов писал(а):Вот так STM32 в Аrduino. пользую для самого начала знакомства с STM3/
И сколько раз за это время использовали DMA? Или таймеры в режиме ШИМ захвата? Или классику - аппаратный запуск АЦП событием таймера и сбор данных оцифровки с помощью DMA?

Андрей Осипов писал(а):Чтобы был UART и COM порт для отладки
В STM32 отладка осуществляется через JTAG/SWD. Вывод текста в USART это не отладка.
Мурик, мне пока сложно, хотя бы начать, познакомиться..
Это я потом обращусь, как SEGGEROM Кейлом emIDE Cube пользоваться..
Но там этот GPIO ... ужос сколько читать!
SEGGR пока завел - семь потов сошло.. все усы в узелки позавязывались..
Ужос..


Мне пока только Ардуино и NUCKLEO F103RB или Ардуино и ST-Link+USB UART на СН340G...

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

Пн авг 22, 2022 17:20:34

Ардуино

Жуть-то какая!
У меня тут студент пытался недавно на STM32F103C4T6 при помощи калокуба развернуть простенькую прошивочку (USB-CDC, работа с АЦП ну и немного всякого разного). Оно его послало куда подальше с аргументом, мол, флеша не хватает!
Я ему показал, что очень даже флеша хватает, если всяким дерьмищем не пользоваться (ну и голову включать: зачем использовать printf, флоаты и аллокаторы на МК, который не имеет ни MMU, ни аппаратных флоатов? а что до флоатов, то в его случае там fixed point вообще за глаза хватало).

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

Пн авг 22, 2022 18:14:40

зачем использовать printf, флоаты и аллокаторы на МК, который не имеет ни MMU, ни аппаратных флоатов? а что до флоатов, то в его случае там fixed point вообще за глаза хватало).

fixed-point тоже не всегда спасает. Совсем недавно делал USB-(CDC + MSD) с АЦП и всем остальным. MSD использовался в том числе для калибровки: платка прикидывается флешкой, на которой есть файлик. Пользователь туда вписывает пары "реальное значение" - "показания АЦП", а контроллер потом аппроксимирует прямой линией. Вот аппроксимацию мне без float'ов сделать не удалось. Впрочем, они используются в единственном месте, где скорость не критична. А объем - его там еще немеряно: вся прошивка менее 20 кБ занимает с учетом readme файла, который тоже виден на "флешке".
Eddy_Em писал(а):STM32F103C4T6 при помощи калокуба развернуть простенькую прошивочку (USB-CDC, работа с АЦП ну и немного всякого разного). Оно его послало куда подальше с аргументом, мол, флеша не хватает!
У C4 конечно всего 16 кБ памяти, но ведь студенту только CDC надо было. Это ж один из простейших протоколов, сам по себе оно где-то 4 кБ займет, а то и меньше. Под что ушло остальное?

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

Пн авг 22, 2022 22:09:45

COKPOWEHEU, Да я без понятия, что он там "наворотил", но калокуб его послал лесом, мол, не хватит ни флеша, ни оперативы.
А что до флоатов - да, иной раз бывают остро необходимы. Но в случае абдуринщиков… Эти ж их пихают вообще везде!

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

Чт авг 25, 2022 13:16:39

Андрей Осипов писал(а):Но там этот 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 отладку или прошивку.

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

Вс авг 28, 2022 17:39:15

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

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

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

деревья проектов в Кейл 4.jpg
(32.4 KiB) Скачиваний: 46



В Ардуино все на порядок проще было, раз и готово..... :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).

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

Ср окт 12, 2022 21:59:18

Наконец нормально подключил китайский 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...

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

Ср окт 12, 2022 22:11:40

Андрей Осипов писал(а):позволяет отлаживаться как по SWD так и по JTAG
Применительно к STM32 какое преимущество дал JTAG по сравнению с SWD? Больше проводов? Разве это преимущество?

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

Чт окт 13, 2022 00:05:51

Андрей Осипов писал(а):позволяет отлаживаться как по SWD так и по JTAG
Применительно к STM32 какое преимущество дал JTAG по сравнению с SWD? Больше проводов? Разве это преимущество?
Больше проводов - это круче, можно с экрана любые команды давать..
И проходит быстрее.

Я читал, что 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 KiB) Скачиваний: 36


Вот SWD - 6 (я провод контроля питания не считаю)
SWD - Jlink цоколевка.jpg
(119.3 KiB) Скачиваний: 33


Сравнение трех вариантов - STM32 интерфейсы SWD - JTAG - UART.

STM32 интерфейсы SWD - JTAG - UART.jpg
(45.4 KiB) Скачиваний: 33


На Али для SEGGER есть недорогой переходник с 20 на SWD-4..
Вот он у меня . не нашел фото в инете..
Там названия нужно поменять на SWCLK и SWDIO..

SWD-4 SEGGER 1.jpg
(41.74 KiB) Скачиваний: 35

SWD-4 SEGGER 2.jpg
(33.05 KiB) Скачиваний: 30


Хотя мне очень нравится работать с NUCLEO-F103RB STM32F103RBT6 и Arduino STM32

Изображение

У нее там все есть через один USB
Даже окно UART1 открывается в Arduinо, вывод UART через Sprintf1 ().
Можно и вводить через клаву , но я не пробовал.
Осваивать и знакомиться с STM32 в Arduino очень удобно.
Не мучают жуткие GPIO...

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

Чт окт 13, 2022 00:55:34

Андрей Осипов писал(а):Больше проводов - это круче
Больше не значит круче!

Андрей Осипов писал(а):можно с экрана любые команды давать
Какие команды вы передавали по 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.

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

Чт окт 13, 2022 11:16:48

В STM32 нормальная отладка.
А это какая IDE?
Откуда эта картинка?

И откуда это:
Очень сложный код?

#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);
}
}
Какая IDE, какой транслятор?

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

Чт окт 13, 2022 13:29:55

Андрей Осипов писал(а):А это какая IDE?
EmBitz. Но ее отладчик по умолчанию работает совестно с ST-Link, а не J-Link.

Андрей Осипов писал(а):Откуда эта картинка?
Это скриншот окна IDE...

Андрей Осипов писал(а):И откуда это
А откуда вообще берется код? :)
Его пишут! :)

Андрей Осипов писал(а):Какая IDE, какой транслятор?
Этот код не привязан к IDE и его можно собрать практически в любой.

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

Чт окт 13, 2022 19:57:01

Вот в F0 нет JTAG. Только SWD. Не вижу плюса от JTAGa. Перешивал STlink в Jlink и обратно.

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

Чт окт 13, 2022 20:17:03

Софт для j-link реализует удобную технологию RTT.

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

Чт окт 13, 2022 23:07:14

Вот в F0 нет JTAG. Только SWD. Не вижу плюса от JTAGa. Перешивал STlink в Jlink и обратно.
А как и где?


Софт для j-link реализует удобную технологию RTT.
Насколько я понял, это про 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 раз(а).

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

Чт окт 13, 2022 23:11:11

Яндекс все знает https://yandex.ru/search/?text=ST-Link+%D0%B2+J-Link

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

Пт окт 14, 2022 12:38:54

Больше проводов - это круче
Точно! Больше меди - гуд! В пункте сдачи металлолома можно выручить больше монет. 8)

Добавлено after 4 minutes 14 seconds:
прикупил китайский ULINK 2
Так давно известно - "скупой платит дважды". А в вашем случае даже - трижды. 8)

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

Пт окт 14, 2022 13:17:01

Андрей Осипов, да не надо так из-за убогого RTT расстраиваться! Ну какая там частота SWD? 4МГц? RTT фактически означает, что поллится состояние некоего флага. Как только он ==1, считывается буфер (можно флагом сделать длину данных в буфере, тогда еще лучше будет). Считали буфер - обнулили флаг, поллим снова.
Если же просто взять UART, настроить на 3МГц и при помощи DMA слать буфер по достижению "\n", будет примерно то же самое. Но без необходимости полезные ноги тратить на уродский SWD!

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

Пт окт 14, 2022 17:29:59

Добавлено after 4 minutes 14 seconds:
прикупил китайский ULINK 2
Так давно известно - "скупой платит дважды". А в вашем случае даже - трижды. 8)
Эх...
Могу даром отдать ULINK 2 в Мск...
Изображение
Ответить