Dobry den, mel bych jeden (blby) dotaz.
Jak mam spustit jiz naprogramovany ATtiny2313 (bez pouziti PC) ?
dekuji
administrator: přejmenováno z "Sepnuti mikrokontroleru"
Dobry den, mel bych jeden (blby) dotaz.
Jak mam spustit jiz naprogramovany ATtiny2313 (bez pouziti PC) ?
dekuji
administrator: přejmenováno z "Sepnuti mikrokontroleru"
Co třeba ho připojit k napájeni? A jesli je nastaven pro použití krystalu, bude nezbytné ho také připojit. Procesor má vnitřní POR (power on reset), takže další obvody, pokud nejsou vyžádovány programem, procesor nepotřebuje.
krystal mam a napajene to je taky a nechce se tomu nic delat…
Co ten program má dělat(+ zdroják)? jak je to zapojené(+ schéma)?
reknu to takhle… jde mi zatim jen o to, aby se na jakemkoliv z pinu PORTu D (2,3,6,7,8,9,11) rozsvitila dioda u ktere mam zapojene minus na GND pinu (10)
Zapojení vypadá vpořádku. Jak máš nastavené fuses a jak vypadá program(zdroják)?
zdrojaku mam uz hodne (delam to assemblerem a zkousel jsem - “mov $12, #10101010B” pak “SBI PORTD.6, 1” + nejake stazene co by mely rozblikat vystup PD6)… akorat nevim co je fuses
Nezapomeň ješte nastavit funkci portu - jesli je vstupní nebo výstupní. Na to je registr DDRx, kde x je písmeno portu.
Pokud nevíš, co jsou fuses, tak pravděpodobně ani nepotřebuješ krystal Procesor je totiž z výroby nastaven na interní RC oscilátor s výslednou frekvencí pro jádro 1MHz.
Právě pomocí fuses se nastavují některé vlastnosti procesoru jako je zdroj hodin. Jesli jsi s nimi nemanipuloval, měl by ti procesor fungovat.
Nezapomeň si mezi napájení a zem dát kondik kolem 100nF co nejblíže mcu.
Pokud je ovšem mcu naprogramovaný funkčním programem, tak musí po připojení napájení běžet.
tak ja teda fakt nevim… v assembleru mam tento kod
SBI DDRD,6
L1: SBI PORTD,6
NOP
NOP
NOP
NOP
NOP
NOP
NOP
CBI PORTD,6
NOP
NOP
NOP
NOP
NOP
NOP
NOP
JMP L1
v simulatoru AVR Simulator IDE mi to jede a krasne to blika, a kdyz to nahraju na attinu tak to sviti… a ted nevim jestli to je moc rychlym blikanim nebo jen chyba…
PS: spustil jsem to tim, ze jsem dal napajeni i na reset. Je to spravne?
aha ted mi to doslo… podle vypoctu to blika 500 000 X za Sekundu…
jak tam mam udelat prodlevu treba 1 sekundu?
Za vse dekuji, jiz je vse vyreseno.
SBI DDRD,6
L1: SBI PORTD,6
JMP delay1
L2: CBI PORTD,6
JMP delay2
delay1: INC R0
NOP
NOP
NOP
NOP
CPSE R0,R1
JMP delay1
CLR R0
INC R2
CPSE R2,R1
JMP delay1
JMP L2
delay2: INC R0
NOP
NOP
NOP
NOP
CPSE R0,R1
JMP delay2
CLR R0
INC R2
CPSE R2,R1
JMP delay2
JMP L1
po pripojeni napajeni na reset (1) se zapne a funguje.
V asm nepíšu, tak buďte prosím tolerantní
[code].include “tn2313def.inc”
.def temp = r16
.cseg
rjmp RESET ;reset handle
RESET:
ldi temp,low(RAMEND)
out SPL,temp
; ldi temp,high(RAMEND)
; out SPH,temp ;init Stack
SBI DDRD,6
ldi temp,2
main:
// writing a logic one to a bit in the PINx Register, will
// result in a toggle in the corresponding bit in the Data Register.
SBI PIND,6
rcall delay
rjmp main
;********************************************
; 1 průběh trvá 197386 IC
; temp určuje, kolik průběhů bude provedeno
;********************************************
delay:
push r0
push r1
push r2
mov r2, temp
loop2:
clr r1
loop1:
clr r0
loop0:
dec r0
brbc 1, loop0
dec r1
brbc 1, loop1
dec r2
brbc 1, loop2
pop r2
pop r1
pop r0
ret
[/code]
Tak podle datasheetu u vsech (teda myslim ze u vsech AVR) je /reset takze negace. to znamena ze U ATTINY 2313, ATMEGA 32 atd mikrac bezi kdyz je na pinu /RESET log 1