|
STM32 и DFU |
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 39)
|
Jun 19 2010, 23:07
|
■ ■ ■ ■
    
Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443

|
Цитата на USB никакой реакции А какой реакции вы ожидали?
--------------------
Делай что должен и будь что будет.
|
|
|
|
|
Jun 20 2010, 09:00
|

embedder
  
Группа: Свой
Сообщений: 264
Регистрация: 11-05-05
Из: Казань
Пользователь №: 4 911

|
Цитата(_Макс @ Jun 19 2010, 19:28)  Плата SK-MSTM32F107. Установил перемычку J5, соответственно BOOT0 = 1. BOOT0 подтянул к земле. Подключил к ПК. Залил release через JTAG. Включаю, работает работает загруженный софт, на USB никакой реакции. Что я сделал неправильно? Если хотите запустить записанную через JTAG программу во FLASH памяти, BOOT0 должен быть 0.
--------------------
Мечты стареют куда быстрее мечтателей… Стивен Кинг. "Ловец снов"
|
|
|
|
|
Jun 20 2010, 09:31
|

embedder
  
Группа: Свой
Сообщений: 264
Регистрация: 11-05-05
Из: Казань
Пользователь №: 4 911

|
Цитата(_Макс @ Jun 20 2010, 13:13)  Нет, я хочу запуститься со встроенного загрузчика и прошить по USB, а у меня при BOOT0=1 грузится моя прога, что была во флеше. Вроде бы на это плате только J5 отвечает за эту ногу, я его поставил, что еще понять не могу. подключитесь через JTAG и в режиме отладки посмотрите, куда и почему не доходит. Кстати, о BOOT0... при BOOT0=1 и BOOT1 имеет роль:
--------------------
Мечты стареют куда быстрее мечтателей… Стивен Кинг. "Ловец снов"
|
|
|
|
|
Jun 20 2010, 09:43
|
Знающий
   
Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945

|
Цитата(zksystem @ Jun 20 2010, 12:31)  подключитесь через JTAG и в режиме отладки посмотрите, куда и почему не доходит. Кстати, о BOOT0... при BOOT0=1 и BOOT1 имеет роль:
Да, я подтянул BOOT1 к земле от источника питания. Как проверить буты, где их искать?
|
|
|
|
|
Jun 20 2010, 16:18
|
■ ■ ■ ■
    
Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443

|
Цитата Согласно документам от ST, должен запускаться системный загрузчик и компьютер должен обнаружить устройство STM devide in DFU mode. Понятно, а от USB вы какой реакции ждёте? Нет в STM32 встроенного USB загрузчика, есть UARTовый, или я что-то не понял.
--------------------
Делай что должен и будь что будет.
|
|
|
|
|
Jun 20 2010, 20:02
|
■ ■ ■ ■
    
Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443

|
Цитата Есть, но не у всех Прошу прощения, новость для меня, со 107ми дела не имел. _Макс ERRATу читали?
--------------------
Делай что должен и будь что будет.
|
|
|
|
|
Jun 23 2010, 08:49
|
Знающий
   
Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945

