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

STM32 – вопросы – проблемы - решения.

Вопрос: можно ли перепрыгнуть на 0x08000000 адрес из основной программы без перезапуска?

Или лучше врубить ватчдог и дождаться пока он сбросит проц?

Я включаю не вачдог, а программный сброс. Потом после сброса анализирую флаг. Программный сбос в отличие от вачдога не срабатывает при аварийных ситуациях.

Поделиться сообщением


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

Можно и другим способом. А именно так как описано в Application Note 2557 "STM32F10xxx in-application programming using the USART (IAP)". Фактически переход по нужному адресу осуществляется через присвоение этого адреса указателю на функцию, с последующим вызовом этой функции. Только не забудьте об переинициализации стека (макрос "__MSR_MSP()" в исходнике cortexm3_macro.s ).

Успехов!

Поделиться сообщением


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

stm32f105 реализую USB-OTG (в режиме only-host)

запрос дескриптора к 0-точке осуществляется по одному каналу или надо заводить канал на передачу и канал на приём ?

Поделиться сообщением


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

Нет ли у кого примера по работе с USB-HOST MassStorage для 105й - 107й серии STM32 ?

Появилось на сайте ST:

STM32F105/107xx USB Host library (UM1021)

Поделиться сообщением


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

Подбираю процессор для нового проекта. Рассматриваю STM32F103 или F105 в корпусе LQFP64. Вопрос про ADC: какой входной диапазон напряжения ADC - VREF = 1,2 V или VDA = 3,3 V?

Вопрос возник по причине того, что в AN-2834 (глава Using a preamplifier) пишется, что слабый сигнал можно усилмвать до 3В. А в DataSheet на STM32F105 входное напряжение ограничено VREF,

которая в корпусе LQFP64 на пинах недоступна. Да, проверить сам не могу, т.к. не имею оного железа.

Поделиться сообщением


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

В STM32F103 в 64- пиновом корпусе Vref сидит жестко на 3.3 вольтах питания Соответственно, измеряемое напряжение будет не выше напряжения питания.

Поделиться сообщением


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

Еще одна неприятная особенность у STM32F107 - собрали схему сброса RST с подтягивающим к 3.3В рез-ром 10к и танталом 10мк в параллель с керамикой 0.1мк. В итоге ватчдог контроллера глобальный физический сброс выдать не может - импульс до "0" не дотягивает. Наверное внутри транзистор слабоват.

Выпаивание тантала помогло. Но вопрос остался. В доке на счет номиналов подключаемой емкости к пину NRST ничего не нашёл.

На других контроллерах такого не замечено.

Поделиться сообщением


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

10мкФ на резет - это не слишком ли? 0.1 всегда ставили, да и меньше видел. В AN2586 0.1 мкФ на резет нарисовано.

 

Поделиться сообщением


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

Вопрос по поводу объёма флэш памяти.

Как-то раз, оператор в производстве случайно залил программу для STM32F103RB (128КБ) в STM32F103R8 (64КБ). Программатор не ругался, программа работает, но когда я сделал тоже самое (залил в STM32F103R8 больше чем 64 КБ) через JTAG, он работать отказался (при отладке увидел, что останавливается на инструкции BKPT в самом начале). Получается, что в R8 - 128 KB с нюансом.

С STM32F103RС та же история, декларировано 256 КБ, на самом деле 512.

Может, у кого-нибудь найдётся конкретное объяснение описанных свойств процессоров?

Это понятно, что делают один кристалл для всей ветки, заглушают часть схемы и по-другому маркируют корпус. Интересно, что это за технологическая операция такая у ST что флэш всёравно работает?

Поделиться сообщением


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

Вопрос по поводу объёма флэш памяти.

Как-то раз, оператор в производстве случайно залил программу для STM32F103RB (128КБ) в STM32F103R8 (64КБ). Программатор не ругался, программа работает, но когда я сделал тоже самое (залил в STM32F103R8 больше чем 64 КБ) через JTAG, он работать отказался (при отладке увидел, что останавливается на инструкции BKPT в самом начале). Получается, что в R8 - 128 KB с нюансом.

 

Вы с коллегой над одним и тем же экземпляром процессора измывались? Если нет, моя версия - STM32F103R8 на самом деле был STM32F103RB. Я сам пару раз накалывался, т.к., если процессор не свежаком из трубы, а из коробки с образцами, на маркировке "8" и "B" почти невозможно отличить друг от друга!

 

Поделиться сообщением


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

Вы с коллегой над одним и тем же экземпляром процессора измывались? Если нет, моя версия - STM32F103R8 на самом деле был STM32F103RB. Я сам пару раз накалывался, т.к., если процессор не свежаком из трубы, а из коробки с образцами, на маркировке "8" и "B" почти невозможно отличить друг от друга!

Действительно, отличить очень сложно, но у нас уже давно массовое производство и отличать маркировку уже научились. "Измывались" мы над несколькими разными процессорами, и речь идёт не о похожести B на 8.

Поделиться сообщением


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

... но у нас уже давно массовое производство и отличать маркировку уже научились.

 

А, кстати о массовости: довольны STM32F? Какова статистика?

Поделиться сообщением


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

Вопрос по поводу объёма флэш памяти.

Обычное дело - маркетинг. Кристаллы во всех корпусах одинаковые. :)

Почти не шутка.

Поделиться сообщением


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

Вопрос по поводу объёма флэш памяти.

Как-то раз, оператор в производстве случайно залил программу для STM32F103RB (128КБ) в STM32F103R8 (64КБ). Программатор не ругался, программа работает,

 

А каким программатором заливали? Через бутлоадер?

Не очень понятно, в каких случаях можно залить более 64км, а в каких нет..

Поделиться сообщением


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

А каким программатором заливали? Через бутлоадер?

Не очень понятно, в каких случаях можно залить более 64км, а в каких нет..

 

Обычное дело - маркетинг. Кристаллы во всех корпусах одинаковые.

Почти не шутка.

 

в производстве, конечно же, через BootLoader, у себя на столе через jtag, в обоих случаях получается запрограммировать без ошибок, только вот в случае jtag программа не работает (я об этом уже писал), в этом и заключается нюанс, который выделен маркировкой (R8-64КБ, RB-128КБ и т.д.)

 

А, кстати о массовости: довольны STM32F? Какова статистика?

 

Бодрящая статистика, на самом деле. Работает как часики (если программа правильная, без жуков, что называется), несколько тысяч просессоров уже работают, никаких аномалий, было, правда, несколько полу-дохлых, но это в производстве при тесте сразу обнаружилось.

 

P.S. Зря я, наверное, эту тему тут начал, ST, может, голову оторвать захотят....

Изменено пользователем OVladimir

Поделиться сообщением


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

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...