Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

magistrala I2C i tracii XL

klops 02 Nov 2005 10:48 1032 3
  • #1
    klops
    Level 11  
    Hej.

    Zacząlem uzywac traciiXL (interfejst USB <-> I2C) i ich bibliotek do jezyka C dolaczanych z I2cStudio 2.0 (oprogramowanie do traciiXL, www.telos.de).

    Piszac program odczytujacy i zapisujacy do pamieci np. 2kB mam dosc dziwny objaw, tj.
    Podczas odczytu pamieci dostaje 2kB danych i sa to dane dobre z malym wyjatkiem tzn. dane z pamieci odczytywane sa nie od poczatku, a poczatek jest na koncu. Przedstawie to na przykladzie:

    Powiedzmy ze mamy w pamieci ukladu scalonego komorki o wartosciach:
    00 01 02 03 04 05 06 07, to program napisany przeze mnie odczytuje je w taki sposob:
    03 04 05 06 07 00 01 02. (wazne jest to ze czasami odczyta to w sposob 05 06 07 00 01 02 03 04 itp.).
    Nie pomagaja odczytywania po wylaczeniu i wlaczeniu zasilania, wlaczeniu/wylaczeniu programu itp.

    Co ciekawe program dostarczany z traciiXL (I2CStudio) robi dokladnie to samo.

    Zna ktos na to lekarstwo?
  • #2
    GienekS
    Level 32  
    Może przed odczytem ustawiasz zły albo w ogóle nie ustawiasz adresu, a potem już auto inkrementacja leci kolejne komórki.
  • #3
    klops
    Level 11  
    adres na 100% jest dobry (sprawdzone 20 razy, poza tym dostarczane oprogramowanie robi dokladnie to samo).

    Odczytuje tez dokladnie tyle ile uklad scalony ma pojemnosci (u mnie 2048). zauwazylem, ze ma 2 lub 3 wartosci takich offsetow.

    Jesli natomiast proboje cos zapisac do pamieci (tez powiedzmy 2048 bajtow), to nie dosc ze zapisze mi tylko 16 bajtow, w innym miejscu niz chce, to zmienia mi sie potem offset do odczytu.

    Widzialo to tez kilka osob znajacych sie na rzeczy (pracuja jako elektronicy kilka lat) i tez nie wiedza co to moze byc :/
  • #4
    tempuser1
    Level 1  
    Zgodnie z dokumentacja pamieci musisz najpierw zaladowac adres od ktorego bedziesz czytal, np. dla pamieci 24c16 jest to jeden bajt. Aby zawsze czytac pamiec od poczatku musisz wygenerowac nastepujaca transmisje:
    START, ADRES PAMIECI (np. A0), 00 (ADRES KOMORKI PAMIECI), START, ADRES PAMIECI+1 (A1), DANE ..., STOP
pcbway logo