avr: använda xtal1 etc som i/o

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Micke_N
Inlägg: 26
Blev medlem: 23 oktober 2005, 20:53:53

avr: använda xtal1 etc som i/o

Inlägg av Micke_N »

Hej, Jag har en ATmega88 och jag tänkte använda hela portb som utgångar, pb6 och pb7 ligger på samma pinnar som xtal1 och xtal 2. I databladet (s 74) finns det en tabell över "overriding signals for alternate functions in pb7..pb4". För pb7/xtal2 står det "/INTRC x /EXTCK + AS2", jag har satt AS2 biten, men hur ska jag göra för att uppfylla det första villkoret? M.a.o. vilken klocka ska jag använda om jag inte får använda intern RC osc. eller extern klocka, det känns som det kvarstående alternativet är en extern kristall men det känns ju inte aktuellt om jag ska använda pinnen till i/o?

/Micke
peter555
Inlägg: 6047
Blev medlem: 12 februari 2006, 10:02:22

Inlägg av peter555 »

Jag vet inte om det skiljer sig mellan din CPU och Tiny24 som jag provat på. Jag har endast satt DDR registret för att använda osc pinnarna som output
Användarvisningsbild
Stinrew
Inlägg: 954
Blev medlem: 20 augusti 2006, 03:14:41
Ort: Motala
Kontakt:

Re: avr: använda xtal1 etc som i/o

Inlägg av Stinrew »

Micke_N skrev:M.a.o. vilken klocka ska jag använda om jag inte får använda intern RC osc. eller extern klocka, det känns som det kvarstående alternativet är en extern kristall men det känns ju inte aktuellt om jag ska använda pinnen till i/o?

/Micke
Alltså du kan antingen köra den här uCn med "extern klocka". Det innebär att du har en kristall ansluten till PB6-7, eller så kör du med intern RC-oscillator och kan använda PB6-7 som vanliga I/O. Varför säger du att du INTE FÅR "använda intern RC osc."????
Micke_N
Inlägg: 26
Blev medlem: 23 oktober 2005, 20:53:53

Inlägg av Micke_N »

Så här ser tabellen ut:
Bild

Som jag tolkar rutan längst upp betyder strecken ovanför EXTCK och INTRC ett logiskt "icke"? Menar du att jag ska ha både kristall och signal ut på pinnarna i såna fall (känns konstigt)?
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

Jag tror han menar precis det han skriver: "Varför säger du att du INTE FÅR "använda intern RC osc."???? "

Det undrar jag också....

Vad är problemet med intern oscillator?
Användarvisningsbild
JimmyAndersson
Inlägg: 26586
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

"Varför säger du att du INTE FÅR "använda intern RC osc."???? "

Ibland är folk lite väl snabba att överdriva med frågetecken och konstiga attityder så fort man undrar något. Ska det verkligen behöva vara såhär?


Micke_N: Rätt mig om jag har fel nu:
Du vill använda hela port b som utgångar och undrar därför vilken klocka du kan använda?
Användarvisningsbild
Stinrew
Inlägg: 954
Blev medlem: 20 augusti 2006, 03:14:41
Ort: Motala
Kontakt:

Inlägg av Stinrew »

Jag börjar med att be om ursäkt för att jag betonade "inte får" i mitt förra inlägg. Det var inte meningen att skrika, jag ville bara betona vad jag inte förstod.


Jag ANTAR att du vill använda dig av PB6-7 som I/O, för att få tillräckligt många anslutningar till något projekt med en mega88 som du pysslar med.

Då får du använda dig utav något av dom 2 lägena med intern oscillator(CKSEL 0b0010 eller 0b0011). Signalerna i den tabellen du visar i ditt senaste inlägg behöver du mest troligt inte bry dig om alls. Däremot behöver du initiera PB6-7 som in- eller utgångar, precis som dom övriga pinnarna i port-B-registret DDRB.
Användarvisningsbild
JimmyAndersson
Inlägg: 26586
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Men då är allt lugnt. :)

