Forum: Mikrocontroller und Digitale Elektronik SPI über 6Pol ISP Pin Atmega 88-->Atmega64


von Ert (Gast)


Lesenswert?

Hallo,

Hoffe hier kann mir einer einen Tipp geben. Wenn nicht dient es auch zur 
Sammlung meiner Gedanken.  :-)

Ich habe hier mehrere Platinen mit dem Standard ISP-6Pin Port.

Nun soll sich doch noch der Atmega88 (Master) im ersten Schritt mit dem 
Atmega64 unterhalten.

Da ich ja dort schon den 6Pol Anschluss dran habe dachte ich an SPI.

Steht ja auch überall Three-Wire-Interface.

Der Master sendet auch schon fleißig alle 100msek 16 Bytes über den Bus.
Hierfür musste ich schon den SS auf high ziehen. Also schon 3Wire + 
1Pin...
Läuft aber :-)

 Der Slave SPI Interrrupt geht auch. Im datenregister stehen aber immer 
nur Nullen. Habe jetzt den Slave SS mit einer Kupferlackdrahtbrücke auf 
GND gezogen kommen aber immer nur Nullen aus dem Data-Register.

Brauche ich wirklich die SS(CS) Verbindung zwischen Master und Slave?
Also reichen SCK, MISO und MOSI vom ISP-Port nicht aus?

Muss evtl der Takt des Slave an den Mastertakt 'grob' angepasst werden?
(Habe hier einen Beitrag dazu gelesen, wobei Atmel ja schreibt das die 
dafür verantwortlichen Bits beim Slave keinen Effekt haben)

Darf ich den SPI Interrupt überhaupt die ganze Zeit anlassen? Auch in 
der Pause wo der Master keinen Clock ausgibt, oder verhaspelt sich da 
evtl etwas?

Gruß
Ert

von Sascha W. (sascha-w)


Lesenswert?

Ert schrieb:
> Hallo,
>
> Hoffe hier kann mir einer einen Tipp geben. Wenn nicht dient es auch zur
> Sammlung meiner Gedanken.  :-)
>
> Ich habe hier mehrere Platinen mit dem Standard ISP-6Pin Port.
ok
> Nun soll sich doch noch der Atmega88 (Master) im ersten Schritt mit dem
> Atmega64 unterhalten.
>
> Da ich ja dort schon den 6Pol Anschluss dran habe dachte ich an SPI.
du willst zwei Platinen mit Hilfe der ISP-Stecker verbinden?!

> Steht ja auch überall Three-Wire-Interface.
>
> Der Master sendet auch schon fleißig alle 100msek 16 Bytes über den Bus.
> Hierfür musste ich schon den SS auf high ziehen.
am Master musst du SS als Ausgang einstellen! Als Eingang und dann von 
aussen L-Pegel schaltet das SPI automatisch in den Slave-Modus!

> Also schon 3Wire +
> 1Pin...
> Läuft aber :-)
>
>  Der Slave SPI Interrrupt geht auch. Im datenregister stehen aber immer
> nur Nullen. Habe jetzt den Slave SS mit einer Kupferlackdrahtbrücke auf
> GND gezogen kommen aber immer nur Nullen aus dem Data-Register.
sollte eigentlich gehen

> Brauche ich wirklich die SS(CS) Verbindung zwischen Master und Slave?
> Also reichen SCK, MISO und MOSI vom ISP-Port nicht aus?
ohne SS hast du keine Syncronisation zwischen Master und Slave, d.h. der 
Slave weis nicht wo ein gesendetes Byte vom Master anfängt. Der Slave 
gibt dir nur brav alle 8-SCK-Takte ein Byte zurück.

> Muss evtl der Takt des Slave an den Mastertakt 'grob' angepasst werden?
> (Habe hier einen Beitrag dazu gelesen, wobei Atmel ja schreibt das die
> dafür verantwortlichen Bits beim Slave keinen Effekt haben)
damit stellst du am Master erst mal grundsätzlich die 
Übertragungsgeschwindigkeit ein, der Slave bekommt seinen Takt ja über 
SCK vom Master

> Darf ich den SPI Interrupt überhaupt die ganze Zeit anlassen? Auch in
> der Pause wo der Master keinen Clock ausgibt, oder verhaspelt sich da
> evtl etwas?
kannst du immer anlassen das ist kein Problem, aber ohne SS müsstest du 
dir schon was ala Timeout einfallen lassen damit sich schon mal von 
Anfang an nichts 'verhaspelt'.

Sascha

: Bearbeitet durch User
von Ert (Gast)


Lesenswert?

Ooooooooooooooooooo ASCHE AUF MEIN HAUPT

Es liegt natürlich an mir Dösbaddel!

Der Atmega64 wird ja nicht über SPI programmiert ARGGGGGG
sondern über PDI & PDO -.-

Und leider kann der Atmega kein SPI am USART wie der Atmega88 :-(

Ich werds mal mit Lötbrücken probieren....

Greez
Ert

von Sascha W. (sascha-w)


Lesenswert?

Ert schrieb:
> Ooooooooooooooooooo ASCHE AUF MEIN HAUPT
>
> Es liegt natürlich an mir Dösbaddel!
>
> Der Atmega64 wird ja nicht über SPI programmiert ARGGGGGG
> sondern über PDI & PDO -.-
dann ists wohl eher ein At_X_mega64

Sascha

von Ert (Gast)


Angehängte Dateien:

Lesenswert?

ne ein stinknormaler Atmega. Der Programming-SPI kann nur zum 
programmieren genutzt werden..

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.