Jump to content

    
Sign in to follow this  
Danis

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

Recommended Posts

Объясните пожалуйста, что происходит?

Запутался в том какие файлы надо обязательно подключать к проекту. Такое чувство, что наподключал лишнего, теперь не могу понять за какую веревочку дернуть, чтобы это узел развязался. Второй день втыкаю, не могу понять.

Из того, что вы показали - вы нигде не используете НИЧЕГО из StdPeriph_Lib. (Я тоже ей не пользуюсь)

Следовательно, ни один из её заголовочников вам не нужен.

 

Ещё замечание: то, что вы делаете с RCC->CFGR - чистые грабли (запись промежуточного значения).

Вы не может использовать RCC->CFGR как временный регистр. Это я про ваше и+или.

Хотя в вашем конкретном случае это не сказавается, т.к. промежуточное значение == конечному.

 

П.С.

Внешний генератор и синтезатор частоты не могут быть выключены пока не произойдёт переключение на RC.

Edited by Юрий_СВ

Share this post


Link to post
Share on other sites

Вроде разобрался.

В файле system_stm32f10x.c закомментировал строку

#define SYSCLK_FREQ_72MHz 72000000

В симе сразу инициализировался CR 0x00000083. Прошил плату - заработало. Мегалка работает!!!

Спасибо за ответ!

Бум дальше разбираться.

С конфигурацией я понял, там значение и так 0.

В свойствах группы STM32F10x_StdPeriph_Lib убрал галку с Include in Target Build - компилится нормально. Потом удалил совсем - компилится.

 

Edited by valera_o

Share this post


Link to post
Share on other sites

Вопрос по ЦАПу.

Выставил период срабатывания таймера 6, например 100мкс. Формирование каждой ступеньки треугольного сигнала происходит именно через эти 100мкс? Так же и с "белым" шумом?

Share this post


Link to post
Share on other sites

Вопрос по правильному подключению VDDA и VSSA.

Если я не использую ADC и DAC,а использую PLL и POR достаточно ли подключить VDDA->VDD и VSSA->VSS?

Ведь это общее питание для аналогового домена. Или все таки нужно подключать через фильтр и VDDA и VSSA.

Share this post


Link to post
Share on other sites
Вопрос по ЦАПу.

Выставил период срабатывания таймера 6, например 100мкс. Формирование каждой ступеньки треугольного сигнала происходит именно через эти 100мкс? Так же и с "белым" шумом?

Да и да.

 

Вопрос по правильному подключению VDDA и VSSA.

Если я не использую ADC и DAC,а использую PLL и POR достаточно ли подключить VDDA->VDD и VSSA->VSS?

Ведь это общее питание для аналогового домена. Или все таки нужно подключать через фильтр и VDDA и VSSA.

Я не парюсь и просто соединяю VDDA->VDD и VSSA->VSS. В том числе в случаях, когда не требуется феноменальная точность АЦП/ЦАП. Ставлю рекомендованные ёмкости. У меня обычные условия: импульсный блок питания с пульсациями порядка 50 мВ. Проблем не было.

Теоретически можно себе представить, что в условиях зашумленного питания (шум с частотами порядка 100 МГц) будет сбоить PLL. Было ли такое у кого-либо на практике - интересный вопрос. От 100 МГц хорошо помогают ферритовые бусины. Кстати, видел их на схемах DEMO плат для фильтрации питания PLL, но у других МК.

Share this post


Link to post
Share on other sites

Мне требуется отлавливать прерыания от GPIO как по фронту так и по спаду. Не нашел регистра из которого можно было бы узнать какое из этих событий произошло. Вижу способ только читать значение самого пина. Есть ли регистр в котором фиксируется событие?

Share this post


Link to post
Share on other sites
Мне требуется отлавливать прерыания от GPIO как по фронту так и по спаду. Не нашел регистра из которого можно было бы узнать какое из этих событий произошло. Вижу способ только читать значение самого пина. Есть ли регистр в котором фиксируется событие?

Нет.

Share this post


Link to post
Share on other sites

Камень STM32F217

OS: FreeRTOS 7.0.1

LwIp: 1.3.4 Socket

Проблема в следующем: крутится прием данных по HTTP. Получив данные в статический буфер, LwIp закрывает сокет командой close.

В произвольный момент времени, внезапно, LwIP начинает принимать пакеты крайне не равномерно.

Кто-нибудь встречался?

Share this post


Link to post
Share on other sites

поделитесь исходниками для работы с энкодером от мышки (колесико) желательно под stm32f4. С использованием таймеров в режиме " Encoder interface mode". Можно с описанием принципов работы, чтоб понятней было.

Edited by mrcrook

Share this post


Link to post
Share on other sites

да читал я эту статью. во первых не работает функция PIN_CONFIGURATION() точнее ее вообще не находит, во вторых инициализация

    RCC->APB1ENR = RCC_APB1ENR_TIM3EN;

    TIM2->CCMR1 = TIM_CCMR1_CC1S_0 | TIM_CCMR1_CC2S_0;
    TIM2->CCER = TIM_CCER_CC1P | TIM_CCER_CC2P;
    TIM2->SMCR = TIM_SMCR_SMS_0 | TIM_SMCR_SMS_1;
    TIM2->ARR = 100;
    TIM2->CR1 = TIM_CR1_CEN;

подправил на 3й таймер он поддерживает энкодер в stm32f4. компилятор ошибок не выдает но ничего не заводится.

 

 

 

p.s. ноги я естественно сконфигурировал RA6,7 соотв.

Edited by mrcrook

Share this post


Link to post
Share on other sites

Ну вы же не для красного словца просили "желательно с описанием принципов работы"? Описание там есть, всё объяснено. Или вам надо тупо скопипастить?

 

Share this post


Link to post
Share on other sites

Коллеги, подкажите по АЦП в STM32F100R (TQFP-64): насколько я понимаю что раз выводов для внешнего опорного Vref+, Vref- в этом корпусе нет, то опорное берется напрямую с VDDA/VSSA; тут на стр. 160 (табл. 57) сказано, что VDDA должно быть то ли равно VDD, то ли вообще они должны быть соединены. То есть даже нельзя сделать, например, VDD=3.3В, а VDDA=2.5В? Как в этом случае лучше отвязать аналог от цифры и подать опорное от прецизионного источника? Прошу прощения если уже обсуждалось.

Share this post


Link to post
Share on other sites
То есть даже нельзя сделать, например, VDD=3.3В, а VDDA=2.5В?

Нет, нельзя.

 

Как в этом случае лучше отвязать аналог от цифры и подать опорное от прецизионного источника? Прошу прощения если уже обсуждалось.

Никак.

Можно попробовать выход источника опорного напряжения подать на VDDA, а на цифровую часть подать его же через буфер.

Естественно, в корпуче TQFP100 такой проблемы нет.

Share this post


Link to post
Share on other sites
Можно попробовать выход источника опорного напряжения подать на VDDA, а на цифровую часть подать его же через буфер.

А я думаю подать на цифровую часть например с простого стабилизатора вроде 78L033, а на аналоговую - с прецизионного типа REF3033; VDD и AVDD соединить через два встречно включенных диода, чтобы при включении сильно не перекашивало между этими питаниями. Так можно?

 

Share this post


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