Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

mmnet 1002 + I2C + pcf 8574P

radziu88 20 Jul 2010 13:20 1806 8
  • #1
    radziu88
    Level 10  
    Witam postanowiłem dzisiaj podłączyć do mojego mmneta kilka przekaźników w tym celu chciałbym wykorzystać port I2C .

    Podłączyłem do portu I2C scalaczka PCF8547P linie adresowe zwarłem do masy i zasiliłem go 5V .

    niestety linux (openwrt) nie widzi mojego scalaka i tu pytanie dlaczego ??

    aby uruchomić I2C na linuksie wykonałem
    modprobe i2c-gpio

    modprobe i2c_dev


    a następnie wykrywanie urządzeń podłączonych do i2c
    i2cdetect -y 0


    niestety nie zostały wykryte żadne urządzenia.

    czy ktoś ma może pomysł dlaczego ??

    i jeszcze nie mam pewności czy dobrze zrozumiałem informacje w Datasheet
    a mianowicie
    Quote:
    Operating supply voltage 2.5 to 6 V


    czy oznacza to że scalak jest kompatybilny z i2c 3.3v ??

    Datasheet Link
  • #2
    herszt
    Level 18  
    O ile pamiętam, jeśli używasz oprogramowania dostarczonego przez Propox, musisz sterowniki od I2C dokompilować do jądra. Wtedy w /dev pojawia się urządzenie i2c-0, z którego korzystasz, prawie jak z pliku.
    I wydaje mi się, że scalaka powinieneś zasilać takim samym napięciem jakim operuje płytka MMnet1002 - czyli 3.3V chyba, że zastosujesz jakąś konwersję poziomów napięć.

    pozdrawiam
    herszt
  • #3
    User removed account
    User removed account  
  • #4
    radziu88
    Level 10  
    Quote:
    ani nie zgłasza się on nijako na tej magistrali

    czyli w takim razie mimo że i2c detect nie widzi scalaka może on działać wiec moje pytanie brzmi jak wysterować jakikolwiek port tego scalaka .

    czy jeżeli 3 linie adresowe zwarłem do masy to jego adres jest 01000001 ?

    czy linie it msze podłączyć czy mogę zostawić w powietrzu ??

    ps. to moje pierwsze starcie z i2c
  • #5
    herszt
    Level 18  
    radziu88 wrote:

    czy jeżeli 3 linie adresowe zwarłem do masy to jego adres jest 01000001 ?


    Na stronie 9 i 10 datasheeta, którego podałeś w pierwszym poście jest to ładnie rozrysowane. Adres to tak na prawdę 0100000. Ostatni bit '1' to może być też '0' w zależności od tego czy z układu czytasz czy do niego zapisujesz. Więc w Twoim wypadku adres urządzenia to: 0x20.

    pozdrawiam
    herszt
  • #6
    radziu88
    Level 10  
    próbuję zaświecić diodę na porcie P0
    zacząłem od zmiany napięcia za zasilania na 3.3V jak to zaproponował HERSZT
     i2cset -y 0 0x20 0x00 1 w

    w odpowiedzi dostaje
    Error: Write failed

    próbowałem również
    i2cset -y 0 0x20 0x00 

    i w odpowiedzi dostałem
    No size specified (using byte-data acces)
    Error: Write Failed


    ale za to po wydaniu komendy
    i2c detect -y0

    zaświeciła się jedna z diodek i pytanie brzmi dlaczego ?? oraz jak obsłużyć scalaka za pomocą i2cset
  • #7
    herszt
    Level 18  
    Zerknij: i2c - masz tu prosty przykład w C jak obsłużyć I2C i zapisywać/odczytywać co tylko chcesz. Na początek powinno wystarczyć.

    pozdrawiam
    herszt
  • #8
    radziu88
    Level 10  
    żeby zaświecić diode na porcie p0 co i do jakiego rejestru powinienem wysłać ??
  • #9
    herszt
    Level 18  
    Z tego co zdążyłem pobieżnie przejrzeć dokumentację tego układu to chyba wystarczy, że po adresie układu (SLA+W) wyślesz wartość 0x01, co binarnie wygląda 0b00000001. Ale powinieneś się jeszcze w to wczytać.

    pozdrawiam
    herszt