|
Ребят, ну помогите, не знаю куда копать даже, никогда ранее с DFU не работал. Загрузчик зацикливается на инструкциях DC32, DC16, LDMDAVS. В чем может быть проблема? Код 0x1fffc23c: 0x2100e002 MRSCS lr, CPSR 0x1fffc240: 0x60306021 EORSVS r6, r0, r1, LSR #32 0x1fffc244: 0xf8df6830 LDC2L p8, c6, [pc], {48} 0x1fffc248: 0xf64a90a0 [ARM instr] 0x1fffc24c: 0x68712aaa LDMDAVS r1!, {r1, r3, r5, r7, r9, r11, sp}^; User registers 0x1fffc250: 0xd2322902 EORSLE r2, r2, #32768 ; 0x8000 0x1fffc254: 0xd2302802 EORSLE r2, r0, #131072 ; 0x20000 0x1fffc258: 0xa000f8c9 ANDGE pc, r0, r9, ASR #17 0x1fffc25c: 0xfc42f001 MCRR2 p0, 0, pc, r2, c1 0x1fffc260: 0xfa0bf002 BLX 0x202f8270 0x1fffc264: 0x60282000 EORVS r2, r8, r0 0x1fffc268: 0xf844f000 MCRR2 p0, 0, pc, r4, c0 0x1fffc26c: 0x45406828 DC32 1161848872 ; '(h@E' 0x1fffc26e: 0x4540 DC16 17728 ; '@E' 0x1fffc270: 0x6830d1fc LDMDAVS r0!, {r2-r8, r12, lr, pc} 0x1fffc274: 0x68211c40 STMDAVS r1!, {r6, r10-r12} 0x1fffc278: 0x2902b119 STMDBCS r2, {r0, r3, r4, r8, r12, sp, pc} 0x1fffc27c: 0xd303d007 MOVWLE sp, #12295 ; 0x3007 0x1fffc280: 0xfb00e008 BLX 0x200342aa 0x1fffc284: 0xe00bf10b AND pc, r11, r11, LSL #2 0x1fffc288: 0x43414918 MOVTMI r4, #6424 ; 0x1918 0x1fffc28c: 0xf06fe008 [ARM instr] 0x1fffc290: 0xe7fa417e [ARM instr] 0x1fffc294: 0x417ff06f CMNMI pc, pc, RRX 0x1fffc298: 0xe0014341 AND r4, r1, r1, ASR #6 0x1fffc29c: 0x1e496871 MCRNE p8, #2, r6, c9, c1, #3
Сообщение отредактировал _Макс - Jun 23 2010, 08:51
|
|
|
|
|
Jun 23 2010, 10:05
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(_Макс @ Jun 23 2010, 13:46)  Мне сложно сказать я крайне мало знаю ассемблер. Почему вы так решили? Для человека хотя бы немного знакомого с ассемблером или даже просто с архитектурой процессора это должно быть очевидно. Цитата(_Макс @ Jun 23 2010, 13:46)  Значит ли это что загрузчика в устройстве нет? Почему тогда пространство не прописано нулями или единицами? Это значит, что или вы смотрите не с того адреса, или не с тем смещением, или видите не то, что на самом деле присутствует в памяти.
|
|
|
|
|
Jun 23 2010, 19:38
|
Знающий
   
Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945

|
Цитата(skripach @ Jun 23 2010, 14:58)  Советую: 1. Запустить какой-нибудь пример HID устройства дабы проверить работу USB. 2. Написать свой загрузчик, будите знать как он работает. Поищу в демках от ST что-то для USB. Разве можно затереть вшитый загрузчик (system memory)?
|
|
|
|
|
Jun 23 2010, 20:57
|
■ ■ ■ ■
    
Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443

|
Цитата Разве можно затереть вшитый загрузчик (system memory)? Насчёт можно или нет не знаю, скорее конечно нельзя, но оно и не нужно. Ничего не мешает расположить загрузчик в User Flash, тогда и джамперы ставить не нужно при каждой перепрошивке.
--------------------
Делай что должен и будь что будет.
|
|
|
|
|
Jun 23 2010, 21:56
|
■ ■ ■ ■
    
Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443

|
Цитата А что можно почитать про написание загрузчика для STM32? Форум, Programming manual, поискать пример реализации(в сети оно есть).
--------------------
Делай что должен и будь что будет.
|
|
|
|
|
Jun 25 2010, 19:29
|
Знающий
   
Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945

|
Цитата(skripach @ Jun 23 2010, 23:57)  Насчёт можно или нет не знаю, скорее конечно нельзя, но оно и не нужно. Ничего не мешает расположить загрузчик в User Flash, тогда и джамперы ставить не нужно при каждой перепрошивке. Нашел демо для DFU, проект представляет собой загрузчик для User Flash. C ним все заработало как ожидалось. Возможно в системном загрузчике вовсе нет поддержки DFU? Но в таком случае, какой смысл документа USB DFU protocol used in the STM32™ bootloader.pdf?
|
|
|
|
|
Jun 28 2010, 15:51
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 25-07-06
Пользователь №: 19 070

|
Цитата(_Макс @ Jun 26 2010, 01:29)  Возможно в системном загрузчике вовсе нет поддержки DFU? Но в таком случае, какой смысл документа USB DFU protocol used in the STM32™ bootloader.pdf? А ножку OTG_FS_VBUS/PA9: Power supply voltage line к "Power Supply" подтягивать пробовал? см. STM32F105xx and STM32F107xx device bootloader AN2606, стр. 12.
|
|
|
|
|
Sep 20 2010, 16:42
|
Группа: Новичок
Сообщений: 3
Регистрация: 21-10-07
Пользователь №: 31 563

