my504 0 April 30 Posted April 30 · Report post 23 hours ago, TViT said: Может есть у кого-то Один из вариантов происхождения проблемы. При переходе с STM32 на AT32 я обнаружил, что в таймерах у которых нет регистра CTRL2, запись в этот несуществующий регистр ведет к отключению всех прескалеров таймера и он начинает работать на входном тактировании шины. Есть вероятность, что какая то из функций HAL в силу универсальности может писать якобы в пустоту то, что изменит работу периферийного модуля. Собственно в этом и состоит проблема HAL, где реальная работа с регистрами зарыта в недрах капусты функций. Quote Share this post Link to post Share on other sites More sharing options...
TViT 0 May 4 Posted May 4 · Report post 30.04.2022 в 11:39, my504 сказал: Один из вариантов происхождения проблемы. При переходе с STM32 на AT32 я обнаружил, что в таймерах у которых нет регистра CTRL2, запись в этот несуществующий регистр ведет к отключению всех прескалеров таймера и он начинает работать на входном тактировании шины. Есть вероятность, что какая то из функций HAL в силу универсальности может писать якобы в пустоту то, что изменит работу периферийного модуля. Собственно в этом и состоит проблема HAL, где реальная работа с регистрами зарыта в недрах капусты функций. Как это поймать побыстрее и полегче? Где при настройке чего проблема затаилась которой вроде как и не должно быть? Quote Share this post Link to post Share on other sites More sharing options...
Alex-lab 0 May 4 Posted May 4 · Report post 3 hours ago, TViT said: Как это поймать побыстрее и полегче? Проверить состояние всех регистров после инициализации, сверить с рефманом? Quote Share this post Link to post Share on other sites More sharing options...
TViT 0 May 4 Posted May 4 · Report post 1 час назад, Alex-lab сказал: Проверить состояние всех регистров после инициализации, сверить с рефманом? Ну постараюсь, что-то отладка на китайце не заводилась. Quote Share this post Link to post Share on other sites More sharing options...
Captain777 0 May 4 Posted May 4 · Report post Addon надо ставить от GD, чтобы правильно регистры показывал IAR или Кейл. Quote Share this post Link to post Share on other sites More sharing options...
Forger 1 May 4 Posted May 4 · Report post 13 minutes ago, Captain777 said: Addon надо ставить от GD Вот тут лежат Quote Share this post Link to post Share on other sites More sharing options...
TViT 0 May 5 Posted May 5 · Report post У меня Eclipse + OpenOCD либо +SEGGER Quote Share this post Link to post Share on other sites More sharing options...
Forger 1 May 5 Posted May 5 · Report post 2 minutes ago, TViT said: У меня Eclipse + OpenOCD либо +SEGGER Там по ссылке не только Addons, но и библиотеки для GD32. Quote Share this post Link to post Share on other sites More sharing options...
GYUR22 0 May 5 Posted May 5 · Report post On 4/26/2022 at 4:12 PM, Forger said: Нет. Аппаратно они одинаковые, в чем лично убедился конкретно на этих камнях в реальном проекте. Откройте даташиты, сравните. Разница была с АЦП, в частности с самокалибровкой. Там был нюанс. В остальном камни одинаково работали. А можно поподробнее что там не так с калибровкой? На первый взгляд что у GD32F103 делается одной функцией adc_calibration_enable() у stm32 делается тремя функциями резет, калибровка, проверка , но суть и регистры теже. Спрашиваю потому что у GD несколько странно ведет себя опора vrefint - прыгает от на 30 делений , а у stm +-1. Ну и в GD иногда что то прилетает в 9 канал АЦП и показания на нем скачут - обычно раз в несколько часов, остальные каналы норм , все делается очень медленно скорость камня 36MHz, АЦП тоже медленный, выборка 239. Quote Share this post Link to post Share on other sites More sharing options...
Forger 1 May 5 Posted May 5 · Report post 7 minutes ago, GYUR22 said: А можно поподробнее что там не так с калибровкой? Если мне не изменяет память, то калибровку АЦП в GD можно включать не ранее, чем через 14 тактов после включения АЦП. У ST эта цифра гораздо меньше. Quote Share this post Link to post Share on other sites More sharing options...
GYUR22 0 May 5 Posted May 5 · Report post 23 minutes ago, Forger said: Если мне не изменяет память, то калибровку АЦП в GD можно включать не ранее, чем через 14 тактов после включения АЦП. У ST эта цифра гораздо меньше. Не похоже что в моем случае что то изменилось как болталась так и болтаеся :) Если я правильно понял то имеется ввиду задержка после ADC_Cmd(ADC1, ENABLE); ? Quote Share this post Link to post Share on other sites More sharing options...
Forger 1 May 5 Posted May 5 · Report post 6 minutes ago, GYUR22 said: Если я правильно понял то имеется ввиду задержка после ADC_Cmd(ADC1, ENABLE); ? Возможно оно, точно не знаю, поскольку сторонними периферийными библиотеками не пользуюсь. Quote Share this post Link to post Share on other sites More sharing options...