Mercedes Koltuk Kumandası İletişimi

Başlatan bsenguler, 24 Temmuz 2021, 14:56:37

bsenguler

Merhabalar,
Mercedes koltuk kumandasının iletişimini çözmeye çalışıyorum, elimde Saleae Logic analizatör var. Kumanda da +, -, tek data hattı mevcut, data hattına analizatörü bağladığımda serial olarak sürekli FF geliyor arada da FD, FE gibi bilgiler mevcut, böyle bir kumandanın canbus kullanacağını düşünüyorum lakin canbus ta bir veri alamıyorum. Bir yerlerde eksik yapıyorum lakin çözemedim. Beni doğru hedefe doğru yönlendirirseniz sevinirim.

İyi tatiller

Tagli

CAN tek hatla olmaz ki zaten. Belki LIN kullanıyordur, o tek hattan gidiyor.

Analizör görüntüsünü atabilir misin? Belki o zaman daha kolay yorum yapılabilir.
Gökçe Tağlıoğlu

Erol YILMAZ

Tagli'nin dediği gibi LIN olma ihtimali yüksek...
Lojik analizörle baud rate'i yakalabilirsin,
LIN genellikle 19200, 9600, 4800 bps gibi düşük hızlarda oluyor.

bsenguler

Dediğiniz gibi lin miş, çok teşekkür ederim.

bsenguler

Selam üstadlar,

En son, bu yazımdan itibaren dipsiz bir kuyuya düştüm, yeni yeni çıkıyorum. Çıkar çıkmazda kaldığım yerden devam etmek istedim. Bir tane Linbus sürücü aldım ATA6625C, bunun rx,tx uçları var, yani yazdığımı direkt linbus networküne gönderiyor diye düşünüyordum lakin lojik analizör ile izlediğimde hiç öyle olmadığını gördüm. Yanlışım varsa üstadlar beni yönlendirirse sevinirim.

Ben  slave id'sini uart'a yazdığım, bu lin sürücü break+sync oluşturup benim slave id'sinide kuyruya takıp göndermesini bekliyorum. Burada kıstım kaldım, çünkü böyle bir şey olmuyor. Eğer ki ben bunları oluşturacaksam uart kullanarak yapamayacağımı düşünüyorum, çünkü break 13 bitten oluşuyor. Nasıl bir yol izlemeliyim? Bunu başardıktan sonra bu id meselesi var, bunları nasıl bulabilirim:)

Saygılarımla

parametre


mur@t

Merhaba,

Doğrudan UART<->LIN çalışmak zor, arada bir mikrokontrolcü kullanmanız daha iyi olur.
Sync break işlemini kullanacağınız baudrate değerine göre mikrokontrolcünün seri portunda yaparsınız.


|Sync Break|Sync Byte|ID byte| Data Bytes |Checksum |


procedure wakeup;
begin
  RCSTA.7 := 0;
  PORTC.6 := 0;
  Delay_10ms;
  RCSTA.7 := 1;
  UART1_Write($80);  //Wakeup Byte
  RCSTA.7 := 0;
  PORTC.6 := 0;
  Delay_us(160);    //3 bit
  RCSTA.7 := 1;
end;


procedure writeSync;
begin
  RCSTA.7 := 0;
  PORTC.6 := 0;
  Delay_us(700); //sync (13 bit)
  PORTC.6 := 1;
  Delay_us(55);
  RCSTA.7 := 1;
end;


procedure _tusOku;
begin
  writeSync();      //Sync break
  UART1_Write($55);  //Sync Byte
  UART1_Write($80);  //ID
  Delay_1ms;
end;

Mercedes ile 19200 baud/Enhanced Checksum kullanmışım, notlarıma göre.Ama modele göre değişiklik gösterebilir.

Okumaya çalıştığınız modül nedir?


bsenguler

#7
Alıntı yapılan: mur@t - 25 Şubat 2025, 13:33:05Okumaya çalıştığınız modül nedir?


Yanıtınız için çok teşekkür ederim,
Mercedes S koltuk kontrol düğmesi,
Mcu kullanıyorum, datayı, onun uart'ını kullanarak driver'a gönderiyorum. Ben, lin driver'ın break ve sync kısmını yönettiğini düşünmüştüm anladığım kadarıyla durum öyle değilmiş :(, peki bende sizin yaptığınız gibi uart tx pinini 13 bitlik break süresi için lowa çekip(bu kısım uart haberleşmesine uymuyor 8 1 N) ardından sync  için 0x55 yazmıştım, lojik analizörle incelediğimde break kısım hiç görünmüyor, 0x55 kısmıda bozulmaya uğradı, belki benim mcu da sorun olabilir, başka bir tane ile deneyeceğim.

Alıntı yapılan: parametre - 25 Şubat 2025, 13:10:39Linbus hakkında reverse yapar
Umarım faydalı olur

İnceliyorum ::ok

mur@t

dediğiniz gibi, wakeup ve sync datasını MCU'da yapmanız gerekiyor.
ATA6625 kullanmadım, Vs pinine 5-12V verdiğinizi düşünüyorum (normal mod için EN pininin Hi olduğunu varsayıyorum).
MCU'yu 8bit 19200 baud ayarladığınızda, LIN çıkışında 0x55'i (ve diğer uart datalarını) görmelisiniz.



 




bsenguler

Alıntı yapılan: mur@t - 25 Şubat 2025, 15:45:55dediğiniz gibi, wakeup ve sync datasını MCU'da yapmanız gerekiyor.
ATA6625 kullanmadım, Vs pinine 5-12V verdiğinizi düşünüyorum (normal mod için EN pininin Hi olduğunu varsayıyorum).
MCU'yu 8bit 19200 baud ayarladığınızda, LIN çıkışında 0x55'i (ve diğer uart datalarını) görmelisiniz.


Selamlar
Uart çıktısını doğal olarak hatalı frame gösteriyor ama lin tarafı oturdu, anladığım kadarıyla lin uc noktalarının cevap verebilmesi için Master'ın bu id'yi bilmesi gerekiyor ama bende bu id yok, linbus'ı dinlesem bu id yi bulma şansım var mı?


mur@t

#10
Araç üzerinde lin hattını dinleme şansınız varsa ID ve dataları görebilirsiniz.
Master sorgu yapmadan cevap gelmiyor hatırladığım kadarıyla.