Hallo, ich habe ein kleines Problem mit dem HW SPI vom AT90S8535, ich kann mit dem folgenden programm keinen wert über den SPI port schicken und irgenwie finde ich den fehler nicht. Master Mode --> bit 4=1 SPI EN --> bit6 =1 CLK/16 --> bit0 =1 aus dem pin CLK (PB5) und MOSI (PB5) kommt irgenwie kein Signal raus. den slave baustein habe ich nur mit CLK, CS, und Mosi verbunden. Danke Sebastian ;**B** ldi r16,0b01000000 ;Load 00(hex) into the register file r16 out DDRB,r16 ;PORT B as out/input Direction Register ldi r16,0 out PINB,r16 ;schreibe ins eingangsregister $00 SPI_Init: ldi temp0,0b01010001 ;spi status register out SPCR,temp0 MAX528_init: cbi spsr,spif cbi PORTB,0 ;EN CHIP ldi temp0,0 out SPDR,temp0 ;set DAC in setup mode MAX528_init_1: sbis spsr,spif rjmp MAX528_init_1 cbi spsr,spif ldi temp0,0b10110110 out SPDR,temp0 ;set Value DAC in setup mode MAX528_init_2: sbis spsr,spif rjmp MAX528_init_2 sbi PORTB,0 ;dis chip nop nop
Hi! ich beschäftige mich auch gerade mit dem SPI, hab allerdings noch nicht viel erreicht, da Zeitmangel. Lediglich ein Beispielcode aus dem Netz (siehe Anhang, für 8515) hab ich im AVRStudio4 im Debugger laufen lassen. Aber soweit ich das sehe, müßte Dein Code soweit ok sein. Allerdings steht in Deinem Code kein Befehl, der die SPI-Schnittstelle zu arbeiten beginnen läßt. Nach den beiden Zeilen Deiner SPI_Init -Routine fehlt noch sowas wie: ldi temp,0B10011001 out spdr,temp Denn erst nach dem Schreiben in das SPI-Data-Register (spdr) fängt der uC auch an, was zu übertragen. Gruß, Andi
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.