STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Друг Кота
Сообщения: 6457
Зарегистрирован: Пт сен 13, 2013 13:11:31

Сообщение a5021 »

Мож VDDA ? PLL от него питается.
Реклама
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="a5021",url="/forum/viewtopic.php?p=3525689#p3525689"]Мож VDDA ? PLL от него питается.[/uquote]
Может, но на VDDA и сброс завязан, без VDDA обычно не стартует, а тут при 16MHz все нормально.
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Сообщение Ярослав555 »

Я тоже об этом думал. Но на 24 латентность 0 и МК падает на ините жпио. На 32 латентность уже 1, и инит плл проходит успешно, падает также на жпио. Пока что оставлю на 16, а как доберусь до осцила потыкаю в питания.

Добавлено after 1 minute 37 seconds:
[uquote="Reflector",url="/forum/viewtopic.php?p=3525661#p3525661"]Не похоже, у него проблемы уже при 24MHz начинаются, для которых 0WS нужен, а у ST все с большим запасом указано, реально с 0 и на 36MHz работает.[/uquote]
Как раз таки подходит. PLL у меня запускается на 16,24 и 32. А на 40 уже нет.
До этого проблемы с инитом жпио, но возможно это два разных бага.

Добавлено after 5 minutes 44 seconds:
Я сейчас попытаюсь расписать инит плл, там куб, особо впечатлительных прошу не писать сразу, а посчитать до 100 :)))
Смотрите, инит RCC в кубе построен по такому образу - сначала идет конфиг ПЛЛ и его включение в процедуре HAL_RCC_OscConfig(&RCC_OscInitStruct) - менно иам на макросе __HAL_RCC_PLL_ENABLE(); и валится все.
А вот латентность по плану задается уже ПОСЛЕ включения PLL в процедуре HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1)
Правильно ли я понимаю, что сначала надо ключить буфер и латентность, а уже потом включать PLL. Стоит писать реквест на форум ST?
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="Ярослав555",url="/forum/viewtopic.php?p=3525702#p3525702"]Правильно ли я понимаю, что сначала надо ключить буфер и латентность, а уже потом включать PLL. Стоит писать реквест на форум ST?[/uquote]
Естественно, латентность задается до включения PLL.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Сообщения: 6457
Зарегистрирован: Пт сен 13, 2013 13:11:31

Сообщение a5021 »

Не сочиняйте. __HAL_RCC_PLL_ENABLE() включает PLL, но не переключает тактирование железа от PLL.
Реклама
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="a5021",url="/forum/viewtopic.php?p=3525726#p3525726"]Не сочиняйте. __HAL_RCC_PLL_ENABLE() включает PLL, но не переключает тактирование железа от PLL.[/uquote]
А, тогда да, без разницы.
Ярослав555, а конденсатор на NRST есть? Резистор нагрузочный там слабенький, включение PLL добавляет помех...
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Сообщение Ярослав555 »

[uquote="Reflector",url="/forum/viewtopic.php?p=3525728#p3525728"]а конденсатор на NRST есть? Резистор нагрузочный там слабенький, включение PLL добавляет помех...[/uquote]
Небыло. Добавил 100нФ и подтянул отдельным резистором 1,5к к +3,3. Не помогло. Ладно, не буду тратить Ваше время - без осцилографа дальше делать нечего. К сожалению к нему я доберусь лишь на выходные.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Сообщение Ярослав555 »

:facepalm: блиииин, здесь VDDA в воздухе висит. ща сделаю перемычку куда-нибудь.

Добавлено after 11 minutes 4 seconds:
Все, работает как часы
Друг Кота
Сообщения: 6457
Зарегистрирован: Пт сен 13, 2013 13:11:31

Сообщение a5021 »

Гы! Знач теперь я угадал. :-)

to Reflector: с незапаянной ногой VDDA мк нормально работает, пока ADC или PLL не запустишь. И пофиг ему на резет.
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="a5021",url="/forum/viewtopic.php?p=3525825#p3525825"]to Reflector: с незапаянной ногой VDDA мк нормально работает, пока ADC или PLL не запустишь. И пофиг ему на резет.[/uquote]
VDDA = from VDD to 3.6 V: external analog power supply for ADC, DAC, Reset blocks, RCs and PLL (minimum voltage to be applied to VDDA is 2.4 V when the ADC or DAC are used). The VDDA voltage level must be always greater or equal to the VDD voltage level and must be established first.

The POR monitors only the VDD supply voltage. During the startup phase it is required that VDDA should arrive first and be greater than or equal to VDD.
The PDR monitors both the VDD and VDDA supply voltages, however the VDDA power supply supervisor can be disabled (by programming a dedicated Option bit) to reduce
the power consumption if the application design ensures that VDDA is higher than or equal to VDD.
Друг Кота
Сообщения: 6457
Зарегистрирован: Пт сен 13, 2013 13:11:31

Сообщение a5021 »

[uquote="Reflector",url="/forum/viewtopic.php?p=3525847#p3525847"]VDDA = from VDD to 3.6 V: external analog power supply for ADC, DAC, Reset blocks[/uquote]
Еще раз повторяю тем, до кого медленно доходит: без подачи VDDA F0 стартует и более-менее нормально работает, если не пытаться дергать периферию, питающуюся от VDDA. Неверующим предлагается проверить сей факт экспериментально и успокоиться.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Сообщение Ярослав555 »

