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.

PIC16F1459 - I2C PCF8574T + LCD HD44780 = nic nie wyświetla

mariomario 16 Lis 2016 22:30 3381 5
  • #1 16 Lis 2016 22:30
    mariomario
    Poziom 18  

    Witam,

    chciałem zaoszczędzić kilka pinów PIC16F1459 i zamiast bezpośrednio podpinać LCD HD44780 pod ten uC, chciałem użyć sprzętowej komunikacji I2C tego uC ( piny RB4 i RB6 - Datasheet ) oraz przejściówki opartej o PCF8574T widocznej poniżej, a kupionej u chińczyków. Sprawdziłem jak poprowadzone są piny w tej przejściówce z chin i są następujące:

    LCD_EN = P2 (pin P2 PCF8574T)
    LCD_RW = P1 ( ---||--- )
    LCD_RS = P0
    LCD D4 = P4
    LCD D5 = P5
    LCD D6 = P6
    LCD D7 = P7

    Ponadto komunikacja sprzętowa I2C dla PIC16F1459:
    SDA na pinie RB4 i to podłączyłem do SDA w przejściówce
    SCL na pinie RB6 i to podłączyłem do SCL w przejściówce

    na przejściówce ustawiłem zworkami adres 0x20 i na tym adresie testowałem pod Arduino - i działało bez problemu..

    testowałem ponadto ten właśnie wyświetlacz i tą przejściówkę na Arduino i są 100% sprawne, lecz z poniższym kodem wziętym z internetu (kompilowanym w MikroC PRO for PIC, pod uc PIC16F1459 taktowany z internal oscillator 16MHz, wgrywany PICKIT'em 3) - nie działa, tzn. nic nie wyświetla. Ukazuje się jedynie taki obraz jak poniżej:
    PIC16F1459 - I2C PCF8574T + LCD HD44780 = nic nie wyświetla

    main

    Kod: c
    Zaloguj się, aby zobaczyć kod



    Lib_LCD_I2C.h
    Kod: c
    Zaloguj się, aby zobaczyć kod




    Źródło kodów (dół strony, plik zip): http://forum.mikroe.com/viewtopic.php?f=88&t=64271&view=previous#p256288


    Przejściówka zakupiona z chin
    PIC16F1459 - I2C PCF8574T + LCD HD44780 = nic nie wyświetla


    W załączniku dodaję cały projekt (MikroC)
    I teraz pytanie - co robię nie tak, że to nie działa ? Czy mogę prosić o jakieś wskazówki jak to naprawić ?

    0 5
  • #2 16 Lis 2016 23:11
    94075
    Użytkownik usunął konto  
  • #3 17 Lis 2016 19:58
    mariomario
    Poziom 18  

    Pozmieniałem wszędzie na PIC16F1459 i niestety dalej jest tak jak było - czyli nic się nie wyświetla na LCD. Co jeszcze można poprawić / sprawdzić ?

    W załączniku jest cały aktualny projekt

    0
  • #5 17 Lis 2016 21:30
    mariomario
    Poziom 18  

    Piotrus_999 dzięki za podesłanie przykładu, na pewno też go przetestuję.


    A wracając do kodu programu, który przed chwilą wstawiłem to z ciekawości aż podpiąłem analizator stanów logicznych do pinów SDA , SCL i oto co zobaczyłem na obu z nich:
    PIC16F1459 - I2C PCF8574T + LCD HD44780 = nic nie wyświetla
    I2C nie działa

    Pomiar dokonałem w następujący sposób:
    1.) włączyłem układ z wcześniej wpiętym analizatorem stanów
    2.) odrazu po włączeniu układu rozpocząłem samplowanie 5 sekundowe

    0
  • #6 17 Lis 2016 21:57
    2675900
    Użytkownik usunął konto