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

LCD i klawiatura 4x4 przez ekspander portow TWI ATmega2560 C

Benzon 13 Sie 2009 13:43 2492 5
REKLAMA
  • #1 6888623
    Benzon
    Poziom 10  
    Witam. Jestem nowy zarówno na tym forum, jak i jestem początkującym w programowaniu mikrokontrolerów. Muszę jednak napisać program sterujący dla sprzętu opartego na ATmedze 2560 w C. W sprzęcie tym zostały poprzez interfejs TWI i ekspander portów podłączone klawiatura 4x4 i wyświetlacz LCD, które mają ze sobą współpracować (jak w bankomacie, tj. jakaś treść na wyświetlaczu, dane wprowadzane z klawiatury i na LCD wyświetlane itp.). Sporo się na temat TWI naczytałem, ale widocznie niewiele zrozumiałem, bo nie mogę załapać jakby taki program sterujący (ściślej mówiąc część dotycząca ww. problemu). Jeśli ktoś z bardziej zorientowanych w temacie użytkowników znalazłby chwilę czasu, żeby nieco przybliżyć mi zasadę współpracy tych układów przez szynę TWI, byłbym bardzo wdzięczny. W załączniku schemat połączeń.
    LCD i klawiatura 4x4 przez ekspander portow TWI ATmega2560 C

    Usunąłem załącznik, a dodałem obrazek.
    [zumek]
  • REKLAMA
  • #2 6889615
    tmf
    VIP Zasłużony dla elektroda
    Moze cie naprowadzi to, ze TWI to nic innego jak I2C :)
    Schemat, ktory zapodales to twoj modul? Masz z niego wyprowadzony interface 1-wire, czy I2C? Bo troche to wyglada jakby ten nieopisany scalak robil za konwerter I2C - 1-wire.
    Zacznij od sciagniecia i przeczytania dokumentacji tych MAXow. Zeby z nimi zagadac musisz znac ich adresy i sposob odczytu/zapisu ich portow IO. Potem pojdzie z gorki.
  • REKLAMA
  • #3 6889658
    Benzon
    Poziom 10  
    tmf napisał:
    Moze cie naprowadzi to, ze TWI to nic innego jak I2C :)
    Schemat, ktory zapodales to twoj modul? Masz z niego wyprowadzony interface 1-wire, czy I2C? Bo troche to wyglada jakby ten nieopisany scalak robil za konwerter I2C - 1-wire.
    Zacznij od sciagniecia i przeczytania dokumentacji tych MAXow. Zeby z nimi zagadac musisz znac ich adresy i sposob odczytu/zapisu ich portow IO. Potem pojdzie z gorki.


    Ja doskonale wiem o tym, że to nic innego jak I2C, ale jakoś nie pomaga mi to w zrozumieniu koncepcji współpracy tych urządzeń przez ten interfejs. Wiem, że dla niektórych jest to pewnie banalnie proste, ale ja niestety nie mogę załapać samej podstawy działania. Czytałem dokumentację MAXa i jego adresowania, ale też nie za wiele mi to pomogło :(
  • REKLAMA
  • #4 6889880
    tmf
    VIP Zasłużony dla elektroda
    Zasada jest prosta. Wysylasz na magistrale start condition, potem adres urzadzenia z odpowiednio ustawionym bitem r/w i tyle. Na koncu przy zapisie wymagane jest wyslanie stop condition.
    Moze ci pomoga moje kody i implementacje paru urzadzen I2C:
    http://idom.svn.sourceforge.net/viewvc/idom/I2C/

    Napisane to jest w C++ dla AVR, ale nie powinienes miec problemow z przebiciem sie przez to.
  • REKLAMA
  • #5 6890061
    rpal
    Poziom 27  
    I przygotuj się że czas obsługi będzie trwał wieczność, to wcale nie będzie rewelacyjnei szybko chodzić :) Jeśli zalezy tobie na maksymalnie szybkiej obsłuce lcd i klawiatury przejdź na transmisję równoległą.
  • #6 6890081
    Benzon
    Poziom 10  
    rpal napisał:
    I przygotuj się że czas obsługi będzie trwał wieczność, to wcale nie będzie rewelacyjnei szybko chodzić :) Jeśli zalezy tobie na maksymalnie szybkiej obsłuce lcd i klawiatury przejdź na transmisję równoległą.


    No właśnie nie mam za dużego wyboru, gdyż muszę zaprogranować konkretny hardware który jest podłączony w ten a nie inny sposób :]
REKLAMA