Forum: Mikrocontroller und Digitale Elektronik Motorsteuerung AVR Atmega per ISP flashen


von Axel Z. (schnapspraline)



Lesenswert?

Hallo allerseits,

ich bin neu hier und hätte da Fragen bzgl. zur AVR Programmierung über 
einen ISP Programmer.
Meine Kenntnisse bzgl. uC würde ich als leicht fortgeschritten 
bezeichnen, gibt aber noch viel zu lernen.
Ich arbeite an einer Motorsteuerung mit einem Atmega328P.
Der Atmega ist auf der Platine verbaut und soll ohne rausgenommen zu 
werden über den ISP programmiert werden.

1. Frage:
Könnte etwas Schaden nehmen (Mosfets, Treiber IC, Stromsensor, ISP), 
wenn ich den Atmega wie in der Abbildung per ISP flashe? Akku wäre 
getrennt.
Ich mach mir da Sorgen, da der Ausgang des Schaltreglers mit der 5V 
Versorgung des ISP Programmers verbunden ist.
Auch die anderen Bauteile hängen an den Pins des uCs.

2. Frage:
Wäre es möglich mit verbundenem Akku zu flashen?

3. Frage:
Wie verhalten sich die Pins des Atmegas während des Programmiervorgangs?
Wie werden diese geschaltet?
Angenommen diese werden auf high geschaltet, was könnte passieren?

Programmer: AVRISP MKII oder andere

Schaltregler IC: Peak Boost/Buck/Inverting Switching Regulator

Bilder + Datenblätter habe ich angehängt.


Ich hoffe mich klar ausgedrückt zu haben und bedanke mich für jede 
Antwort :)

Liebe Grüße!

von Erste Frage (Gast)


Lesenswert?

Axel Z. schrieb:
> Ich hoffe mich klar ausgedrückt zu haben und bedanke mich für jede
> Antwort

Auf dem Board passt aber kein Mega328P drauf, zu wenig Pins?

von Frank K. (fchk)


Lesenswert?

Normalerweise sollen die ISP|ICSP|JTAG|...-Programmer das Target nicht 
mit Strom versorgen. Der VCC/VTarget Pin ist eigentlich nur für die 
Spannungsversorgung der Pegelwandler-ICs gedacht, die die Signalpegel 
des Programmers an die des Targets anpassen.

Da kommt schon das erste Aber: Billigprogrammer haben keine Pegelwandler 
und setzen fest 5V oder 3.3V beim Target voraus.

Zweites Aber: Wenn man kleine Basteleien macht, ist es manchmal doch 
praktisch, wenn der Programmer 50 oder 100mA liefern kann. Das ist aber 
gefährlich, wenn man dann an ein Target geht, was eine andere Spannung 
braucht oder das sich selber mit Strom versorgt. Deswegen ist es dann 
doch wieder keine gute Idee, dass der Programmer das Target versorgt.

Ein originaler AVR-ISP Programmer speist nichts ein, d.h. Du musst Deine 
Schaltung anderweitig versorgen. Deine Schaltung braucht den Anschluss, 
wie er in der Anleitung zum Programmer steht, und dann sollte das so 
gehen, sofern Du Dich an die Dokumentation gehalten und keine Fehler 
eingebaut hast.

fchk

von Arno (Gast)


Lesenswert?

Leider fehlt ein entscheidendes Stück Information, um deine Fragen 
abschließend beantworten zu können: Ein Schaltplan...

zu 1) und 2) bezüglich VCC: Wie der Schaltregler reagiert, wenn ihm "von 
hinten" 5V untergejubelt werden, weiß ich nicht. Denkbar, dass das mit 
angeschlossenem Akku besser ist als ohne, weil dann wenigstens die 
Ausgangsspannung nicht über der Eingangsspannung liegt. Wahrscheinlich 
aber kein Problem.

Der Programmer wird das meiner begrenzten Erfahrung nach wahrscheinlich 
überleben (auch wenn er zur Versorgung der Schaltung missbraucht wird) - 
selbst die ganz billigen sind meiner Erfahrung nach meist effektiv 
kurzschlussfest, und wenn es die Polyfuse im USB-Port ist, man den 
Programmer anschließend also abziehen und wieder anschließen muss. Gut 
ist das dann natürlich nicht.

