1921ВК035 (общие вопросы)

32-разрядные микроконтроллеры разработки АО "НИИЭТ"

Модераторы: ea, dav, bkolbov, Alis, pip, _sva_

ea
Администратор
Сообщения: 129
Зарегистрирован: 10 окт 2014, 09:08

Re: 1921ВК035 (общие вопросы)

Сообщение ea »

Добрый день.
От вывода Vcc2 запитан блок АЦП (суммарное потребление не более 250 мкА) и четыре вывода GPIO: B0-B3.
Если выводы B0-B3 настроены на выход или включены режимы PullUp, то ток потребления по выводу Vcc2 будет зависеть от подключенной нагрузки к этим выводам.
nppsem
Сообщения: 103
Зарегистрирован: 26 апр 2010, 16:09

Re: 1921ВК035 (общие вопросы)

Сообщение nppsem »

Спасибо, ценная информация!
nppsem
Сообщения: 103
Зарегистрирован: 26 апр 2010, 16:09

Re: 1921ВК035 (общие вопросы)

Сообщение nppsem »

nppsem писал(а): 19 янв 2026, 08:59 Спасибо, ценная информация!
Однако, посмотрел схему - В0...В3 используются как входы АЦП, между источником сигнала и входами подключены последовательные резисторы 1кОм, напряжение по входам не превышает 2,5В+диод.
nppsem
Сообщения: 103
Зарегистрирован: 26 апр 2010, 16:09

Re: 1921ВК035 (общие вопросы)

Сообщение nppsem »

Проделали опыт - на МК постоянно выдан RESET (соответственно выводы В0...В3 д.б. в Z-состоянии), потребление по аналоговому питанию практически совпадает с потреблением при выполнении программы.
Собственно из-за чего возник вопрос - по входу аналогового питания был установлен RC фильтр, где R=51 Ом. Так вот на этом R на некоторых (пока нашли 2 шт) микросхемах падает 250 мВ, на остальных 50 мВ (что даёт 1 мА потребления, но никак не 250 мкА).
Wolver
Сообщения: 4
Зарегистрирован: 15 ноя 2023, 07:05
Предприятие: ВНИИА

Re: 1921ВК035 (общие вопросы)

Сообщение Wolver »

Добрый день!
Появилась проблема: при непрерывной работе контроллера 1921ВК035 в течение длительного времени (недели, месяцы) происходит зависание. Проанализировал код, единственное место, где это может возникнуть, это в процессе обмена по Spi (режим мастера), то есть вот на таком участке кода:

SPI->DR = data;
while(SPI->SR_bit.BSY) { __nop(); }
data = SPI->DR;

Так как это происходит через месяц, а то и больше, выловить не получается, но других вариантов, где он может встать, нет. Но у нас мастер и передача в любом случае должна произойти, флаг BSY должен всегда нормально обнуляться.

Сталкивался ли кто с такой проблемой, когда флаг не сбрасывается? Если да, то как это успешно парировать? В каких случаях может возникнуть такой эффект?
RabidRabbit
Сообщения: 202
Зарегистрирован: 10 июн 2025, 12:11
Предприятие: HomeWork

Re: 1921ВК035 (общие вопросы)

Сообщение RabidRabbit »

Wolver писал(а): 15 июл 2026, 13:18 Проанализировал код, единственное место, где это может возникнуть, это в процессе обмена по Spi (режим мастера), то есть вот на таком участке кода:

SPI->DR = data;
while(SPI->SR_bit.BSY) { __nop(); }
data = SPI->DR;

Сталкивался ли кто с такой проблемой, когда флаг не сбрасывается? Если да, то как это успешно парировать? В каких случаях может возникнуть такой эффект?
Здесь Вы ССЗБ. Ожидание изменения состояния флага очевидно нужно ограничивать таймаутом. И лучше бы для определения завершения передачи использовать бит RNE.
Wolver
Сообщения: 4
Зарегистрирован: 15 ноя 2023, 07:05
Предприятие: ВНИИА

Re: 1921ВК035 (общие вопросы)

Сообщение Wolver »

В библиотеке lib035 в примерах именно так реализовано, как у меня, именно флагом bsy и без таймаута. И все же, в каких случаях он может не ставиться?
Ответить

Вернуться в «32-разрядные микроконтроллеры»