hur skall jag koppla in

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Jonaz
Inlägg: 2358
Blev medlem: 4 november 2003, 22:06:33
Ort: Huddinge

hur skall jag koppla in

Inlägg av Jonaz »

denna program snutt är från avrfreaks och är gjord för en 8515, men jag har en 2313, är det något man måste ändra i koden?

Var skall jag koppla in led'en? plus på vcc och den andra?
Samt är det bara att koppla in batteriet sen så skall den gå eller?


;My Very First AVR Project

.include "2313def.inc" ;Includes the 8515 definitions file

.def Temp = R16 ;Gives "Defines" Register R16 the name Temp

.org 0x0000 ;Places the following code from address 0x0000
rjmp RESET ;Take a Relative Jump to the RESET Label

RESET: ;Reset Label
ldi Temp, 0xFF ;Store 255 in R16 (Since we have defined R16 = Temp)
out DDRB, Temp ;Store this value in The PORTB Data direction Register

Loop: ;Loop Label
out PORTB, Temp ;Write all highs (255 decimal) to PORTB
dec Temp ;Decrement R16 (Temp)
rjmp Loop ;Take a relative jump to the Loop label
Användarvisningsbild
Xyzzy
Inlägg: 1260
Blev medlem: 30 januari 2004, 22:31:07
Ort: Uppsala, Sweden

Inlägg av Xyzzy »

Vad ska den göra? (om jag förstått programmet rätt ska 8 LEDar "räknas ner" binärt, isf behöver du 8 LEDar (+ seriemotstånd), kopplade till varsin pinne på PORTB)
Sannolikt behövs en kristall och 2 kondensatorer eller en resonator... (om den inte har intärn oscillator, vilket inte 2313 har... om jag inte minns fel

Det smidiga med AVR är att de flesta adresser har samma namn i de olika modellerna (till skillnad från ej namngivna konkurrenter), så koden det bör fungera (bara du ändrar till '.include "2313def.inc"' och det har du ju redan...
Användarvisningsbild
Jonaz
Inlägg: 2358
Blev medlem: 4 november 2003, 22:06:33
Ort: Huddinge

Inlägg av Jonaz »

Jag provade nu med en LED men den bara lyser.
Användarvisningsbild
Xyzzy
Inlägg: 1260
Blev medlem: 30 januari 2004, 22:31:07
Ort: Uppsala, Sweden

Inlägg av Xyzzy »

Ok, hur kopplade du alltihopa? Oscillatorfrekvens?
är det inte så bara att du inte hinner se att den blinkar?
Användarvisningsbild
Jonaz
Inlägg: 2358
Blev medlem: 4 november 2003, 22:06:33
Ort: Huddinge

Inlägg av Jonaz »

LED till GND och en + till PB0
4,4Mhz. jag har visserligen inget motstånd in kopplat.
Användarvisningsbild
Xyzzy
Inlägg: 1260
Blev medlem: 30 januari 2004, 22:31:07
Ort: Uppsala, Sweden

Inlägg av Xyzzy »

hmm, koppla in ett motstånd (synd att bränna utgången!)
Har du kopplat reset på AVRen till Vcc (ev. via motstånd)?
Användarvisningsbild
Jonaz
Inlägg: 2358
Blev medlem: 4 november 2003, 22:06:33
Ort: Huddinge

Inlägg av Jonaz »

nej det har jag inte gjort. är det det som kan vara problemet?
hittade just denna.
Skall sätta dit ett 120Ohm motstånd.
Bild
Användarvisningsbild
Xyzzy
Inlägg: 1260
Blev medlem: 30 januari 2004, 22:31:07
Ort: Uppsala, Sweden

Inlägg av Xyzzy »

Javisst, du måste lägga RESET hög för att få AVRen att köra sitt program
Användarvisningsbild
Jonaz
Inlägg: 2358
Blev medlem: 4 november 2003, 22:06:33
Ort: Huddinge

Inlägg av Jonaz »

kondingen där, hur mycket kan mycket exact måste det vara? har en på 22uF eller är den för stor?
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

en är mycket skumt kopplad. Ska inte Reset ha 5v precis som PIC?

Koppla 10µF kondingen mellan jord och 5v direkt och sedan ett ca 10k motstånd från 5v till RST. 10µF kondingen stabiliserar spänningen så det går bra med en på 22µF.

Det känns som att det fattas en wait i det där programmet. Eftersom AVR utför en instruktion varje klockcykel (visst var det så? Eller är det varannan?) så blinkar den där ca 1 miljon gånger varje sekund. Jag vet inte riktigt hur man gör en väntrutin i AVR men det lär finnas någon instruktion typ: Räkna ner ett, skippa nästa om den är noll.

Exempel:
wait:
ldi temp2, 0xff
loop2:
ldi temp3, 0xff
loop1:
dec temp3 skippa om 0
rjmp loop1
dec temp2 skippa om 0
rjmp loop2
return

detta blir alltså en subrutin som man får kalla i looprutinen. Vet inte vad kommandot är för det. Tror inte det är gosub precis.
Användarvisningsbild
Jonaz
Inlägg: 2358
Blev medlem: 4 november 2003, 22:06:33
Ort: Huddinge

Inlägg av Jonaz »

hmm kopplade enligt schemat. men nu lyser den inte alls. inte på någon port. har bara satt ett motstånd på en port med en LED. har jag lyckats bränt utgångarna?
Användarvisningsbild
erixon
Inlägg: 380
Blev medlem: 27 augusti 2003, 10:21:58

Inlägg av erixon »

Byte plats på R2 och C3 annars är kretsen i reset mode hela tiden .....
Användarvisningsbild
Jonaz
Inlägg: 2358
Blev medlem: 4 november 2003, 22:06:33
Ort: Huddinge

Inlägg av Jonaz »

ok skall prova det efter helgen
frejo
Inlägg: 496
Blev medlem: 21 april 2004, 21:43:01
Ort: Linköping

Inlägg av frejo »

Kändes onödigt att starta en ny tråd för denna fråga.

Vad gör dioden som sitter vid resetingången på följande ritning?
Är kondensatorn och spolen vid VCC nödvändiga? va gör dom?
Motståndet vid AVCC, är det verkligen 10 Ohm?
www.ere.co.th/data/document/EMBMEGA32_SCH.pdf
Användarvisningsbild
Xyzzy
Inlägg: 1260
Blev medlem: 30 januari 2004, 22:31:07
Ort: Uppsala, Sweden

Inlägg av Xyzzy »

Skulle tro att dioden sitter där för att skydda Reset-ingången, den tål max +5V (ungefär) och skulle det komma in en högre spänning än +5V på RES så leds den till matningen, alltså en nödvändig, men smidig om man labbar

Spolen och 0,01uF-kondensatorn är till för att filtrera bort spikar på matningen, 4,7uF-kondingen är där för att stabilisera matningen.

Det bör vara väldigt lite, men jag har för mig att Atmel rekomenderar en drossel (spole) där istället (kolla i databladet, där står vad de rekomenderar för komponenter)
Skriv svar