• Объявления

    • admin

      Просьба всем принять участие!   24.11.2017

      На форуме разыгрывается спектроанализатор Arinst SSA-TG LC (цена 18500 руб). Просьба всем перейти по ссылке ниже и принять участие!
alvikagal

2-Х Канальный Коммутатор На Pic12F675

458 сообщений в этой теме

lukinov    51

Это хорошо что по спаду. Прикидки платы начал делать.

Поделиться сообщением


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

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
alvikagal    37

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

Будет 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
alvikagal    37

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

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

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

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

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

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

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

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

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

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

675U_KomModel.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IGO61    155

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

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
granick    136

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

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

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

Удачи.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
alvikagal    37

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

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

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

Поделиться сообщением


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

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

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

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

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

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

41b43c9a6f5f.jpg

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

Изменено пользователем Невский

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
alvikagal    37

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

Делал так.

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
lukinov    51

Невский нет это не этот вариант. Это просто коммутатор. Делается блок управления зажиганием к нему этот блок коммутатор.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
lexpartizan    0

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
granick    136

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
lexpartizan    0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
lexpartizan    0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
lukinov    51

alvikagal резистор R15 так и оставил 0.1 ома, или другой стоит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IGO61    155

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

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

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

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

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

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

C675_Vprobe.zip

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
GBV    33

IGO61 ИГОРЬ !!! Чтото не удаеться посмотреть нормально работу в проте прога выдает ошибку.

.bmp.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IGO61    155

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
alvikagal    37

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IGO61    155

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
alvikagal    37

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

Поделиться сообщением


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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сообщения

    • Поэтому и надо ставить номиналы резисторов как на схеме. Не зря поставлен 50 ком регулятор громкости. У триодов с высоким усилением есть входная ёмкость Миллера. Она большая и в 6Н9С  равняется 70-100пф. И если регулятор громкости высокоомный 500ком вы ставите в среднее положение,то получается RC цепочка 250ком - 80пф,которая ослабляет ВЧ частоты. Есть калькулятор ОН лайн. Вот здесь http://tel-spb.ru/rc.html  пользуйтесь им при расчётах  и увидите всё сами. Вот ввёл 250ком и 80пф. Как видим очень большой завал. Подставьте 25 ком и увидите,как будет хорошо. А в некоторых схемах в интернете рекомендуют включать параллельно триоды входной лампы 6Н9С и тем самым увеличивают входную ёмкость  ещё больше и заваливают ВЧ ещё больше .  
    • В промышленных устройствах применяется многоступенчатое включение-отключение, смысл которого можно описАть следующим алгоритмом. Включение: 1-вход замкнут, нагрузка отключена, питания нет; 2-подаётся питание через балластное сопротивление; 3-уменьшаем балластное сопротивление (если нужно, то п.3 повторяется многократно); 4-замыкаем балластное сопротивление; 5-ждём окончания переходных процессов, подключаем нагрузку и размыкаем вход. Для выключения тоже можно что-то придумать...) С уважением В.
    • Так, полез в мусорку ценники из магазина искать.
      А-а-а, пень старый! Сметану уж давно не покупал. 
      Честно, не помню цены.  Хе, нашел-таки. В мастерской своей редко мусор выбрасываю. Там обычно только бумаги. Не тухнут.
      Сметана 26%, 0,4 литра (пластиковый пакет) - 2,03 Это $1. Моя зарплата достаточно высока для нашей местности. У других - 200-600 BYN ($100-300). Сравнивайте.
    • https://alltransistors.com/ru/transistor.php?transistor=14926 http://paratran.com/2paratran.php?tr=63787 http://paratran.com/3AnalogTransistor.php?tr=63787   Может этот???    Тут почитайте https://www.drive2.ru/l/461201973094384964/    
    • Да, Владимир, в приколах Вам не отказать!
      Но, как мне пока кажется, не сильно кАпает. @Oliver , ёлы, двое суток понадобилось, чтобы оптрон проверить? Уж, если сели за ремонт, так ведите его. А то бывает, что люди и через год отзываются и новые вопросы задают. Думаете, легко потом вспомнить, о чем речь вели? Вас ведь, вопрошающих, много. Всего и не упомнить.
    • @Окись меди Говорите за себя.(не буду цитировать вашу утончённую инсинуацию). Я по крайней мере, за всех -только извинился(на всякий случай). По поводу авы,если у вас напрочь отсутствует чувство юмора-мне жаль вас.Сходите в галерею,там такого увидите.... а ведь туда дамы тоже ходят и ничего,не смущаются. "В человеке все должно быть прекрасно: погоны, кокарда, исподнее…"(с)
    • Я те сфотаю Кстати цена приемлимая