Forum: Mikrocontroller und Digitale Elektronik AVR ISP Protokoll


von ???? (Gast)


Lesenswert?

Also ich wollte mir einen ISP bauen (wohl mit m8) der dieses nicht wie 
in der atmel appnote über Soft-Spi sondern über Hardware-SPI 
macht.Eigentlich müsste das doch mit dem SPI in der 
Standartkonfiguration gehen nur irgendwie klappts beimir nicht so ganz 
ich kann zwar daten senden bekomme aber nichts zurück bzw im SPDR ist 
lediglich 255 nachdem ich versucht habe die signature bytes(tiny2313) 
auszulesen mit (0xAC,0x53,0x00,0x00; 0x30,0x00,0x00) aber wenn ich 
danach kurz warte und dann SPDR auslese steht dort lediglich FF hat 
jemand ne Ahnung was ich falsch mache.

von Pingeliger (Gast)


Lesenswert?

> jemand ne Ahnung was ich falsch mache.

Klar:

Du schreibst Standard mit "t".
Du fabrizierst ellenlange Monstersätze ohne vernünftige Interpunktion.

von ???? (Gast)


Lesenswert?

Ok das mit der Interpunktion ist sone Sache(tut aber nichts zum Thema) 
aber irgendwie war mir halt grad nicht nach Punkten. Aber hat denn vlt. 
jemand ne Ahnung ob meine Commands stimmen oder ob ich da was übersehen 
habe?

von holger (Gast)


Lesenswert?

Wer sich keine Mühe gibt einen Text vernünftig zu schreiben, sollte
besser kein Programmierer werden.

Aber ich geb dir einen Tip:
Sende noch eine Null mehr und lies dann SPDR.

von ???? (Gast)


Lesenswert?

Danke für den Tip doch möchte ich anmerken das man als Programierer 
keine ganzen zusammenhängenden Sätze schreiben muss sondern lediglich 
Befehle bei denen es entsprechend der Sprache mehr oder weniger 
Interpunktion gibt

von ???? (Gast)


Lesenswert?

sorry Punkt vergessen.

von Matthias L. (Gast)


Lesenswert?

Aber wenn besagter Programmierer dann Hilfe haben möchte schon ;-)

von ???? (Gast)


Lesenswert?

Also ich habe jetzt versucht eine Null mehr zu senden, leider ohne 
Erfolg ich bekomme trotzdem wieder nur 255.

von ?????? (Gast)


Lesenswert?

Ich habe ganz vergessen mal meinen Code zu posten:
ldi temp,0xAC
rcall spiout
ldi temp,0x53
rcall spiout
ldi temp,0x00
rcall spiout
ldi temp,0x00
rcall spiout
ldi temp,0x30
rcall spiout
ldi temp,0x00
rcall spiout
ldi temp,0x00
rcall spiout
ldi temp,0x00
rcall spiout
rcall spiin
rcall serout
spiout:
out spdr,temp
ret
SPIin:
sbis SPSR,SPIF
rjmp spiin
in r16,SPDR
ret
serout:
        sbis UCSRA,UDRE
        rjmp serout
        out UDR, r16
ret

von holger (Gast)


Lesenswert?

Das hier musst du bei jedem rcall spiout machen:

rcall spiout
rcall spiin

Sonst schreibst du ins SPDR bevor die alten Daten
gesendet werden konnten.

von ???? (Gast)


Lesenswert?

Ich habe jetzt in meine spiout routine ein sbis SPSR,SPIF eingefügt wies 
auch im BEispiel im Datenblatt steht aber es funktioniert irgendwie 
immernoch nicht..

von Andreas L. (drewle)


Lesenswert?

Hallo,
ich bein gerade auf der Suche nach dem Datenblatt, welches oben 
beschrieben wurde.
Ich möchte eine AVR über SPI programmieren. Wo finde ich eine Übersicht 
über die Kommandos, welche ich an den AVR schicken muss.

Drew

Ps.: ich hoffe, dass mir jemand weiterhelfen kann, auch wenn hier schon 
lang niemand mehr geantwortet hat.

von Christian U. (z0m3ie)


Lesenswert?

Ist in JEDEM Datenblatt der AVR´s beschrieben.

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
Noch kein Account? Hier anmelden.