Изучаем STM32 Cortex M3
16.07.2018, 14:30
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.03.2010
Сообщений: 2,896
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от eddy
|
|
Одну плату, кстати, почти реанимировал: при тщательном рассмотрении оказалось, что нога boot болтается в воздухе, т.к. второй конец подтяжки на землю не был припаян!
|
Возможно, у горе-паяльщика и флюс "интересный"...
Как минимум - демонтаж, промывка, повторный монтаж... иначе никаких гарантий работоспособности в будущем.
|
|
|
|
16.07.2018, 16:26
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Флюс у него нормальный — обычная спиртоканифоль, я сам давал (ЛТИ не дал, мало ли — начнет SMD ею паять).
Сообщение от AR_Favorit
|
|
демонтаж, промывка, повторный монтаж
|
вот этого не хотелось бы: и так уже 3.5 месяца потеряно...
UPD. Прозвонил, перепаял кое-что. Реально, проблема была в непропае: из-за отсутствия контакта с землей у диода выгорал импульсник, Rx/Tx UART'а закорочены, сожженые Шоттки...
С одним так и не разобрался до конца: все работает при питании от USB, а вот при попытке питания от 12В, когда должен работать импульсник, выгорает входной мосфет защиты от переполюсовки...
В общем, лишний раз это напомнило мне важное изречение: «Хочешь, чтобы было сделано правильно, сделай это сам!»
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
Последний раз редактировалось eddy; 16.07.2018 в 18:11.
|
|
|
|
19.07.2018, 01:53
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.03.2010
Сообщений: 2,896
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от eddy
|
|
Реально, проблема была в непропае: из-за отсутствия контакта с землей у диода выгорал импульсник, Rx/Tx UART'а закорочены, сожженые Шоттки...
|
Сообщение от eddy
|
|
С одним так и не разобрался до конца: все работает при питании от USB, а вот при попытке питания от 12В, когда должен работать импульсник, выгорает входной мосфет защиты от переполюсовки...
|
Обычный "идеальный диод?" А какой мосфет стоит? Может, по ошибке взят с Ugs_max=10V?
Я обычно NTR1P02T1G ставлю. Ну у меня токи меньше ампера, понятно...
|
|
|
|
19.07.2018, 02:52
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от AR_Favorit
|
|
Обычный "идеальный диод?" А какой мосфет стоит?
|
Да, обычный. Стоит AO3407. У него 20В, так что запас есть. Скорей всего, что-то где-то в цепи импульсника мой паяльщик выжег (но без напряжения все прозванивается нормально).
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
Последний раз редактировалось eddy; 19.07.2018 в 02:56.
|
|
|
|
19.07.2018, 12:15
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 08.02.2005
Адрес: Минск, Беларусь
Сообщений: 8,924
Сказал спасибо: 3,111
Сказали Спасибо 3,030 раз(а) в 2,258 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от eddy
|
|
выгорает входной мосфет защиты от переполюсовки...
|
По идее его должен успеть опередить предохранитель..
|
|
|
|
23.07.2018, 09:07
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.03.2010
Сообщений: 2,896
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
STM32L072 со своим даташитом не перестает радовать.
Есть RTC. Требуется периодически будить МК из режима STOP c использованием RTC periodic wakeup. Есть четкое описание и даже пример конфигурации этого режима в даташите. Есть сниппет с примерно тем же примером. Есть в конце концов AN4759 "Using the hardware real-time clock (RTC) in low-power modes with
STM32 microcontrollers" с описанием, в т.ч., порядка конфигурации этого самого RTC periodic wakeup.
И абсолютно нигде нет указания на необходимость каких-либо манипуляций с битом INIT регистра RTC-›ISR для работы с periodic RTC wakeup unit. Более того, есть четко написанное в даташите про регистр ISR:
|
Цитата:
|
TC initialization and status register (RTC_ISR)
This register is write protected (except for RTC_ISR[13:8] bits). The write access procedure is described in RTC register write protection on page 542.
Address offset: 0x0C
RTC domain reset value: 0x0000 0007
System reset: not affected except INIT, INITF, and RSF bits which are cleared to ‘0‘
|
На деле же пример инита из даташита или AN4759 не работает.
А вот сниппет работает, поскольку там вслед за настройкой periodic wakeup-а есть еще процедура настройки часов, в которой устанавливается, а затем сбрасывается бит INIT в регистре RTC_ISR.
Добавление очистки этого бита к процедуре инициализации RTC Wake-Up, описанной в даташите, чудесным образом заставляет прогу работать. Хотя никто его не взводил, и по ресету он должен быть нулем...
Код - калька из сниппета:
|
PHP код:
|
void configure_rtc(void)
{
/* Enable the LSI */
RCC-›CSR |= RCC_CSR_LSION;
/* Wait while it is not ready */
while((RCC-›CSR & RCC_CSR_LSIRDY)!=RCC_CSR_LSIRDY){};
/* Enable PWR clock */
RCC-›APB1ENR |= RCC_APB1ENR_PWREN;
/* Enable write in RTC domain control register */
PWR-›CR |= PWR_CR_DBP;
/* LSI for RTC clock */
RCC-›CSR = (RCC-›CSR & ~RCC_CSR_RTCSEL) | RCC_CSR_RTCEN | RCC_CSR_RTCSEL_1;
/* Disable PWR clock */
RCC-›APB1ENR &= ~RCC_APB1ENR_PWREN;
/* Configure RTC */
/* Enable write access for RTC regsiters */
RTC-›WPR = 0xCA;
RTC-›WPR = 0x53;
/* Disable wake up timer to modify it */
RTC-›CR &= ~RTC_CR_WUTE;
/* Wait until it is allow to modify wake up reload value */
while((RTC-›ISR & RTC_ISR_WUTWF) != RTC_ISR_WUTWF){};
/* Modify wake upvalue reload counter to have a wake up each 1Hz */
RTC-›WUTR = 0x9C0;
/* Enable wake up counter and wake up interrupt */
RTC-›CR = RTC_CR_WUTE | RTC_CR_WUTIE;
//////////////////////////////////////////////////////////
// Без вот этой строчки прерываний по RTC WakeUp нет!!!
//////////////////////////////////////////////////////////
RTC-›ISR = ~RTC_ISR_INIT;
//////////////////////////////////////////////////////////
/* Disable write access for RTC regsiters */
RTC-›WPR = 0xFE;
RTC-›WPR = 0x64;
/* Configure exti and nvic for RTC IT */
/* unmask line 20 */
EXTI-›IMR |= EXTI_IMR_IM20;
/* Rising edge for line 20 */
EXTI-›RTSR |= EXTI_RTSR_TR20;
/* Set priority */
NVIC_SetPriority(RTC_IRQn, 0);
/* Enable RTC_IRQn */
NVIC_EnableIRQ(RTC_IRQn);
}
|
"Читайте даташит", говорили они... "Периферия почти такая же, как в STM8L", говорили они...
Ну вот как так-то?
Последний раз редактировалось AR_Favorit; 23.07.2018 в 09:10.
|
|
|
|
Эти 2 пользователя(ей) сказали Спасибо AR_Favorit за это сообщение:
|
|
|
23.07.2018, 15:04
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 14.03.2009
Сообщений: 1,597
Сказал спасибо: 1,065
Сказали Спасибо 1,559 раз(а) в 855 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от AR_Favorit
|
Ну вот как так-то?
|
Обычные дела
|
|
|
|
Сказали "Спасибо" laser532
|
|
|
24.07.2018, 09:15
|
|
|
Гражданин KAZUS.RUN
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 839
Сказал спасибо: 379
Сказали Спасибо 943 раз(а) в 451 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от AR_Favorit
|
|
Периферия почти такая же, как в STM8L
|
А в RM0031 для STM8L15x в описании процедуры инициализации RTC упомянут регистр
предделителя PRER, которого там и в помине нет, зато есть в STM32.
Все смешалось; возможно, в фирме ST изначально распилили один STM32 на четыре STM8-х,
и одному из огрызков как раз достался этот регистр; отсюда и зло-копипаст мануалов
|
|
|
|
24.07.2018, 17:12
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 25.11.2010
Адрес: г. Дзержинск Нижегородская обл.
Сообщений: 1,801
Сказал спасибо: 133
Сказали Спасибо 1,152 раз(а) в 549 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Такие объемные доки обычно набирают не с "нуля". Скорее всего берут что-то из близкого семейства и правят. Но бывает правят невнимательно.
|
|
|
|
26.07.2018, 19:54
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Мужики, есть у кого-нибудь USB CDC для STM32F0 без всякой лишней дряни (вроде SPL или кала)?
Поделитесь, пожалуйста...
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:16.
|
|