donec

Инструменты Для Разработки И Испытания Систем Зажигания

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

Sergey_L66    99

phаnt0m

Желтый сигнал правильный, именно так он и выглядит после компаратора.

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

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


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

phаnt0m

Желтый сигнал правильный, именно так он и выглядит после компаратора.

Естественно я подключал прямо на вход дпкв вот по этому и не выходит.

Да и начальная частота слишком высокая больше 1000.

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


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

С начальной частотой разобрался, CKDIV8 по описанию не программируется.

В имитаторе он запрограммирован.

Согласую с блоком через трансформатор.

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

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


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

phаnt0m

А может просто амплитуда мала и схема входной части другая, сейчас в мозгах ставят TA8025F.

Картинки из ПРОТа это хорошо, но не мешало бы посмотреть выход с транса в реале.

Кстати, а попробуйте поменять полярность сигнала подаваемого на вход ДПКВ.

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

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


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

phаnt0m

А может просто амплитуда мала и схема входной части другая, сейчас в мозгах ставят TA8025F.

Картинки из ПРОТа это хорошо, но не мешало бы посмотреть выход с транса в реале.

Кстати, а попробуйте поменять полярность сигнала подаваемого на вход ДПКВ.

Я проверяю Январи 5.1 там стоит LM1815.

Амплитуда особой роли не играет, вход индуктивный работает с малыми амплитудами 300милливольт достаточно.

Поставил трансформатор и всё отлично заработало :)

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


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

Всем привет!

Перенёс обсуждение схемы из №18 отсюда в этот раздел.

"Собрал" схемку в протеусе. Прошивка Тиньки13 из №18, подключение - согласно схемы. Скорость 38400, вывод на терминал протеуса, для начала. В качестве подопытного - схема и прошивка из "Продолжения". Настройки терминала такие:

post-71758-0-74825500-1469903850.jpg

Меняю параметр "полярность приёма/передачи" "с инверсией/без инверсии" - результат один и тот же. Терминал выводит вот такую последовательность:

post-71758-0-43561800-1469906253_thumb.jpg

Что я делаю не так?

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

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


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

Для протеуса схема нарисована здесь, только для устройства в железе - на СОМ порт компа нужно сигнал инвертировать.

post-135787-0-62249500-1469982017.png

Я здесь еще менял

post-135787-0-10362200-1469982329.png

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


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

Для железа будет стоять МАХ232.

Протеусная моделька почти как у тебя. На осцилле видно, что из Т13 идёт поток данных. Сделал настройки анимации,как у тебя на второй фотке - ничего не изменилось.

Заметил особенность - пакет выдаваемых данных из тиньки у меня очень длинный - порядка 13мсек (для заявленной скорости передачи как бы многовасто). Какие фьюзы нужно выставить в протеусе и на какой частоте должна работать Тини13? Похоже, тут цитадель зла.

Для практической реализации какие фьюзы нужно выставить при программировании? С незнанки изменил "заводские" фьюзы - проц пользовал под другие цели. Сейчас хочу попробовать его в измерителе УОЗ.

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

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


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

Пасибки.

Заработало. Длительность пакета сократилась почти до 1,5мсек. В "терминале" выставил инверсию входного сигнала. Завтра доделаю в железе - осталось процик прошить и вставить.

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


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

Версия 2.

Схема для изготовления

post-135787-0-49937400-1470070500_thumb.png

Схема для протеуса

post-135787-0-58275600-1470000929_thumb.png

Продолжение следует....

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

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


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

Схема уже собрана. Прошивку с ДАДом хочу. :lol2:

Макет универсальный. Питается от своего стаба на 5В (вход 12В). На сигнальных входах триггеры-формирователи на 4093 (с возможностью инверсии сигнала из ФУОЗ), на выходе в ПК - ADM233L. Две панельки под контролики: Тини13 (схема постом выше) или ПИК16Ф628 (пост №24).

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

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


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

