Перейти к содержанию

Программирование микроконтроллеров STM32 по UART


IgnatiusF

Рекомендуемые сообщения

Появилась надобность в микроконтрллере STM32 для проектирования устройства. И вопрос вот в чем - в программировании этих стм-ов. Прочитал несколько статей по их программированию - что вообще для этого нужно. Выяснил, что в них (во всех?) есть вшитый bootloader, который может сам прошить МК.

То есть для этого необходимо подключить какой-либо ...to UART преобразователь, а именно TX, RX, VCC и gnd к соответсвующим ногам микроконтроллера и все? Или надо еще куда-то подавать управляющий сигнал?

Еще вопрос по поводу бутлоадера - если он занимает 8 КБ (или по разному?), то МК с 16 КБ памяти, по сути, будет иметь 8 КБ для программ?

Datasheet я только начинаю читать и пока еще не нашел точной информации, так что за помощь буду очень признателен^_^

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

25 минут назад, IgnatiusF сказал:

Прочитал несколько статей по их программированию - что вообще для этого нужно.

А надо было даташит.

 

25 минут назад, IgnatiusF сказал:

есть вшитый bootloader, который может сам прошить МК.

Есть.

 

26 минут назад, IgnatiusF сказал:

Или надо еще куда-то подавать управляющий сигнал?

Надо совершать манипуляции выводами BOOT и RESET при старте. Статьи явно не читались, а пролистывались.

 

26 минут назад, IgnatiusF сказал:

Еще вопрос по поводу бутлоадера - если он занимает 8 КБ (или по разному?), то МК с 16 КБ памяти, по сути, будет иметь 8 КБ для программ?

Нет, бутлоадер там аппаратный и память не занимает.

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Есть такой документ на сайте STM AN2606 Application note почитайте. Там для каждого чипа расписано какой интерфейс используется, схема подключения и пр.

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Ага, спасибо, статьи "перелистал", все это нашел и запомнил. AN тоже штука хорошая, я эту инфу искал, да не нашел. Просто параллельно изучаю несколько вещей и поэтому делаю это бегло и, бывает, не внимательно)

Ссылка на комментарий
Поделиться на другие сайты

8 hours ago, IgnatiusF said:

Datasheet я только начинаю читать и пока еще не нашел точной информации

ну надо значит продолжать читать и искать более точную информацию. А еще можно использовать поиск по форуму, чтобы не задавать одни и те же обмусоленные 55 раз вопросы заново. А ты судя по всему вообще ничего толком то и не читал, а с уже с вопросами. Труда не приложил

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

На счет программатора и отладки это ясно, но это уж только если договорюсь об уго покупке. Деньги-то не мои)

На счет поиска по форуму - да искал. На счет труда не приложил - соглашусь от части, поскольку я сказал, что занят параллельно несколькими делами. Завтра (сегодня) уже надо все обсудить, заказать все что надо.

Ссылка на комментарий
Поделиться на другие сайты

в теме для начинающих все до атомов расписано, даже искать не надо

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

6 часов назад, BARS_ сказал:

Китайский клон ST-Link V2  стоит 3 бакса

Ну, вроде стоит купить. Одна проблема - пока приедет, может оказаться уже не нужен. По крайней мере для этой задачи.

Ссылка на комментарий
Поделиться на другие сайты

А вы оптимистично надеетесь отладить с нуля через UART быстрее чем дойдет отладчик?

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

7 часов назад, COKPOWEHEU сказал:

А вы оптимистично надеетесь отладить с нуля через UART быстрее чем дойдет отладчик?

Я и раньше не полагался на отладчики. Живут же как-то люди?) Хотя у меня код никогда особо сложным и не был. Думаю, моргалок и небольшого "подобия дебага" через UART мне пока хватит.

Ссылка на комментарий
Поделиться на другие сайты

дело не только в отладчике. Не придется дергать BOOT1 и ресет, да и скорость у JTAG/SWD выше

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

