Диагностика планшет, блютуз, андроид. Настройки, обсуждение

Re: Диагностика планшет, блютуз, андроид. Настройки, обсужде

Сообщение ender11 » 24 янв 2019 01:35

pev писал(а):Не правильно понял мой вопрос, я не просил что либо делать для 3.8, это все сделано давно. Я просил показать как реализовал БТ для 3.1? ибо у меня не получилось из за отсутствия железа (3.1) А была задумка сделать БТ для всех двигателей наших (2.3, 3.8 и 3.1)

а, ну ок, не слежу. http://www.techedge.com.au/vehicle/aldl160/160serial.htm - это читал?
Изображение
- форма сигнала aldl на 3.1
соотв. надо уменьшить ширину импульса, которым кодируется "1", чтобы uart его принял. там ведь, собственно, что: ширина импульса больше, чем ширина байта на скорости 2400 (вроде бы), и возникает "framing error" из-за того, что Stop bit != 1. причём, ftdi232 такое пропускает, а uart на bt модуле не пропускает.
вот код:
Код: Выделить всё
#define SETBIT(ADDRESS,BIT) (ADDRESS |= (1<<BIT))
#define CLEARBIT(ADDRESS,BIT) (ADDRESS &= ~(1<<BIT))
#define CHECKBIT(ADDRESS,BIT) (ADDRESS & (1<<BIT))


#include <avr/io.h>
#include <avr/signal.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include <avr/wdt.h>


#include <util/delay.h>

#define OUT      PB0

ISR(INT0_vect){

if CHECKBIT(PINB,PB2){
// rising edge
   OCR0A = 20; // 0xfe 11100000
   TCCR0A = ( 1 << COM0A1 | 1 << COM0A0 ); //set oc0a on compare match
   TCCR0B = ( 1 << FOC0A );


}else{
// falling edge

   TCNT0 = 0;
   OCR0A = 100; // 0x80 10000000

   TCCR0A = ( 1 << COM0A1 | 0 << COM0A0 ); //clear oc0a on compare match
   TCCR0B = ( 1 << FOC0A );
   TCCR0A = ( 1 << COM0A1 | 1 << COM0A0 ); //set oc0a on compare match
   TCCR0B = ( 1 << CS01 | 1 << CS00);     //8M/64=125kHz, T=8uS


}



}

void main () {

   DDRB |= (1 << OUT);
   DDRB |= (0 << PB2);

   PORTB &= ~(1 << OUT);

   TCCR0A = ( 1 << COM0A1 | 1 << COM0A0 );
   TCCR0B = 0;
   TCNT0 = 0;
//   OCR0A = 20; //- 0xFE 11111110
//   OCR0A = 70; //- 0xE0 11100000
   OCR0A = 100; // 0x80 10000000

   MCUCR = ( 1 << ISC00);
   GIMSK = (1 << INT0);

   sei();

   while (1) {   

   }

   
}


вход на int0, выход - на OC0A. частота - 8MHz от внутреннего RC.
Cracked by Bill Gilbert
Аватара пользователя
ender11
 
Сообщения: 439
Зарегистрирован: 04 ноя 2015 14:19
Авто:: Chevrolet Lumina APV 3,1
Год выпуска:: 1991
Место жительства: Красноярск

Re: Диагностика планшет, блютуз, андроид. Настройки, обсужде

Сообщение pev » 27 янв 2019 13:14

Сам на СИ программируешь? или просил кого? Ох как нужна была помощь в этом деле...
ender11 писал(а):а, ну ок, не слежу. http://www.techedge.com.au/vehicle/aldl160/160serial.htm - это читал?

