Перейти к содержанию

2-канальный коммутатор на PIC12F675


Рекомендуемые сообщения

Подскажите, правильно ли делаю переход с пуска в рабочий режим, чтобы не было пропуска одной искры.

Будет 2 искры в одном периоде. Одна после 6,2мс. после ВМТ, а вторая в ВМТ.

Channel_2
BSF OUT_2
MOVF TMR1L,W ;длительность периода
MOVWF Period_Lo ;сохранить в переменную
MOVF TMR1H,W
MOVWF Period_Hi
BANK0
CLRF TMR1H ;сброс счётчика периода
CLRF TMR1L
BCF PIR1,TMR1IF;сброс флага переполн.
TMR1_ON
MOVLW 0x09
MOVWF T_NAK_Hi
MOVWF T_NAK_Lo ;время накопления 6мс
DECFSZ T_NAK_Lo
GOTO $-1
DECFSZ T_NAK_Hi
GOTO $-3
BCF OUT_2
MOVF Period_Hi,W	
SUBLW 0x25				 ;370 об/мин			
BTFSC STATUS,C
GOTO Pusk_Rabota
GOTO Pusk
Pusk_Rabota
CLRWDT
MOVF TMR1L,W ;длительность периода
MOVWF EndNak_Lo ;сохранить в переменную
MOVF TMR1H,W
MOVWF EndNak_Hi
MOVF EndNak_Lo,W ;вычитаем накопление из длительности периода
SUBWF Period_Lo,F
MOVF Period_Lo,W
MOVWF ZADER_Lo
MOVF EndNak_Hi,W
SUBWF Period_Hi,F
MOVF Period_Hi,W
MOVWF ZADER_Hi
MOVF EndNak_Lo,W ;вычитаем накопление из длительности периода
SUBWF Period_Lo,F
MOVF Period_Lo,W
MOVWF ZADER_Lo
MOVF EndNak_Hi,W
SUBWF Period_Hi,F
MOVF Period_Hi,W
MOVWF ZADER_Hi
BCF STATUS,C
RLF ZADER_Hi,F ;умножаем накопление на 2
RLF ZADER_Lo,F
DECFSZ ZADER_Lo
GOTO $-1
CLRWDT
DECFSZ ZADER_Hi
GOTO $-4
BSF OUT_1
MOVF TMR1L,W ;длительность периода
MOVWF StNak_Lo ;сохранить в переменную
MOVF TMR1H,W
MOVWF StNak_Hi
MOVLW 0x09
MOVWF T_NAK_Hi
MOVWF T_NAK_Lo ;время накопления 6мс
DECFSZ T_NAK_Lo
BTFSS IN_1
GOTO $+2
GOTO $-3
CLRWDT
DECFSZ T_NAK_Hi
BTFSS IN_1
GOTO $+2
GOTO $-8
BCF OUT_1

Длительность предыдущего периода Period= 259А *8=77008мкс

Длительность накопления записаная в переменную после искры EndNak= 0306*8=6208мкс

Вычитаю длительность накопления 2 раза ZADER = Period - EndNak - EndNak = 259А - 0306 - 0306 = 1F8E*8=64624мкс.

Так как ZADER будет таймером и каждый цикл = 4мкс., а ZADER=1F8E=8078циклов*4мкс/цикл=32312мкс

А мне нужно 64624мкс, поэтому ZADER *2 и включаю таймер накопления.

Где неправильно?

Может пока отключить сторожевой таймер?

PS

Спасибо, разобрался.

Оказывается каждый цикл таймера был 3vrc? переставил сторожа туда и стало 4мкс.

Теперь всё как в аптеке, без учёта ускорения.

Перехожу к рабочей программе, пока с нормированным накоплением. Если получится, то тогда буду переделывать под обратную связь по току.

Если бы ещё кто-то мне на мусор в моих кодах показал, было бы не плохо.

А то мне не верится, что я всё правильно делаю.

А вообще интересно поговорить с умным человеком. :D

Получается, что изложил мысль на бумаге (читать, на форуме) и сам понял. ;)

Изменено пользователем alvikagal

Авто: ВАЗ-21099, 1.5l. СЗ: ДПКВ - SECU-3T - ДКЗ от CherepVM (коммутатор статика). Топливо: бензин\пропан.

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Программа минимум готова.

Пока оставил накопление 3,8мс. во всём диапазоне и проверил до 6000 оборотов, потом всё подправлю, если получится задуманое.

В программе нет коррекции на ускорени и замедление, поэтому если быстро менять частоту, то будут пропуски.

Думаю сделать коррекцию ускорение/замедление так:

Длительность накопления известна, длительность задержки тоже известна.

