PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mega128 will nicht :(



Dani-Bruchflieger
10.02.2006, 16:11
Hi,

ich hab mir mal für meinen Mega128 eine kleine Platine gebastelt, und den da draufgelötet. Als ich ihn dann mit meinem AVR910 Programmer und AVR-Prog ansprechen wollte, reagiert er aber nicht. - jedenfalls, wenn ich bei AVR-Prog unten neben Device auf Advanced... klicke wird als Devicesignatur nur FFFFFF angezeigt und als Calibrationbyte 0xFF - auch bei den Fuses ist kein haken etc - read ergibt auch keine Veränderung - wenn ich was schreiben will, werden die nicht gespeichert.
Hier mal ein Bild des Platinenlayouts:
Erläuterung:
Ganz unten der AVR6pol. ISP mit Belegung von Mitte nach außen: VCC; GND; Reset; SCK; Miso; Mosi
Daneben Platz für einen Externen Quartz mit den Kondensatoren in SMD0805 und Oben über dem Prozzi ist Platz für 2 SMD-Kondensatoren 0805 100nF für VCC-GND und AREF-GND.
Alle Pins des µC sind auf Stiftleisten herausgeführt, damit die Platine in andere Schaltungen eingesockelt werden kann, oder eben als Bastel und Probierboard...
Die Platine hab ich schon mehrfach durchgeleuchtet und auch durchgeklingelt eigentlich sollte alles laufen, aber vielleicht hab ich doch was übersehen... Im Moment hab ich allerdings die Kondensatoren noch nicht bestückt, da ich noch keine SMDs da habe - aber sollte es wirklich daran liegen? - meine anderen AVR laufen alle Problemlos auf meinen Bastelboard mit der gleichen Spannungsversorgung ohne den 100nF Kondensator...

Pascal
10.02.2006, 16:18
Hast du die Pins für den ISP am AVR an MISO, MOSI und SCK angeschlossen?
Beim ATMega128 sind die Pins für ISP nicht identisch mit den Pins für SPI. Welche Pins du dann verwenden musst, weiß ich nicht auswendig, das steht aber im Datenblatt.

Dani-Bruchflieger
10.02.2006, 16:53
Hi,

Nun ich habe sie an die Pins, die im Datenblatt gleich auf Seite 2 als SCK Miso und Mosi bezeichnet wurden.



Edit:
Ahh habs gefunden ganz versteckt auf Seite 303 stehts in einer Tabelle - SCK ist SCK PortB.1; Miso = PDO PortE.1; Mosi = PDI PortE.0

Mist - da muß ich ja nochmal total umändern - naja, dann werd ich mal ein paar Drähte anlöten und nochmal testen...


Edit 2: Jippih - jetzt funzt es!

chr-mt
10.02.2006, 19:35
Hi,
ja, das ist echt gemein.
Sowas hätte Atmel ja auch auf die erste Seite im Datenblatt schreiben
können. Aber nee, Seite 303.
Im "kleinen" Datasheet steht's gar nicht drin.
Ich wäre auch fast drauf reingefallen, hab's aber glücklicherweise vorher im MCS-Forum gelesen.

Gruß
Christopher

bertl100
11.02.2006, 00:45
Stimmt nicht!!!!

Die ISP-Pins sind meim Mega128 an TXD und RXD!!!!!!
Nicht wie bei den anderen AVR auf MOSI und MISO!!!

MFG

Bertl

Ratber
11.02.2006, 04:46
Stimmt nicht!!!!

Die ISP-Pins sind meim Mega128 an TXD und RXD!!!!!!
Nicht wie bei den anderen AVR auf MOSI und MISO!!!

MFG

Bertl

Was stimmt nicht ?

Bruchflieger hats doch schon richtig.


Zitat:


- SCK ist SCK PortB.1; Miso = PDO PortE.1; Mosi = PDI PortE.0

Das ist völlig korrekt.


@Bruchflieger

Hast du dich schon um den 103er Modus gekümmert ?

darwin.nuernberg
11.02.2006, 07:40
Ich habe ein ähnliche Problem,
muss gleich mal nachsehen, ob ich den geleichen Fehler gemacht habe...
Dachte schon es liegt am /PE (Programm enable), dies sollte aber nicht der Fall sein, wie ich bereits erfahren habe.

EDIT: Tja scheint eindeutig zu sein... Ich habe genau den gleiche Fehler gemacht und die SPI anstelle der ISP Schnittstelle genuzt, klar dass dann Bascom und PonyProg den AVR nicht erkennt. So jezt kann ich ja getrost mein neues Projekt angehen (verrate ich noch nicht, aber wenn es was wird und das ist noch nicht raus, dann wird es bestimmt in die Hitliste kommen)

Wozu braucht man den /PE eigentlich wenn nicht zum "flashen"?


(vor vier Tagen habe ich dann den AVR wieder ausgeblötet, schweinearbeit)

Ratber
11.02.2006, 08:54
Der ist auch zum Flashen da. (Siehe Figure 22).

darwin.nuernberg
11.02.2006, 09:15
PAGE 7: PEN is a programming enable pin for the SPI Serial Programming mode, and is internally
pulled high . By holding this pin low during a Power-on Reset, the device will enter
the SPI Serial Programming mode. PEN has no function during normal operation.


TABLE 106: Programming enable (observe only)

PAGE 304: As an alternative to using the RESET signal, PEN can be held low during Poweron
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.


Da steht aber wieder SPI und nicht ISP.

Irgendjemand hier im Netz hat mit mitgeteilt, dass der /PEN zum flashen nicht nötig sei....


Wie denn, wo denn, was denn???

Hast Du eine eindeutige (praxiserprobte) Übersetzung der "how to",
ich meine was ist letztendlich der state des PEN zum flashen?

Soll der im Einschaltmoment LOW sein/werden (kann der auf LOW bleiben ?) dann dürfte ein Jumper ja reichen, oder über den ISP auslösen (wie ?)

Ratber
11.02.2006, 16:15
Ich sagte doch.

"siehe Figure 22"

Das sollte vollständig erklärend sein.




Da steht aber wieder SPI und nicht ISP.


SPI = "Serial Peripheral Interface" also Das Verwendete Interface
ISP = "In System Programming" bzw. "In System Programmer" als der Vorgang der auch die Hardware mit einschlist.

Leider werden beide bzw. alle drei immer gerne in einen Eimer geworfen und sorgen damit für Verwirrung.



Irgendjemand hier im Netz hat mit mitgeteilt, dass der /PEN zum flashen nicht nötig sei....


Ich habe ja nicht behauptet das er nötig ist.
Man kann ihn alternativ nutzen.

Deswegen "Siehe Figure 22"

darwin.nuernberg
11.02.2006, 20:22
Der terschied zw. ISP und SPI ist mit schon klar.

Wenn ich richtig vermute, ist der PE mit dem JTAG in Zusammenhang zu bringen?

Wie auch immer,
ich stöpsel jetzt mal wieder rum, wenns geht, dann ist gut,
wenn nicht hätte es sowieso auf den müll gemusst.

Ratber
11.02.2006, 20:48
Ich vermute das du Schaltpläne lesen kannst.

Also nochmal:

"siehe Figure 22" (Datenblatt)

Das ist selbsterklärend

Dani-Bruchflieger
12.02.2006, 13:00
@Bruchflieger

Hast du dich schon um den 103er Modus gekümmert ?

Hi,

ähm sorry - welchen Modus? - hab bisher nur mit den Mega 8 und 16 "rumgespielt" und via TXD und RXD miteinander komunizieren lassen... und da mein DDR-Schulenglisch nicht das beste ist, ist Datenblätter lesen bei mir mehr raten als lesen... und darum kram ich die nur vor, wenn ich sie unbedingt mal brauche... die Pinbelegungen hab ich mir aber schon mal ausgedruckt und in einem Ordner abgeheftet, der neben den Bastelboards liegt, so daß ich sie immer zur Hand hab...

- Fürs ISP hab ich mir den AVR910-Programmer nachgebaut und nutze ihn mit AVR-Prog vom AVR-Studio. Und meine Programme erstelle ich mit Bascom...

Dani-Bruchflieger
12.02.2006, 13:06
PAGE 7: PEN is a programming enable pin for the SPI Serial Programming mode, and is internally
pulled high . By holding this pin low during a Power-on Reset, the device will enter
the SPI Serial Programming mode. PEN has no function during normal operation.


TABLE 106: Programming enable (observe only)

PAGE 304: As an alternative to using the RESET signal, PEN can be held low during Poweron
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.

Naja wenn ich das richtig verstehe, kann man auch den SPI fürs ISP nutzen, muß dann aber anstatt des Reset-Pins den PEN verwenden. - Allerdigs geht das Proggen dann nur beim Poweronreset, und der Progger muß den SCK auch einen Moment auf 0-Pegel halten können... Hab ich das jetzt richtig interpretiert?

Ratber
12.02.2006, 13:54
Ja,du kannst beides nehmen da beide am Ende auf die gleiche Innenbeschaltung wirken.(Figure 22 )

So kann man die Programierung vom Reset trennen (Die Bedingungen zum Programieren gelten aber immernoch).
Das ist zb. sinvoll wenn der Controller als SPI-Slave läuft und der Reset von einem externen Resetbaustein.

Würde ein Reset ausgelöst (Lokal oder Systemweit) und der Master greift schon zu wärend der M128 noch bei der Initialisierung ist dann könnte er so unbebabsichtigt in den Programiermodus versetzt werden was das Programm gefärdet wenn es niucht per Fudse gesichert ist.
Mit einer einfachen Gatterlogik kann man also das Programierinterface gegenüber dem SPI-Bus sichern.

Es ginge auch ohne diesen Pin aber da er eh frei ist hat man sich die spielerei einfach geleistet.

solange man es nicht wirklich braucht,einfach ignorieren.


@Bruchflieger


Die M128 wurden anfangs im Kompatibilitätsmodus zum M103 ausgeliefert.
Dh. es fehlt einiges an Hardware.
zb.
-Kein 2. USART und der der noch bleibt hat keinen Puffer mehr.
-Weniger Timer und Register
-Kein I2C
-Port C ist nur Ausgang (Wenn man das nicht weiß dann wird man Irre bei der Fehlersuche)
-Port G kennt nur noch die Alternativen Funktionen.
-Bootloader läuft einfach nicht an
-Der innere RC-Oszi läst sich nicht ziehen.
(Für genaueres Siehe "ATmega103 Compatibility Mode" im Datenblatt.)

Wenn man also den M128 voll nutzen wollte dann mußte man erst das passende Fusebit umstellen.

Meinen letzten M128 Vorrat hab ich vor über einem Jahr gekauft also weiß ich nicht was aus der Notiz geworden ist in der Atmel Überlegungen angekündigt hat den M128 per Default als M128 auszuliefern und nicht mehr als M103.

Schau einfach in die Fusebits,dann haste sicherheit.

Dani-Bruchflieger
12.02.2006, 18:16
Hi Ratber,

hab gerade mal nachgesehen - bei M103C ist ein Häkchen gesetzt - das mußte ich jetzt entfernen um ihn als M128 freizuschalten... OK, habs mal weggemacht...

PS: Hab eben nochmal ein Bastelborad für den Mega 128 neugezeichnet. Als Steckbuchsen hab ich die SPL64 von Reichelt die allerdings so angelötet werden, daß sie zur SMD-Seite vom µC zeigen - wenn man die in die Bohrlöcher steckt ist ja noch 2mm von der Buchse, wo man bequem mit dem Löti rankommt um sie auf den extrabreiten Pads festzulöten... - Ja ist nix nach RN-Standard - aber zum Basteln und Rumtesten sollte es reichen...

darwin.nuernberg
19.02.2006, 23:47
Protobed 128 ist jetzt in Arbeit...
mal sehen was dabei heraus kommt....

Hier schon mal ein Bild, wie die geäzten Pads der Platine aussehen:

https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=846
zwei Pins der geäzten Leiterplatte Verfößerung etwa 40x.

Hier der erste Entwurf:
https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=847