Да это все читал но я просто электрик, и как это все запрограммировать ума не хватает, да и с английским только через переводчик. Говорила мама учи иняз сынок... :hahaha:
Я программированием то начал заниматься, когда Фрол про ALDLdroid рассказал, как он его подключил. Нашел на просторах инета в америке программу для чтения GM протокола на скорости 8192 бод, и начал разбираться и пытаться запустить это дело. Получилось на 8192 достаточно быстро все запустить. Подумал что до кучи можно попробовать и 160 бод реализовать. Но так как 3.1 у меня нет, то все делали с Иваном дистанционно. Я делал блок, программировал и отправлял ему, он проверял и говорил результат. Короче ип@лись долго. В итоге из 5-7 вариантов один у нас заработал, причем стабильно начинал работать при подключении, не требовалось ни каких манипуляций для синхронизации. Но в конце концов этот экземпляр "подпалили" и больше повторить не смогли. Видимо реализация самой платы ардуино про мини какую то вносила коррективу, (платы были разные по конструктиву).
Находил скетчи для 160 бод подключенные на прерывания, но так и не смог заставить работать БТ на 3.1, да и утомила пересылка туда сюда.
ender11 писал(а):соотв. надо уменьшить ширину импульса, которым кодируется "1", чтобы uart его принял.

Это я уже понял, посмотрел код. Если честно то как баран на новые ворота... :hahaha: Половину не "вкуриваю", мне для понимания необходимо как минимум все перевести на ардуиновский формат, а сделать это на все 100% так и не смог.
Вот код для Ардуино про мини 328/16Мн/5V На данном сайте его больше нет, после того как я пытался связаться с автором, он все связанное с этим почистил... на вопросы не ответил.

Код: Выделить всё
// ALDL_BlueTooth_Reapeater 8192 baud
//
// Mike Waldron 2013
// http://www.xm381.com/xm381/ALDL.html has ALDL info and documentation
//
// This Arduino sketch will recieve, via bluetooth, ALDL requests (8192 baud only) from programs like ALDLdroid or TunerPro
// and transmit the responeses from the ECU back.


// ***** Hardware Config *****

//Status LEDs
#define redled 4
#define greenled 3
#define blueled 2

//HC05 bluetooth transceiver (5, 2, 4, 3) key, state, rx, tx
#define Key 8
#define RxD 7
#define TxD 6
#define State 5 //PIO11 - reset

#include <SoftwareSerial.h>
SoftwareSerial BluetoothSerial(RxD, TxD); // RX, TX

//ALDL
#define ALDLSerial Serial


// ***** Program Setup *****
void setup() {
  ALDLSerial.begin(8192);
  BluetoothSerial.begin(9600);
 
// ***** setup BlueTooth *****
   pinMode(State, INPUT);
   pinMode(Key, INPUT);
 
// ***** LEDs *****
  pinMode(redled, OUTPUT);
  pinMode(greenled, OUTPUT);
  pinMode(blueled, OUTPUT);

  LedColor(1);
  delay(1000);

  LedColor(2);
  delay(1000);

  LedColor(3);
  delay(1000);

}

// ***** Main Loop *****
void loop() {

  //paired
  if (digitalRead(State) == HIGH) {

    LedColor(3);
{
    if (BluetoothSerial.available()) { // retrieve ALDL request data from PC in buffer, if any

      LedColor(1);

      while(BluetoothSerial.available()){ // empty serial buffer
        ALDLSerial.write(BluetoothSerial.read());
      }
    }
 
    if (ALDLSerial.available()) { // retrieve ALDL response data from ECU in buffer, if any

      LedColor(2);

      while(ALDLSerial.available()){ // empty serial buffer
        BluetoothSerial.write (ALDLSerial.read());
      }
    }
  }
  }
  //not paired
  else{ 
    LedColor(2);
    delay(10);
  }
}

// ***** LED *****
void LedColor(byte color){

  switch (color){

  //Off
  case 0:
  digitalWrite(redled, LOW);
  digitalWrite(greenled, LOW);
  digitalWrite(blueled, LOW);

  //Red
  case 1:
  digitalWrite(redled, HIGH);
  digitalWrite(greenled, LOW);
  digitalWrite(blueled, LOW);
  return;
 
  //Green
  case 2:
  digitalWrite(redled, LOW);
  digitalWrite(greenled, HIGH);
  digitalWrite(blueled, LOW);
  return;
 
  //Blue
  case 3:
  digitalWrite(redled, LOW);
  digitalWrite(greenled, LOW);
  digitalWrite(blueled, HIGH);
  return; 
  }
}

