B
benag6
Guest
Ciao amici,
Ho due dubbi per quanto riguarda
1.interfacing eeprom interfaccia esterna.
Se ext.eeprom (per esempio AT24c04) è collegato direttamente al Atmega16 con 10k corretto tirare fino resistenza, non sono sempre il corretto canale di flusso di dati e, di conseguenza, il trasferimento dei dati non avviene, ma quando ho cambiato volatge da Vcc (5v ) a 3.3V è worked.why?2.Ho il seguente subroutine di conoscere il lavoro spi.
Qui di seguito è una subroutine parte di interfaccia a 4 fili:
Non si tratta di lavoro.Chiunque può trovare ogni difetto di essa.Mi piace anche sapere di eventuali valori precisi volatge deve essere somministrato a din e dout pin.
mi suggeriscono idee, vista.
nakkeeran
/ / per conoscere il programma di lavoro del trasferimento dei dati utilizzando SPI.
. includere "m16def.inc"
. def temp = R16
. def temp1 = R17
. def dati R19 =
. sclk equ = 7; PB7 pin
. equ cs = 4; PB4 pin
. erysandoval equ = 5; PB5 pin
. miso equ = 6; PB6 pin
. cseg
. org $ 0jmp reset
Reti
Reset:
LDI temp1, bassa (ramend)
fuori spl, temp1; lowbyte fissato per sp
LDI temp1, alta (ramend)
SPH fuori, temp1; highbyte fissato per sp
LDI temp, 0xff;
fuori DDRC, temp
fuori DDRA, temp
DDRR out, temp
checkingSPI:
init_spi:
LDI temp, 0xb0; direzione di impostazioni portB.
fuori DDRB, temp;
LDI temp, 0x70; iniziale porta impulsi ad alta
fuori portb, temp;
LDI temp, $ 55; reg controllo è fissato per il calo bordi.quindi cpha = 1.
fuori spcr, temp
writecmd_spi:
LDI dati, $ 8; questo è l'indirizzo dove i dati devono essere conservati, anche 7 bit per consentire scrivere.
cbi portb, 4; cs = bassa
Spdr fuori,
i dati
intrpflag:
sbis spsr, spif
rjmp intrpflag
chiamata w_16ms
writedata_spi:
cbi PORTB, 4
LDI dati, $ 33; si tratta di dati
Spdr fuori,
i dati
getintrpflag:
sbis spsr, spif
rjmp getintrpflag
sbi PORTB, 4; / / set bit chipselect
readcmd_spi:; questa è la lettura dei dati di routine.
LDI dati, $ 0a; questa è la lettura dei dati indirizzo, qui 0 a 7 bit viene letto attivare.
cbi portb, 4
Spdr fuori,
i dati
getintrflag:
sbis spsr, spif
rjmp getintrflag
chiamata w_16ms
read_data_spi:
cbi PORTB, 4
LDI dati, $ 51; alcuni grezzi valore.
Spdr fuori,
i dati
getintr4:
sbis spsr, spif
rjmp getintr4
dei dati, Spdr
fuori PORTD, dati; visualizzare i dati qui SHD essere $ 33.
REP: rjmp rep
Ho due dubbi per quanto riguarda
1.interfacing eeprom interfaccia esterna.
Se ext.eeprom (per esempio AT24c04) è collegato direttamente al Atmega16 con 10k corretto tirare fino resistenza, non sono sempre il corretto canale di flusso di dati e, di conseguenza, il trasferimento dei dati non avviene, ma quando ho cambiato volatge da Vcc (5v ) a 3.3V è worked.why?2.Ho il seguente subroutine di conoscere il lavoro spi.
Qui di seguito è una subroutine parte di interfaccia a 4 fili:
Non si tratta di lavoro.Chiunque può trovare ogni difetto di essa.Mi piace anche sapere di eventuali valori precisi volatge deve essere somministrato a din e dout pin.
mi suggeriscono idee, vista.
nakkeeran
/ / per conoscere il programma di lavoro del trasferimento dei dati utilizzando SPI.
. includere "m16def.inc"
. def temp = R16
. def temp1 = R17
. def dati R19 =
. sclk equ = 7; PB7 pin
. equ cs = 4; PB4 pin
. erysandoval equ = 5; PB5 pin
. miso equ = 6; PB6 pin
. cseg
. org $ 0jmp reset
Reti
Reset:
LDI temp1, bassa (ramend)
fuori spl, temp1; lowbyte fissato per sp
LDI temp1, alta (ramend)
SPH fuori, temp1; highbyte fissato per sp
LDI temp, 0xff;
fuori DDRC, temp
fuori DDRA, temp
DDRR out, temp
checkingSPI:
init_spi:
LDI temp, 0xb0; direzione di impostazioni portB.
fuori DDRB, temp;
LDI temp, 0x70; iniziale porta impulsi ad alta
fuori portb, temp;
LDI temp, $ 55; reg controllo è fissato per il calo bordi.quindi cpha = 1.
fuori spcr, temp
writecmd_spi:
LDI dati, $ 8; questo è l'indirizzo dove i dati devono essere conservati, anche 7 bit per consentire scrivere.
cbi portb, 4; cs = bassa
Spdr fuori,
i dati
intrpflag:
sbis spsr, spif
rjmp intrpflag
chiamata w_16ms
writedata_spi:
cbi PORTB, 4
LDI dati, $ 33; si tratta di dati
Spdr fuori,
i dati
getintrpflag:
sbis spsr, spif
rjmp getintrpflag
sbi PORTB, 4; / / set bit chipselect
readcmd_spi:; questa è la lettura dei dati di routine.
LDI dati, $ 0a; questa è la lettura dei dati indirizzo, qui 0 a 7 bit viene letto attivare.
cbi portb, 4
Spdr fuori,
i dati
getintrflag:
sbis spsr, spif
rjmp getintrflag
chiamata w_16ms
read_data_spi:
cbi PORTB, 4
LDI dati, $ 51; alcuni grezzi valore.
Spdr fuori,
i dati
getintr4:
sbis spsr, spif
rjmp getintr4
dei dati, Spdr
fuori PORTD, dati; visualizzare i dati qui SHD essere $ 33.
REP: rjmp rep