|
Svet elektronike Revija za prave elektronike
|
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
Miha_Z Začetnik
Pridružen/-a: Pet Mar 2010 1:03 Prispevkov: 19
|
Objavljeno: Čet Sep 02, 2010 4:35 pm Naslov sporočila: Programirajmo AVR-je v C-ju - Primer 10 |
|
|
Datoteke se navezujejo na primer 10 v petem (5) članku "Programirajmo AVR-je v C-ju - kot profesionalci (5)", objavljen v Svet elektronike, številka 178, strani 29 do 36.
Primeri so napisani za uporabo v okolju AVR Studio 4 (http://www.atmel.com/dyn/Products/tools_card.asp?tool_id=2725) z nameščenim programskim orodjem WinAVR (http://winavr.sourceforge.net/). To orodje vsebuje vse potrebno za programiranje AVR mikrokontrolerjev v programskem jeziku C.
Podrobnejši postopek namestitve si preberite v članku "Namestitev programskih orodij AVR Studio in WinAVR" v Svetu elektronike, številka 175, strani 35 do 38.
V ZIP arhivu Primer_10_ATmega32.zip se nahaja projektna mapa za neposredno uporabo v programskem okolju AVR Studio 4. Programska koda prevedena za mikrokontroler ATMEL ATmega32.
Posamezni projekt odprete s klikom na meni Project, izbira Open Project. Seveda mora biti arhiv predhodno razpakiran. Pred programiranjem na MegaPin razvojni plošči odklopimo kabel za povezavo vrat B s SD CARD, saj linije vrat B uporablja tudi ISP programator. Izberemo meni Tools->Program AVR->Connect... ter po uspešni vzpostavitvi komunikacije s ciljnim AVR-jem preko uporabljenega programatorja, v zavihku Main nastavimo ustrezni mikrokontroler - ATmega32. Ustreznost preverimo s klikom na Read Signature.
Sedaj še nastavimo opcijo SUT_CKSEL v zavihku Fuses, na vrednost Int. RC Osc. 8 MHz.
Sledi klik na gumb Program in ob uspešni naložitvi programa v AVR ter ustreznem priklopu na podatkovna vrata B in D (in vstavljeni microSD kartici), se bo primer 9 pričel pravilno izvajati.
Programsko kodo v jeziku C nakazuje končnica datoteke ".C".
Prosim, ne pozabite slediti navodilom priključitve in nastavitve varoval, omenjenih v članku!
Za nastala vprašanja, jih prosim nadaljujte v tej temi. |
|
Nazaj na vrh |
|
|
logist Novinec
Pridružen/-a: Pet Okt 2010 9:08 Prispevkov: 6
|
Objavljeno: Pet Okt 22, 2010 11:54 pm Naslov sporočila: |
|
|
Pozdravljeni,
v članki ste rekli navajam "Primer je napravljen za SD CARD vmesnik na MegaPin plošči". Torej po tej shemi :
v kodi pa imate napisani :
Koda: | //Dolocitev uporabljenih registrov vrat za SD pomnilnisko kartico: vrata B,
DDRB = 0xBF;
PORTB = 0xBF; |
Ker 0xBF = 0b10111111 ter če pogledam shemo, ki sem jo priložil se nikakor ne ujem (mogoče gledam napačno shemo) z nastavljenimi izhodi.
Sem pa zasledil tudi napako v navedeni shemi in sicer pin 3 na SD kartici je GND in ne pin za SCK(PORTB.7).
Zgledoval sem se najprej iz CV AVR help-a (ker v njem dolgo programiro), ker predlagajo uporabo CD4050 CMOS.
Koda: | The SD card socket on the development board is connected to the
following I/O ports:
SD socket CD4050 ATmega128
pin1 /CS -----<|----- PORTD bit6
pin2 SI -----<|----- MOSI
pin3 GND
pin4 +3.3V
pin5 SCK -----<|----- SCK
pin6 GND
pin7 SO ------------ MISO
pin9 GND
pin10 CD ------------ PORTG bit4 with 10k pull-up resistor to +5V
pin11 WP ------------ PORTG bit3 with 10k pull-up resistor to +5V
pin12 GND
The CD4050 CMOS buffer is powered from a +3.3V supply and
performs logic level translation from 5V (AVR) to 3.3V (SD card). |
Moje vprašanje je kako naj sedaj nastavim pin za CS signal?
Ker jaz imam CS priklopljen na PORTB.4(SS).
Lp,
logist |
|
Nazaj na vrh |
|
|
Miha_Z Začetnik
Pridružen/-a: Pet Mar 2010 1:03 Prispevkov: 19
|
Objavljeno: Pon Okt 25, 2010 1:56 am Naslov sporočila: |
|
|
|
|
Nazaj na vrh |
|
|
logist Novinec
Pridružen/-a: Pet Okt 2010 9:08 Prispevkov: 6
|
Objavljeno: Pon Okt 25, 2010 8:49 am Naslov sporočila: |
|
|
Pozdravljeni,
te razlike pa nisem vedel. Res da, uporabljam mircoSD ampak imam adapter iz mircoSD na SD sem vedno gledal pine za SD in zato je prišlo do napake z moje strani, ker nisem bil toliko pozoren na to da vi predstavljate primer za priključitev miniSD.
Jaz uporabljam lastno vezje in sem ga tudi izvedel s pomočjo delilnika napetosti, čeprav sem prvo uporabil CD4050 in ATmega128, ker je bil primer tako nastavljen in tudi v ATmega32 nisem mogle vsega spravit, kar lahko sedaj z vašim člankom naredim tudi z ATmega8, če je treba .
Hvala za odlično razložitev in v vsakem primeru bom obvestil vas.
P.S. ni me treba vikat .
Lep pozdrav,
Mihael |
|
Nazaj na vrh |
|
|
logist Novinec
Pridružen/-a: Pet Okt 2010 9:08 Prispevkov: 6
|
Objavljeno: Pon Okt 25, 2010 11:35 pm Naslov sporočila: |
|
|
Me pa zanima, kako ne more najti pri funkciji getBootSectorData() vrne 1 kot napako čeprav je SD kartica formatirana na format FAT32 pod Windows 7. Sem pognal tudi program http://www.dharmanitech.com/ in mi napiše "FAT32 not found!" Torej na mbr ni vrednosti 0xaa55, kar je oznaka za fat32.
Sem že uporabil cmd -> format [X] /FT:FAT32 pa nič še veno isti piše. Mogoče ima kdo kaj iz tega področja izkušnje? |
|
Nazaj na vrh |
|
|
|
|
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 You cannot attach files in this forum You cannot download files in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|