Возникает логичный вопрос как твой кусок для 160 бод запихнуть в этот для 8192. По аналогии передавать 160 у меня не получилось (я не утверждаю что нельзя (один раз то все вышло), возможно нужно только указать на стоп бит, тем самым организовать "синхронизацию") В сущ. схеме выводы работающие с прерываниями заняты под трехцветный светодиод (его можно выкинуть, или передвинуть на другие выводы. У меня сейчас разведено все по другому, это оригинал с американского сайта).
Если можешь помочь будем рады, ибо у нас появится свой модуль ALDL-ВТ для всех наших двигателей...
Никогда не езди быстрее, чем может летать твой ангел-хранитель.
pev
 
Сообщения: 1248
Изображения: 8
Зарегистрирован: 26 июн 2008 11:32
Откуда: г. Рязань
Авто:: Chevrolet Lumina APV 3,8
Год выпуска:: 1995
Место жительства: Рязань

Re: Диагностика планшет, блютуз, андроид. Настройки, обсужде

Сообщение ender11 » 27 янв 2019 23:25

надо делать на esp32. тогда, в перспективе, можно будет отказаться от aldldroid.
по деньгам это будет как arduino + hc bluetooth.
могу тебе прокомментировать код.
и ещё вопрос в личку отправлю.
Cracked by Bill Gilbert
Аватара пользователя
ender11
 
Сообщения: 439
Зарегистрирован: 04 ноя 2015 14:19
Авто:: Chevrolet Lumina APV 3,1
Год выпуска:: 1991
Место жительства: Красноярск

Re: Диагностика планшет, блютуз, андроид. Настройки, обсужде

Сообщение ender11 » 27 янв 2019 23:56


//инициализация. pin int0 настраивается как вход, выход OC0A - как выход
DDRB |= (1 << OUT);
DDRB |= (0 << PB2);

PORTB &= ~(1 << OUT);

TCCR0A = ( 1 << COM0A1 | 1 << COM0A0 ); // таймер запускается в режиме счёта от 0 до 255, при достижении таймером значения, указанного в OCR0A,
//выход OC0A перейдёт в состояние "1"
TCCR0B = 0;
TCNT0 = 0;
// OCR0A = 20; //- 0xFE 11111110 // импульс шириной 20 тиков таймера uart принимает как байт 0xFE (указан ещё и в двоичном виде)
// OCR0A = 70; //- 0xE0 11100000 // ---//---
OCR0A = 100; // 0x80 10000000 // у нас будет импульс 100 тиков.

MCUCR = ( 1 << ISC00); // прерывание int0 разрешается при любой смене сигнала на входе
GIMSK = (1 << INT0); // разрешается прерывание int0

sei(); // разрешаем прерывания

while (1) { // всё, пустой цикл. можно было бы воткнуть паузу и сброс wdt, но руки не дошли.

}



ISR(INT0_vect){ // вызывается процедура при прерывании int0

if CHECKBIT(PINB,PB2){ // поскольку процедура вызывается как при переходе от 0 к 1, так и от 1 к 0, то нам надо
// проверить, что там на входе
// rising edge // на входе "1", т.е. это конец импульса ALDL
OCR0A = 20; // 0xfe 11111110 // ставим некоторое небольшое значение, это необязательно
TCCR0A = ( 1 << COM0A1 | 1 << COM0A0 ); // включить oc0a при совпадении таймера и регистра 0cr0a
TCCR0B = ( 1 << FOC0A ); // устанавливаем бит принудительного срабатывания сравнения на oc0a
// в итоге, при поступлении на вход "int0" лог.1 мы выставляем выход OC0A в лог.1 средствами таймера, до кучи, таймер останавливается записью "00" в делители.

}else{
// falling edge
// если на входе "0", то это начало импульса ALDL
TCNT0 = 0; // обнуляем таймер
OCR0A = 100; // 0x80 10000000 // устанавливаем регистр сравнения

TCCR0A = ( 1 << COM0A1 | 0 << COM0A0 ); //выставить oc0a в "0" при сравнении
TCCR0B = ( 1 << FOC0A ); // форсируем действие при сравнении записью бита FOC0A
// тут мы просто выставили на OC0A "0", когда на INT0 пришёл "0"
TCCR0A = ( 1 << COM0A1 | 1 << COM0A0 ); //выставить OC0A в "1" при сравнении
TCCR0B = ( 1 << CS01 | 1 << CS00); // установкой делителей (в данном случае =64) мы запускаем таймер0.
// с частотой и периодом - 8M/64=125kHz, T=8uS
// теперь на выходе OC0A будет импульс 800мкс, если на int0 ничего не придёт.
// если придёт - импульс будет "обрезан" в первой части данной процедуры прерывания.

}



}