Не удержался, да и времени немного появилось. Прошил тиньку13 (хекс из №18), запустил на макете. Но так и не смог подружиться с фьюзами. Программатор "Тритон". После некоторого шаманства добился длительности инфо-посылки 1,5мсек из контролика на живом макете. Но в лог выводится такая фигня, что стыдно показывать. И отрицательные числа, и числа с 5...6-ю нулями. В общем, бред не поддающийся осмыслению.

Чтоб скоротать время потренируюсь на схеме из №24.

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

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


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

Попробуй - это для твоей схемы.

Фьюзы как в версии 2.

Tah.zip

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


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

ОК, завтра попробую - все причиндалы на работе.

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


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

Всем привет!

Подключил согласно схемы из №36, выход ДАД - на пин 3 тиньки, фузы в программаторе - из того же поста. Прошивка из №40.

Запустил на макете и разочаровался. Может лыжи, может я, но что-то "не едет". В логере отрицательных чисел уже нет, но положительные числа так же запредельные. Контролик запитан своим питанием от отдельного аккума 12В со стабом на 5В. Вход сброса подтянут резистором 1,5ком к +5В (на всяк случай). Контролик по питанию шунтирован 0,1мкф. На выходе (посмотрел прогой "Ком-порт тул 4.0") можно рассмотреть содержимое потока. При постоянстве оборотов ФУОЗа в посылке (как я понял) содержится 9 байт. Первые два FF - синхро, определяют начало пакета. Третий байт циклически (каждые 5 посылок) увеличивается на 1. Байты 4...8 изменяются безсистемно. Байт 9 - измеренное напряжение ДАД в формате 0...FF. Привожу скрин записи "КПТ-4":

post-71758-0-89030400-1470144340_thumb.png

Внизу видно настройки порта. 9-й байт на скрине тоже вроде как меняется хаотично. Это отпал провод от пина 3 тиньки на замер ДАД. После его припайки содержимое 9-го байта стало вменяемым, согласно текущему напряжению ДАД. Менял напряжение - содержимое байта пропорционально меняется.

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

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


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

Привет!

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

По тем данным, что выложены, можно сделать выводы, что фронты на входе и выходе (спад, нарастание) не соответствуют требуемым, или требуется подстройка частоты МК

1 данные - 24 битный счетчик (его показание в момент спада на входе ФУОЗ)

2 данные - 24 битный счетчик (его показание в момент нарастающего фронта на выходе ФУЗ), и оно почему-то меньше чем на входе, частота счетчика 1,2МГц.

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


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

Вот, сразу после подачи питания на ФУОЗ и "измеритель":

post-71758-0-41378800-1470145779_thumb.png

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


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

Вечером выложу файлы с подстройкой частоты МК, а ты проверь на всякий случай соответствие фронтов.

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


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

1 данные - 24 битный счетчик (его показание в момент спада на входе ФУОЗ)

2 данные - 24 битный счетчик (его показание в момент нарастающего фронта на выходе ФУЗ), и оно почему-то меньше чем на входе

Так, логически, показания 2-го счётчика и должны быть меньше, ведь работает опережение. А не попутаны входы тиньки - опорный (вход ФУОЗ) и выход ФУОЗ? Посмотрел у себя - как по твоей схеме.

Вход ФУОЗ (опорный): 60грд - низкий уровень, 120грд - высокий уровень. По его спаду - искра (ВМТ). Сигнал подан на пин 6 контролика.

Выход ФУОЗ - сигнал с опережением, 60грд - высокий уровень, 120грд - низкий уровень. По нарастанию - искра. Сигнал подан на пин 2 контролика.

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

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


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

Ну да, это я тормознул, в первом выложеном окне все в норме за исключением 2 строчки (скорее всего частота МК)

Во втором выложеном окне вообще бред какой-то.

Файлы с подстройкой частоты должны помочь.

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


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

Вот необрезанный скрин 2-лучевика:

