Hallo, mit meinem 1. Post oute ich mich direkt als Anfänger, aber ich habe eine Frage: Ich habe eine Schaltung entworfen, die mit einem AtMega328P ein WS2812b-LED-Strip steuert. Im Betrieb wird das ganze über eine externe Stromquelle mit Spannung versorgt (bis zu 1A), soweit so gut. Jetzt zu meiner Frage, wenn ich den uC neu programmieren will über ISP (Arduino as ISP / USBASP kommt noch), wie verhindere ich, dass der Arduino-Programmer/USBASP durch die Last des LED-Stips überlastet wird, da ja die +5V und GND jeweils verbunden sind. Wie löst man soetwas geschickt? Meine Ideen waren: - Externe Spannung angeschlossen lassen - Schalter um Strip zu trennen - Diode zwischen +5V vom ISP+uC und externe Spannung+LED Bin über jede Hilfe dankbar. Vielen Dank für eure Hilfe, Jan
Wenn Du jetzt nur eine Platine hast, die Du ggf. öfter programmieren willst, dann ist ein schalter, ein Jumper oder einfach eine Steckverbindung, mit der Du die Last vorrübergehend trennen kannst, eigentlich ausreichend. Wenn Du mehrere dieser Platinen machen willst - oder täglich daran arbeiten willst, dann würde ich eine Diode einsetzen.
Alternativ verbindest du den VCC-Pin vom ISP-Anschluss nicht. Dann kannst du die Schaltung aber auch nicht ohne externe Spannungsversorgung programmieren. Und manche Programmiergeräte brauchen den Anschluss - der ist eigentlich soweit ich weiß allerdings gar nicht dafür gedacht, den Controller beim Programmieren zu versorgen, sondern dafür, dass das Programmiergerät die in der Schaltung verwendete Betriebsspannung erkennen und die korrekten Logikpegel setzen kann. Auch wenn 99% der Leute ihn anders verwendet. MfG, Arno
Danke euch. @Arno: Das werde ich mal probieren. Also nur die GND, MISO, MOSI Und reset vom Arduino als ISP. Das board zu versorgen ist beim programmieren kein problem. Danke euch!
Ein sauberer AVR-Programmer versorgt das Target gar nicht, sondern nutzt die Spannung des Targets zur Einstellung der Pegel oder (z.B. AVRISP ohne mkII) zur eigenen Versorgung. Am besten kaufst Du also einen Programmer, bei der man die Versorgung des Targets zumindest abschalten kann.
Der Unterschied zwischen Programmier-mode und Run-Mode ist der Reset Pin. Der Reset ist Low im Reset, sonst high. Im Reset sind die Ports auf Tristate. Waehrend dieser Zeit muessen irgendwelche Peripherie Circuits natuerlich sicher sein. Also hoechst wahrscheinlich deaktiviert. Daher muss man die Pegel wo noetig per externer Widerstaende auf Low oder high vorgeben. Das sind dann die Pegel, die waehrend des Resets anliegen. Steht aber alles im Datenblatt.
Habt ihr nen Tipp für nen guten (günstigen) Programmer? Habe den usbasp bei aliexpress bestellt. Falls jemand eine gute Idee für einen Anfänger hat,gerne. Danke, Jan PS: die Pins zum programmieren sind nicht doppelt belegt. Hab nur Angst, dass die Lasten an +5 zuviel sind während ich den Programmer anschließe.
:
Bearbeitet durch User
Wie schon gesagt, irgendwelche Lasten sollten im Reset abgeschaltet sein. Denn du weisst ja nicht wie lange der Reset dauert. Wenn das Ganze dann abfackelt ... Der Reset dauert solange bis ein sinnvolles funktionierendes Programm aufgespielt ist. Zwar ist der Reset pin nicht zwingend low, aber unprogrammiert sind die Ports zB Tristate, oder etwas anderes. Sinnvollerweise entkoppelt man die Signalpins mit 100 Ohm in Serie. Und der Speisepin auf dem ISP sollte kurzschlussgeschuetzt sein. Resp, die Speisung des Programmers sollte kurzschlussgeschuetzt sein.
Jan schrieb: > Wie löst man soetwas > geschickt? Meine Ideen waren: > - Externe Spannung angeschlossen lassen > - Schalter um Strip zu trennen > - Diode zwischen +5V vom ISP+uC und externe Spannung+LED Hallo, am Anfang habe ich immer eine Diode gelötet. Später habe ich kapiert, daß das nicht unbedingt notwendig ist, wenn man DIAMEX ALL AVR-Programmer USB-ISP benutzt: dort gibt es zwar Option, Schaltung von Programmer zu speisen, aber das ist eine Option, d.h. man kann sie abschalten. Normalerweise lasse ich 5 Volt-Pin in ISP frei.
Super, danke für eure Hilfe. Bei mir hat es auch eben "klick" gemacht, einfach die Versorgung (in meinem Fall Arduino als ISP) weggelassen und es geht. Danke!
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.