К сожалению выбора нет. Устройство должно быть уже готово меньше чем через месяц. Так что придется дергать бут и делать ресет.

Вот вопрос, ндаа... Толи понял, то ли ничего не понял. Читаю AN2606 на счет того, где этот boot1 находится, увидел что в таблице это не пин, а бит, и теперь не понимаю где выставляется. И еще какой интерфейс (UART, I2C, SPI, 1,2,3...) используется для программирования. Нашел блок схему: USART.png.5a7d738297af79f471e56722d27e4865.png

То есть притягиваем boot0 к питанию (Pattern2 | Boot0(pin) = 1 and nBoot1(bit) = 1), жмем RESET, и через любой USART передаем прошивку? Простите если туплю и не понимаю, для меня это и вправду не очевидно...

Изменено пользователем IgnatiusF
Ссылка на комментарий
Поделиться на другие сайты

1 час назад, IgnatiusF сказал:

где этот boot1 находится, увидел что в таблице это не пин, а бит, и теперь не понимаю где выставляется

Посмотрите описание порта PB2. К сожалению, вы не написали какой контроллер вы используете. Если stm32f103c8t6 в 48-выводном корпусе, то 20-й вывод.

На практике достаточно притянуть BOOT0 и BOOT1 к земле через резистор. Плюс поставить перемычку, замыкающую BOOT0 на питание. Тогда для перепрошивки надеваете перемычку, дергаете ресет (или питание) и запскаете прошивку. После окончания снимаете перемычку и дергаете ресет (питание) для проверки прошитого.

2 часа назад, IgnatiusF сказал:

И еще какой интерфейс (UART, I2C, SPI, 1,2,3...) используется для программирования.

UART1: PA9, PA10, которые 30, 31 выводы в 48-выводном корпусе.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

27 минут назад, COKPOWEHEU сказал:

Посмотрите описание порта PB2. К сожалению, вы не написали какой контроллер вы используете. Если stm32f103c8t6 в 48-выводном корпусе, то 20-й вывод.

Контроллер STM32F378RTC6. Без платы, имеется ввиду, если что.

Цитата

На практике достаточно притянуть BOOT0 и BOOT1 к земле через резистор...

BOOT0 я на распиновке вижу, а где находится BOOT1? Я ни в одном документе его не видел, ни на одной схеме, однако на отладочных он присутствует. А в N2606 вообще пишут, что это бит, а не пин для F378. Можете немного разъяснить?

UPD: Ясно, после ресета BOOT1 работает на ноге PB2 на F103, однако в моем варианте после ресета такого нет.

Изменено пользователем IgnatiusF
Ссылка на комментарий
Поделиться на другие сайты

BOOT1 это действительно бит. Почитать можно в Reference manual секция 3.5.7  Option byte register (FLASH_OBR)

Как с ним работать есть в stm32f37x_flash.c. В самом начале описана работа с флэш памятью.

Ссылка на комментарий
Поделиться на другие сайты

Судя по тому, что я понял - работать с этим битом требуется только при использовании самописного бутлоадера, а при использовании аппаратного он выставляется автоматически?

Ссылка на комментарий
Поделиться на другие сайты

Не нашел что записано в этом бите в чистом МК. Попробуйте просто подключиться к UART1 и попробуйте загрузить любую программу. Для загрузки используют Flash Loader Demonstrator.

Ссылка на комментарий
Поделиться на другие сайты

elki, ты коней своих притормози. Желание есть, нет времени. У тебя есть время, помогай. Я ему помог, пусть делает на Arduino так он сделает очень быстро проект.

Цитата

Устройство должно быть уже готово меньше чем через месяц

Я уже начал отсчет времени, понаблюдаю прошло 9 дней, как успехи?

 

