STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Сообщение Ярослав555 »

[uquote="pavell",url="/forum/viewtopic.php?p=3886441#p3886441"]По ЦАП есть отдельный апнот 4566 для всего семейства контроллеров, его посмотрите.[/uquote]
Да, я посмотрел апнот и понял что для обычной F серии надо подать ЦАП на АЦП для калибровки и сделать ее руками. Похоже что это для L серии они обновили архитектуру и там это происходит автоматом одной халовской функцией. Решали одну проблему многими способами, т-к точно не знали в чем причина. Убрали буффер и нагрузочные резисторы (у нас внешний буффер). Вроде как ошибка установки +5 мВ. Пока устраивает.
Реклама
Нашел транзистор. Понюхал.
Сообщения: 156
Зарегистрирован: Вс сен 06, 2020 16:06:10

Сообщение iddqd »

А правильно я понял что в F1xx для получения клока на MCO надо его как AFIO push-pull настроить, чтобы MCO мог пином вместо GPIO рулить?
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 363
Зарегистрирован: Вс мар 03, 2019 08:18:34
Откуда: Волгоград

Сообщение do-vitas »

микроконтроллер stm32f030f4 развел устройство управляет 2 мя реле и дисплейчиком 0802. температуру выводит. у меня такая проблема программа в каил написана из него прошиваю контролер по SWD. потом отредактировав программу заливаю второй раз а она не коннектится... подключаюсь по uart делаю сброс тогда опять видит, и могу опять прошить. уже 3шт перепаял блин.... отладка по swd не включена порты заняты все!
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

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

do-vitas писал(а):прошиваю контролер по SWD. потом отредактировав программу заливаю второй раз а она не коннектится
do-vitas писал(а):отладка по swd не включена порты заняты все
Тогда почему удивляетесь что не прошивается. :dont_know:
Вы сами отключили выводы отладки. Теперь шейте по SWD с зажатым сбросом или переведя в режим загрузчика. :)
Реклама
Эиком - электронные компоненты и радиодетали
Нашел транзистор. Понюхал.
Сообщения: 191
Зарегистрирован: Вт июн 05, 2018 00:18:01

Сообщение pvit »

[uquote="Мурик",url="/forum/viewtopic.php?p=3891542#p3891542"]Тогда почему удивляетесь что не прошивается. :dont_know:
Вы сами отключили выводы отладки. Теперь шейте по SWD с зажатым сбросом или переведя в режим загрузчика. :)[/uquote]

Поэтому я на разъем для swd всегда вывожу reset :).
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 363
Зарегистрирован: Вс мар 03, 2019 08:18:34
Откуда: Волгоград

Сообщение do-vitas »

pvit, через ресет не вышло! по крайней мере STM32CubeProgrammer! другой не пробовал! а вот режиме бут и через swd прошил спс всем все настроил!
Реклама
Нашел транзистор. Понюхал.
Сообщения: 191
Зарегистрирован: Вт июн 05, 2018 00:18:01

Сообщение pvit »

Странно. Мне помогало кода в кубе swd отключил в настройках по ошибке.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 386
Зарегистрирован: Чт окт 31, 2013 10:54:32

Сообщение alex38779 »

Есть потенциометр, с которого я считываю значения. Это значение я записываю в регистр ARR таймера. В таймер переключает светодиод с вкл на выкл, чисто для индикации работы.

В коде(в основном цикле while) это выглядит вот так:

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

        __disable_irq();		
		uint16_t data = ADC1_Get_Data();
  		TIM16->CR1 &= ~TIM_CR1_CEN; //выкл таймер
		TIM16->ARR = data + 100; // обновляем регистр
		TIM16->CR1 |= TIM_CR1_CEN; // запускаем таймер
		USART1_send_STR_INT("data: ", data + 100);
		__enable_irq();
		delay_ms(10000000);
Как правильно сделать обновление регистра ARR таймера? Иногда происходят зависания таймера, в терминале я вижу обновления данных АЦП, но таймер не подает жизни, зависает в положении либо светодиод вкл, либо выкл.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 25420
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

И зачем вы постоянно дергаете выключение прерываний?
Собутыльник Кота
Аватара пользователя
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

На подумать. Что будет, если поставить ARR меньше CNT?
Мучитель микросхем
Сообщения: 446
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Откуда: 69.Ржев