При ускорении недостаточно будет времени на накопление и возможно оно вообще не начнётся.

Точными цифрами ускорения не владею, поэтому если у кого есть информация, то поделитесь для общего развития.

И так при ускорении, после задержки и накопления (будем пока считать, что не достаточно времени для накопления), после сигнала на входе (спад) искрим и записываем таймер в U_Z. Затем складываем задержку ZADER и накопление EndNak и сравниваем с U_Z и разницу вычитаем и следующей задержки. Если замедление, то наоборот.

Игорь, подскажи как сравнивать два значения.

Вот модель с прошивкой, для тех, кому интересно, что пока получилось.

675U_KomModel.rar

Авто: ВАЗ-21099, 1.5l. СЗ: ДПКВ - SECU-3T - ДКЗ от CherepVM (коммутатор статика). Топливо: бензин\пропан.

Ссылка на комментарий
Поделиться на другие сайты

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Точными цифрами ускорения не владею, поэтому если у кого есть информация, то поделитесь для общего развития.

Игорь, подскажи как сравнивать два значения.

Ускорение/замедление может достигать 200оборотов за оборот. Например, в предыдущем цикле измеряли обороты, получили 800об/мин. То уже в текущем полуобороте уже можем получить 1000об/мин при ускорении или 600об/мин при замедлении.

Два числа можно сравнить на больше/меньше посредством вычитания одного из другого. Если был заем (проверка на сброс флага переноса), значит уменьшаемое было меньше вычитаемого.

На равно/не равно можно посредством команд "XORWF", "XORLW". При этом, если поднялся флаг "Z" (нулевого результата) - значит числа равны, если не поднялся - числа не равны.

Проверку кода на предмет "мусора" и косяков надо делать неспеша, в свободное время. Пока не сильно владею свободным временем. По возможности буду подключаться.

Изменено пользователем IGO61


 

Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Всем добрый вечер!!!

alvikagal делюсь самым дорогим безвоздмездно тоесть дадом -шутка, для себя делал немного больше

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

Удачи.

для начала программирования.rar

Я не говорю панацеи - я предлагаю варианты

Ссылка на комментарий
Поделиться на другие сайты

Спасибо, буду пользоваться.

Я вот этим пользовался пока - http://www.microchip.ru/?mid=3&tab=12

Изменено пользователем alvikagal

Авто: ВАЗ-21099, 1.5l. СЗ: ДПКВ - SECU-3T - ДКЗ от CherepVM (коммутатор статика). Топливо: бензин\пропан.

Ссылка на комментарий
Поделиться на другие сайты

Если разрешите, то вставлю свои пять копеек. В БСЗ применялась практика, два канала было реализовано на одном датчике холла.

Один канал работал по фронту, второй по спаду. Один из них был инвертирован.

Шторка была с двумя экранами по 90 градусов.

Мысль в том, чтоб уйти от двух холлов, освободить ресурс на обработке сигналов и двух каналов ( если я правильно понял идёт параллельная обработка обоих каналов? )

Расположение датчиков должно быть таким?

41b43c9a6f5f.jpg

(фотка подсмотрена здесь)

Изменено пользователем Невский
Ссылка на комментарий
Поделиться на другие сайты

Пока застрял с обработкой ускорения.

Делал так.

После прихода сигнала - искрим и сравниваю длительность предыдущего периода и текущего (только прошедшего). Разницу вычитаю из следующей задержки.

Но пока не получается.

Авто: ВАЗ-21099, 1.5l. СЗ: ДПКВ - SECU-3T - ДКЗ от CherepVM (коммутатор статика). Топливо: бензин\пропан.

Ссылка на комментарий
Поделиться на другие сайты

Интересная получится вещь. Если печатка получится не сильно большая, то можно втиснуть её в неисправный модуль зажигания, которых на сервисе нахаляву можно нагрести. А если совместить с схемой из темы фуоз+статика, будет готовая бюджетная система зажигания. Вот только транзюки КТ898А или Bu941 довольно дефицитны. Нет возможности сделать на каких-нибудь igbt? Спор по поводу игбт читал, но КТ898 у нас настолько редки, что хоть bu941 из Китая заказывай.

ЗЫ. В принципе, если заменить этой схемой штатный коммутатор модуля зажигания - тоже будет очень хорошо.

Изменено пользователем lexpartizan
Ссылка на комментарий
Поделиться на другие сайты

Всем добрый вечер!!!

Для lexpartizan выпускались блочки "Сонар" для замены контактов в трамблёре для

классической схемы зажигания, собрана была на микросхеме LM 2902D и транзисторе IRF 740,

