![]() |
Arduino в M2-ITX
Давно хотел поковыряться в БП M2-ITX и сделать его более гибким в настройке, более функциональным.
Что мне не нравится:
Прочитать прошивку микроконтроллера P87LPC761B не получилось, т.к. она защищена от чтения. Поэтому решил подключить Arduino Nano вместо этого микроконтроллера. В принципе, можно расширить функционал и самого P87LPC761B. Для этого надо написать свою прошивку. А к выводам Tx и Rx подключить преобразователь COM-USB, чтобы оперативно изменять различные настройки. Мои конструкции: http://i68.fastpic.ru/thumb/2015/092...7a14c7851.jpeg http://i72.fastpic.ru/thumb/2015/092...2ea187b43.jpeg http://i65.fastpic.ru/thumb/2015/092...6b94a51ea.jpeg http://i70.fastpic.ru/thumb/2015/092...cc1db9c6b.jpeg http://i71.fastpic.ru/thumb/2015/092...8a6a92c87.jpeg Возможности на данный момент:
|
Я гдето встречал контроллер для m2-ITX на ардуино
Завтра поищу ссылку |
Lexx09
Круто :yes4: |
Для полного обесточивания буду использовать эту схему:
http://i65.fastpic.ru/big/2015/0925/...f770fb3574.png При включении зажигания срабатывает нижнее реле и на БП поступает +12В от АКБ. Далее БП формирует сигнал +5VSB, что вызывает срабатывание верхнего реле. После выключения зажигания нижнее реле размыкается, но питание на БП все равно подается (через верхнее реле). При переходе компьютера в гибридный спящий режим верхнее реле не размыкается, т.к. +5VSB присутствует. После окончания определенного интервала +5VSB снимается, верхнее реле размыкается и БП полностью обесточивается. Вместо верхнего автомобильного реле можно использовать какое-нибудь другое с напряжением переключения 5В. Тогда можно обойтись без резистора и транзистора. Эту схему можно использовать и в базовом варианте (без Arduino). Цитата:
|
Самодельный контроллер для m2-ATX
Это немного не то что планирует ТС, но все же основные функции работы с БП уже реализованы http://compcar.ru/forum/attachment.p...1&d=1294695065 |
Это я видел.
|
Я б транзистор в схеме заменил на опторазвязку, мое эстетическое чувство протестует против замешивания нестабилизированного 12В до БП и стабилизированных 5В после. Реле на 5В, используемое как развязка, может подгаживать индуктивными помехами в те же 5В. Понятно, что комп во время отключения реле выключен, но все же.
|
Потихоньку продолжаю проект...
Для понятия алгоритма работы и распиновки МК оригинального M2-ITX снял 30 осциллограмм 8-канальным цифровым осциллографом всех возможных режимов работы, включения, выключения. Почти со всем разобрался, кроме назначения пина 5 МК. Вероятно, он связан с защитами от КЗ, перенапряжения и т.п., но в проекте не используется. Первоначальный вариант переделал практически полностью. Описание и возможности Контроллер блока питания предназначен для расширения функционала блока питания M2-ITX путем замены микроконтроллера на аппаратно-программное средство типа Arduino на базе микроконтроллера компании Atmel. В дальнейшем под Arduino подразумевается не только оригинальный вариант, но и многочисленные клоны. Контроллер обеспечивает богатые возможности по настройке параметров работы БП и различных периферийных устройств, и обладает следующими возможностями:
Программа управления Для взаимодействия пользователя с контроллером разработана программа управления. Взаимодействие программы управления с Arduino происходит через COM-порт. Возможности программы:
http://i97.fastpic.ru/thumb/2017/120...67f041b12.jpeg http://i97.fastpic.ru/thumb/2017/120...52d059d9e.jpeg http://i98.fastpic.ru/thumb/2017/120...63b9177fe.jpeg http://i98.fastpic.ru/thumb/2017/120...8b230d255.jpeg На маленьких разрешениях экрана в программе появляются ползунки, которыми можно прокручивать окно программы. Поначалу тестировал в Proteus: http://i98.fastpic.ru/thumb/2017/120...c1724e586.jpeg Там еще второй микроконтроллер был, который эмулировал ответную часть БП и компьютер. Контроль напряжения бортовой сети В оригинальном варианте контроль пониженного напряжения производится компаратором, настроенным на один уровень напряжения. Определение напряжения средствами Arduino производится без использования компаратора, что позволяет задать уровень пониженного напряжения. В качестве опорного напряжения используется напряжение питания Arduino, которое может быть не равно точно +5В. На разных экземплярах M2-ITX это напряжение также может немного различаться. Например, при подключении к USB-порту домашнего компьютера – напряжение питания Arduino равно +4,65В. Если подключить вывод 3V3 (на котором фактически 3,28В) к аналоговому входу и в течение некоторого времени скетчем измерять напряжение, приняв за опорное напряжение точно +5В, то получим следующие результаты: http://i97.fastpic.ru/big/2017/1204/...4561aadb88.png Если измерить вольтметром напряжение питания Arduino, и прописать это значение в скетч вместо 5В, то получим следующие результаты: http://i97.fastpic.ru/big/2017/1204/...d8c4e40a80.png Как видим, результат стал существенно точнее. Т.о., для корректного определения напряжения бортовой сети необходимо знать два параметра:
В процессе тестирования выявил еще одну вещь - напряжение питания Arduino при работающем компе ниже, чем при выключенном. А в момент запуска компьютера напряжение питания Arduino просаживается еще ниже, из-за чего срабатывала защита от низкого напряжения. Пришлось ввести в алгоритм два коэффициента - один для неработающего CarPC, другой - для работающего. От использования более точного ИОН на отдельных элементах решил отказаться, дабы не усложнять схему. Выбор и подготовка Arduino В проекте может быть использована Arduino любого типа с микроконтроллером, удовлетворяющим следующим требованиям: https://duino.ru/arduino.html
Желательно использовать Arduino, на которой есть джампер для отключения автоматического программного сброса. Этот джампер необходимо удалить, иначе при открытии порта программой управления возможен жесткий сброс CarPC (даже если программой не используется сигнал DTR). http://i98.fastpic.ru/big/2017/1204/...1a68f7526c.jpg Для прошивки Arduino нужно либо временно устанавливать джампер, либо нажимать кнопку сброса в начале загрузки прошивки. Загружать прошивку необходимо с другого компьютера/ноутбука, при этом CarPC должен быть выключен. Arduino отсоединять от БП не обязательно. Если в наличии есть Arduino без джампера, то надо каким-либо способом отключить ее программный сброс. Например, соединив контакты 5V и RST резистором. http://i97.fastpic.ru/thumb/2017/120...982b22fdf.jpeg http://i97.fastpic.ru/thumb/2017/120...4fbf9ab05.jpeg Рекомендуется сразу заменить стандартный загрузчик на загрузчик Optiboot по следующим причинам:
Схема подключения На данный момент схема подключения Arduino к M2-ITX такая: http://i97.fastpic.ru/thumb/2017/120...a09f06dd5.jpeg Резисторный делитель на входе D3 Arduino нужен для:
Arduino при отключенном питании и 5VSB переходит в глубокий сон, из которого выходит только при появлении ACC. Замеры потребления тока уснувшей Arduino и во время спящего/ждущего/гибридного режимов CarPC еще не делал. Сейчас тестирую дома на снятом CarPC. Когда до полевых испытаний доберусь - непонятно, надеюсь, до НГ успею. Времени не хватает на все про все, как обычно. Надо же еще и красивое руководство пользователя сделать (большую часть уже выложил здесь)... Если у кого-нибудь есть замечания/предложения/пожелания - с удовольствием выслушаю. PS: COM-порты - такая убогая технология для обмена данными, ужас просто. Намучался с ней. В дальнейшем развитии проекта можно попробовать использовать Arduino с полноценным USB-портом (на ATmega32U4), либо STM32 (STM32F103C8T6, тоже с полноценным USB-портом), либо ESP8266 (с обновлением прошивки и управлением по WiFi). |
Можно добавит вход от сигнализации, что бы система не нагружала на прогревах борт сеть авто.
Распознование режима ACC и START от повышения напряжения-плохая идея. Я бы посоветовал отслеживать состояние от любого включённого прибора авто на время положения ключа Start, убьёшь ещё одного зайца, просадка АКБ (если это есть) |
По поводу сигнализации с автозапуском уже думал... Полагаю, для корректной работы достаточно будет развязать ACC замка зажигания от остальной бортовой проводки, в т.ч. и от сигнализации. Иначе при срабатывании автозапуска на линии ACC появится напряжение и, соответственно, включатся БП, CarPC и усилитель. А при прогреве автомобиля это не нужно.
http://i97.fastpic.ru/thumb/2017/120...cda608c2e.jpeg Отслеживать заводку двигателя можно многими способами - по тахометру, по датчику давления масла, по индикатору зарядки АКБ... Но не хочется прокладывать дополнительные провода. В полевых испытаниях проверю отслеживание по напряжению. |
Часовой пояс GMT +4, время: 18:31. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot