" title="Написать письмо">Написать письмо

Статистика

Пользователи : 1
Статьи : 2021
Просмотры материалов : 7420006
 
ATmega168 - портал в ад (24.08.2024). Печать E-mail
2024 - Август
26.08.2024 09:03
Save & Share
Ранее без микроконтроллера была создана система управления клапаном воды (которая сейчас чуток допиливается). Пришло время сделать её с микроконтроллером, увеличив функционал и снизив стоимость.

В довоенное время была куплена плата Arduino Nano v.2.0 с микроконтроллером ATmega168 - точно была на 50-100руб дешевле ATmega328 (это сейчас они в одну стоимость стали, равно как ATmega328 и ATmega328PB). При работе с данным микроконтроллером, окончательно закрепилось утверждение: дьявол с чертями - это не вымышленные персонажи, а реальные глючные предметы и тупые люди этой планеты. Сэкономил, бл...


Работая с ATmega168, оглядывался на ATmega328: на ней была успешно реализована система защиты от протечек, способная работать при напряжении 4.8В, - и то могла бы и при меньшем: именно внешний модуль отправки SMS IOT-GA6-B был слабым звеном с высоким энергопотреблением. На деле - не нужно было оглядываться, т.к. возникла куча багов. Каждый баг, изначально, неизвестного типа: аппаратный, или контактный, или программный - думаешь на кривые руки при пайке или кривые мозги при программировании, а это микроконтроллер троллит.


Характерно для обеих микроконтроллеров:
- Rx - D0, Tx - D1;
- прерывания: 0 - D2, 1 - D3;
- как и для дорогущих плат АЦП (вида ADLINK PCI-9113A за 60к): влияние аналоговых каналов друг на друга даже с заземлением, паразитные значения без заземления. Решение было заимствовано из контрольно-проверочной аппаратуры: использовать входные каналы через один, заземлять все каналы. Был выявлен номинал заземляющего резистора, при котором 0.00В всегда будет 0.00В: 85кОм при пониженном напряжении питания 3.8В (5В от ПК, 1.2В из которого падало на питающих проводах: USB-хаб без дополнительного питания + кабель USB к программатору длиной 60см);
- неочевидный всегда присутствующий баг самой платы Arduino Nano, независимо от микроконтроллера: каналы A6 и A7 работают только на вход;
- если есть устройство, подключенное к D0 или D1, - оно может мешать заливать скетч в плату. Поэтому на них можно вешать только светодиоды;
- цифровой выход D13 нельзя использовать с реле: несколько произвольных смен состояния при включении платы. Но его можно использовать для питания маломощных устройств. Почему-то на нём работает семисегментный индикатор TM1637 - возможно, связано с тем, что не успевает зажечься при внезапных подаче и отключении питания.

Пусть входящее напряжение является наиболее распространённым на входах техники в настоящее время (5В) и её начинки (ещё меньше). Тогда:
- у ATmega328 напряжение на выходах будет меньше 5В - но у ATmega168 оно будет ещё меньше;
- для ATmega328 напряжение 5В является ниже порога 6В - однако порог 6В является лишь рекомендованным. В то же время, для ATmega168 данное напряжение является чётким выходом за нижний предел питающего напряжения. В результате, у ATmega168 наблюдается нечёткое поведение при измерении напряжения аналоговыми входами: со смещениями в несколько десятков милливольт. При этом, направление и номинал смещений при каждом включении будет разным - так ещё и во времени изменяется.

Пусть входящее напряжение будет 12В: у ATmega328 напряжение на выходах будет 5В - но у ATmega168 оно будет ещё меньше (4.85-4.92В).

Пусть нужно включить реле с помощью аналогового выхода.
Тогда на ATmega328 при напряжении питания 5В:
- достаточно одного аналогового выхода (при его максимуме по паспорту 40мА) для энергоэффективных реле. Например, QIANJI JQC-3F(T73): ток замыкания 40мА, мизерный ток удержания 11-13мА;
- достаточно соединить 2 аналоговых выхода для неэнергоэффективных реле. Ток удержания FRNGKE JQC-3F(T73): 47.2мА.
Тогда на ATmega168 при напряжении питания 5В:
- не хватит и двух аналоговых каналов, т.к. выходное напряжение недостаточно для перемещения якоря FRNGKE JQC-3F(T73);
- при этом зависнув на границе: якорь раз щёлкнет, раз не щёлкнет - требуется транзистор.

Разное:
- при работе TM1637 в ATmega168 при напряжении питания 5В - ток GND 76мА, при 12В - 128мА. При напряжении питания 3.8В может через раз ошибочно показывать значения (только часть символов);
- это означает, что через цифровые выходы может течь ток >40мА без последствий для подключаемого оборудования. В случае с питанием, при 12В: на D13 наблюдается напряжение 4.92В - которое сразу же падает до 4.48В. При этом TM1637 успешно работает, т.к. это точно >3.09В при напряжении питания 3.8В;
- исходники системы защиты от протечек не заливаются в ATmega168: в нём не хватает места для размещения.

(добавлено 30.08.2024) ATmega168 сдох при подключении RST через резистор 2.2кОм к пину +5V. Теперь RST всегда как будто соединён с GND. 3 часа потратил на поиск волосков проводов, флюса или олова, паразитно соединяющих RST с GND (в т.ч. отпаивая всё подряд), - их нет.

С учётом того, что резистор взят с более чем двойным запасом (2.2кОм вместо экспериментально доказанных в работе 1кОм и 12кОм для ATmega328) - ещё одно подтверждение: ATmega168, при текущих технологиях аж ATmega328PB, - не заслуживает внимания.
Обновлено ( 31.08.2024 09:47 )
 
 

Последние новости


©2008-2024. All Rights Reserved. Разработчик - " title="Сергей Белов">Сергей Белов. Материалы сайта предоставляются по принципу "как есть". Автор не несет никакой ответственности и не гарантирует отсутствие неправильных сведений и ошибок. Вся ответственность за использование материалов лежит полностью на читателях. Размещение материалов данного сайта на иных сайтах запрещено без указания активной ссылки на данный сайт-первоисточник (ГК РФ: ст.1259 п.1 + ст.1274 п.1-3).

Много статей не имеет срока устаревания. Есть смысл смотреть и 2011, и даже 2008 год. Политика сайта: написать статью, а потом обновлять ее много лет.
Открыта карта ВТБ для донатов на дорогостоящие эксперименты: 5368 2902 0040 0838.

Рекламодателям! Перестаньте спамить мне на почту с предложениями о размещении рекламы на этом сайте. Я никогда спамером/рекламщиком не был и не буду!
Top.Mail.Ru