Angel71 писал(а):не скромный вопрос, а смысл копаться в этих микрах обычных dc-dc?
извини не понял фразы.
я победил проблему, разобрался как настроить gpio ещё при старте.
алгоритм следующий:
dc-dc преобразователь RT8272
http://www.ebay.com/itm/Mini-DC-DC-Buck ... 0362498785(у меня используется для получения 5в от батареи, для питания контроллеров)
ножка EN через 820kOhm и нормально замкнутую микрушку посажена на землю (т.е. по умолчанию ВЫКЛЮЧЕНО).
одновременно к ножке EN подключен smd конденсатор на 10uF (конечно тоже на землю)
одновременно через диод (катодом к EN), и ограничивающий резистор в 150 Ohm, к EN подключена ножка arm контроллера.
Звучит громоздко но всё очень компактно.
Получается следующее, по умолчанию ножка притянута к земле через резистор 820kOhm.
нажимаем на кнопку - резистор "повисает", конденсатор заряжается от внутреннего источника,
как только он зарядится до 1.4в стабилизатор запустится.
включится arm контроллер который загрузит u-boot который считает с флешки файл в котором сказано
- Код: Выделить всё
gpio set ph7
теперь мы на самоподхвате. далее загружается ядро линукса и мы живём спокойно.
если выполнить ребут то ph7 сбрасывается на секунду но потом u-boot опять её поднимает.
Чтобы выключить, в цепочке выключения предпоследней командой гасим ph7
для ubuntu можно создать такой файл
- Код: Выделить всё
cat /etc/init.d/ups-monitor
#!/bin/sh
case "$1" in
poweroff)
echo "Marsboard poweroff"
echo 0 > /sys/class/gpio/gpio48_ph7/value
;;
esac;
Этот файл (если существует) по умолчанию запускается из /etc/init.d/halt
спустя 8сек после этого плата отключается
Целый день с этим разбирался.
Добавлено спустя 1 минуту 30 секунд:ЗЫ. а зарядка и самодельный UPS работают отлично! и аккумулятора надолго хватает.
если работает только arm контроллер + wifi то на целый день хватает.
зы2.
в первоначальном варианте у меня не было диода, поэтому я мучался с нормально замкнутой кнопкой, с диодом можно не париться, для пуска использовать любую нормально разомкнутую кнопку (без фиксации), через неё на EN подавать напряжение со входа, желательно через ограничивающий резистор например в 1кОм.
Диод нужен чтобы не питать arm контроллер через ножку EN.