Например TDA7294

Форум РадиоКот • Просмотр темы - Микроконтроллеры STM32 - тонкости работы, отладочные платы
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Пн июл 14, 2025 05:40:07

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 179 ]     ... , , , , 9
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Ср апр 23, 2025 08:24:56 
Друг Кота
Аватар пользователя

Карма: 61
Рейтинг сообщений: 1537
Зарегистрирован: Вт окт 22, 2013 04:37:23
Сообщений: 3322
Откуда: Казань
Рейтинг сообщения: 0
Я CubeIDE пользуюсь редко, но с каких пор Куб стал компилировать код? Генерировать проект, который потом компилируется, например, Keil, это одно, но сразу компилировать Си-шный код CubeIDE давно научился?

_________________
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезисты Ordyl Alpha 350 и AM 140.
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльная маска XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Ср апр 23, 2025 11:32:54 
Опытный кот

Зарегистрирован: Вс мар 23, 2025 14:56:55
Сообщений: 700
Рейтинг сообщения: 0
smacorp, вроде да: "STM32CubeIDE is an advanced C/C++ development platform with peripheral configuration, code generation, code compilation, and debug features for STM32" (тоже редко пользовался и давно)

Добавлено after 31 minute 41 second:
С Volatile вчера не помогло. Но может сегодня поможет? Бывает у Cube IDE такой загон, иногда он bin файл не перезаписывает или собирает по предыдущему коду, а я этого не заметил, приговорил Volatile, и продолжил отлаживать костыль printf...
Да, так и вышло - Cube настолько "умный", что пока не внесешь значительные изменения в код, он может не пересобраться. Не раз с утра такое замечал - куб запустил, код собрал, а бинарник остался вчерашний
Что-то не верится мне в это. Не знаю ни одной среды разработки с таким поведением.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Ср апр 23, 2025 20:12:15 
Говорящий с текстолитом

Карма: -10
Рейтинг сообщений: 173
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1500
Рейтинг сообщения: 0
С Volatile вчера не помогло.
Уж который раз наш мучитель страйкболистов пишет про какой-то 'Volatile'. Кто-нить знает - что это такое? :dont_know:
Может все здесь думают, что он имеет в виду 'volatile', а он на самом деле в коде пишет 'Volatile'. :))) Который где-нить в его хидерах (откуда-то скачанных) определён как:
Код:
#define Volatile
От того и чудеса с этим мнимым Volatile.

Добавлено after 1 minute 9 seconds:
Как уже говорил выше, лучше бы начать с азов
Согласен полностью. Автору нужно брать учебник и садиться за учёбу. Рано ему ещё программы писать....

Говорить: "Загляни в дизассемблер кода или в листинг - и сразу поймёшь, что не так с переменными и как они в реале работают" - вообще не имеет смысла. Всё равно, что слепому говорить "Оцени красоту заката".


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Чт июн 26, 2025 22:51:02 
Открыл глаза

Зарегистрирован: Пн янв 13, 2014 16:01:21
Сообщений: 48
Рейтинг сообщения: 0
Есть вопрос по отладке. Тренируюсь на STM32F407G-DISC1. Сейчас пытаюсь запустить АЦП с DMA. Если запускать программу в режиме отладки, напряжение показывает правильно. Если выйти из отладки и нажать кратковременно Ресет , отображаемое напряжение на 15% меньше, но измерение работает. Если выключить и включить питание(или подержать Ресет более сек.)- половина напряжения и на его изменение не реагирует. Ну да ладно с измерениями( программа написана не правильно), но в чем тогда смысл отладки?


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Пт июн 27, 2025 07:20:17 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1224
Рейтинг сообщения: 0
lubitel5 писал(а):
чем тогда смысл отладки?

Да хотя бы в том, чтобы узнать о проблемах в вашей схеме и ПО, коли они так реагируют на изменение способа запуска _вашей_ программы.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Пт июн 27, 2025 10:12:31 
Говорящий с текстолитом

Карма: -10
Рейтинг сообщений: 173
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1500
Рейтинг сообщения: 0
Ну да ладно с измерениями( программа написана не правильно), но в чем тогда смысл отладки?
Вот как раз в этом, кэп. Вы увидели в реале, что ваша "программа написана неправильно". 8)


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Пт июн 27, 2025 13:06:37 
Грызет канифоль
Аватар пользователя

