SPI über 6Pol ISP Pin Atmega 88-->Atmega64

Gast #3641183
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
#3641225
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
Gast #3641320
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.