Киллсвич для бензинки с питанием от LIPO
Итак, 3.05.09 проведены полевые испытания свича на борту 2х метрового спитфайера…
Схема доказала свою работоспособность, однако для улучшения характеристик прошивка будет доработана в плане:
1.Выявлен баг индикации - при полностью заряженной батарее (когда индикатор не мигает) при отключении зажигания по радиоканалу, светодиод не гаснет а продолжает гореть.
2. Не учтена возможность реверса канала.
3 . Для тонкой настройки АЦП пороговые константы индикации нужно вывести в EEPROM.
Сегодня постараюсь доделать.
Выкладываю новую прошивку. Проверялась в симуляторе. Если кто сможет, проверьте в реале (у меня контроллер запаян в плату и доработки на работу моего свича не влияют). Адреса EEPROM:
Адрес Описание
0 Значение канала отключения (задается при программировании отсечки кнопкой. Пределы 0х39 - 0х7f)
1 Верхний порог АЦП
2 Первый промежуточный порог АЦП
3 Второй промежуточный порог АЦП
4 Нижний порог АЦП
5 Признак реверса канала (0- ревеса нет. 1-реверс. Автоматически программируется при нажатии кнопки программирования. Если ручка управления в нижнем секторе - 0, в верхнем - 1. По умолчанию - 0)
При отсутствии реверса отсечка происходит при длине канального импульса МЕНЬШЕ заданной.
При реверсе отсечка происходит при длине канального импульса БОЛЬШЕ заданной.
На сегодняшний день киллсвич отработал сезон на бензиновом двигателе с аппаратурой на 40Мгц и 2.4ГГц.
Ни одного сбоя в работе не выявлено. Отсечка отрабатывает стабильно.
размеры платы можно ужать раза в 3 при использовании SMD компонентов… Единственное - последняя прошивка в поле не проверялась, поэтому если кто заинтересовался и проверил ее, большая просьба отписаться.
Ну а если нет, тогда зимой сам займусь)))
Повторил килсвитч на PIC12F629, в прямом заработал без проблем.
В процессе испытаний выявлен баг в режиме реверса нет отключения зажигания.При проверке EEROM выявлено что в 5 байт “1” прописывается.
Вот результаты испытаний
- Программирование по сигналу 1.0мс работа без замечаний
- Программирование по сигналу 2.0мс при включении с сигналом 2.0мс зажигание отключено, при уменьшении длительности до 1,5мс зажигание включается и не реагирует на изменение входного сигнала.
- Программирование по сигналу 2.0мс при включении с сигналом 1.8мс зажигание включается и реакции на изменение сигнала нет.
Два раза получилось при программировании по сигналу 1.8мс при этом включение зажигания было при сигнале >1.8мс при сигнале меньше 1.8мс зажигание выключалось.
Непонятно назначение порта GP1(выв 6)
Предлагаю расширить диапазон обрабатываемых импульсов до 0.7-0.8мс так как аппаратура выдаёт стандартный сигнал отключения зажигания 3 канала -10% (импульсом 0.9мс) уменшение настройки откл зажигания до (-5%) может вызвать непроизвольное выключение двигателя.
Спасибо за подробный пост…
GP1 в новой версии не используется.
Правильно ли я понял, что все перечисленные баги относятся к работе в реверсе?
Диапазон расширить только в сторону уменьшения?
В общем понятно… При программировании после считывания длины импулься я немного уменьшал его для надежности))) а в реверсе я его походу тож уменьшаю, а надо увеличивать…
Все баги только в режиме реверса. В прямом режиме работает хорошо.
Диапазон предлагаю расширить в сторону уменьшения длительности импульса.
Я наверное диапазон тоже в EEPROM закатаю… дабы можно было настраивать…
Кстати баги ИМХО как раз из-за зажатого диапазона… Но надо еще покурить…
И еще… Опторазвязка немного но ощутимо удлиняет канальные импульсы… Я это заметил когда увидел расхождение измеренных значений импульсов между измеренными без нее и с ней.
Можно, только нужно перенаправить порт на включение, вход импульсов, и добавить кнопку программирования
или чтобы прошивку не ломать, перекоммутировать на плате и желательно последовательно со светодиодом оптрона резюк поставить на 470ОМ (мож из-за этого и МК вылетел…)
Да, чтобы АЦП не сбивал с толку, GP4 надо через 1к на +питания подключить
Выкладываю обновленную прошивку.
Баг с реверсом вроде исправил (неправильно отрабатывали прерывания при записи значения канала)
Также вывел в епром все основные константы и добавил режим игнорирования АЦП.
Также расширил диапазон измерения импульсов (теперь его можно настраивать через епром)
/*
адрес EEPROM назначение
0 значение ручки газа (выставляется при программировании канала) должно быть между мин и мах ( 6 и 7 адрес епром)
1 верхнее значение АЦП
2 значение АЦП
3 значение АЦП
4 нижнее значение АЦП
5 Признак реверса канала 1-реверс 0-нет реверса(ставится автоматически)
6 минимальная длительность канального импульса
7 максимальная длительность канального импульса
8 середина хода стика
9 Признак задействования АЦП 1-есть 0-нет
*/
К сожалению не обнаружил у себя в запасниках ни одного чипа поэтому тестил на симе(((
Вдогонку… Выключение АЦП предусмотрел, потому что у меня новый мотор, который можно питать от 4 до 18В… Поэтому ЛИПО буду подключать напрямую а напряжение питания проца снижу до 3.3В… Вот только не знаю, транзистор откроется на таком напряжении или нет. Если нет, поставлю опторазвязку на затвор, а цифровую часть запитаю от приемника… А может и нет)))
Кстати, вариант применения опторазвязкми канального импульса доказал свою жизнеспособность. Питание схемы от зажигания также не привело к несанкционированным отключениям мотора.
В общем есть варианты использования этого свича…
Повторил на PIC12F629 SMD всё работает без проблем.😁 Светодиод светит прерывисто это так и должно быть или какой-то баг.
Сделал простенький расчёт перевода длительности импульса в миллисекундах в шестнадцатеричный формат для заполнения пределов обрабатываемых импульсов биты EEROM № 0,6,7,8. Прикидывал методом научного тыка в “Протеусе” поэтому на большую точность не претендую 😉
Прерывисто светит, когда АЦП отключен… Задается в епроме по адресу 2. Чтобы видеть что схема не висит)))
На прямом включении частота мигания выше…
Кстати, значение Таймера измерения длительности импульса можно расчитать по формуле
(ДлИ)/(1/(1000000/16))
где ДлИ - длина импульса в секундах
Так, для 1мс - 0,001/(1/(1000000/16))=0.001/0,000016=62,5=63=0x3f
для 2мс = 125=0x7d
По поводу мигания при отключенном АЦП - ошибся… Частота мигания фиксированная и не изменяется
А в каком диапазоне питания борта эта схема будет работать? В ней есть какой-нибудь стабилизатор напряжения?
Я использовал 2S ЛИПО… Можно и 3S но греться поболе будет.
Питается схема от стабилизатора LM1084. Можно использовать любой LDO стаб на ток не менее 1А для одногоршкового зажигания и 1,5А для оппозита.
Минимальное напряжение, когда еще будет АЦП адекватно реагировать - 6,3В
Если без АЦП - то и меньше потянет.
Пороги Измерения АЦП задаются в ЕПРОМе и делителем на GP4.
Делитель (R1 R2) расчитывается таким образом, чтобы при максимальном напряжении батареи на GP4 было не более 5В.
А для чего там ток не менее 1 А, если от него питается только микросхема. Зажигалка ведь питается от своего АКБ.
Повнимательнее смотрите - Это киллсвич со стабилизатором для питания ЗАЖИГАНИЯ.
А сигнал от приемника идет через опторазвязку… Но можно и по-другому смострячить - запитать цифру от приемника а через опторазвязку врубать мосфет на зажигание - на схеме выше примерно так показано. Но тогда контролировать можно будет только напряжение борта
Меня как раз и интересовало, как запитать микросхемку от приемника. Нужно ведь стабилизировать как то напряжение борта.Думал у вас взять готовое решение ( название стабилизатора) Открыл темку по этому поводу, может подскажите?
Ну можно любой LDO стаб на 3,3В использовать в таком случае…
Вот например
www.terraelectronica.ru/catalog.php?ID=280&IDm=b&I…=
Я через поисковик находил стабилизаторы ( мне надо на 5В) но на всех было указано входное от 7 или 8 и до 20-30 В . На вашем примере указано входное 7,7-30В. А что будет если входное будет 5.5 В ? Ведь борт может просаживаться и до 5В.
Я просто абсолютно не спец (мягко говоря) в этом вопросе, поэтому мне надо конкретное название (маркировка стабилизатора) пригодного для килсвитча, а то я боюсь что он не добавит безопасности , а наоборот.