Карма: 3
Рейтинг сообщений: 69
Зарегистрирован: Ср сен 02, 2015 07:47:20
Сообщений: 262
Рейтинг сообщения: 0
но в чем тогда смысл отладки?

Отладка отладке рознь. Если речь за статичную/пошаговую, то она лишь для проверки правильности вашей математики алгоритмов и, возможно, проверки правильности настройки оборудования по вычитке его статусов. А есть динамическая отладка, которая чаще в режиме реального времени и аппаратный отладчик а так же режим отладки в IDE никакого к ней отношения не имеют. Нарушение таймингов - частая ошибка новичков при работе с реальным железом.

_________________
Репозиторий STM32: https://cloud.mail.ru/public/2i19/Y4w8kKEiZ
Актуальность репозитория: 1 июля 2025 года
Если чего-то не хватает с сайта st.com - пишите, докачаю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Пт июн 27, 2025 19:50:34 
Открыл глаза

Зарегистрирован: Пн янв 13, 2014 16:01:21
Сообщений: 48
Рейтинг сообщения: 0
Ну да ладно с измерениями( программа написана не правильно), но в чем тогда смысл отладки?
Вот как раз в этом, кэп. Вы увидели в реале, что ваша "программа написана неправильно". 8)


Это я увидел и без отладки.

Добавлено after 1 minute 44 seconds:
lubitel5 писал(а):
чем тогда смысл отладки?

Да хотя бы в том, чтобы узнать о проблемах в вашей схеме и ПО, коли они так реагируют на изменение способа запуска _вашей_ программы.


Как раз с этим такая отладка мне и не помогает.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Пт июн 27, 2025 19:51:35 
Говорящий с текстолитом

Карма: 25
Рейтинг сообщений: 450
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1633
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
lubitel5, задавать вопросы о коде без самого кода бессмысленно. Поделитесь хотя бы фрагментом своего кода.
Можете попробовать сделать невозможное? Часто одна строчка или отсутствие настройки ставят исполнение в невозможные ситуации.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Пт июн 27, 2025 19:55:47 
Открыл глаза

Зарегистрирован: Пн янв 13, 2014 16:01:21
Сообщений: 48
Рейтинг сообщения: 0
но в чем тогда смысл отладки?

Отладка отладке рознь. Если речь за статичную/пошаговую, то она лишь для проверки правильности вашей математики алгоритмов и, возможно, проверки правильности настройки оборудования по вычитке его статусов. А есть динамическая отладка, которая чаще в режиме реального времени и аппаратный отладчик а так же режим отладки в IDE никакого к ней отношения не имеют. Нарушение таймингов - частая ошибка новичков при работе с реальным железом.


Да, статичная/пошаговая. Динамическую, скорее всего, уже не осилю.

Добавлено after 2 minutes 5 seconds:
lubitel5, задавать вопросы о коде без самого кода бессмысленно. Поделитесь хотя бы фрагментом своего кода.
Можете попробовать сделать невозможное? Часто одна строчка или отсутствие настройки ставят исполнение в невозможные ситуации.


Это можно попробовать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Пт июн 27, 2025 20:41:56 
Грызет канифоль
Аватар пользователя

Карма: 3
Рейтинг сообщений: 69
Зарегистрирован: Ср сен 02, 2015 07:47:20
Сообщений: 262
Рейтинг сообщения: 0
Да, статичная/пошаговая. Динамическую, скорее всего, уже не осилю.

А придётся, увы. Таков путь.

_________________
Репозиторий STM32: https://cloud.mail.ru/public/2i19/Y4w8kKEiZ
Актуальность репозитория: 1 июля 2025 года
Если чего-то не хватает с сайта st.com - пишите, докачаю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Пн июн 30, 2025 16:16:49 
Открыл глаза

