www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Komunikacija med XP6840 in AT91SAM9260EJS preko I2C vodila

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
MarkoSan
Član
Član



Pridružen-a: Pon 11 Dec 2006 12:20
Prispevkov: 123
Aktiv.: 0.55
Kraj: Ljubljana

PrispevekObjavljeno: Čet Feb 09, 2012 10:04 pm    Naslov sporočila:  Komunikacija med XP6840 in AT91SAM9260EJS preko I2C vodila Odgovori s citatom

Spostovani!

Pisem driver za I2C modul na ARM procesorju Atmel ARM91SAM9260EJS preko I2C vodila (Atmelova nomenklatura za I2C vodil je TWI-Two Wire Interface) in stvar mi dela obcasno. Skusam realizirati osnovno funkcionalnost (posiljanje naslova integriranega vezja XP6840) in stvar je zjutraj delovala, sedaj pa ne in ne vem, kaj delam narobe. Koda je sledeca:
Koda:
int TWI_write_single(AT91PS_TWI pTWI,
                     const unsigned int iDeviceAddress,
                     const char pData)
{
    volatile unsigned int iStatus=0;
    volatile unsigned int iError=0;
    volatile unsigned int iEnd=0;
 
    if(pTWI==0)
        return;
 
    // System Reset
    pTWI->TWI_CR=AT91C_TWI_SWRST;
 
    // Sets TWI Clock
    pTWI->TWI_CWGR=(0x8)|
                   (0x8<<8)|
                   (0x7<<16);
 
    // Sets up device address and data direction
    pTWI->TWI_MMR=(iDeviceAddress<<16)|
                  (iDirectionWrite<<iMasterDirection);
 
    // **** Interupt Enable Setup (enable NACK interrupt)
    pTWI->TWI_IER|=(iOn<<iNotAckowledged);
    // **** END OF Interrupt Enable Setup
 
    // Sets up Master Mode
    pTWI->TWI_CR=(iOn<<iConditionStart)|
                 (iOn<<iMasterModeEnable)|
                 (iOn<<iSlaveModeDisable);
 
 
    pTWI->TWI_THR=pData;
 
/*
    pTWI->TWI_CR|=((iOff<iConditionStart)|
                   (iOn<<iConditionStop)|
                   (iOff<iMasterModeEnable));
*/
/*
    TWI_delay(40);
    while(!iEnd)
    {
        iStatus=pTWI->TWI_SR;
        if((iStatus&AT91C_TWI_NACK)==AT91C_TWI_NACK)
        {
            iError++;
            iEnd=1;
        }   // if
 
        if((iStatus&AT91C_TWI_TXRDY)==AT91C_TWI_TXRDY)
        {
            iEnd=1;
        }   // if
    }   // while
 
    iStatus=pTWI->TWI_SR;
    while(!(iStatus&AT91C_TWI_TXCOMP))
    {
        iStatus=pTWI->TWI_SR;
    }   // while
*/
 
    return iError;
}   // TWI_write_signle

Po dokumentaciji sledec se ob polnitvi registra TWI_THR posiljanje prozi samodejno, vendar se LED dioda na evaluation boardu vezja XP6840 (Ready) ne prizge. Na tem boardu je tudi gumb, ki prozi praznjenje kondenzatorja za blisk 3 LED diod in zjutraj mi je to delovalo, sedaj pa ne. Zanima me, ce se je kdo s tem ze ukvarjal (I2C nasplosno) in kaksne so zacetniske napake. Konektor sem zlotal sam in z voltmetrom sem preveril povezavo, povezava je ok. Evaluation board napajam iz predelanega napajalnika za PC (pomeril sem dovod napajalne napetosti, je ok - 5.2V), ARM board (SMS razvojna plosca od Fakultete za Racunalnistvo in Informatiko) se pa napaja preko USB komunikacije z PCjem. Ima kdo kaksne nasvete?

Lp,
M.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
MarkoSan
Član
Član



Pridružen-a: Pon 11 Dec 2006 12:20
Prispevkov: 123
Aktiv.: 0.55
Kraj: Ljubljana

PrispevekObjavljeno: Pet Feb 10, 2012 6:47 pm    Naslov sporočila:   Odgovori s citatom

Spostovani!

Stvar mi je uspela, TWI port ni bil pravilno skonfiguriran in sem vam hotel posneti par LED efektov, ampak, na zalost, ker sem storast, sem nehote vezje skuril in cakam novega.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 493 dni


Powered by phpBB © 2001, 2005 phpBB Group