Forum: Projekte & Code EasyPDKProgrammer - Clone für Padauk MCUs


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Ralph S. (jjflash)



Lesenswert?

Ursprünglich habe ich - während der Chipkrise - einen Programmer für 
Padauks PFS154 mit einem Arduino realisiert.

Verglichen mit einem EasyPDKProgrammer ist er in allem schlechter. Zu 
dem damaligen Zeitpunkt während der Chipkrise war jedoch ein benötigter 
STM32F072CB irre schwer erhältlich und wenn, dann abartig teuer. Von 
daher war mir der Arduino-Based-Programmer recht.

Allerdings war das Entwickeln damit schon etwas haarig:

- Programm schreiben
- Chip in Programmer
- flashen
- Chip in Schaltung
- Fehler suchen
- Gehe zurück auf LOS

Anschlusspins mittels Drähte ins Steckbrett führen ist haarig, wackelig 
und funktioniert auch nicht so tolle. Außerdem verhält sich der 
Programmer "zickig", wenn an den zum Flashen benötigten Pins Hardware 
angeschlossen ist.

Auch der EasyPDKProgrammer ist da etwas (oder mehr) zickig. Also habe 
ich den bestehenden Programmer aus:

https://github.com/free-pdk/easy-pdk-programmer-hardware

in der Hardware modifiziert:

- SMD Bauteile wurden in einer Größe gewählt, die ich auch noch per Hand 
löten kann
- Schaltregler MT3608 durch den ollen, aber für mich handhabbaren und 
vor allen Dingen vorhandenen Schaltregler MC34063 ersetzt
- 3,3V Regler RT9193-33 durch AMS1117-3.3 ersetzt
- negative Hilfsspannung für OP wird nicht benötigt und wird ersatzlos 
gestrichen. Pin 4 des LM358 liegt auf GND
- als Aktivitäts-LED ist nur die an PC15 angeschlossene herausgeführt
- beim Feedback-Spannungsteiler 100k zu 20k wurden die 20k durch 2 in 
Reihe geschaltete Widerstände 10k ersetzt (Ermangelung 20k)
- zusätzlich zum Boot0 Taster wurde ein Resettaster hinzugefügt, damit 
der DFU Bootloadermodus über die 2 Taster aktiviert werden kann 
(anstelle des anschließen des Programmers bei gedrückter Boot0-Taste)

Die Elko's wurden als bedrahtete Bauteile vorgesehen, schlicht weil ich 
die habe und die SMD-Tantalausführung habe ich nicht.

Wichtigste Änderung (und der Grund, warum ich das gemacht habe):

Die am Flashvorgang beteiligten Pins des PFS-Controllers sind über 
Schalter auf dem Programmiersockel aufgelegt. In Stellung "program" ist 
der Mikrocontroller von allem getrennt und ist an die Elektronik des 
Programmers angeschlossen. In Stellung "run" werden die Anschlüsse auf 
den IDC-Target-Connector aufgelegt. An diesem IDC-Connector kann ein 16 
pol. Flachbandkabel angeschlossen werden, welches am anderen Ende in ein 
Steckbrett eingebracht werden kann.

Auf dem Programmer gibt JP4 vor, ob die Targetschaltung mit 3,3V , 5V 
vom Programmer aus versorgt wird. Ist kein Jumper gesteckt, muß die 
Targetschaltung eigenversorgt sein.

Die Software für den Programmer ist unverändert und unter:

https://github.com/free-pdk/easy-pdk-programmer-software

zu finden.

Im Anhang hier sind die Gerberdateien in einem ZIP-Archiv wie es bspw. 
zu JLCPCB geschickt werden kann, die hieraus eine Platine fertigen (ich 
habe knapp unter 5€ für die Platinen inklusive Porto bezahlt).

Außerdem das den Gerberfiles zugrunde liegende Layout (da das ein 
Heimprojekt ist, wurde das Layout mit dem günstigen Sprint-Layout 
Programm gemacht). Wer das Layout mit einem anderen Programm bearbeiten 
möchte kann sich ja die Gerberfiles in sein Prgramm importieren

Auf der Platine selbst sind einige Anschlüsse des Controllers auf eine 
Leiste herausgeführt (diejenigen, die ohne Schwierigkeiten im Layout zu 
erreichen waren) und somit kann die Platine auch - eingeschränkt auf die 
herausgeführten I/O-Pins - als Entwicklungsboard dienen. Ein Upload ist 
hier mittels DFU-Bootloader oder auch mit den herausgeführten ST-Link 
Anschlüssen möglich.