Зарегистрирован: Пн янв 13, 2014 16:01:21
Сообщений: 48
Рейтинг сообщения: 0
MX_ADC1_Init();
static void MX_ADC1_Init(void)
{
/** Configure the global features of the ADC (Clock, Resolution, Data Alignment and number of conversion)
*/
hadc1.Instance = ADC1;
hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4;
hadc1.Init.Resolution = ADC_RESOLUTION_12B;
hadc1.Init.ScanConvMode = DISABLE;
hadc1.Init.ContinuousConvMode = DISABLE;
hadc1.Init.DiscontinuousConvMode = DISABLE;
hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
hadc1.Init.NbrOfConversion = 1;
hadc1.Init.DMAContinuousRequests = DISABLE;
hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
if (HAL_ADC_Init(&hadc1) != HAL_OK)
{
Error_Handler();
}

/** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
*/
sConfig.Channel = ADC_CHANNEL_VREFINT;
sConfig.Rank = 1;
sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES;
if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
{
Error_Handler();
}
}
//----------
VREF = calculate_Vref (VREFIN_CAL); // функция вычисления Vref

uint16_t VREFINT = 0; // измеренное VREFINT
float calculate_Vref (uint16_t VREFIN_Cal) { // функция вычисления Vref
ADC1->CR2 |= ADC_CR2_ADON; // разрешить АЦП
// измерение сигнала
ADC1->CR2 |= ADC_CR2_SWSTART; // запуск АЦП
while(!(ADC1->SR & ADC_SR_EOC)) ; // ожидание завершения преобразования
VREFINT= ADC1->DR;
VREF = 3.3 * VREFIN_Cal / VREFINT;
return VREF;
}

В реалии VREFINT= ADC1->DR=4095 вместо 1682.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Пн июн 30, 2025 18:05:17 
Грызет канифоль
Аватар пользователя

Карма: 3
Рейтинг сообщений: 69
Зарегистрирован: Ср сен 02, 2015 07:47:20
Сообщений: 262
Рейтинг сообщения: 0
Физическое подключение аналогового домена контроллера выполнено согласно букваря?

_________________
Репозиторий STM32: https://cloud.mail.ru/public/2i19/Y4w8kKEiZ
Актуальность репозитория: 1 июля 2025 года
Если чего-то не хватает с сайта st.com - пишите, докачаю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Пн июн 30, 2025 21:44:13 
Открыл глаза

Зарегистрирован: Пн янв 13, 2014 16:01:21
Сообщений: 48
Рейтинг сообщения: 0
VREFINT, внутренний IN_17, настраивал через CubeMX.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Вт июл 01, 2025 07:13:46 
Первый раз сказал Мяу!
Аватар пользователя

Карма: -6
Рейтинг сообщений: -1
Зарегистрирован: Ср июн 18, 2025 07:20:55
Сообщений: 20
Рейтинг сообщения: 0
VREFINT, внутренний IN_17, настраивал через CubeMX.

а если из ADC_Channel_TempSensor прочитать значение?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Вт июл 01, 2025 13:01:56 
Грызет канифоль
Аватар пользователя

Карма: 3
Рейтинг сообщений: 69
Зарегистрирован: Ср сен 02, 2015 07:47:20
Сообщений: 262
Рейтинг сообщения: 0
VREFINT, внутренний IN_17, настраивал через CubeMX.

Я имел в виду наружные пины контроллера. Или у вас готовая девборда? Если так, посмотрите на её схему, иногда там тоже упрощено.
Изображение


Вложения:
Screenshot_20250701_150056.png [127.78 KiB]
Скачиваний: 112

_________________
Репозиторий STM32: https://cloud.mail.ru/public/2i19/Y4w8kKEiZ
Актуальность репозитория: 1 июля 2025 года
Если чего-то не хватает с сайта st.com - пишите, докачаю.
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Вт июл 01, 2025 19:47:31 
Открыл глаза

Зарегистрирован: Пн янв 13, 2014 16:01:21
Сообщений: 48
Рейтинг сообщения: 0
Часть схемы такая, но получается дело не в ней. Наверное я не правильно пользуюсь CubeMX.IDE. Сначала я настраивал IN_11. потом VREFIN, по факту менял только Sampling Time с 3 на 28 и проверял через стат. отладку. Сейчас сделал так: сначала поставил поставил галку на IN_11, потом снял с VREFIN (Sampling Time в настройках сохраняется)- не работает IN_11. Потом снял галку с IN_11 и поставил на VREFIN (Sampling Time сбросилось по умолчанию), выставил Sampling Time=28, сгенерировал- заработало. Похожее было и с непрерывным режимом АЦП: после генерации на Single-channel, single conversion mode, а потом на Single-channel continuous conversion mode, последний у меня не работал. Возможно нужно перед изменением сбрасывать настройки, не знаю. Но вот когда работает в реалии, при пошаговой настройке не выходит из while(), только через Run.


