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

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


IgnatiusF

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

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

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

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

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

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

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

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

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

 

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

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

Есть.

 

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

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

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

 

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

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

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

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

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

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

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

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

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

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

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

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

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

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

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

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

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 пользователей онлайн

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

    • @Armenn Хорошо. Сделал резистор на 5 Ом.  Результата два. 1. Если включить блок питания в сеть, а уже потом подключить резистор на 5 Ом в фиолетовый провод, тогда резистор просто будет греться.  2. Если подключить резистор на 5 Ом в фиолетовый провод, а уже потом включить блок питания в сеть, тогда случится следующее: лампочка предохранителя от КЗ засветится (через которую я подключаю БП в сеть), а блок питания начнет пищать. Заснял это на видео -   
    • Ну-вы и сравнили. Вот когда будете строить сварочный инвертор на такую частоту-то там нужно  будет учитывать скин эффект. А на частоты до 75кгц-можно забить, отбить и не принимать во внимание. Тем более-что все стараются аппараты до 200А строить. На кольце плотность тока до 15А на мм ^2, на Ш от 10А на  мм^2 А вентилятор-он все лишние тепло сдует ко льдам в Антарктиде. Проверьте монолит 2,12мм, я таким мотаю СТ. Интересно-что там с ним делается на частотах от 30 до 50кГц? Длинна провода примерно 2 метра-На сердечник Е70 влазит 18 витков
    • Добрый вечер всем!  Проблема следующая: Есть флешка с записанной файловой системой через USB MASS STORAGE DEVICES. При "втыкании"  в порт USB открывается на ПК диск с содержимым. Я подключил библиотеку Fatfs и прописал низкоуровневые функции чтения и записи в файле diskio.c Работаю с файлом так:   disk_initialize(SDFatFs.drv); if(f_mount(&SDFatFs,(TCHAR const*)USER_Path,0)!=FR_OK) { //Error_Handler(); Usart1_Send_String("Error_f_mount!\r\n"); } else { if(f_open(&MyFile,"01.WAV",FA_READ)!=FR_OK) { //Error_Handler(); Usart1_Send_String("Error_open_File1!\r\n"); } else { Usart1_Send_String("open_File_OK1!\r\n"); } if(f_open(&MyFile,"01.wav",FA_READ)!=FR_OK) { //Error_Handler(); Usart1_Send_String("Error_open_File2!\r\n"); } else { Usart1_Send_String("open_File_OK2!\r\n"); UINT testBytes=0; f_read(&MyFile, buff1, 512, &testBytes); sprintf(buf1, "TestBytes=%d\r\n", testBytes); Usart1_Send_String(buf1); Usart1_Send_hex((char*)buff1, 512); Usart1_Send_String("read_File_complite!\r\n"); f_close(&MyFile); } } подправил diskio.c так:   DRESULT disk_read ( BYTE pdrv, /* Physical drive nmuber to identify the drive */ BYTE *buff, /* Data buffer to store read data */ DWORD sector, /* Sector address in LBA */ UINT count /* Number of sectors to read */ ) { DRESULT res; //res = disk.drv[pdrv]->disk_read(disk.lun[pdrv], buff, sector, count); sprintf(buffer0, "sector=%lu\r\n", sector); Usart1_Send_String(buffer0); w25qReadPage(buff, sector*2); w25qReadPage(buff + 256, sector*2+256); res=RES_OK; return res; } #if _USE_WRITE == 1 DRESULT disk_write ( BYTE pdrv, /* Physical drive nmuber to identify the drive */ const BYTE *buff, /* Data to be written */ DWORD sector, /* Sector address in LBA */ UINT count /* Number of sectors to write */ ) { DRESULT res; //res = disk.drv[pdrv]->disk_write(disk.lun[pdrv], buff, sector, count); w25qWritingByUSB(sector, (uint8_t*)buff); res=RES_OK; return res; } #endif /* _USE_WRITE == 1 */ функцию чтения на самом деле пробовал прописывать по разному, все равно не корректно работает... Выдает в отладке такое:   Program start!.... sector=0 // это обращение к функции чтения DRESULT disk_read (); Error_open_File1! sector=0 // это обращение к функции чтения DRESULT disk_read (); Error_open_File2! Что я забыл еще добавить?
    • В былые годы запрещалось размещать на форуме бессмысленные темы. Видать, с тех пор правила существенно изменились.
    • скачай новый архив. там есть важные изменения в комповой программе, по сравнению с той, что я отправлял в личке. исправлены недоделки и добавлены проверки на некорректные действия.
    • Здесь все индивидуально, точного ответа нет. Тип фоторезиста, качество фотошаблона, расстояние и время засветки, длина волны св.диодов, "полоскание" в химии ... Надо все пробовать самому, ручками, опыт придет со временем, ничего сложного там нет. На форуме есть ветка, почитайте.
  • Похожий контент

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