zu 3): Das steht im Datenblatt des AVR: Wenn ich mich richtig erinnere: 
Alle Pins außer ISP-MISO sind hochohmig, nur ISP-MISO ist Ausgang und 
wechselt zwischen High und Low. Der Programmer zieht aber mehr oder 
weniger hart (abhängig vom Programmer) auch Reset, ISP-MOSI und ISP-SCK 
mal auf High und mal auf Low.

Ob deine Schaltung das mitmacht (und damit sind wir wieder am Anfang), 
hängt davon ab, was du an den Pins noch so angeschlossen hast. Ja, es 
kann sein, dass man sich damit z.B. eine H-Brücke zerstört, wenn die 
ungünstig an die ISP-Pins angeschlossen ist. Es kann auch sein, dass das 
Programmieren fehlschlägt, wenn ISP-Pins niederohmig auf High oder Low 
liegen. Aus dieser Sicht kann es wieder geschickt sein, den Akku nicht 
anzuschließen...

MfG, Arno

von Baendiger (Gast)


Lesenswert?

Der AVR ISP MK2 speist die Schaltung nicht.

von Stefan F. (Gast)


Lesenswert?

Ich bestätige mal die Antwort von Frank:

Axel Z. schrieb:
> Ich mach mir da Sorgen, da der Ausgang des Schaltreglers mit der 5V
> Versorgung des ISP Programmers verbunden ist.

Wenn du wirklich den abgebildeten ISP Programmieradapter verwendest, 
dann kann da nichts passieren, denn dessen 5V Leitung ist ein Eingang. 
Sie misst die Spannung des Mikrocontrollers und versorgt die 
Schnittstellentreiber damit die anderen Signale dazu passen.

Bei anderen Programmieradaptern musst du in deren Anleitung schauen. Oft 
kann man über Schalter einstellen, ob der Programmieradapter diesen Pin 
selbst mit Spannung versorgt und wie hoch diese dann sein soll.

> Wäre es möglich mit verbundenem Akku zu flashen?

Vermutlich musst du das so tun, weil der Akku das Board versorgt.

> Wie verhalten sich die Pins des Atmegas während des Programmiervorgangs?

Sie sind als inaktiv (hochohmig). Außer die Pins, die mit dem 
Programmieradapter verbunden sind.

> Angenommen diese werden auf high geschaltet, was könnte passieren?

Was auch immer dein Board dann macht. Da musst du ggf selber in den 
Schaltplan schauen.

> Ich arbeite an einer Motorsteuerung mit einem Atmega328P.

Wie "Erste Frage" bereits bemerkte, kann das nicht stimmen, der würde 
nicht in den Sockel passen.

von Axel Z. (schnapspraline)



Lesenswert?

Danke erstmal für eure schnellen & vielen Antworten!

@Erste Frage (Gast) & Stefan:
> Auf dem Board passt aber kein Mega328P drauf, zu wenig Pins?

Sorry, da hab ich euch etwas vorenthalten.
Der Atmega328P ist ein Arduino mini Pro und dieser sitzt auf einem IC 
Stecker mit 20 Pins und die nötigen Pins sind verbunden (siehe Fotos im 
Anhang)

@fchk
> Deine Schaltung braucht den Anschluss, wie er in der Anleitung zum Programmer 
steht

Du meinst den 6 Pin ISP Anschluss? Ist vorhanden (siehe Fotos).
Ich hab in der Anleitung nachgeschaut, so wie ichs verstehe gibt der 
MKII max. 25mA aus.

@Arno (Gast):
> Leider fehlt ein entscheidendes Stück Information, um deine Fragen
> abschließend beantworten zu können: Ein Schaltplan...

Ich hab leider keinen.
Hab nur die 2 Mosfets + Treiber, das Piezo und den Stromsensor grob 
analysiert. (siehe Anhang)

von Stefan F. (Gast)


Lesenswert?

Axel Z. schrieb:
> Der Atmega328P ist ein Arduino mini Pro und dieser sitzt auf einem IC
> Stecker mit 20 Pins und die nötigen Pins sind verbunden (siehe Fotos im
> Anhang)

Ein echter 3D Druck aus der Manufaktur "Axel" :-)

Ohne Schaltplan kann man deine Fragen zu Seiteneffekten nicht 
beantworten.

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.