Hallo Mikrocontroller-Forum-Gemeinde, ich habe gerade "ein Problem" mit der SPI-Programmierung (Flashen) von ATMega128 Controllern bei dem ich etwas nicht verstehe. Die Geschichte dazu: Ich baue gerade ein Gerät (rein aus Hobby und Neugierde), dessen Hardware rund um einen ATMega128AU basiert. Die Originalschaltung hat zum Flashen des Controllers einen 10-poligen JTAG-Stecker. Gleich vorweg mit dieser Schnittstelle kann ich über meinen Atmel-ICE im JTAG-Mode den Controller ansprechen (ID lesen, Löschen, Programmieren; Verify ...) TEIL A) Aus Interesse - und falls ich mal keinen JTAG-Programmer zur Verfügung habe - habe ich die Schaltung erweitert und um eine SPI-Schnittstelle ergänzt. Allerdings am Port B (also PB1 bis PB3). Und jetzt bitte nicht gleich drauf los wettern ;-), mittlerweile habe ich festgestellt, dass das eigentlich die falschen Pins sind. Auf jeden Fall kann ich hier mit meinem MK2-Clone den Controller nicht ansprechen. Ich muss jetzt das Layout ändern bzw. provisorisch anpassen, dass ich MOSI und MISO an Port E (PE0 und PE1) abnehmen kann. Anmerkung: Nach dem Umfädeln der SPI-Schnittstelle auf (PE0,PE1, PB1) kann ich den Controller ansprechen. Sogar ohne, dass ich vorher /PEN auf GND ziehe. (*) Hier ist ein ATMega128 AU mit Datecode 1051D verbaut! TEIL B) Ich habe eine andere ältere Schaltung, die auch mal in Serie gebaut wurde: Diese beruht auch auf einem ATMega128AU und hat eine SPI-Programmierschnittstelle. Diese sitz laut Schaltplan und auch laut Layout an Port B und zwar MISO an Pin 13 (PB3), MOSI an Pin 12 (PB2) und SCK an Pin 11 (PB1). Das seltsame ist: Ich kann den Controller auf dieser Platine mit meinem MK2 im SPI-Mode ansprechen (ID auslesen, Löschen ...). Sogar ohne, dass ich vorher /PEN auf GND ziehe. (*) Hier ist ein ATMega128 AU mit Datecode 0616 verbaut HINWEIS: Ich habe auch schon beide Beschaltungen verglichen und kann da keinen Unterschied finden. Außer in der Verwendung der Ports, - Vcc liegt jeweils an Pin 21 und 52 - GND liegt jeweils an Pin 22 und 53 - AVCC (Pin64) ist mit Vcc verbunden - AGND (Pin63) ist mit GND verbunden - ARef (Pin62) ist mit einem C abgeblockt - In beiden Schaltunen ist der Pin "/PEN" (Pin 1) über einen Pull Up mit Vcc verbunden. - Beide haben an Reset (Pin 20) ein RC-Glied (100k/100n) - beide haben ein Quarz (Pin 23/24) mit jeweils 22p gegen GND (aber wg. Fuses während ISP noch nicht aktiv) HAT DA JEMAND EIN ERKLÄRUNG DAFÜR? Gibt es vom ATMega128A zwei verschiedene Ausführungen ("Steppings") bezüglich der SPI Schnittstellte? Im www habe ich eine Info bezüglich des ATMEGA128 und dessen Nachfolger des ATMEGA128A gefunden. Aber da sind nur bestimmte elektrische Parameter unterschiedlich. Vielen Dank für eure Hilfe Gruß Robert - KEE4 - DATASHEET: ATMEGA128 (2467X–AVR–06/11) Page 301 ----------------------------------------------- To program and verify the ATmega128 in the SPI Serial Programming mode, the following sequence is recommended (See four byte instruction formats in Table 145): (*) 1. Power-up sequence: Apply power between V CC and GND while RESET and SCK are set to “0”. In some sys- tems, the programmer can not guarantee that SCK is held low during power-up. In this case, RESET must be given a positive pulse of at least two CPU clock cycles duration after SCK has been set to “0”. As an alternative to using the RESET signal, PEN can be held low during Power-on Reset while SCK is set to “0”. In this case, only the PEN value at Power-on Reset is important. If the programmer cannot guarantee that SCK is held low during power-up, the PEN method cannot be used. The device must be powered down in order to commence normal operation when using this method.
:
Bearbeitet durch User
Vielleicht diese M103 Kompatibilitäts-Fuse-Bit gesetzt?
Ich habe den Fehler gefunden: Es gabe zwei Schaltpläne mit dem selben Namen (ohne Versionierung) in einem war die ISP-Schnittstelle falsch beelgt (ISP an MISO/MOSI) im anderen war die ISP-Schittstelle richtig belegt (ISP an TxD und Rxd). Ich haber mit dem falschen Schaltplan gearbeitet, hatte aber die Hardware aus der richtigen Schaltung (auch ohne Versionierung) Daher lies sich er Controller auf dieser Schaltung flashen, weil ja MOSI/MISO mit RXT/TXD verbunden waren. Habe leider mehrere Abende gebraucht um das rauszufinden. ... - aeskulap.fdb -
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.