Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Odczyt z XPT2046 - Odczyt z XPT2046 na przewodach dl. 10cm

amostom 14 Gru 2015 17:31 1098 6
  • #1 14 Gru 2015 17:31
    amostom
    Poziom 9  

    Witam. Buduje sobie pewien projekt w którym użyłem LCD ILI9341 z touch panelem na kostce XPT2046. Lcd działa na SPI sprzętowym a XPT2046 na programowym. Niestety muszę umieścić LCD w odległości od płytki ok 10cm na przewodach ale wtedy odmawia posłuszeństwa touch panel. Odczyta kilka razy dotyk potem przerwa i tak rożnie. Całym projektem steruje Atmega328p 20Mhz zasilana 5V. Czy jest jakiś sposób aby zmusić do pracy dotyk? Szczerze myślałem ze na 10cm nie będzie problemu. Acha jak jest lcd przylutowany do płytki to wszystko działa wyśmienicie. Przewody sprawdzone chyba z tysiąc razy.Pozdrawiam

    0 6
  • #2 14 Gru 2015 20:25
    vonar
    Poziom 28  

    Jak szybkie jest to programowe SPI? Sprawdź z mniejszą szybkością.
    Wstaw na linie SPI szeregowe rezystory (kilkadziesiąt Ω) po stronie wysyłającej. Rozdziel przewody od siebie / wstaw pomiędzy nimi masę.

    Jakieś oscylogramy by się przydały.

    0
  • #3 15 Gru 2015 09:35
    amostom
    Poziom 9  

    Może pokaże kod który realizuje komunikacje z XPT2046 znaleziony gdzieś w czeluściach internetu

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Wstyd mi się przyznać ale za bardzo nie wiem jak spowolnić te SPI. Podejrzewam ze trzeba wstawić opóźnienie nop(); Będę kombinował jak wrócę do domu z pracy.

    0
  • #4 15 Gru 2015 10:42
    BlueDraco
    Specjalista - Mikrokontrolery

    Przy 20 MHz 3 NOPy dają opóźnienie 150 ns, a potrzebujesz ok. 1 us - maksymalna częstotliwość dla XPT2064 to 0.5 MHz

    0
  • #5 15 Gru 2015 12:33
    amostom
    Poziom 9  

    To już mi coś wyjaśniło. W takim razie z obliczeń mi wychodzi ze muszę dać po 20 nop aby uzyskać opóźnienie 1us czyli 0,5MHZ zgadza się ?

    W nocie przeglądam ze dla XPT2046 maks.próbkowanie to 125kHz przy 20Mhz daje 2,5MHz dla maks.prędkości SPI czy coś mylę ?

    Pytanie jeszcze natury technicznej. Atmega zasilana 5v, XPT2046 3,3V łącznie z LCD. W nocie widzę ze XPT2046 może być także zasilany 5v w związku z czym chyba nie potrzebnie zrobiłem konwersje napiec można by bezpośrednio połączyć xpt z atmega bez konwersji napiec.

    0
  • #6 15 Gru 2015 16:16
    BlueDraco
    Specjalista - Mikrokontrolery

    Rzeczywiście jest 2.5 MHz - skądś mi się to 0.5 MHz wzięło, być może z innego podobnego układu. Czy Twój translator poziomów wyrabia na 2.5 MHz?

    0
  • #7 15 Gru 2015 17:28
    amostom
    Poziom 9  

    Tak bez problemu. Jest on w zasadzie wykonany na dwóch rezystorach 1,8k i 3,3k. Bynajmniej LCD tez na tym translatorze chodzi a SPI tam jest znacznie szybsze.


    Problem rozwiazany, Az wstyd ze taki glupi blad linia CS nie byla podlaczona do masy. Po podlaczeniu wszystko dziala jak nalezy. Dziekuje za wszelka pomoc i pozdrawiam.

    0