Свежие обсуждения
Микроконтроллеры

Ликбез по программированию PIC

1 97 99

У меня была похожая проблема, правда немного другая. Нормально работавшая ранее в других проектах схема контроллера на 628А с питанием от параметрического стабилизатора на стабилитроне 4V7, в одном их проектов вдруг стала нестабильно работать, вместо плавного зажигания и гашения светодиоды (включены через ключи) начинали моргать. Правда замеры показывали незначительную просадку напряжения питания м/к. Пришлось уменьшить номинал балластного резистора стабилизатора, т.к. портам банально не хватало тока для отпирания ключей в моменты, когда одновременно задейстовоано было более десятка портов. Напряжение просаживалось и м/к ресетился. Поэтому и спросил в первую очередь насчет питания. А по большому счету в схемах с м/к может быть три основные причины неработоспособности (по мере вероятности):
1. Неправильная прошивка
2. Проблемы с питанием.
3. Неисправность самого м/к (что достаточно редко случается).
Это не аналоговая схема и не "рассыпуха".

 

poruchik, я другой причины не вижу. Подскажите вариант, проверю?..
У меня опыт работы с МК маленький. Даже с учётом повторения чужих устройств, не говоря уже о своих собственных.

В оригинале схемы сопротивления ограничительных резисторов были 510Ом, я же поставил 225Ом. Ток нагрузки на порты, обслуживающие разряды индикатора, увеличился в 2 раза - с 5мА до 11мА. В сумме, при засветке всех сегментов - 5мА*7=35мА для исходного варианта и 11мА*7=77мА для моего.
Но 11мА у меня не получилось. Выходы разрядных портов просаживаются, как уже говорил, до 3В. В результате ток получился 4,5мА на сегмент.

Вопрос "на засыпку" - от чего разрядные выходы МК просаживались до 3В? В то время как на сегментгых выходах просадка не превышала 0,5В.

А после установки транзисторов просадка пропала - амплитуда импульсов на портах стала почти 5В а на эммитерах - чуть больше 4В. На сегментных выходах МК так и осталась просадка 0,5В. В результате ток сегментов стал порядка 7мА.
Теперь даже запас есть - можно увеличить ток сегментов. А то индикатор большой и яркости маловато...

При этом, главное, пропало мерцание сегментов.

 

DWD: Вопрос "на засыпку" - от чего разрядные выходы МК просаживались до 3В? В то время как на сегментгых выходах просадка не превышала 0,5В.

Потому что через них течет суммарный ток всех сегментов разряда.

Максимальный ток порта не должен превышать 25мА. При этом суммарная мощность м/к при работе нескольких портов на выход не должна быть превышена. Без разрядных ключей 7-сегментники подключать не стоит, иначе нужно принудительно ограничить ток сегментов на допустимом уровне, что скажется на яркости свечения, особенно при динамической индикации.

 

Могу предположить, из-аз большого тока на выходе МК просаживалось напряжение питания и срабатывал BOR (сброс по снижению напряжения питания) и МК перезагружался. Вы пробовали отключать BOR в слове конфигурации?

Я подключал сегменты напрямую к выводам МК при использовании суперяркого индикатора и резисторов на 1 кОм. Более тусклые и большие индикаторы подключал через внешние ключи (либо только общие сегменты индикатора, а иногда и все сегменты).

 

Splav56: DWD: Вопрос "на засыпку" - от чего разрядные выходы МК просаживались до 3В? В то время как на сегментгых выходах просадка не превышала 0,5В.
Потому что через них течет суммарный ток всех сегментов разряда.

Суть вопроса не "почему просадка", а "почему на столько"?
При 3В на выходе и питании 5В на внутреннем ключе МК падает аж 2В!

Splav56: Максимальный ток порта не должен превышать 25мА.

Вот из этого мне и нужно было исходить, а не тупо повторять схему. Так что сам виноват, думать нужно было...
Кстати, на схеме оригинала указаны сопротивления ограничительных резисторов 510Ом, а в скобках добавлено - 680-910Ом.

