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 

Težave z SPI komunikacijo PIC18F4585 in ATA6870

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



Pridružen-a: Sre 03 Mar 2010 23:23
Prispevkov: 19
Aktiv.: 0.10
Kraj: Ljubljana

PrispevekObjavljeno: Tor Jul 27, 2010 11:30 am    Naslov sporočila:  Težave z SPI komunikacijo PIC18F4585 in ATA6870 Odgovori s citatom

Živjo!

Razvijam software za polnilec Li-Io baterij z uporabo PICa s hardwarskim SPI vmesnikom in ATA6870.

http://www.datasheetdir.com/ATA6870-PLPW+download

Čip ATA6870 mislim da ima izpolnjene vse delovne pogoje, napajanje od baterij, MISO in IRQ pullup, MFIRST 1. čipa je vezan na POW_ENA in vse ostalo tako kot je v datasheetu od navedenega čipa.

PIC se napaja preko ATA čipa in deluje na 3.3V s frekvenco 2Mhz ker ima CLKO (Clock output) delilnik s 4, tako da zagotavlja frekvenco sistemske ure za ATA čip frevence 500kHz, kot je navedeno v datasheetu.

SCK (Spi clock) ima prav tako delilnik osnovnega takta PICa in sicer 4, 16, 64. V tem primeru sem nastavil delilnik na 16, čeprav naj bi bil SCK = CLKO / 2 (250kHz), je v tem primeru tako 125kHz. Mislim da bi moralo tudi v tem primeru delovati po podatkih s tabele na strani 21 datasheeta, čeprav imam jaz na vezju trenutno 3 ATA čipe?

Nikakor ne uspem vzpostaviti komunikacije med čipoma. Ko z osciloskopom spremljam signale MOSI (SDO), Chip select, SCK jevse vredu, IRQ je stalno na 1, MISO (SDI) se pa nekam nenavadno odziva, glede na to da ima pullup, ga ATA drži na nuli, pred vsakim pošiljanjem podatkov pa skoči na nek vmesni nivo 1,6V in tam ostane prve 4 (od 8) SCK takte, nato skoči nazaj na 0 (slike priložim kasneje). Popolnoma enako se dogaja ko prekinem povezavo s picem in pullupom.

Ima kdo kaj več izkušenj na tem področju in bi mi lahko dal kak nasvet/napotek? Hvala!

Še del programske kode v mikroC-ju:


Koda:

    SPI1_Init_Advanced(_SPI_MASTER_OSC_DIV16, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_LOW, _SPI_LOW_2_HIGH);
    OSCCON = 0B11011111; // Sleep mode/Stand By; 3 biti za OSC speed
    TRISC  = 0B00011000;          // RC0 izhod za ATA_CS, RC3 - CLK mora imeti TRIS 1 (PDF 138) , RC4 SPI input
    PORTC = 0B00010001;           // CS0=1 deselect ATA chip


Testno:
Koda:

           RC0_bit=0;
           SPI1_Write(0x0);
           SPI1_Write(0x0);
           SPI1_Write(0x0);
           SPI1_Write(0x1);
           SPI1_Write(0x0);
           SPI1_Write(0xC);     
           PORTD=ATA_read();
           PORTD=ATA_read();
           RC0_bit=1;
           Delay_ms(5);
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
matjazkariz
Član
Član



Pridružen-a: Sre 03 Nov 2004 18:09
Prispevkov: 1026
Aktiv.: 4.33

PrispevekObjavljeno: Tor Jul 27, 2010 9:14 pm    Naslov sporočila:   Odgovori s citatom

Nisem se šel poglabljat v tvojo kodo, ampak imaš več konfiguracij komunikacije pri SPI vodilu. Poglej kako jih nastavljaš v poglavju o SPI v PIC datasheetu. Različna SPI periferija podpira različne mode. V osnovi se gre za to ali slave čip reagira na padec ali porast signala clocka...
Preveri v datasheetu tega slave čipa, kateri mode je pravi.

_________________
LP, Matjaž
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
woops
Član
Član



Pridružen-a: Sre 03 Mar 2010 23:23
Prispevkov: 19
Aktiv.: 0.10
Kraj: Ljubljana

PrispevekObjavljeno: Sre Avg 11, 2010 1:44 pm    Naslov sporočila:   Odgovori s citatom

Mal premora, zdaj pa nadaljujem;)

Še enkrat sem preveril SPI povezave in vse je OK. Spi mode je pravilno konfiguriran, zajem na pozitiven prehod, negiran chip select. Vse kar je drugače je to da je SCK pol manjši od navedenega za do 5 ATA čipov (250kHz), za več je navedena nižja frekvenca (125kHz kot je v mojem primeru), tako da predvidevam da bi tudi v primeru s 3mi ATA čipi moralo funkcionirati.

Na MISO se ob začetku prenosa se za cca 2 SCK pojavi nek nenavaden poševen signal, ki ni pravokotne oblike.... mogoče to kaže na to da je čip fuč?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
matjazkariz
Član
Član



Pridružen-a: Sre 03 Nov 2004 18:09
Prispevkov: 1026
Aktiv.: 4.33

PrispevekObjavljeno: Sre Avg 11, 2010 2:34 pm    Naslov sporočila:   Odgovori s citatom

Poševen v kakšnem smislu? ....

Pošlji shemo kako imaš vezano.
Imaš upor na sck liniji? Poglej in primerjaj signal pred/po uporu.
Poskusi narediti tudi ločeno ploščico z uCjem in enim ATA čipom za lažje debuggiranje ali zamenjaj vse čipovje na obstoječi tiskanini z novimi....

Poskusi tudi z http://atmel.kr/dyn/resources/prod_documents/doc9180.pdf
in predelaj povezave z http://www.atmel.com/dyn/products/product_card.asp?part_id=4641

_________________
LP, Matjaž
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
woops
Član
Član



Pridružen-a: Sre 03 Mar 2010 23:23
Prispevkov: 19
Aktiv.: 0.10
Kraj: Ljubljana

PrispevekObjavljeno: Sre Avg 11, 2010 7:38 pm    Naslov sporočila:   Odgovori s citatom

Tisti signal je verjetno prehodni pojav, ki se pojavi ob nastopu Chip selecta, nivo je zelo nizek in najverjetneje ne pomeni nič.

Linije so direktno povezane, čip je aktiviran, saj dobi PIC napajanje preko njega (CS_N, CLK, SCK, SDI-MISO, SDO-MOSI).

Pregledal sem tudi program za ATMega in imam podobno. Saj tudi ko želim brati naprimer statusni register ni nobenega odziva.

Mislim da sem že izčrpal vse možnosti pred menjavo čipa, bom najprej to preizkusil in upam da bo kaj iz tega.

Na srečo imam dovolj dostopne linije, da jih lahko pomerim, saj če je več ATA čipov in naslavljaš le prvega, število nebi smelo vplivati, saj spo vezani zaporedno in ni nekega zaključka za zadnji čip, lahko se le prekine povezava do zgornjih čipov.

Obstajata 2 testna pina, napisano pa ni nič na to temo.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Periferija Č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: 492 dni


Powered by phpBB © 2001, 2005 phpBB Group