Jag har ingen erfarenhet av AVR, men jag förstod i princip. Micke_N förstår nog mer. :)
Användarvisningsbild
Stinrew
Inlägg: 954
Blev medlem: 20 augusti 2006, 03:14:41
Ort: Motala
Kontakt:

Inlägg av Stinrew »

Tack Jimmy! Bra att du säger till, så att man inte skrämmer bort nya forumister. Det var ju givetvis inte min mening. :oops:
Användarvisningsbild
exile
EF Sponsor
Inlägg: 496
Blev medlem: 21 oktober 2005, 23:32:07

Inlägg av exile »

Om man tar raden längst upp, PUOE = Pull-up Override Enable.
Delvis om den är sann kan du inte med mjukvara ändra den.

Jag hoppas att det förklarar en del saker ^^
Micke_N
Inlägg: 26
Blev medlem: 23 oktober 2005, 20:53:53

Inlägg av Micke_N »

Tack för alla svar, ska testa CKSEL enligt Stinrew's tips och se vad som händer, jag sätter (redan) hela DDRB till utgång.

Jag tror jag läste någonstans i databladet att den interna oscillatorn var uppbyggd av en RC-krets och det var utifrån detta jag drog slutsatsen att det inte skulle fungera, eller åtminstone att allt blev motsägelsefullt. Man kanske inte borde läsa så mycket i databladet, blir mycket mindre information att blanda ihop då :roll:

Just nu vill då inte skrället programmera sig överhuvudtaget längre, efter lite trial and error med CKSEL har den hamnat i 128 kHz intern osc. med CKDIV 8 programmerad och dessutom med CLKPS3..0 till "1000" dvs ytterligare dividerad med 256 => långsamt (62,5 om jag räknat rätt)! Enligt databladet (kunde inte hålla mig från att läsa lite mer...) så är "Additional Delay from Reset" 14CK + 64 ms, dvs en mindre evighet, kan det vara detta som gör att programmeraren försöker skicka programmet innan Reset är klart eller något liknande?

Finns det någon inställning i avrdude som säger hur länge man ska vänta från det att Reset dragits låg tills programmeringen börjar? Använder icprog f.ö.
Användarvisningsbild
Stinrew
Inlägg: 954
Blev medlem: 20 augusti 2006, 03:14:41
Ort: Motala
Kontakt:

Inlägg av Stinrew »

När du programmerar flashen med vanlig lågspänning använder programmeraren ett ISP-interface. För att det ska fungera måste frekvensen på ISPn vara mindre än en fjärdedel av mikrokontrollerns arbetsfrekvens.
Micke_N
Inlägg: 26
Blev medlem: 23 oktober 2005, 20:53:53

Inlägg av Micke_N »

Tack för det, hade jag glömt. Hittade "-i" i avrdude men det blev ingen omedelbar framgång. Jag funderar på om någon/några delay(er) kan vara för kort(a)? Lite mer trial-and-error (mest det sista :roll:)

Kod: Markera allt

avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.
Micke_N
Inlägg: 26
Blev medlem: 23 oktober 2005, 20:53:53

Inlägg av Micke_N »

Jag kör följande rad:

Kod: Markera allt

avrdude -p m88 -P com1 -i 100000 -v -u -U lfuse:w:0x62:m
Får felet ovan hela tiden, :( någon som har en aning om varför? Reset dras låg när den ska och jag kan se att det verkligen händer något på mosi,miso,sck när den försöker nå programmet. Någon delay som är fel? I så fall vilken, jag tycker inte att avrdude.conf är särskilt lätt att begripa i detta fall eftersom man inte vet om det är ms eller us som ska anges i parametrarna.
Användarvisningsbild
Stinrew
Inlägg: 954
Blev medlem: 20 augusti 2006, 03:14:41
Ort: Motala
Kontakt:

Inlägg av Stinrew »

Vad är det för programmerare som du använder? STK500??
Skriv svar