верой и правдой служила. Блочёк вставлялся на место контактов радиатор был дюралевая пластинка

крепления в трамблёре. Где то был, если найду то нарисую схему.

Я не говорю панацеи - я предлагаю варианты

Ссылка на комментарий
Поделиться на другие сайты

granick, спасибо, но не утруждайтесь. И так глаза разбегаются :crazy: . Я пока соберусь делать (машинка в состоянии ведро, много работы предстоит) этот проект уже в третьей ревизии выйдет. KT898А1 на космодроме около 10 баксов стоят. То бишь готовый коммутатор раза в 1,5 дешевле транзистора. bu941zp 25 грн. IRF 740 - 5 грн.

Ссылка на комментарий
Поделиться на другие сайты

lukinov, спасибо, но я не радиолюбитель(собрать с горем пополам могу, но понять как оно работает - ни в жисть). Дай Бог автор заинтересуется. Ну и как фичреквест - эпхх бы и выход на тахометр хотелось бы.

Ссылка на комментарий
Поделиться на другие сайты

  • 2 месяца спустя...

Здравствуйте все!

Предлагаю своё видение вопроса двухканального коммутатора на 675-м МК.

В приложенном архиве - проект в "МПЛабе 7.20", протеусная моделька, текст, прошивка. Программа тестилась только в симуле. Вернусь из поездки - буду шлифовать в макете. Непосредственно сейчас не рекомендую ставить прогу на авто, так как полная схема в стадии разработки. Выходные ключи - IRGSL14C40, STGB10N37 не рекомендую - высокое напряжение управления (до 12) для надёжного открывания транзистора. А "ИРки" управляются логическими ТТЛ-уровнями.

Схема будет дополнена внешним ограничителем максимального тока и внешним ограничителем времени открытого состяния выходных ключей при отсутствии входных (или с контролика, пока не решил) импульсов.

Программа на пуске (сейчас до 300об/мин, предполагаю поднять порог до 400об/мин) повторяет с инверсией форму входного сигнала. Выше - формирует накопление по замеру тока через катуху при открытом выходном ключе. Максимальное время накопления - 16мсек, минимальное - 1мсек. Программа учитывает и скважность входного сигнала, но она некритична. По скважности (ускорение/замедление вращения коленвала) корректируется в работе момент открытия выходных ключей. Рекомендуемая скважность пока 2/3...1/2. Но можно и выходить за эти пределы.

Входные сигналы традиционны для меня - "СЗ" и "ВК". Коммут можно будет использовать и в одноканальном варианте, зафиксировав вход "ВК" на "минус" или на "плюс" питания.

C675_Vprobe.zip

Видел схемы и программы подобного коммутатора на "Меге", но там прога написана на "СИ" и не со всеми деталями работы программы разобрался.

Изменено пользователем IGO61


 

Ссылка на комментарий
Поделиться на другие сайты

Да, есть такая нескладуха. В проте убогая модель "ИР"-транзистора и он ругается на транз. Там надо какой-нибудь другой транзистор прикрутить. Кстати, в списке элементов (слева поля протеуса) есть этот транзистор. Есть моделька, но для нормальной работы нужно инвертировать выходные сигналы из контроллера и делать простейшие драйвера для затворов с инверсией.

Если программа вызывает интерес - выложу и такой вариант модели и программы. Ближе к вечеру.


 

Ссылка на комментарий
Поделиться на другие сайты

Игорь, при ускорении пропуск одной искры (первой).

С этим я так и не смог справиться. Если мерять период как длительность, и его сравнивать с предыдущим и делать поправку на ускорение, то получается такая беда.

А если мерять отдельно ВУ и НУ и их по отдельности сравнивать? Т.е. следить за каждым уровнем? Какой первый изменился по времени, сразу делать поправку.

По периоду это конечно сложно будет сделать. Если бы брать в целом ФУОЗ и от колеса 60-2, то там эта поправка была бы более точной.

Изменено пользователем alvikagal

Авто: ВАЗ-21099, 1.5l. СЗ: ДПКВ - SECU-3T - ДКЗ от CherepVM (коммутатор статика). Топливо: бензин\пропан.

Ссылка на комментарий
Поделиться на другие сайты

Естественно, при формировании накопления "по зубам" ошибка в длительности накопления будет минимизирована. При полностью таймерном формировании при резком ускорении возможен пропуск искрообразования.