Cracked by Bill Gilbert
Аватара пользователя
ender11
 
Сообщения: 439
Зарегистрирован: 04 ноя 2015 14:19
Авто:: Chevrolet Lumina APV 3,1
Год выпуска:: 1991
Место жительства: Красноярск

Re: Диагностика планшет, блютуз, андроид. Настройки, обсужде

Сообщение jekagm » 03 фев 2019 05:27

ender11 писал(а):на 3.8 используется скорость 8192, и я за это даже не возьмусь по причине того, что у меня такого железа (3.8) нету. так что - через шнурочек, пожалуйста.
у меня есть
jekagm
 
Сообщения: 79
Зарегистрирован: 16 май 2018 03:35
Авто:: Oldsmobile Silhouette 3,8
Год выпуска:: 1993
Место жительства: Красноярск

Re: Диагностика планшет, блютуз, андроид. Настройки, обсужде

Сообщение ender11 » 03 фев 2019 05:42

и ты хочешь bluetooth?
вопрос, главным образом, за разъёмом gm-12
Cracked by Bill Gilbert
Аватара пользователя
ender11
 
Сообщения: 439
Зарегистрирован: 04 ноя 2015 14:19
Авто:: Chevrolet Lumina APV 3,1
Год выпуска:: 1991
Место жительства: Красноярск

Re: Диагностика планшет, блютуз, андроид. Настройки, обсужде

Сообщение jekagm » 03 фев 2019 06:23

Да мне без разницы что. Обидно что делаю диагностику на все что движется по Красноярску,а себе сделать не могу.
Хотя в наборе разъемов от карман-скана,мой разъем есть. Но сканер не знает мой авто.
jekagm
 
Сообщения: 79
Зарегистрирован: 16 май 2018 03:35
Авто:: Oldsmobile Silhouette 3,8
Год выпуска:: 1993
Место жительства: Красноярск

Re: Диагностика планшет, блютуз, андроид. Настройки, обсужде

Сообщение Vadomir » 04 фев 2019 21:30

наш разьем 1 в 1 с первым ODB-II потому и не знает.
https://ru.aliexpress.com/item/Tech2-G- ... 2e0eLq9poa
я потихонечьку деньгу вот на это коплю
Vadomir
 
Сообщения: 951
Изображения: 1
Зарегистрирован: 25 фев 2017 15:10
Авто:: Chevrolet Lumina APV 3,8
Год выпуска:: 1993
Место жительства: Таганрог

Re: Диагностика планшет, блютуз, андроид. Настройки, обсужде

Сообщение docent » 18 авг 2019 14:37

На 3.8 92 год заработал файл А163 с задержкой 15 мс.
Аватара пользователя
docent
Команда клуба
Команда клуба
 
Сообщения: 2200
Изображения: 4
Зарегистрирован: 21 июн 2008 02:42
Откуда: москва. новогиреево
Авто:: Pontiac Trans Sport 3,8
Год выпуска:: 1994
Место жительства: москва

Re: Диагностика планшет, блютуз, андроид. Настройки, обсужде

Сообщение docent » 19 авг 2019 00:48

Изображение
Вот такая картина. Хаотично проявляется ... Ниже более подробно. Мгновенная просадка напряжения до нуля, все датчики соответственно показывают день рождения Чингисхана :stars: .
Авто подтраивает, но сопоставить момент трудно, надо смотреть через тюнерпро,там графики пишет в реальном времени. У кого нибудь будут какие либо идеи?
Изображение

