logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Interfejs na układzie L9637 - Budowa interfejsu diagnostycznego na układzie L963

goliat2606 20 Paź 2021 21:16 423 4
REKLAMA
  • #1 19666093
    goliat2606
    Poziom 12  
    Cześć.

    Jestem w trakcie budowania interfejsu diagnostycznego obsługującego protokół KWP1281.
    Wykorzystuję mikrokontroler ESP32. Jakiś czas temu zrobiłem sobie prototyp na płytce stykowej wykorzystując tylko tranzystory i rezystory.

    Zastanawiam się (i tutaj pytanie do Was) czy moje ogólne podejście jest dobre. Wiadomo, że linia K to pojedynczy przewód który obsługiwany jest przez RX i TX mikrokontrolera. W internecie można znaleźć proste schematy do obsługi komunikacji wykorzystując 2 tranzystory w torze RX -> linia K. Problem w tym, że wtedy to co wyślemy na linię k, leci od razu do RX więc mikrokontroler odbiera to co sami wysłaliśmy. Można to obsłużyć programowo. Ja obsłużyłem to sprzętowo - to co leci na RX mikrokontrolera "filtruję" używając bramki NAND na której wejścia podaje TX oraz negację linii K. Wszystko działa fajnie i sprawnie lecz z racji tego, że jest to oparte na tranzystorach zajmuje trochę miejsca i jest po prostu niewygodne, zwłaszcza, że tak jak pisałem, mam to na płytce stykowej :). Postanowiłem użyć układu L9637 gdyż myślałem, że on sam "odwali" za mnie tą negację. Myślałem, że układ działa w ten sposób, że jeśli wysyłam coś na linię K, to na wyjściu RX układu będę miał stały stan wysoki. Niestety na wyjściach RX i TX układu ciągle jest to samo. Co prawda obszedłem to programowo czyszcząc bufor serial portu po każdym wysłaniu czegoś ale nie zbyt podoba mi się to rozwiązanie. Pytanie czy takie działanie układu L9637 jest poprawne czy po prostu ja coś zepsułem?
  • REKLAMA
  • #2 19666490
    ArturAVS
    Moderator
    goliat2606 napisał:
    czy takie działanie układu L9637 jest poprawne

    Jak najbardziej. Wszystkie transceivery k-line tak działają.
  • REKLAMA
  • #3 19666508
    goliat2606
    Poziom 12  
    Ok czyli pozostaje mi to obsłużyć programowo tj czyścić bufor wejściowy po każdym wysłaniu.

    Czy może jest na to jakiś bardziej poprawny sposób?
  • REKLAMA
  • #4 19666517
    ArturAVS
    Moderator
    goliat2606 napisał:
    Czy może jest na to jakiś bardziej poprawny sposób?

    Jakkolwiek byś nie robił musi to być uwzględnione w programie. Sam L9637D tylko dopasowuje sygnał do linii k i nie ma wbudowanej logiki zapobiegającej "echu" sygnału na linii RX. We wszystkich zastosowaniach jakie widziałem zawsze było to robione programowo.
  • #5 19666537
    goliat2606
    Poziom 12  
    Super, dzięki wielkie za odpowiedź :)
REKLAMA