В самой первой версии коммутатора, озвученной в теме "ФУОЗ+ДПКВ" отправной точкой был полный период (ВУ+НУ), что влекло за собой и бОльшую вероятности пропуска сикры. В нынешней же задействованы как длительности ВУ, так и длительности НУ (они меряются по отдельности). Суть такая: Меряются периоды текущий и предыдущий. Делается вывод, что происходит - ускорение или замедление. Если замедление, то коррекции по времени не производится. Да, выходной ключ откроется раньше, но отработает внешняя схема ограничения тока и конечный результат не будет фатальным. Ведь ключ будет находиться в аналоговом режиме совсем немного. При ускорении находится разница в периодах, она прибавляется к длительности накопления и всё это вычитается из длительности текущего ВУ. При отработке времени прога ожидает прихода ВУ на входе без отсчёта времени. И только по приходу ВУ начинается отсчёт времени до включения выходного ключа (типа пришёл нужный "зуб"). Так удалось несколько уменьшить ошибку в моменте включения накопления. Даже в таком виде при ускорении наблюдается не пропуск искры (как было в первой версии), а лишь уменьшение времени накопления и только в первом полуобороте после начала ускорения. Кстати, заметное уменьшение длительности есть на оборотах ниже 300...400. Вот почему я пока не определился с порогами перехода от ненормированной длительности к нормированной/сформированной. Выше этих оборотов более-менее приемлемые длительности. В общем-то прога даже на этих оборотах при ускорении высчитывает заведомо раннее начало открытия выходного ключа.

С некоторым натягом в данном варианте программа и схема повторяют алгоритм работы микросхемы L497B. В дальнейшем программу буду шлифовать.

Пока программа "укладывает" время накопления в пределы ВУ. Последствии постараюсь довести прогу, чтоб она вышла за рамки ВУ. 497-я такого не делает.


 

Ссылка на комментарий
Поделиться на другие сайты

Програмно будет сложно этот момент решить? Ты и решил аппаратно этого добиться.

Авто: ВАЗ-21099, 1.5l. СЗ: ДПКВ - SECU-3T - ДКЗ от CherepVM (коммутатор статика). Топливо: бензин\пропан.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Сообщения

    • @donec  должна, но в disk_initialize нет ретурнов... и у ТСа нет понимания работы файловой системы, вопрос, для чего он взялся за этот проект ?
    • Заинтересовали. Положение с 1 поста не открывается. Скорее всего пытаются сделать что то типа "цифровой подстанции" для экономии меди.
    • Удивительно, но нет. Вот подсказка, для чего именно нужен форум: https://www.google.com/search?client=opera&q=для+чего+нужен+форум&sourceid=opera&ie=UTF-8&oe=UTF-8 А вам, @John33-11 , нужна халявная техподдержка. Чуете разницу?
    • так бы сразу и сказал, что сознательно занимаешься издевательством. если тайм-аут закончился, то МК уже перешел на записанную прошивку и бессмысленно пытаться установить соединение. а если записан только загрузчик и остальная флешь чистая, то после окончания тайм-аута процессор быстренько пробежит с нулевого адреса до загрузчика, и опять начнется время ожидания. то есть, с "пустой" флешью можно делать соединение через любое время после подачи питания или сброса МК.
    • У тебя с чтением или пониманием плохо? перечитай предыдущий пост и приведи пример тиристора/симистора с указанными параметрами. ссылки на 800А тиристоры меня не интересуют. и да класс тиристора не определяется буквами.
    • С чего вы взяли что это бессмысленная  тема ???? . Ведь для чего нужен форум разве не для помощи ???? . Написал же выше что ошибка 56 без буквы . При включении в сеть беговой дорожки начинается загрузка и виснет она на надписи APP (приложение ).  Если вытащить ключ безопасность она на него реагирует как положено, но когда его ставишь обратно пишет ошибка 56.   Я создал эту тему для того может быть кого нибудь был опыт с ремонтом беговых дорожек . На плате управления стоит МК NUVOTON NUC126S4AE. Может быть у кого есть прошивка этого чуда. Part Number A1848C3.  До этого дорожка работала на ней побегали и выключили .
    • ""без соединения пытаться делать запись - некорректно и неразумно."" - это для разумных хомосапиенс, а для мартышек ...?! Конечно я не АВТОР, но если-бы меня спросили, я бы заблокировал нажатие кнопок "выбор файла", "запрограммировать" до нужного состояния соединения с МК (догадайся САМ какого...) А соединение не устанавливается, потому что я мухлюю, я жду больше положенного времени и жму кнопку соединиться, чтобы выявить нештатные ситуации. Я много писал для сторонних пользователей, и если инструкцию написать на лбу и поставить зеркало, все равно сделают неправильно, нужны коридоры действий, ... шаг влево, шаг вправо ... А по поводу смены скоростей, это просто особенность, не на что не влияющая, - не заморачивайся.  
×
×
  • Создать...