Вложения:
Схема.png [19.9 KiB]
Скачиваний: 11
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Вт июл 01, 2025 20:48:23 
Говорящий с текстолитом

Карма: 25
Рейтинг сообщений: 450
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1633
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
После внесения изменений нажмите "сохранить все", а затем сгенерируйте код (прописав свой код только в указанных местах). Таким образом, код будет под контролем.

Иногда также запускаю очистку, а затем делает и компиляцию. В меню есть опция.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Микроконтроллеры STM32 - тонкости работы, отладочные пла
СообщениеДобавлено: Сб июл 05, 2025 19:47:40 
Открыл глаза

Зарегистрирован: Пн янв 13, 2014 16:01:21
Сообщений: 48
Рейтинг сообщения: 0
Не знаю, может и не корректный вопрос, но... Пытаюсь хоть немного разобраться с прерываниями и интересует: вот такая реализация обработки данных по прерыванию правильная или нет?

ADC1->SQR1 =0; // 1 регулярный канал
ADC1->SQR3 =11; // 1 преобразование - канал 0
ADC1->SMPR1 |= ADC_SMPR1_SMP11_1; // Установка sample time 28 для канала 11
ADC1->CR2 |= ADC_CR2_DMA; // разрешение DMA
ADC1->CR1 &= ~ADC_CR1_SCAN; // запрет режима сканирования
ADC1->CR2 &= ~ADC_CR2_EOCS; // сбрасываем этот бит, сгенерирован Кубом и не работает непрерывный режим
ADC1->CR2 |= ADC_CR2_CONT; // разрешить непрерывный режим
ADC1->CR2 |= ADC_CR2_ADON; // разрешить АЦП

//----------// Настройка DMA
RCC->AHB1ENR |= RCC_AHB1ENR_DMA2EN; // включаем тактирование шины DMA2

DMA2_Stream0->PAR = (uint32_t) &ADC1->DR; // указываем откуда брать данные
DMA2_Stream0->NDTR = 256; // количество данных которые пишем
DMA2_Stream0->M0AR = (uint32_t) ADC_sum; // указываем куда ложить данные
DMA2_Stream0->CR |= (1 << 13); // размер данных памяти
DMA2_Stream0->CR |= (1 << 11); // размер данных перефирии
DMA2_Stream0->CR |= (1 << DMA_SxCR_CIRC_Pos); // circular
DMA2_Stream0->CR |= (1 << DMA_SxCR_MINC_Pos); // инкремируем адрес памяти для передачи данных
DMA2_Stream0->CR |= (1 << DMA_SxCR_TCIE_Pos); // разрешаем прерывание по завершению передачи данных

DMA2_Stream0->CR |= (1 << DMA_SxCR_EN_Pos); // включаем DMA
NVIC_EnableIRQ(DMA2_Stream0_IRQn); // разрешить прерывания DMA2_Stream0

ADC1->CR2 |= ADC_CR2_SWSTART; // запуск АЦП

while (1)
{
if (flag_end_DMA) {
for (uint16_t count = 0; count < 256; ++count) {
ADC_rez += ADC_sum [count];
}
ledprint (ADC_rez / 256);
flag_end_DMA = 0;
ADC1->CR2 &=~ ADC_CR2_DMA; // запрещаем DMA
ADC1->CR2 |= ADC_CR2_DMA; // разрешение DMA
ADC1->CR2 |= ADC_CR2_ADON; // разрешить АЦП
ADC1->CR2 |= ADC_CR2_SWSTART; // запуск АЦП

}
}
//----------

void DMA2_Stream0_IRQHandler (void) { // прерывания DMA
ADC1->CR2 &=~ ADC_CR2_ADON; // запрет АЦП
DMA2->LIFCR |= (1 << 5) | (1 << 4) | (1 << 3); // сбрасываем флаг окончания передачи,полупередачи и ошибки передачи DMA
flag_end_DMA = 1;
}


Вложения:
ADC_DMA_interrupt.txt [2.63 KiB]
Скачиваний: 7
Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 179 ]     ... , , , , 9

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y