post-71758-0-60549500-1470148150_thumb.png

Красный - вход ФУОЗ (пин 6 тиньки), синий - выход с контролика ФУОЗ (пин 2 тиньки), до выходного транзистора.

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

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


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

В подпрограмме вывода в СОМ плавала частота, сейчас соответствует на 100%, но на всякий случай выложил и несколько прошивок в которых изменена калибровка встроенного генератора.

Debug.zip

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


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

Всем привет!

Вячеслав (donec), позапускал прошивки по очереди. Радикально мало что изменилось. Выкладываю записанные логи, не все - два "крайних" и "средний", записанных на прошивках из архива "дебаг":

log_debug.zip

Старался записи делать одинаковой длительности, входная частота постоянная для всех логов, ДАД не трогал.

Я тут другое подумал. Дело не в частотах передачи данных. Вот что бросилось в глаза на записях:

post-71758-0-60087700-1470231336_thumb.gif

Такое впечатление, что идёт "накопление" длительности периода - равномерный рост самого старшего байта 24-битного числа.

С другой стороны, я не очень в курсе как построена настройка вывода ЮАРТ в АВРках, но в ПИКах скорость передачи задаётся числом в определённой ячейке. И скорость передачи/приёма остаётся неизменной при постоянстве тактовой частоты процика. Разве что в ходе выполнения программы изменить в.у. коэффициент.

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас


  • Похожие публикации

    • Автор: LukaS_St
      Всем привет. Столкнулся с такой проблемой: Пишу программу для устройства мониторинга оборотов двух валов используя датчик холла. Настроил прерывания,  перевод в RPM, все проверил, в .порт отправляются верные значения, и после настройки индикации столкнулся с проблемой неадекватного поведения переменных считающих millis, а после и индикации. В Arduino я не спец, Гляньте на код, может чем помогите. Заранее благодарен.
      #include <EEPROM.h> #define CLOCK 13 //SH_CP #define DATA 11  //DS #define LATCH 10  //ST_CP int numbers[5]; boolean ee = 0; int mh; int hh; int et_mah; int et_shl; int ot_mah; int ot_shl; volatile  int rpm_mah = 0; volatile  int rpm_shl = 0;  int rpmmah_count = 0;  int rpmshl_count = 0; unsigned long lastmillis_mah = 0; unsigned long lastmillis_shl = 0; unsigned long lastmillis_show = 0; unsigned char number[] = {   0b01111110, //0   0b00110000, //1   0b01101101, //2   0b01111001, //3   0b00110011, //4   0b01011011, //5   0b01011111, //6   0b01110000, //7   0b01111111, //8   0b01111011, //9   0b00000001, //-   0b00000000  //тушим индикатор }; void setup() {   Serial.begin(9600);   attachInterrupt(0, rpm_mahovik, FALLING);   attachInterrupt(1, rpm_shluz, FALLING);   pinMode(CLOCK, OUTPUT);   pinMode(DATA, OUTPUT);   pinMode(LATCH, OUTPUT); } void rpm_mahovik() { /* this code will be executed every time the interrupt 0 (pin2) gets low.*/   rpmmah_count++; } void rpm_shluz() { /* this code will be executed every time the interrupt 0 (pin2) gets low.*/   rpmshl_count++; } // чтение //int EEPROM_int_read(int addr) { //  byte raw[2];  // for (byte i = 0; i < 2; i++) raw[i] = EEPROM.read(addr + i);  // int &num = (int&)raw; //  return num; //} // запись //void EEPROM_int_write(int addr, int num) { //  byte raw[2];  // (int&)raw = num;  // for (byte i = 0; i < 2; i++) EEPROM.write(addr + i, raw[i]); //} void show () {   int x;   for (x = 5; x >= 0; x--) {    Serial.print("x= "); Serial.println(x);     //включаем LATCH (Начинаем общение)     digitalWrite(LATCH, LOW);     shiftOut(DATA, CLOCK, LSBFIRST, number[numbers[x]]);     //выключаем LATCH     digitalWrite(LATCH, HIGH);     //отключаем LATCH (чтобы регистр не ждал данных)     digitalWrite(LATCH, HIGH);   } } //void ee_write () {  // EEPROM_int_write(0, mh); //  EEPROM_int_write(2, hh); //  EEPROM_int_write(4, et_mah); //  EEPROM_int_write(6, et_shl); //  EEPROM_int_write(8, ot_mah); //  EEPROM_int_write(10, ot_shl); //} void loop() { //  if ((millis() <= 100) & (ee == 0)) {   //  mh = EEPROM_int_read(0);  //   hh = EEPROM_int_read(2); //    et_mah = EEPROM_int_read(4);  //   et_shl = EEPROM_int_read(6);  //   ot_mah = EEPROM_int_read(8);  //   ot_shl = EEPROM_int_read(10);  //   ee = 1;  // }   if (millis() - lastmillis_mah == 1000) {     detachInterrupt(0);     rpm_mah = rpmmah_count * 60;     rpmmah_count = 0;     lastmillis_mah = millis();     attachInterrupt(0, rpm_mahovik, FALLING);   }   if (millis() - lastmillis_shl == 5000) {     detachInterrupt(1);     rpm_shl = rpmshl_count * 12;     rpmshl_count = 0;     lastmillis_shl = millis();     attachInterrupt(1, rpm_shluz, FALLING);   }   if (millis() - lastmillis_show == 1000) {     numbers[0] = rpm_mah / 1000;     numbers[1] = (rpm_mah % 1000) / 100;     numbers[2] = ((rpm_mah % 1000) % 100) / 10;     numbers[3] = ((rpm_mah % 1000) % 100) % 10;     numbers[4] = rpm_shl / 10;     numbers[5] = rpm_shl % 10;     lastmillis_show = millis();   show(); Serial.print("RPM mah= "); Serial.println (rpm_mah);  Serial.print("RPM shl= "); Serial.println (rpm_shl);   Serial.print("Show millis= "); Serial.println(lastmillis_show); Serial.print("Show mah= "); Serial.println(lastmillis_mah); Serial.print("Show shl= "); Serial.println(lastmillis_shl);   } }
    • Автор: Курдль
      Привет!
      Прошу доподлинно разъяснить мне, как долго биполярные датчики Холла (ДХ)  могут хранить своё состояние без источника питания.
      Подробнее: биполярный датчик переходит из состояния в состояние под воздействием строго определенного магнитного поля, например, в "0" при  прохождение рядом с полюсом "N" и в "1" - рядом с полюсом "S".
      Это известный факт. Но лично для меня было неожиданностью, что они сохраняют это состояние и после выключения источника питания 
      Я думал, что отключил фазу - датчик обнулился. А вот фиг!
      Теперь не знаю, как жЫть дальше! :/
      Т.е. можно ли полагаться на то, что без внешнего воздействия состояние ДХ будет оставаться таким, каким оно было в момент последнего прохождения через магнитное поле?
      Существует ли какое-то "гарантированное время сохранения состояния"?
      Заранее благодарен всем, кто согласиться ткнуть меня носом в моё невежество! 
    • Автор: shtin92
      Ребята подскажите где можно найти некалиброванный датчик холла (ДХК-0.5А)? может где в старой технике использовался гдето выпаять можно?
    • Автор: shtin92
      Ребят доброго времени суток! Подскажите пожалуйста влияет ли площадь датчика холла на чувствительность и получаемое выходное напряжение на вольтметре?Подключаю по такой схеме.Заранее спасибо за помощь!
       
       
       

    • Автор: shtin92
      Добрый день дорогие форумчане! подскажите пожалуйста реально ли сделать датчик холла HALL IC SS495A (марк. 95A) 3pin более чувствительным? или можно датчик собрать самому и сделать его более чувствительным?