Size: a a a

2020 December 29

F

Faberge in Embedded Group
источник

ED

Electronics Designer in Embedded Group
Faberge
А в каких случаях виноват МК?)
Ну вот я например обнаружил в F4 глюк, не описанный в errata - проблему записи в TIM->SR, если частота таймера отличается от частоты ядра. :)
источник

ED

Electronics Designer in Embedded Group
Вкратце - если ничего не предпринимать, то прерывание по переполнению срабатывает несколько раз. Если в прерывании сбрасывать флаг раз пять подряд - то все ОК.
источник

ED

Electronics Designer in Embedded Group
Типичная проблема синхронизации разных частотных областей.
источник

ED

Electronics Designer in Embedded Group
Подозреваю, здесь не обошлось без влияния механизма работы таймеров на частоте, удвоенной относительно частоты APB.
источник

F

Faberge in Embedded Group
Electronics Designer
Ну вот я например обнаружил в F4 глюк, не описанный в errata - проблему записи в TIM->SR, если частота таймера отличается от частоты ядра. :)
Но это не ошибка самого МК. Его таким произвели. Это ошибка разработчиков периферийного блока/тестировщиков
источник

LZ

Leonid Zaliubovskii in Embedded Group
Electronics Designer
Типичная проблема синхронизации разных частотных областей.
потмоу у ех-Атмела везде между доменами в ATSAMD/ATSAML напизаны синхронизаторы
источник

LZ

Leonid Zaliubovskii in Embedded Group
источник

DT

Dmitry Teh in Embedded Group
и неработающий тач?
источник

F

Faberge in Embedded Group
Подставку из мрамора забыли.
источник

AK

Andrew K in Embedded Group
Electronics Designer
Ну вот я например обнаружил в F4 глюк, не описанный в errata - проблему записи в TIM->SR, если частота таймера отличается от частоты ядра. :)
барьеры не помогали? или (void)TIM->SR
источник

SK

Stas Koynov in Embedded Group
Electronics Designer
Ну вот я например обнаружил в F4 глюк, не описанный в errata - проблему записи в TIM->SR, если частота таймера отличается от частоты ядра. :)
что значит частота таймера отлична от частоты ядра? не кратной ей или как?
источник

PB

Petr Belyaev in Embedded Group
Electronics Designer
Вкратце - если ничего не предпринимать, то прерывание по переполнению срабатывает несколько раз. Если в прерывании сбрасывать флаг раз пять подряд - то все ОК.
Это касается не только таймера. С EXTI была такая же проблема. Решалась через барьер (DSB или что-то подобное) или при чтении-записи в регистр с соответствующим флагом (TIM->SR = TIM ->SR)
источник

К1

Ком 123 in Embedded Group
Petr Belyaev
Это касается не только таймера. С EXTI была такая же проблема. Решалась через барьер (DSB или что-то подобное) или при чтении-записи в регистр с соответствующим флагом (TIM->SR = TIM ->SR)
Тоже вспомнил сразу про барьеры. У st даже презентация на эту тему есть, вроде.
источник

V

Vasiliy in Embedded Group
а как это по англицки гуглить? барьеры
источник

ED

Electronics Designer in Embedded Group
Andrew K
барьеры не помогали? или (void)TIM->SR
Честно сказать, не пробовал.
источник

PB

Petr Belyaev in Embedded Group
Vasiliy
а как это по англицки гуглить? барьеры
Это фича ядра. Есть (псевдо?)инструкции dmb/dsb. Информативнее всего* тут:
https://developer.arm.com/documentation/dai0321/latest
Еще есть форум:
https://community.arm.com/developer/ip-products/processors/f/cortex-m-forum/10389/dmb-dsb-isb-on-cortex-m3-m4-m7-single-core-parts
*Как минимум, применительно к Cortex-M.
источник

V

Vasiliy in Embedded Group
спасиб
источник

A

Anton Klochkov in Embedded Group
@maxzsd124

Это бот, кикайте пока сюда не успел нагадить

@lady_noname
источник

CA

Cate Archer in Embedded Group
Anton Klochkov
@maxzsd124

Это бот, кикайте пока сюда не успел нагадить

@lady_noname
тыж админ 🤔
источник