Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] SPI und ISP in einer Schaltung von zwei AtMegas
Hallo Zusammen,
ich habe in der beiliegenden Schaltung das Problem,
das ich an den zweiten Atmega 8 über ISP nur ran komme,
wenn ich den atmega644 das flash lösche.
Derzeit weiss ich auch nur, das der atmega644 arbeitet. Ob der atmega8 seine Arbeit
aufnimmt, muss ich noch prüfen.
Kann man dieses Verhalten auch per Software steuern oder wo ist der Hardware-Fehler.
Abschalten der SPI Schnittstelle am Master (Atmega644) hat nicht funktioniert.
Gruss R.
Hey,
da erkennt man leider nichts, da das Bild zu klein ist.
Hallo Kampi,
da hast Du wohl recht. Ich habe jetzt eine PDF Datei hochgeladen, welche den Schaltplan komplett in einer besseren Auflösung zeigt.
Gruss R.
Guten Morgen Ritchie,
ich habe mir den Schaltplan nicht angeschaut, hatte aber letzte Woche auch ein Projekt mit SPI-Kommunikation und gleichzeitiger programmierung zweier Atmels an der gleichen ISP-Schnittstelle. Die Lösung ist den Reset der Atmels schaltbar zu machen. Du schaltest dann nur den Reset des Atmels auf den ISP-Bus, der auch programmiert werden soll.
Zusätzlich solltest du die Reset-Leitung des ISP-Programmers noch auf einen Eingang des anderen Controllers legen, damit der weiß, dass programmiert wird und nicht irgendeinen Quatsch mit den empfangenen Daten macht. Am besten die Pins dann auch als Eingang schalten um die Programmierung nicht zu stören.
Viele Grüße
Andreas
Hallo Andreas,
das mit dem Reset habe ich bereits gemacht.
Ein Test hat jetzt auch ergeben, das der zweite Amtel korrekt arbeitet. Nur die Kommunikation via SPI scheint noch nicht zu arbeiten. Dies habe ich via Interrupt gemacht.
Das mit den Signalen (MOSI / SCK) auf Eingänge setzen macht Sinn. Das werde ich als nächstes ausprobieren.
Welche Freq. hast Du zwischen Deinen beiden Controller gewählt?
Gruss R.
Hallo Ritchie,
bei mir kam es nicht auf Geschwindigkeit an. Mein "Master" war ein Tiny25 mit 1MHz internem Clock. Da der Tiny keinen SPI-Master in Hardware implementiert hatte musste ich den Clock per Software erzeugen. Ich denke da ist irgendwas <250kHz rausgekommen.
Was mir gerade noch eingefallen ist: Der Bus war nach dem Programmieren aus dem Takt. Das heißt die Bits der Bytes waren nicht mehr an der richtigen Position. Durch den zusätzlichen Eingang der Reset-Leitung konnte ich deshalb das ISP-Zählregister nachdem der Reset-Pin wieder auf Hight gegangen ist auf 0 setzen damit die Bits wieder an die richtige Position geschoben werden.
Viele Grüße
Andreas
Hallo Andreas,
Dein Tip war Gold wert. Jetzt habe ich via ISP auf bei Zugriff. Mit einem Schalter, welchen ich ja bereits vorher hatte, kann ich den Reset jeweils umschalten.
Nur die SPI Schnittstelle will noch nicht, aber das ist ein anderes Thema.
Gruss R.
Dann benutze noch meinen zweiten Tipp, bei mir war es das gleiche. Vermurkste Daten nach der Programmierung.
Zumindest beim SPI-Slave musst du nachdem der Reset wieder auf Hight geht den 4-Bit-SPI-Counter im Status-Register manuell auf 0 setzen. Dann sollte es klappen.
Hallo Andreas,
soweit bin ich noch garnicht. Mein Master scheint generell noch nicht zu arbeiten. SCK fehlt z.B.
Gruss R.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.