|
1. У нас такая же проблема с попыткой запустить встроенный DFU USB bootloader, запустил все-таки кто нибудь или нет? 2. Стыдно признаться, но и запустить Firmvare Upgrade (демо проект для прошивки через USB) так же не получилось, хотя демопроект Virtual Com Port работает. Запускали на STM32F105. Вопрос к тем, у кого получилось с Device Firmvare Upgrade: что-то правили в исходниках (частота кварца 8МГц)? Пояснение: PID и VID читаются нулями.
|
|
|
|
|
Sep 21 2010, 17:26
|
Частый гость
 
Группа: Свой
Сообщений: 152
Регистрация: 21-12-05
Из: Москва
Пользователь №: 12 476

|
Цитата(ltm @ Sep 20 2010, 20:42)  1. У нас такая же проблема с попыткой запустить встроенный DFU USB bootloader, запустил все-таки кто нибудь или нет? 2. Стыдно признаться, но и запустить Firmvare Upgrade (демо проект для прошивки через USB) так же не получилось, хотя демопроект Virtual Com Port работает. Запускали на STM32F105. Вопрос к тем, у кого получилось с Device Firmvare Upgrade: что-то правили в исходниках (частота кварца 8МГц)? Пояснение: PID и VID читаются нулями. У вас какой датакод микросхемы? Подробнее ТУТ , страница 27
|
|
|
|
|
Sep 22 2010, 06:32
|
Группа: Новичок
Сообщений: 3
Регистрация: 21-10-07
Пользователь №: 31 563

|
Наконец-то получилось с Firmvare Upgrade. Были сделаны следующие моменты: 1-изменены исходники, так чтобы частота тактирования блока USB была 48Мгц, в частности установлен PLL; 2-было добавлено изменение указателя на таблицу векторов при выходе из бутлоадера. Что касается даты выпуска процессора, то он более поздний, чем указанный в Errate, тем не менее встроенный USB bootloader так и не заработап.
|
|
|
|
|
May 26 2011, 07:27
|
Участник

Группа: Свой
Сообщений: 43
Регистрация: 17-10-06
Из: Санкт Петербург
Пользователь №: 21 387

|
Цитата(ltm @ Sep 20 2010, 20:42)  1. У нас такая же проблема с попыткой запустить встроенный DFU USB bootloader, запустил все-таки кто нибудь или нет? "Не прошло и пол года" Да, заработал. Тоже мучался с этой проблемой, схема девайса чутка отличается от схемы кита STM3210C-EVAL. В ките DFU Boot работал - в плате нет. После подключения ноги PA9 (OTG_FS_VBUS pin) к питанию 5 Вольт (условие работы проца в Device mode, об этом уже писали выше) - DFU BOOTLOADER заработал, прошивка сливается и заливается как и положено. Остальные ноги PA10, PD6, PB5 подтянуты (кто-то к +3.3, кто-то к земле). На boot0 стоит джампер на 3.3, boot 1 намертво запаян на землю. Такты проц берет от генератора 25МГц. Цитата(_Макс @ Jun 28 2010, 19:55)  В SK-MSTM32F107 она по умолчанию подтянута к 5V USB через 11k. Видимо большое сопротивление. Я к 3.3 подтягивал - результат тоже отрицательный.
|
|
|
|
|
Jan 9 2013, 13:45
|
Группа: Новичок
Сообщений: 4
Регистрация: 1-07-12
Пользователь №: 72 581

|
IceS, а на stm32f105 с 64 ногами UART_2 находится на другом порту. Не подскажешь нужно подтягивать его к земле или питанию в таком случае? А то во всех мануалах чётко говориться именно об этих номерах портов.
|
|
|
|
|
Jan 11 2013, 10:36
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 24-11-07
Пользователь №: 32 633