[uquote="dosikus",url="/forum/viewtopic.php?p=3525830#p3525830"]Прототип из г. и палок?[/uquote]
да нет, фабричное исполнение. Прямо в проекте VDDA в воздухе висит. Наш косяк.
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="a5021",url="/forum/viewtopic.php?p=3525884#p3525884"]Еще раз повторяю тем, до кого медленно доходит: без подачи VDDA F0 стартует и более-менее нормально работает, если не пытаться дергать периферию, питающуюся от VDDA. Неверующим предлагается проверить сей факт экспериментально и успокоиться.[/uquote]
Глупый спор. VDDA нужен, об этом сказано в документации, у меня лично были без него периодические проблемы со стартом, а отрывать VDDA ради проверки я, естественно, не буду, т.к. он все равно должен быть всегда подключен.
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="a5021",url="/forum/viewtopic.php?p=3525948#p3525948"]Хотите напомню, с чего возник "глупый спор" ? Ровно с того, что вы заявили, будто без VDDA мк не стартует. Так вот я настаиваю, что это не спор глупый, а ваше утверждение.[/uquote]
Вообще-то опираясь на прошлый опыт я сказал, что без VDDA мк обычно не стартует... Но ладно, отключил VDDA от F0, стартует нормально, отключил от F1, молчит, дотрагиваюсь до VDDA проводком с 3В и сразу светодиод начинает мигать, убираю, снова перестает. Лезу в документацию, она немного другая, там вместо простой необходимости в VDDA при подаче питания конкретно написано, что the device remains in Reset mode when VDD/VDDA is below a specified threshold. Такое же описание у F4, для F3 уже как у F0... Получается некоторые серии без VDDA не стартуют, некоторые вроде работают, хотя требование наличия VDDA при старте остается и никто не гарантирует, что стартовать будет, например, при питании от 2-х В...
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 197
Зарегистрирован: Пн янв 24, 2011 01:51:48
Откуда: Украина, Киев

Сообщение RusikOk »

в режиме отладки на PB3 у STM32F103 всегда стоит 1 хотя SWO не используется. и в кубе соответствующие настройки стоят.
после перезагрузки кнопкой вывод работает как и полагается. где об этом почитать или как исправить ситуацию?
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

Друг Кота
Аватара пользователя
Сообщения: 7383
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Сообщение uldemir »

Расскажите, пожалуйста, в чем может быть проблема с бэкап регистрами? Кристалл stm32f103c8 - сидящий на синей таблетке, которую купил в Китае на ebay. Всё прекрасно работает с регистрами от BKP->DR1 до BKP->DR10. Но тут мне потребовалось еще пару регистров попользовать. В RM0008 написано, что их от 1 до 42.

Отбой тревоги! Оказывается, у этого камня, действительно только 10 регистров:
The RTC and the backup registers are supplied through a switch that takes power either on
VDD supply when present or through the VBAT pin. The backup registers are ten 16-bit
registers used to store 20 bytes of user application data when VDD power is not present.
Вот же блин!
СпойлерТолько вот странность, когда был подключен #include "stm32f1xx.h" - компилятор не находил BKP->DR больше 10. Переход на определение указывал, что определение находится в файле stm32f103xb.h - и там, действительно, последний регистр десятый. причем странно, что xb... в настройках проекта стоит STM32F103C8.

Тогда, я заменил инклюд на stm32f10x.h - там есть все 42 регистра, компиляция прошла нормально. Да вот только данные я вижу только в первых десяти регистрах. Даже прямая запись

Код: Выделить всё

 			BKP->DR11 = 0xaaaa;
			BKP->DR12 = 0x5555;
не даёт никакого эффекта - как был 0 в обоих регистрах - так и остаётся.

Первый, оказывается, берётся из каталога проекта: Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f103xb.h,
второй: "C:\Keil_v5\ARM\Pack\Keil\STM32F1xx_DFP\2.1.0\Device\Include\stm32f10x.h"
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Друг Кота
Аватара пользователя
Сообщения: 3386
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

[uquote="a5021",url="/forum/viewtopic.php?p=3498970#p3498970"]Вроде это не GD32 и цена довольно интересная. По даташиту оно на stm32f103c8t6 вполне походит.
СпойлерИзображение
Никто не в курсе, что это за чудо природы?[/uquote]У этого же продавца есть платы с CS32F103C8T6. https://ru.aliexpress.com/item/Free-Shi ... 08361.html
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Сообщение Ярослав555 »

После инита SPI линия данных не выставляется в высокий уровень, в соотв. с настройками. А после реинита на первом байте наблюдается передергивание клока/данных, от чего портится посылка. Знакомый говорит писал не один репорт в ST и тишина. Говорит лечится выводом в интерфейс 0xFF при поднятом CS слейва. Все так, или есть секрет?
СпойлерИзображение
Вложения
spi.jpg
(86.54 КБ) 361 скачивание
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

Код в хрустальном шаре?

И почему линия данных должна поменять состояние до передачи?

ЗЫ: все секреты в RM.
Ответить

Вернуться в «ARM»