Jump to content

    

Переход с STM32F103 на GD32F103

Recommended Posts

my504
23 hours ago, TViT said:

Может есть у кого-то

 

Один из вариантов происхождения проблемы. При переходе с STM32 на AT32 я обнаружил, что в таймерах у которых нет регистра CTRL2, запись в этот несуществующий регистр ведет к отключению всех прескалеров таймера и он начинает работать на входном тактировании шины. Есть вероятность, что какая то из функций HAL в силу универсальности может писать якобы в пустоту то, что изменит работу периферийного модуля. Собственно в этом и состоит проблема HAL, где реальная работа с регистрами зарыта в недрах капусты функций.

Share this post


Link to post
Share on other sites

TViT
30.04.2022 в 11:39, my504 сказал:

Один из вариантов происхождения проблемы. При переходе с STM32 на AT32 я обнаружил, что в таймерах у которых нет регистра CTRL2, запись в этот несуществующий регистр ведет к отключению всех прескалеров таймера и он начинает работать на входном тактировании шины. Есть вероятность, что какая то из функций HAL в силу универсальности может писать якобы в пустоту то, что изменит работу периферийного модуля. Собственно в этом и состоит проблема HAL, где реальная работа с регистрами зарыта в недрах капусты функций.

Как это поймать побыстрее и полегче? Где при настройке чего проблема затаилась которой вроде как и не должно быть?

Share this post


Link to post
Share on other sites

Alex-lab
3 hours ago, TViT said:

Как это поймать побыстрее и полегче?

Проверить состояние всех регистров после инициализации, сверить с рефманом?

Share this post


Link to post
Share on other sites

TViT
1 час назад, Alex-lab сказал:

Проверить состояние всех регистров после инициализации, сверить с рефманом?

Ну постараюсь, что-то отладка на китайце не заводилась.

Share this post


Link to post
Share on other sites

GYUR22
On 4/26/2022 at 4:12 PM, Forger said:

Нет. Аппаратно они одинаковые, в чем лично убедился конкретно на этих камнях в реальном проекте. Откройте даташиты, сравните.

 

Разница была с АЦП, в частности с самокалибровкой. Там был нюанс. В остальном камни одинаково работали.

 

А можно поподробнее что там не так с калибровкой?

На первый взгляд что у GD32F103 делается одной функцией adc_calibration_enable() у stm32 делается тремя функциями  резет, калибровка, проверка , но суть и регистры теже.

Спрашиваю потому что у GD несколько странно ведет себя опора vrefint  - прыгает от на 30 делений , а у stm +-1. Ну и в GD иногда что то прилетает в 9 канал АЦП и показания на нем скачут - обычно раз в несколько часов, остальные каналы норм , все делается очень медленно скорость камня 36MHz, АЦП тоже медленный, выборка 239.

 

Share this post


Link to post
Share on other sites

Forger
7 minutes ago, GYUR22 said:

А можно поподробнее что там не так с калибровкой?

Если мне не изменяет память, то калибровку АЦП в GD можно включать не ранее, чем через 14 тактов после включения АЦП. У ST эта цифра гораздо меньше.

Share this post


Link to post
Share on other sites

GYUR22
23 minutes ago, Forger said:

Если мне не изменяет память, то калибровку АЦП в GD можно включать не ранее, чем через 14 тактов после включения АЦП. У ST эта цифра гораздо меньше.

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

Если я правильно понял то имеется ввиду задержка после ADC_Cmd(ADC1, ENABLE); ?

Share this post


Link to post
Share on other sites

Forger
6 minutes ago, GYUR22 said:

Если я правильно понял то имеется ввиду задержка после ADC_Cmd(ADC1, ENABLE); ?

Возможно оно, точно не знаю, поскольку сторонними периферийными библиотеками не пользуюсь.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.