-----------------------------

So, habe ich mir wirklich überlegt, das hier als Projekt einzustellen, 
da das Projekt für mich in erster Linie darin bestand, eine Platine zu 
Routen. In einem anderen Thread hier hatte ich Probleme mit der 
USB-Konektivität. Mittlerweile habe ich aus 3 unterschiedlichen Chargen 
Chips 3 Platinen bestückt und alle laufen. Nur dummerweise die 
allerallererste nicht.

Hier hat jemand geschrieben gehabt dass es mich doch interessieren müßte 
warum es mit einem Chip geht und mit einem anderen nicht: Es 
interessiert mich, aber wenn ich einfach keine weitere Erklärung habe, 
warum alle anderen Chargen gehen (eine Charge ist für mich 5 Stück - 
Hobby halt), dann habe ich das enfach akzeptiert. Vor allem dann, wenn 
aus der ersten Charge ein Chip in eine andere Platine eingelötet wurde 
und dort der USB auch nicht funktioniert (eine Platine die noch nie 
Ärger gemacht hat), dann belasse ich es dabei.

------------------------------

Also bei mir funktioniert die Platine super und der Komfort beim Werkeln 
ist durch die Schalter sehr deutlich gestiegen.

Sollte das jemand nachbauen wollen und bestellt sich die Platinen bei 
JLCPCB und hat dann Probleme: Lasst es mich wissen.

Ansonsten viel Spaß

-------------------------------

@Moderatoren: wenn das in die Rubrik "Projekte & Code" nicht passt, 
bitte in die angenehme Rubrik verschieben

von Michael B. (laberkopp)


Lesenswert?

Ralph S. schrieb:
> Schaltregler MT3608 durch den ollen, aber für mich handhabbaren und vor
> allen Dingen vorhandenen Schaltregler MC34063 ersetzt

Man hätte Rsc nutzen dürfen damit bei Uberlast (jedes mal beim 
Einschalten wenn der Ausgangselko noch nicht geladen ist) die 1.5A nicht 
überschritten werden - die sowieso aus USB nicht gezogen werden sollten.

von Ralph S. (jjflash)


Lesenswert?

Michael B. schrieb:
> Man hätte Rsc nutzen dürfen damit bei Uberlast (jedes mal beim
> Einschalten wenn der Ausgangselko noch nicht geladen ist) die 1.5A nicht
> überschritten werden

Stimmt !!! Und nicht "dürfen", sondern "sollen / müssen". Designfehler 
by me! Da hätte zwischen Pin 6 und Pin 7 ein 1.8 Ohm Widerstand gut 
getan. Werde ich im Layout ändern und dann wenn das getan ist die 
Gerberfiles mit diesem Widerstand hier hochladen!

Hast du vollkommen recht, nichts desto trotz funktioniert der Programmer 
dennoch super (was nichts am Fehler ändert)

von Christoph Z. (rayelec)


Lesenswert?

100nF direkt an den Ausgängen der LM358 - Auweia! Schön ist das nicht 
und nicht jeder vermeintliche LM358 wird das einfach so hinnehmen.

von Ralph S. (jjflash)


Lesenswert?

Christoph Z. schrieb:
> 100nF direkt an den Ausgängen der LM358 - Auweia! Schön ist das nicht
> und nicht jeder vermeintliche LM358 wird das einfach so hinnehmen.

Das hat schon einmal jemand geschrieben gehabt beim Steckbrettaufbau! 
Dieser Entwurf der Kondensatoren direkt am Ausgang am LM358 stammt nicht 
von mir sondern ist im Originalentwurf so vorgesehen. Interessanterweise 
funktioniert das ohne die 100nF Kondensatoren zwar auch, aber ab und an 
schlägt der Flashvorgang fehl.

Außerdem bin ich mir ziemlich sicher, dass schier jeder LM358 die 100nF 
hinnehmen wird.

Und weil die im Originalentwurf drin sind und weil: Never touch a 
running system ... bleiben die auch drin! (anderst als der Einwand von 
Michael B. laberkopp der mit seiner Anmerkung zum Rsc beim Schaltregler 
vollkommen recht hat).

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.