Jump to content

    
Sign in to follow this  
Danis

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

Recommended Posts

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

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

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

Share this post


Link to post
Share on other sites

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

Успехов!

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites
Вопрос по поводу объёма флэш памяти.

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

 

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

 

Share this post


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

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

Share this post


Link to post
Share on other sites
... но у нас уже давно массовое производство и отличать маркировку уже научились.

 

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

Share this post


Link to post
Share on other sites
Вопрос по поводу объёма флэш памяти.

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

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

Share this post


Link to post
Share on other sites
Вопрос по поводу объёма флэш памяти.

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

 

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

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

Share this post


Link to post
Share on other sites
А каким программатором заливали? Через бутлоадер?

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

 

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

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

 

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

 

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

 

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

 

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

Edited by OVladimir

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this