Изображение
Последний раз редактировалось docent 19 авг 2019 08:37, всего редактировалось 1 раз.
Аватара пользователя
docent
Команда клуба
Команда клуба
 
Сообщения: 2200
Изображения: 4
Зарегистрирован: 21 июн 2008 02:42
Откуда: москва. новогиреево
Авто:: Pontiac Trans Sport 3,8
Год выпуска:: 1994
Место жительства: москва

Re: Диагностика планшет, блютуз, андроид. Настройки, обсужде

Сообщение docent » 19 авг 2019 06:11

Да, забыл добавить, показания МАФ постоянно красные. Меняются примерно от 5 и до 20 , в зависимости от оборотов . в каком диапазоне должны быть ?
В движении графиков пока нет.
Последний раз редактировалось docent 19 авг 2019 08:39, всего редактировалось 1 раз.
Аватара пользователя
docent
Команда клуба
Команда клуба
 
Сообщения: 2200
Изображения: 4
Зарегистрирован: 21 июн 2008 02:42
Откуда: москва. новогиреево
Авто:: Pontiac Trans Sport 3,8
Год выпуска:: 1994
Место жительства: москва

Re: Диагностика планшет, блютуз, андроид. Настройки, обсужде

Сообщение docent » 19 авг 2019 08:36

или это глюк платы ?
Аватара пользователя
docent
Команда клуба
Команда клуба
 
Сообщения: 2200
Изображения: 4
Зарегистрирован: 21 июн 2008 02:42
Откуда: москва. новогиреево
Авто:: Pontiac Trans Sport 3,8
Год выпуска:: 1994
Место жительства: москва

Re: Диагностика планшет, блютуз, андроид. Настройки, обсужде

Сообщение pev » 19 авг 2019 19:01

docent писал(а):или это глюк платы ?

Бывает "отваливаются" данные. Если на экране с циферблатами в верхнем левом углу после "коннекта" число меньше 6-7, глюк проявляется. Если число 8-9 все стабильно. Что сделать что бы число было как можно больше я так и не понял, на одном и том же кабеле, плате , планшете и т.д. это число "прыгает", и как на него повлиять не понимаю. Подключаю-отключаю все и так несколько раз...
MAF от 4,9 Gm/sec. и выше
Никогда не езди быстрее, чем может летать твой ангел-хранитель.
pev
 
Сообщения: 1248
Изображения: 8
Зарегистрирован: 26 июн 2008 11:32
Откуда: г. Рязань
Авто:: Chevrolet Lumina APV 3,8
Год выпуска:: 1995
Место жительства: Рязань

Re: Диагностика планшет, блютуз, андроид. Настройки, обсужде

Сообщение docent » 19 авг 2019 19:40

надо посмотреть ,на этот угол вообще внимания не обращал.
МАФ вроде тоже от 5 , но почему-то всегда красный :unknown: .
завтра тюнерпро попробую
Аватара пользователя
docent
Команда клуба
Команда клуба
 
Сообщения: 2200
Изображения: 4
Зарегистрирован: 21 июн 2008 02:42
Откуда: москва. новогиреево
Авто:: Pontiac Trans Sport 3,8
Год выпуска:: 1994
Место жительства: москва

Re: Диагностика планшет, блютуз, андроид. Настройки, обсужде

Сообщение ender11 » 12 янв 2020 06:50

а вот подскажите такое - на страничке aldldroid в плеймаркете написано, что доступно для добавления в "семейную библиотеку". это что? если пользователь, который купил программу, создаст в google play "семейную группу", а мы все вступим в неё, то сможем пользоваться последей версией aldldroid?
Cracked by Bill Gilbert
Аватара пользователя
ender11
 
Сообщения: 439
Зарегистрирован: 04 ноя 2015 14:19
Авто:: Chevrolet Lumina APV 3,1
Год выпуска:: 1991
Место жительства: Красноярск

Пред.След.

Вернуться в Электрика, Датчики и Приборы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

cron