PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ISP-Schnittstelle



BurningWave
15.07.2008, 19:09
Hallo,

ich bin gerade dabei, eine µC gesteuerte Schaltung zu programmieren. Da sich in meinen Programmen immer viele Laufzeitfehler verstecken, die ich dann nach und nach bemerke muss ich den µC oft neu programmieren. Dazu muss ich ihn dann immer von der Platine mit der Schaltung in den Programmer und wieder zurück versetzen. Das ist aber ziemlich umständlich und ich will auch nicht, dass irgendwann eine Pin abricht, deswegen brauche ich eine andere Lösung.
Es gibt doch eine ISP-Schnittstelle, mit der man den µC (ich benutze einen AtMega32) mit einem Flachbandkabel mit dem Programmer verbinden kann. Nun ist meine Frage wie das genau geht, da bei mir alle Pins (einschließlich MOSI und MISO) belegt sind und was ich beachten muss.

Braucht der µC eine eigene Stromversorgung oder bezieht er seinen Strom aus der SPI-Schnittstelle?

Schon mal im Voraus danke für eure Antworten
mfg
_R2D2

Besserwessi
15.07.2008, 21:14
In der Regel wird der Programmierer mit von der Schaltung versorg. Einige Programmierer können alternativ auch die Schaltung versorgen.
Einige ISPPrgrammer brauchen 5 V, bessere kommen auch mit 3V oder weniger klar. Da muß man also eventuell aufpassen.


Die ISP Pins kann man gut als Ausgang benztzen, allerdings muß man dann sicherstellen, dass die Signale während des programmierens keine unerwünschten funktionen ausführen. Für LEDs oder ähnliches ist das in der Regel kein Problem, Motoren sollte man damit aber eher nicht stueren. Die Pins sollten auch nicht mehr als etwa 1-2 K Ohm Treiben müssen, der genaue Wert hängt aber vom ISP Programmeirer ab.

Wenn man die ISP Pins als Eingang nutzt, kann man in der Regel einen 2,2 K Ohm Widerstand zwischen Schaltung und ISP Pin vertragen, dann sollte es keine Probleme mehr geben.

Als alternative zu den normalen ISP Pins gibt es noch DEBUG-Wire, da braucht man nur den Reset Pin, allerdings ohne Kondensator gegen GND.

BurningWave
17.07.2008, 14:29
Ich benutze als Programmer einen MySmartUSB vom myAVR.de. Wie ist es hier mit der Stromversorgung? Bei meiner Schaltung ist AVCC mit AREF und VCC verbunden. Kann ich VCC von dem ISP-Anschluss jetzt einfach mit VCC am µC verbinden?
Die Pins MOSI, MISO und SCK sind bei mir mit dem Funkmodul RFM12 von Pollin(das aber in die Schaltung gesteckt wird und während dem Programmieren ausgesteckt werden kann) verbunden. Kann ich jetzt MOSI, MISO und SCK einfach ganz normal anschließen, wenn ich das Funkmodul ausstecke?

Besserwessi
17.07.2008, 16:58
Wenn das Funkmodul abgenommen wird, sollte es keine Probleme mit den ISP Pons geben. Wenn das Funkmodul dran bleibt sollten Widerstände von z.B. 2,2 K vor den Ausgang des Funkmoduls (sollte MISO sein).

Beim myAvr kann man wohl wählen ob der Prgrammier die Schaltung versorgt (5 V bis 80 mA) oder die Schaltung den Programmierer(vermutlich ca. 10-20 mA bei 3,3-5 V). Genaueres sollte sich eigentlich in der Anleitung finden, ich konnte es aber nicht finden. Wie sonst auch wird VCC von der Schaltung mit VCC vom Programmierer verbunden. Wenn die Schaltung extern mit 5 V versorgt wird kann man die Verbindung eventuell auch weglassen, würde ich aber nicht empfehlen. Wenn man die Schaltung vom Programmiere versorgt muß man sicherstellen, dass der Spannungsregler das auch verträgt. Problemloser ist es meistens den Programmierer von der Schaltung zu versorgen.

Vitis
18.07.2008, 13:01
beim mega32 ist das noch ziemlich easy, bei mega64 oder 128 wirds
dann schon komplexer mit der isp, da dort

ISP != SPI

Ansonsten MOSI MISO SCK und RESET (Pullup nicht vergessen) Signal.
Programmer gibts einige, der Einfachste ist die Geschichte
für den Parallelport, gibts auch im RN-Shop für kleines Geld fertig.
Die Belegung kannste Dir z.B. von nem RN-Board (hier im Forum gibts
das Platinenlayout) abpinseln.
Es gibt zwar nicht direkt ne Norm, aber es ist sinnvoll möglichst
kompatible Belegungen zu wählen, da man u.U. ja mal in die
Verlegenheit kommen könnte fremde Ausrüstung benutzen
zu wollen.

hosti
22.07.2008, 08:54
was ist den beim Mega64 speziell?
Ich dachte der ist mit dem Mega32 kompatibel?

Vitis
22.07.2008, 13:02
ne ne, der M64 ist mit dem M32 praktisch nicht gleich.
Hat deutlich mehr IO, hat z.B. 2 x UART in Hardware
Hat ein SRAM-Interface für X-RAM usw.
Ausserdem gibts den auch nicht mehr in DIL, sondern
nur in TQFP und kleiner, also SMD.
Die ISP ist auch nicht mehr auf MOSI MISO SCK
und Reset, ausser dem Reset ist die ISP-ganz anders
belegt ... habs grad nicht auswendig im Kopf, aber ein
Pin der ISP liegt auf nem UART-TX z.B.
Dann gibts da noch den PEN ... Programming Enable
zusätzlich also definitiv n ganz anderer Kollege
Ist aber Pinkompatibel mit dem Mega128

hosti
22.07.2008, 14:53
Ah jetzt geht mir ein Licht auf. Ich meinte den Atmega 644.

BurningWave
25.07.2008, 11:16
Muss man MOSI mit MOSI und MISO mit MISO oder MOSI mit MISO und MISO mit MOSI verbinden?

mfg