Сергей К: Могу предположить, из-аз большого тока на выходе МК просаживалось напряжение питания и срабатывал BOR (сброс по снижению напряжения питания) и МК перезагружался. Вы пробовали отключать BOR в слове конфигурации?

Нет, отключать BOD (почему у Вас BOR ) я не пробовал. К тому же я сомневаюсь, что происходил сброс МК.
Во первых, для срабатывания BOD просадка должна быть аж до 4,35В, а у меня просадка была всего на 5мВ.
Не знаю, правда, какой длительности были просадки, не мерял, но в даташите сказано, что при срабатывании BOD МК переходит в режим сброса и остаётся в нём ещё на время 72мс, а я таких остановок не замечал. Минимльная частота следования импульсов 100Гц - частота мультиплексирования разрядов индикатора, а это длительность 10мс и она была постоянной. Провалы на время 72мс я бы заметил сразу.

Ну и во вторых, при сбросе запуск МК довольно специфический - через секунду после подачи питания на индикторе в режиме бегущей строки высечивается модель терморегулятора и номер версии программного обеспечения в виде: "Ch-C3000-15A", это ещё примерно 2 секунды. В результате, только через 3 секунды на индикаторе появляется значение текущей температуры.
Если бы происходил сброс по питанию, то я бы не смог наблюдать постоянную индикацию температуры.

 

DWD: Суть вопроса не "почему просадка", а "почему на столько"?
При 3В на выходе и питании 5В на внутреннем ключе МК падает аж 2В!

У Вас индикатор с ОК, след. порты dig1-dig3 коммутируют эти катоды на GND и в статике там вообще должен был бы быть 0 уровень. Но в динамике Вы и должны видеть там 2/3 от Uпит., т.к. катоды коммутируются на GND последовательно друг за другом.

 

DWD: Во первых, для срабатывания BOD просадка должна быть аж до 4,35В, а у меня просадка была всего на 5мВ.

Это у вас на плате столько было, а на сколько внутри на кристалле просаживалось неизвестно.

 

Мои прикидки показывают, что мало...
Если предположить, что внутри мс соединение между кристаллом и внешним выводом выполнено железным проводником диаметром 0,1мм, то сопротивление этого перехода будет порядка 25мОм.
Хотя реально - и проводник толще и выполнен из меди...

При питании 5В, падении на светодиодах индикатора 2В и ограничительных резисторах 225Ом получается предельный ток сегмента 13мА. Реально меньше, так как я не учитываю падение на открытых ключах МК, а их постоянно открыто два из-за включения индикатора между выводами МК.

Одновременно и постоянно может быть засвечено только 8 сегментов индикатора, по этому максимальный потребляемый ток не превышает 100мА.

Ну и наконец, падение напряжения на внутреннем соединении вывод-кристалл получается 2*0,1А*25мОм=5мВ.
Плюс моё измеренное значение просадки 5мВ и в итоге получаем 10мВ.

В даташите сказано, что BOD реагирует на напряжение именно выводов питания (естественно, внутренних), так что при напряжении питания 5В BOD ни как не может сработать, так как при таких условиях работы напряжение питания не падает до 4В.

Но BOD работает, так как при снижении напряжения питания ниже 4В МК уходит в сброс.
Как уже говорил - тестировалось при питании 4,07В и не мигает. То есть, при разнице напряжения питания и порогом срабатывания BOD всего 70мВ МК не уходил в сброс.
Спрашивается, какого он должен сбрасываться по сигналу BOD при разнице в целый вольт?..

 

Splav56: У Вас индикатор с ОК...

Нет, я поставил с ОА.

 

Знатоки, скажите, пожалуйста, за какое минимальное время можно оцифровать сигнал с датчика?
Грубо, примерно...

Скажем, какой нибудь простенький МК с АЦП работающий на частоте 4мГц.

Суть в том, что для реализации одной идеи нужно успеть замерить напряжение на датчике за время не более 1мс. На сколько это реально?