Считывание длины импульса (длительность впрыска)

Обсуждаем цифровые устройства...
Ответить
Открыл глаза
Сообщения: 79
Зарегистрирован: Чт мар 01, 2012 18:30:00
Откуда: ВМ

Сообщение ukr823f »

Товарищи, требуется помощь. Творится какая то магия и все уже домыслы и тесты и прошивки закончились((. Смысл такой - я подключаюсь к форсунке двигателя. Мне нужно считать длительность импульса впрыска.
протестировал в протеусе, всё считывается адекватно. Собрал в железе, для теста дома подключил к устройству для шим регулирования яркости лампочки (диммеру). Подключаю это всё дело к блоку питания компа - всё считывается верно. Длина импульса равна той, что я вижу на осцилограмме. То есть длина верна на 100%. Иду в машину, подключаюсь к форсунке, и всё - какая то абракадабра начинается. Счётчик то переполняется, то сбрасывается. Я ввёл ограничение по длине импульса в 25мс. Всё равно на машине это очень много. Ну так вот на экране я вижу постоянное утыкание в это ограничение. Подключаюсь осцилографом к точке которая уже идёт на ножку МК, - так импульс есть и он чёткий и хороший. После этого вообще уже даже мыслей нет что такое может быть. В протеусе работает, на столе от лампы от шим регулятора (изменяя длину импульса от 10 до 25 мс) всё чётко работает, на машине длину импульса которая должна на холостом показывать 2-3 мс, не показывает в упор...

Таймер работает с частотой 1МГц. То есть минимальная длина измеряемого импульса может быть явно меньше 1 мс.

код измерения длины импульса

Код: Выделить всё

        // измерение длительности импульса
    if(PINB.0) //если на входе захвата 1 (передний фронт импульса)
    {
        rising = (unsigned int)ICR1L+((unsigned int)ICR1H << 8);           //запоминаем значениие счётчика 
        TCCR1B &= ~(1<<ICES1);  //устанавливаем прерывание по спадающему фронту импульса
		OVF_counter = 0;          //обнул¤ем количество переполнений счЄтчика
	}
	else                        //если на входе захвата 0 (задний фронт  импульса) 
	{
	    falling = (unsigned int)ICR1L+((unsigned int)ICR1H << 8);           //запоминаем значение счЄтчика
		TCCR1B |= (1<<ICES1);   //устанавливаем прерывание по нарастающему фронту импульса
		t = (unsigned long)falling - (unsigned long)rising + ((unsigned long)OVF_counter << 16);//вычисл¤ем длительность импульса
	}   
    if(t>25000)
      {
        t=25000;
      }
      
      
счётчик переполнений таймера

Код: Выделить всё

/ Timer1 overflow interrupt service routine
 interrupt [TIM1_OVF] void timer1_ovf_isr(void)
 {
  // Place your code here
  OVF_counter++; // Увеличиваем счетчик переполнений 
 }
вот так выглядит схема подключения к форсунке

Изображение


Посоветуйте куда копать.. а то уже совсем руки опускаются..
Реклама
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Сообщение otest »

Борись с помехами.
Реклама
Открыл глаза
Сообщения: 79
Зарегистрирован: Чт мар 01, 2012 18:30:00
Откуда: ВМ

Сообщение ukr823f »

otest писал(а):Борись с помехами.
Каким образом ещё? У меня перед входом стоит конденсатор 100ufx25V и керамика 100Nи после стабилизатора 47uFх16V и 100N керамика. Может наводки от зажигания? просто рядом с форсунками идут ВВ провода. Так что, провод к форсунке дедать экранированным и подключаться подальше от мотора, где нибудь рядом с самим ЭБУ?

Изображение

и вот в эту схему что ещё можно добавить для снижения помех?
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Сообщение otest »

перед входом стоит конденсатор 100ufx25V
На схеме его не видно. И как пропускает импульсы в 2 мсек ?
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 6331
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Сообщение Jack_A »

Чтой-то не понял ( я - не автомобилист ) : в машине '+' на корпусе а '-' - в цепи ?
Попробовать через оптрон, питание индикатора отвязать от машины, автономное.
Изображение
Реклама
Прорезались зубы
Аватара пользователя
Сообщения: 223
Зарегистрирован: Вт фев 02, 2010 21:25:18
Откуда: Н.Новгород

Сообщение bifurkas »

ukr823f писал(а):
otest писал(а):Борись с помехами.
Каким образом ещё? У меня перед входом стоит конденсатор 100ufx25V и керамика 100Nи после стабилизатора 47uFх16V и 100N керамика. Может наводки от зажигания? просто рядом с форсунками идут ВВ провода. Так что, провод к форсунке дедать экранированным и подключаться подальше от мотора, где нибудь рядом с самим ЭБУ?

Изображение

и вот в эту схему что ещё можно добавить для снижения помех?
По-ходу, у нас одинаковая проблема: http://radiokot.ru/forum/viewtopic.php?f=2&t=123437
В Вашем случае проще: отключите катушку зажигания и покрутите стартером (свечи лучше выкрутить, что-бы легче стартеру с аккумулятором было). Если проблема исчезла - значит она крылась в помехах, не исчезла - в чём-то другом.
Реклама
Открыл глаза
Сообщения: 79
Зарегистрирован: Чт мар 01, 2012 18:30:00
Откуда: ВМ

Сообщение ukr823f »

otest писал(а):
перед входом стоит конденсатор 100ufx25V
На схеме его не видно. И как пропускает импульсы в 2 мсек ?
на схеме указан преобразователь сигнала с форсунки. А так, на входе стоит супрессор 18В, далее диод 4007, далее кондекнсатор 100uFх25В, конденсатор 100N (керамика), далее идёт стабилизатор напряжения 78M05 в корпусе DPAK. , далее опять керамика 100N и электролит 47uFx16В
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Сообщение otest »

Нарисуй уже наконец. Здесь не форум литераторов. Подумай ещё раз как 100мкф. отнесутся к 2мсек.
Открыл глаза
Сообщения: 79
Зарегистрирован: Чт мар 01, 2012 18:30:00
Откуда: ВМ

Сообщение ukr823f »

otest писал(а):Нарисуй уже наконец. Здесь не форум литераторов. Подумай ещё раз как 100мкф. отнесутся к 2мсек.

Вот схема. Тут уже полная схема питающей части и преобразователя сигнала от форсуки к микроконтроллеру.
Изображение
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Сообщение otest »

Это не схема. Она что минусом питается? Тогда стабилитрон не правильно стоит. Импульсы с форсунки тоже минусовые ?и т.д. :shock: :shock: :shock:
Открыл глаза
Сообщения: 79
Зарегистрирован: Чт мар 01, 2012 18:30:00
Откуда: ВМ

Сообщение ukr823f »

otest писал(а):Это не схема. Она что минусом питается? Тогда стабилитрон не правильно стоит. Импульсы с форсунки тоже минусовые ?и т.д. :shock: :shock: :shock:

Форсунка одним контактом подключена к постоянным +12в, а на второй контакт для срабатывания подаётся масса. Эта масса , у меня инвертируется и получается положительный импульс +5в (который формируется стабилитроном и резистором R4

И почему схема минусом питается. Источник+12В на схеме указан.
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Сообщение otest »

Ааааааааа это у тебя там источник. А почему транзистор PNP так включен ?
Открыл глаза
Сообщения: 79
Зарегистрирован: Чт мар 01, 2012 18:30:00
Откуда: ВМ

Сообщение ukr823f »

otest писал(а):Ааааааааа это у тебя там источник. А почему транзистор PNP так включен ?
Ну какую схему в интернете нашёл рабочую, такую и сделал. При импульсе массы на форсунку, PNP транзистор открывается и на Эммитере появляется сигнал +12В. Это так называемое инвертирующее подключение вроде.

Вот так выглядит сигнал в протеусе. Нижний синий - это импульс от форсунки, жёлтый это сигнал на входе в МК.
Изображение
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Сообщение otest »

Это не на осцилографе , а в протеусе выглядит как тебе кажется. Нарисуй управление форсункой. У PNP минус на коллекторе должен быть.
Открыл глаза
Сообщения: 79
Зарегистрирован: Чт мар 01, 2012 18:30:00
Откуда: ВМ

Сообщение ukr823f »

Вот настоящим осциллографом снятый сигнал на холостом ходу. Видно открытие форсы, закрытие, и всплеск самоиндукции.
Изображение
Прорезались зубы
Аватара пользователя
Сообщения: 223
Зарегистрирован: Вт фев 02, 2010 21:25:18
Откуда: Н.Новгород

Сообщение bifurkas »

otest писал(а):Это не на осцилографе , а в протеусе выглядит как тебе кажется. Нарисуй управление форсункой. У PNP минус на коллекторе должен быть.
Действительно, транзистор-то не правильно включен.
Открыл глаза
Сообщения: 79
Зарегистрирован: Чт мар 01, 2012 18:30:00
Откуда: ВМ

Сообщение ukr823f »

bifurkas писал(а):
otest писал(а):Это не на осцилографе , а в протеусе выглядит как тебе кажется. Нарисуй управление форсункой. У PNP минус на коллекторе должен быть.
Действительно, транзистор-то не правильно включен.
Блин...точно нарисовал неверно. Но на схеме всё верно, эммитером на +12В, с коллектора снимаем сигнал.
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Сообщение otest »

Вот так собери.
Последний раз редактировалось otest Сб ноя 21, 2015 21:54:50, всего редактировалось 1 раз.
Открыл глаза
Сообщения: 79
Зарегистрирован: Чт мар 01, 2012 18:30:00
Откуда: ВМ

Сообщение ukr823f »

otest писал(а):Вот так собери.
Ок. Пару вопросов. Диоды d1 d2 - можно какие использовать? 1n4148, или можно прямо сборку типа BAV99 поставить? и NPN транзистор - BC817 подойдёт?

И ещё а по моей схеме - где проблема, она неработоспособна в отличии от той что предлагаете? или она больше помехам подвержена?
Друг Кота
Сообщения: 7774
Зарегистрирован: Сб янв 29, 2011 00:28:48

Сообщение Enman »

если есть осцил, то что мешало посмотреть импульс на выходе транзистора?
Потом, на измерение какого импульса рассчитана программа измерения - длительность 1 или 0 на входе процессора?...тогда и формирователь надо соответствующий...
otest ,С каких это пор эмит повт переворачивать импульс стал ???????? Да и диоды тогда надо стабилитроном заменять....вариантов пока много, раз ТС не может внятно формулировать чего ему надо....
Последний раз редактировалось Enman Сб ноя 21, 2015 22:00:46, всего редактировалось 1 раз.
Ответить

Вернуться в «Цифровая техника»