Изменено пользователем Oxford
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Согласен, очень криво объяснил. Это работа трёх вольтовой линии, просто на диод шотки сдвоенный, на один анод приходит сигнал напрямую с трансформатора, а на второй через дроссель. Вольт/деление 5 вольт в клетке, тайминг по моему 10 МС. Третья фотография это сигнал на катодах уровень земли ровно по центру экрана. Но все линии по итогу в порядке 3.3 в, 5, в, 12 в и -12 в. Нагрузить все линии не могу сразу ,так как тут же выгорают транзисторы (имеется нагрузка 250 ватт по 10 ампер на каждую линию за исключением-12в), поэтому нагружаю 3.3 вольтовую линию на 10 ампер,  подключаю переменный резистор 50 ватт на 15 ом на 5 вольтовую линию и постепенно довожу до той той картины с перекосом (это гдето  50 ватт общее). По поводу микросхемы, вверху имеется скрин где между импульсами проскакивает мини импульс, если так можно сказать, он проскакивает и на одной  и на второй ноге (7,8). Микросхема не tl 494, а lw4933/abx942.1/c9421646. Далее они приходят на базы транзисторов 945g  коллекторы этих транзисторов соединены с  выводами трансформатора. Просто схема типовая, легче мне кажется просто привести фото самого блока, для тех кто разбирается будет гораздо информативне.  Диод шотки по 12 вольтовой линии был подгоревший, заменил на донора. Приводить скрины не буду что бы не захламлять тему. В итоге, пока все так же, при достижении определенной нагрузки суммарно где-то 50 ватт, появляется этот "выброс и перекос". По этому имеются мысли на два варианта, это микросхема , этот мини импульс между периодами, на низкой нагрузке особо не влияет, но при достижении определенной приводит с самовозбуждению входной цепи и непроизвольному открытию транзистора нижнего плеча. Либо дело в "горячей части", плавающий дефект в обвязке силовых ключей.  Спасибо за ответ.
    • @Gomerchik а вы контролировали как меняется уровень сигнала на А1 ардуины?
    • Спасибо за совет. Автором данного проекта я не являюсь, мне нужно было воссоздать уличный датчик для метеостанции взамен пропавшего(( Из разного найденного в интернете этот проект работает с моей станцией Орегон (спасибо автору). В понедельник попробую последовать Вашему совету. Но все равно куча непоняток  как блин это работает)) Если дело в неправильной отправки команды, то как на это влияет подключение датчика температуры? Если совсем не подключать таймер, то передача идет один раз (как и прописано в программе), станция принимает и отображает, но минут через сколько-то естественно станция уже ни чего не показывает, но с таймером питание полностью не пропадает с ардуинки, но передача сигнала каким-то образом работает по таймеру.  В моем понимании данная команда подается один раз потому, что таймер должен отключать питание МК после передачи сигнала и каждые 43 сек снова подавать питание (так того требует станция).  Ардуино передает показания температуры отключается полностью и 43 секунды мк не работает.  Сейчас у меня питание пока сделано на подпитке от солнечной батареи, но пару пасмурных дней и аккумулятор съедается до отключения(
    • thickman Так и сделаю. Вытащу из бу БП.  Буду знать, как отличить. Благодарю. Заменил транзисторы на IRFB20N50K. Картина стала, совсем другой.  Похоже трудность не в драйвере, на момент подвозбуда, переходные процессы, в нем, завершены. Увеличил затворные резисторы до 50ом, стало немного лучше.  Не понятно, почему верхний ключ греется несколько сильнее. Возможно, стоит посмотреть ток в коллекторе.  Снабберные емкости временно удалил, изменений не произошло.  Замена ТГР на другой, на кольце MSTN-16A-TH, так же, результата не принесла.   irfb20n50k.pdf
    • А что нить из ассортимента активных щупов производства СССР..))
    • Типа такого: https://aliexpress.ru/item/2044864227.html?sku_id=58855020183
  • Похожий контент

×
×
  • Создать...