Перейти к содержанию
    

STM32F103, самопроизвольное изменение тактирования счётчиков

Есть небольшая серия из 10 шт устройств на базе STM32F103C8T6. 8 устройств работают нормально, а 2 устройства ведут себя одинаково странно - у них выходы счётчиков, которые формируют, например, звук пищалки, выдают частоту в несколько раз ниже планируемой. При этом, например, UART работает с правильной скоростью и ведёт обмен с хостом на 115200, как и нужно.

Иногда плата может стартовать правильно (звук пищалки правильный), а через пару секунд звук резко понижается (частота падает). Контроллер менял на новый - не помогло. Пропаивал ножки, тоже нет положительного эффекта.

Тактирование от кварца 8 МГц, схема согласно даташита.

Есть ли идеи, что это может быть за проблема?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, gerber сказал:

Есть ли идеи, что это может быть за проблема?

Китаиса однако.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Т.е. получается есть 10 плат и из них 2 глючат, на глючащих МК менялся на новый (из той же партии? не пробовали ли с рабочей перекинуть?) и это не помогло, то тогда возможно дело в плате (аналоговое питание, кварц или его обвязка, разводка самой платы). 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как сделана генерация звука - аппаратным ШИМ с выхода канала таймера или по прерыванию этого таймера?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 часов назад, A_D сказал:

Т.е. получается есть 10 плат и из них 2 глючат, на глючащих МК менялся на новый (из той же партии? не пробовали ли с рабочей перекинуть?) и это не помогло, то тогда возможно дело в плате (аналоговое питание, кварц или его обвязка, разводка самой платы). 

Рабочие платы отгружены, поэтому снять с них проц и перекинуть не получится. Если бы глючил кварц, я понимаю, слетели бы все тактирования, но UART работает правильно. К тому же переход на HSI тактирование не решает проблему.

4 часа назад, EdgeAligned сказал:

А как сделана генерация звука - аппаратным ШИМ с выхода канала таймера или по прерыванию этого таймера?

Аппаратный ШИМ с выхода канала таймера TIM2.

 

11 часов назад, Vasily_ сказал:

Китаиса однако.

Вот это скорее всего, хотя покупались контроллеры не на Али, а в Промэлектронике. Маркировка чёткая, я видел контроллеры, маркированные "в подвале", здесь не тот случай.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Остановите отладчиком, прочитайте и сохраните на бумажку или в блокнот на компе значение регистров RCC, TMR, PWR. Запустите, дождитесь сбоя, остановите, сравните.

1 час назад, gerber сказал:

Аппаратный ШИМ с выхода канала таймера TIM2.

Несущая частота ШИМа тоже пропорционально меняется? У F103 не особо много возможностей менять тактирование таймеров - в отличие от более новых тут оно прибито гвоздями к APB. То есть причина либо в измененном делителе APB (если UART, который продолжает работать висит на другой APB), либо в предделителе самого таймера (в обоих этих случаях должна меняться несущая частота ШИМ), либо в программной ошибке, из-за которой значения в CCR таймера грузятся в N раз реже (это если несущая частота не меняется). Я делаю ставку на последний вариант.

 

1 час назад, gerber сказал:

Китаиса однако.

Ой, да хватит пугать. Китаиса их делают так долго и в таких количествах, что все ошибки кристалла давно вылизали. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, gerber сказал:

Вот это скорее всего, хотя покупались контроллеры не на Али, а в Промэлектронике. Маркировка чёткая, я видел контроллеры, маркированные "в подвале", здесь не тот случай.

Как показывает практика: 99% всех проблем в устройствах с МК - в программных багах.

Но искать удобнее конечно там, где светлее. :sarcastic:

23 минуты назад, Сергей Борщ сказал:

Китаиса их делают так долго и в таких количествах, что все ошибки кристалла давно вылизали.

Конечно удобнее предположить, что из-за хитрой китайской ошибки в кремнии, самопроизвольно меняются какие-то делители частоты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А пищалка - именно пассивная пищалка или быть может, там пьезогенератор, который пищит от постоянного напряжения?

Лучше конечно лог. анализатором проверять генерируемые частоты и сигналы.

Ну и убедиться, что генерируется именно меандр, то есть симметричный сигнал с одинаковой длительностью 1 и 0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Разобрался, дело было в кварцевых резонаторах 8 МГц, замена на новые решила проблему. Они поначалу стартуют (HSE Ready), но потом отваливаются, контроллер переходит на внутренний HSI, который тоже 8 МГц.

При ините UART опорная частота вычисляется честно, на основании текущего состояния RCC регистров, поэтому он продолжал работать. А вот счётчики инитились в расчёте на 72 МГц, поэтому звук резко падал вниз.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...