Forum: Mikrocontroller und Digitale Elektronik Spi Unterschied m8 & m32


von Alex (Gast)


Lesenswert?

Hallo.
Ich habe hier ein Programm, dass auf dem m8 stabil läuft.

Jetzt wollte ich das erweitern, aber der Flash reicht nicht aus.
Habe nun das Ganze auf den m32 übertragen.
Verlötet habe ich mich nicht.

Im Programm habe ich ausser µC (von m8 auf m32) nichts verändert.
Restlichen Pins habe ich als Ausgang konfiguriert.


Die SPI (hardware) Kommunikation mit dem Peripherie Chip haut nicht 
immer hin.
Mit Glück versteht der Externe Chip den m32 paar mal, und das war es 
auch schon.

Weiss Jemand, ob es zwischen den beiden µC Unterschiede beim SPI gibt?

Danke
Gruss Alex

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Ja, das Programm muss man schon auf den neuen Prozessor compilieren.
Das SPI Interface ist genauso zu benutzen.

Grüße,

Peter

von Alex (Gast)


Lesenswert?

>Das SPI Interface ist genauso zu benutzen

Bin ich auch der Meinung, aber irgendwie will das Ganze nicht.

Macht jetzt echt wenig Sinn den Code hier zu Posten, weil es so gross 
ist, dass er auf den mega8 kaum passt.
Ausserdem werde ich zu viel Zeit brauchen, um zu erklären, was das 
überhaupt ist.

Ein einziger Unterschied in der Hardware gubt es aber:
Die CS Leitung geht beim m8 auf PD4 und beim m32 auf PB4 (Slave select 
pin for using with spi).

Wurde im Programm natürlich berücksichtigt.

Kann doch daran nicht liegen, oder?

Gruss Alex

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Doch, genau daran liegt es. Der SS Pin muss ein Ausgang sein, damit der 
SPI als Master funktioniert. Ist er ein Eingang, kann damit auf 
Slavebetrieb umgeschaltet werden. Das passiert, wenn dort kein 
definierter Pegel anliegt.

Grüße,

Peter

von Alex (Gast)


Lesenswert?

Also laut pin definition, ist der SS pin als Ausganz konfiguriert.
Wenn ich mit dem Oszi nachschaue, dann wird der Pin auf LOW gezogen, 
wenn ich sende.
Das SCHEINT zu funktionieren.
Danke

von Karl H. (kbuchegg)


Lesenswert?

Was ich tun würde:

Ich würde erst mal mein Programm zur Seite legen und mit den 
Basisfunktionen am M32 anfangen, die Dinge durchzuprobieren. Sinn der 
Sache: rausfinden, und zwar unabhängig von allem anderen, ob und wo es 
Unterschiede gibt, die im Code nicht berücksichtigt sind. Wenn du dein 
ganzes Programm in einem Rutsch draufspielst und nichts geht, hast du 
viel zu viele 'Baustellen' die allesamt die Übeltäter sein können.

von Alex (Gast)


Lesenswert?

Habe den Fehler gefunden.
Die Leitung, die zum Reset des externen Chips geht war abgerissen.
Jetzt geht wieder alles :)
Danke schön.
Schönen Abend noch
Gruss Alex

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.