|
Не хотелось создавать отдельный топик, поэтому спрошу здесь, посколько вопрос по теме. Существует ли возможность с помощью DFU-bootloader'а загрузить и исполнить пользовательский код размещённый в SRAM? Если да, то тогда будем углубляться в детали.
--------------------
Если друг оказался вдруг и не друг и не враг, а - JTAG.
|
|
|
|
|
Jan 15 2013, 16:28
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 24-11-07
Пользователь №: 32 633

|
Цитата(PheeL @ Jan 11 2013, 14:36)  Не хотелось создавать отдельный топик, поэтому спрошу здесь, посколько вопрос по теме. Существует ли возможность с помощью DFU-bootloader'а загрузить и исполнить пользовательский код размещённый в SRAM? Если да, то тогда будем углубляться в детали. Отвечаю сам себе - да, существует! Смотреть в документы CD00264379.pdf, CD00167594.pdf. При использовании ПО предоставляемой фирмой разработчиком, в частности STDFU Tester, DFUse Demonstrator, убедиться, что бинарный файл слинкован с таблицой векторов _единым_блоком_ т.к. после загрузки в SRAM при исполнении ПО операции "Leave Dfu Mode" используется начальный адрес _поледнего_ загруженного бинарного блока! Если вы на базе исходников делаете загрузку через DFU протокол сами, то там проще, т.к. есть аргумент с адресом запуска в команде выхода из загрузчика.
--------------------
Если друг оказался вдруг и не друг и не враг, а - JTAG.
|
|
|
|
|
Feb 28 2013, 14:45
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 13-09-12
Пользователь №: 73 529

|
Цитата(PheeL @ Jan 15 2013, 20:28)  Отвечаю сам себе - да, существует! Смотреть в документы CD00264379.pdf, CD00167594.pdf. При использовании ПО предоставляемой фирмой разработчиком, в частности STDFU Tester, DFUse Demonstrator, убедиться, что бинарный файл слинкован с таблицой векторов _единым_блоком_ т.к. после загрузки в SRAM при исполнении ПО операции "Leave Dfu Mode" используется начальный адрес _поледнего_ загруженного бинарного блока! Если вы на базе исходников делаете загрузку через DFU протокол сами, то там проще, т.к. есть аргумент с адресом запуска в команде выхода из загрузчика. а какую программу нужно использовать для прошивки по USB ? я правильно понимаю - что если использовать например stm32f407 в своем проекте и развести USB на PA9-PA12 то можно перепрошить микроконтроллер прямо с компьютера ?
|
|
|
|
|
Feb 28 2013, 15:50
|
Участник

Группа: Участник
Сообщений: 69
Регистрация: 10-06-08
Пользователь №: 38 190

|
Таже ситуация с SK-MSTM32F107. Пока не закоротишь резистор R4 на схеме http://starterkit.ru/html/doc/SK_MSTM32F107.pdf. Причем работает очень странно: при положении загрузки в режиме dfu, если вставить usb разъем, обнаруживается сразу, если нажать ресет при вставленном usb, 14 ошибок энумерации пока устройство не определится. Что еще смущает: если подключить PC9 к 5-ти вольтам через резистор 100 ом, на ноге PC9 - 1 вольт, так что срабатывает только к.з. PC9 к 5-ти вольтам. Поделитесь, пожалуйста, опытом как правильно подключать SK-MSTM32F107 в режиме dfu, а то боязно.
Сообщение отредактировал zemlemer - Feb 28 2013, 15:51
|
|
|
|
|
Mar 1 2013, 13:54
|
Участник

Группа: Участник
Сообщений: 26
Регистрация: 15-11-07
Пользователь №: 32 363

|
Цитата(ВитГо @ Feb 28 2013, 18:45)  а какую программу нужно использовать для прошивки по USB ?
я правильно понимаю - что если использовать например stm32f407 в своем проекте и развести USB на PA9-PA12 то можно перепрошить микроконтроллер прямо с компьютера ? правильно понимаете, можно прошить прямо с компьютера. Прога DfuSe Demonstrator. Там прошивка выполняется в два этапа . На первом этапе из hex файла формируется новый файл, который потом на втором этапе заливается в процессор. Процессор надо ставить в режим загрузки, управляя входами boot. Заливка по USB описана здесь http://www.st.com/st-web-ui/static/active/...rchtype=keyword
Сообщение отредактировал vptr - Mar 1 2013, 14:02
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|