Сообщение a797945 »

бит CEN - это не вкл/выкл таймера, это вкл/выкл внутр. тактирования счетчика таймера, поэтому он ни с регистрами ни со счетчиками ничего не делает.
обновление теневых регистров провоцирует другой бит. или событие переполнения.
Вам бы RM на свой камень посмотреть, там все в картинках.
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватара пользователя
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Сообщение СКАЗОЧНИК »

Всем привет. )
Примерно полтора года назад я умудрился на БлюПилл (103) инициализировать МК, настроить RTC и по его прерываниям раз в секунду выводить в порт двоичное значение на линейку из 8 светодиодов. Получилось что-то в виде двоичного секундомера.

Теперь смотрю в код и вообще ничего не понимаю.

Делал все на CMSIS. Даже комментарии писал. Читал рефренс мануал. И как и следовало ожидать, все забыл...

Хочу продолжить изучать МК. Именно с применением CMSIS. Все настройки регистров.
Пните пожалуйста в нужном направлении. Как освежить в памяти то, что изучал. Кто понятнее всего объясняет про эту библиотеку? Никакого куба не использую. Чисто на Кейл. Применяю простой программатор СТ-Линк2.

З.Ы. Я никуда не тороплюсь. Лучше маленькими порциями и медленно изучать, чем все и сразу.
Конечная цель на данный момент: подключить к БлюПилл ленту на ВС2812, реализовать интерфейс для них и выкидывать в него по средствам ДМА массив данных.
Последний раз редактировалось СКАЗОЧНИК Пн сен 14, 2020 13:10:02, всего редактировалось 1 раз.
Станислав
Собутыльник Кота
Аватара пользователя
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3892416#p3892416"]Пните пожалуйста в нужном направлении.[/uquote]RM008
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватара пользователя
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Сообщение СКАЗОЧНИК »

:shock: И все?
Этот есть у меня.. Неужели все так просто?
Станислав
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

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

СКАЗОЧНИК писал(а):Теперь смотрю в код и вообще ничего не понимаю.
Вот поэтому лучше писать используя SPL или в крайнем случае HAL.
Через время код лучше читается и его проще переносить на другие МК.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 363
Зарегистрирован: Вс мар 03, 2019 08:18:34
Откуда: Волгоград

Сообщение do-vitas »

Про LL забыли что ли!
Друг Кота
Аватара пользователя
Сообщения: 6512
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3892425#p3892425"]:shock: И все?
Этот есть у меня.. Неужели все так просто?[/uquote]
Если упрощенно, то CMSIS всего лишь список регистров микроконтроллера и битов в них с названиями, для обращения к этим самым регистра и битам по именам определенным в подключаемых файлах. Для STM32F303CB это файл stm32f303xc.h. Оформлено в виде структур, обращаясь к элементам которых можно настраивать регистры по своему желанию.

Ничего особенного в этом нет, собстна. В средах программирования для PIC или AVR тоже никто не пишет адреса регистров в шешнадцатеричных кодах для обращения к ним.

Плохо то, что названия регистров в файлах CMSIS не всегда совпадают с названиями из RM.
Астролябия-сама меряет, было бы что мерять!!!
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватара пользователя
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Сообщение СКАЗОЧНИК »

Ага, я вспомнил про этот файл. Уже пролистал его. Спасибо. ) Из него и брал все в соответствии с РМ. Может и не совпадают, но мне пока не мешает такое.

Добавлено after 8 hours 21 minute 15 seconds:
Я понял и вспомнил, что Систик таймер не описан в РМ (на Ф103) тогда, когда не нашел про него даже в содержании... Он общий для всех семейств кортексов. Не могу вспомнить, где про него читал. Где его регистры описаны?
Станислав
Собутыльник Кота
Аватара пользователя
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

Тяжело, наверное, с банов в гугле жить? systick
В Cortex®-M3 programming manual он описан.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 363
Зарегистрирован: Вс мар 03, 2019 08:18:34
Откуда: Волгоград

Сообщение do-vitas »

Я тоже недавно начал изучать stm создаю проект в кубе потом открываю в кейле, там уже все библиотеки есть открываешь их и читаешь какие функции как работают, какие переменные передают! последнее время если использую библиотеку LL это некий компромис между высоким и низким уровнями!
Ответить

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