Forum: Mikrocontroller und Digitale Elektronik Eepromer mit AVR


von Paul Baumann (Gast)


Lesenswert?

Hallo
Ich habe hier ein paar Flash-Eeproms wie AM29F002 (256k*8) aus alten
Motherboards. Nun suche ich eine Schaltung für ein Programmiergerät
dafür. Hat jemand schon mal so etwas mit z.B. Atmega8515 gebaut?

MfG Paul

von TravelRec. (Gast)


Lesenswert?

Nö, aber mit ´nem ATMega16. Ist relativ easy, da Parallelinterface am
EEPROM. Kniffliger ist es schon, die nötigen Programmierspannungen,
gemischt mit normalen Steuersignalen, an die EEPROM-Pins
heranzubekommen. Der 29F002 ist zwar 5V only, aber normal will man
einen EEPROMMER ja möglichst universell für viele andere Chips
gestalten. Da kommt man um einige Schieberegister und Transistorstufen
nebst Hochspannungserzeugerstufe (12-25V für ältere EEPROM und
EPROM-Typen) nicht herum. Und natürlich auch nicht um die
Firmwareimplementierung der entsprechenden Chips. Und ein Display ist
hilfreich, dann kann man den EEPROM-Code (*.bin) mit einem normalen
Terminalprogramm an den Programmer schicken, z.B. mit HTerm

von Paul Baumann (Gast)


Lesenswert?

Ich habe schon vor Jahren ein Programmiergerät für "normale" Eproms
(2732-27512) gebaut. Das Ding hat 2 Schieberegister für die Adressen
und sitzt an der parallelen Schnittstelle. Damals gab es die AVR´s
noch nicht.
Blöderweise haben die EEproms aber einen anderen
Programmieralgorihmus.
Jetzt habe ich gedacht, wenn ich einen MC nehme, kann ich dem erst
mal das Hochzählen der Adressen überlassen und ich könnte ihn seriell
vom Rechner aus ansteuern. Da müßte ich erst mal sehen, wie ein
Terminalprogramm eine Hex-Datei seriell rüberbringt und dann die
Start- und Stopbits "absägen".

Langer Rede Sinn: Kannst Du mal Deine Schaltung posten?

MfG Paul

von TravelRec. (Gast)


Lesenswert?

Ja nee, leider nicht; nicht weil ich nicht will, sondern ich habe keinen
Plan gemacht, weil auf ´ner Lochrasterplatine verlötet, step by step
sozusagen. Im Grunde liest Du mit dem AVR über USART die .bin Datei ein
(HEX-Dateien sind auf EEPROMs und FLASHs eher unüblich). Dabei erhältst
Du im UDR-Register die reinen Rohdaten, Start und Stoppbits werden
dabei nur für die USART-Steuerung benutzt und haben nichts mit den
Daten zu tun. Die Daten selbst schreibst Du per Programm im AVR an die
richtigen Adressen in das EEPROM, mit dem entsprechend richtigen Algo
und der Timing-genauen Steuerung der EEPROM-Steuerleitungen. Dies alles
entnimmst Du dem EEPROM-Datenblatt. Der Rest ist eigentlich nur
Schiberegister laden (für die Adressen und benötigten Betriebs- und
Programmspannungen) und Bitbanging an den Datenports. Das muß Dein Code
erledigen.

von Paul Baumann (Gast)


Lesenswert?

@Travelrec.
Dank erst mal für Deine Antwort. Ich habe bei AMD eine Anleitung
gefunden, wie die Abfolge aussehen muß.
Verstehe ich Dich richtig, daß im UDR-Register das übertragene Byte
schon "fertig und richtig herum" drinsteht und ich mich nicht um
Start- und Stopbit "abschneiden" kümmern muß?
Wenn dem so ist, komme ich schon klar.

MfG Paul

von Hauke Radtki (Gast)


Lesenswert?

Im UDR stehen die reinen Nutzdaten also keine Start/Stop-bits etc. und
richtig rum is es auch noch :)

von Thomas O. (Gast)


Lesenswert?

ich habe das mit 28C64B EEPROM schon gemacht, habe allerdings einige
Latches genommen um die Daten parallel zu übertragen und nicht mit
Schieberegistern hantieren zu müssen. Irnedwo im Forum müsste noch ein
Schaltplan zu finden sein.

von TravelRec. (Gast)


Lesenswert?

Ich hatte deswegen Schieberegister genommen, weil ich für Latches nicht
genug Pins hatte (Display und Spannugsmessung und Spannungsgenerierung
hat einige Pins gekostet ;-) ) und auch die Betriebs- und
Programmierspannungen für viele andere EEPROM-Sorten noch mit
verschalten wollte. Außerdem sind EEPROMs und Flashs nicht gerade
suuperschnell beim Programmieren, so daß die mehreren Schiebezyklen gar
nicht stören.

von Paul Baumann (Gast)


Lesenswert?

Gut, dann weiß ich erst mal Bescheid. Ich will mal den Atmega8515
nehmen. Trotzdem muß ich draußen entweder noch ein Schieberegister
oder ein Latch dranmachen, weil ich so eine Menge Adressleitungen
habe (A0-A20).

MfG Paul

von TravelRec. (Gast)


Lesenswert?

Das ist richtig. Beim 8515 kommst Du mit einem Latch gerade mal bis
64kByte, also brauchst Du eher 2. Der 8515 hat allerdings keinen
A/D-Wandler. Ich habe diesen z.B. benutzt, um festzutellen, ob alle
Spannungen passen. Wenn der Programmer sich in Ruhestellung befindet,
ist die Steckfassung für das EEPROM stromlos. Wenn ich das EEPROM
einstecke und den Programmer starte, mißt dieser zuerst die
Betriebsspanung über dem Schaltkreis und eventuell auch die zugehörige
Programmierspannung. Wenn diese nicht passen, weil zum Beispiel das
EEPROM falsch oder verkehrtherum eingesteckt ist, schaltet der
Programmer sofort ab und gibt eine Warnung auf dem Display aus. Dann
kann der User noch handeln. Wenn man den Programmer rein passiv
aufbaut, kann man die eigene Dummheit nicht kompensieren und grillt
somit gelegentlich einige EEPROMs ;-)

von Paul Baumann (Gast)


Lesenswert?

Ich will mir jetzt erst mal, nachdem das Empfangen von Bytes vom Rechner
funktioniert einen großen Zähler aus 3 Bytes bestehend programmieren.
Die beiden Timer kann ich dafür nicht nehmen, weil
die dann die genauen Programmierimpulse liefern sollen.
Ich stelle mir das so vor: 1. Zähler bis 255 zählen lassen, wenn der
überläuft, 2. Zähler inkrementieren und dito für den 3. Der 3. braucht
dann aber nur bis 16 zu zählen. Damit müßte ich eine 20 Byte
breite Adresse herstellen können, wo ich dann an das erste Port die
unteren (A0-A7)direkt ausgebe. A8 bis A15 auf einen 74574, den dann
freigeben und dann die letzten 4. Da müßte ich mit 12 Port-Leitungen
reichen.

Gut, mal sehen, ob das so geht.

MfG Paul

von TravelRec. (Gast)


Lesenswert?

Timer brauchst Du nicht wirklich zum Programmierimpuls geben. Ein Timer
mit Interrupt Service Routine reicht für die internen Abläufe im
Programm und das Timing am EEPROM völlig. Das EEPROM-Timing ist sowieso
recht unkritisch bei parallelen Bauteilen. Man muß nur beachten, welche
Leitungen zuerst welchen Pegel haben müssen und welche dann. Die ns
zwischen den einzelnen Pegeländerungen hat man eh´schon durch die
Abarbeitung der Programmbefehle im Controller realisiert. Wichtig ist:
erst Adressen, dann Daten, dann Write-Puls. Aber das steht alles im
Datenblatt. Einen Adreßzähler in ASM zu basteln ist nicht schwer, nimm
3 SRAM-Zellen und incrementiere immer die untere, bei einem Überlauf
die nächsthöhere und bei einem weiteren Überlauf die höchste. Diese
blendest Du dann nacheinander auf den Adreßport. SRAM-Zellen nimm
deswegen, weil Dir dann nicht so schnell die Register ausgenen und weil
diese im gesamten Programm transparent gehalten werden können.

von Michael U. (Gast)


Lesenswert?

Hallo,

wenn das Ding allgemein Eproms und EEproms programmieren soll, schau
Dir mal die jeweiligen Pinbelegungen an. Bis zu welcher Größe willst Du
gehen?
Bei der 32-Pin-Fassung ist GND der Bezugspunkt. Alle Datenleitungen
liegen bei allen übliche Typen von dort aus gesehen an den gleichen
Pins.

Hab gerade mal kurz gegoogelt, vielleicht hilft Dir das hier:
http://www.batronix.com/elektronik/bauanleitungen/eeprommer.shtml

Man ist das lange her, da war 27512 der Traum-Eprom da passten 8
Betriebssysteme für den C64 rein... :)

Gruß aus Berlin
Michael

von Paul Baumann (Gast)


Angehängte Dateien:

Lesenswert?

@Travelrec.

Ich bin des Assemblers leider nicht mächtig. :-(   Aber Bascom ist auch
ganz lustig. (Nicht zanken bitte :-)) Ich habe mal meine Gedanken
in ein Progrämmchen gepackt. Morgen werde ich das mal in Natura
testen.

@Michael
Ich will bis zu 1024KByte gehen, so daß ich mit 20 Adressen reiche.
Den Brenner von Batronix habe ich gesehen, so ungefähr ist auch mein
alter Brenner aufgebaut. Ich wollte aber gerne mal einen bauen, der
über die serielle läüft. Das soll dann so sein, daß ich vom Rechner
über ein Terminalprogramm den EEprom-Inhalt sende, so daß ich für den
PC kein spezielles Steuerprogramm schreiben muß.

So, das war´s erst mal.

MfG Paul

von Michael U. (Gast)


Lesenswert?

Hallo,

soweit klar.

Ich zanke nicht über Basic, das ist das, wo meine
Windows-Programmierkentnisse anfangen und enden: VisualBasic...

'**********Schreibimpuls an EEprom anlegen
Set Portd.4
Waitms 1
Reset Portd.4
'**********Ende Schreibimpuls

Was willst Du hiermit wohin schreiben?
Wenn es ein Eprom ist, wird es nicht klappen können und wenn es ein
Flash-Eeprom ist, vermutlich auch nicht.
Dem mußt Du erst mit einer Adress-/Datenfolge mitteilen, daß Du
schreiben willst.

Oder ist es nur ein Test, ob die Pegel ankommen?

Gruß aus Berlin
Michael

von Paul Baumann (Gast)


Lesenswert?

@Michael
Ja, das ist nur ein Test. So zu sagen nur das Gerippe. Wird alles noch
ein wenig befeilt und geschliffen. Für die anderen Flash-Eeproms wie
24Cxxx habe ich ein separates Gerät und gehe mit Ponyprog an´s Werk.
Dieses Gerät soll ausschließlich
für Flash-EEproms von der Art wie 29F020 oder 29F040 sein. Diese Dinger
haben einen WE-Pin (Schreiberlaubnis). Wenn ich das Datenblatt richtig
verstehe, dann Adresse dran, Daten dran und WE auf L.
Das müßte es gewesen sein.

von TravelRec. (Gast)


Lesenswert?

Danach WE wieder High setzen nicht vergessen. Der Ruhezustand von WE ist
High. Am besten, Du packst an diesen Pin einen PullUp von 4,7k, dann
kannst Du auch bei Prozessor-Reset sicher sein, daß der Pin High
bleibt. Du mußt auch Sorge tragen, daß dieser Pin vom Programm her auch
wirklich nur dann und auch nur ein einziges Mal auf Low geht, wenn eine
Speicherzelle beschrieben werden soll. Ansonsten kannst Du Dir
einezelne Speicherzellen des Flash-ICs sehr schnell "auf(b)rauchen".
Ich will mich auch nicht über BasCom streiten, aber vielleicht lernst
Du eines Tages ja mal ASM - wenn Du Zeit hast - damit lassen sich viele
Sachen sehr elegant lösen und Fehlerquellen lassen sich auch minimieren,
ganz zu schweigen von der erreichbaren Effizienz.

von Michael U. (Gast)


Lesenswert?

Hallo,

@Paul Baumann:

sicher mit dem Schreiben?
Ich habe jetzt nur diagonal über die Datenblätter von 29F020 und 29F040
von ST und AMD gelesen, sieht mir aber eher nach der üblichen
Command-Struktur aus.
Kann natürlich sein, daß ich die entscheidende Stelle überlesen habe.

Hab mich da auch nur rangehangen, weil hier auch noch eine Schachtel
mit etlichen verschiedener dieser Teile rumliegt und hofft, daß mir
eine Verwendung einfällt. ;)

Gruß aus Berlin
Michael

von Paul Baumann (Gast)


Lesenswert?

@Travelrec.
Ab und zu binde ich schon mal ein wenig Assembler in Bascom ein, aber
muß erst immer lange suchen, bevor ich den entsprechenden Befehl
gefunden und seine Verwendung gefunden habe. Jetzt will ich esrt mal
die Schaltung verdrahten und sehén, ob das so geht, wie ich denke.

@Michael
Hintergrund ist der Nachbau von einer Hardwareemulation eines
tschechischen Kleincomputers (PMD85), für den ich 512k ROM brauche,
um das Betriebssystem unterzubringen.
http://www.kmit.sk/~peto/AVR/smallpmd/index.php

MfG Paul

von A.K. (Gast)


Lesenswert?

Schon dran gedacht, SPI-Flash-Chip oder Flash-Karte als
"Massenspeicher" zu verwenden? Oder hatte das Original allen Ernstes
512KB RAM/ROM im direkten Zugriff?

von Paul Baumann (Gast)


Lesenswert?

@A.K.
Ja, hat es allen Ernstes. (Siehe Link)

Ich habe eben mit Entsetzen das Datenblatt angesehen und mußte
feststellen, daß mein Algorithmus für "normale" Eproms gehen würde,
aber für diese Sorte von EEproms noch massig Änderungen braucht.

Wenn ich einen 512k Eprom auftreiben kann, laß ich das sein, denn
das ist eine ziemlich komplizierte Sache, was man erst alles senden
muß, bevor die eigentlichen Daten kommen dürfen. :-(
Die "alten" Eproms kann ich mit meinem alten Programmer laden.

Mfg Paul

von TravelRec. (Gast)


Lesenswert?

Najaa - nur nicht gleich aufgeben... Ich habe die Erfahrung gemacht, daß
man so einen Programmer, der "alles" kann, irgendwann doch braucht,
wenn mal ´was abkackt, was schon etwas älter ist oder man doch mal ´nen
Update machen muß. Es ist immer besser, etwas im Schrank zu haben, was
man vielleicht nie braucht, als wenn man loslatschen muß, um jemandem
die Füße zu kraulen....

von Michael U. (Gast)


Lesenswert?

Hallo,

@Paul Baumann:

naja, nun mach es mal nicht schlimmer, als es ist... :)

ich würde einen Mega16 o.ä. nehmen und 2x HCT373 als Adresslatch für
A0..A15 (oder nimm Deine Schieberegister).

Also ein Port für D0-7 (direkt), A0-7 (HCT373) und A8-15 (2. HCT373).
Ein Port für die restlichen Adressen ( dann hast Du mehr als nötig).
Dazu 2 Pin für LE der 373, 3PIN für OE, WE, CE des Flash
Bleiben noch 3 an diesem Port.
Den 4. Port als Parallel-Port zum PC, geht schneller und ist einfacher
als seriell.
Dazu brauchst Du dann noch 2 Bit für Strobe und Busy des Parallelport.

Übertragen wird mit copy /B blabla.xyz LPT1

Warten tut das alleine (Buys H/L).
Timing ist unkritisch und relativ schnell geht es auch noch.
Zur Parallelport-Geschichte kann ich Dir was schicken.

Damit immer 256Byte (oder 512) abgeholt, dann Busy gesetzt und um den
Flash gekümmert.
Den Flash

Adresse 0-7 raus, LE1 setzen
Adresse 8-15 raus, LE2 setzen
restliche Adresse raus
Daten raus
an CE/WE/?? wackeln
und nächste Runde...

Sollte doch auch in Basic lösbar sein.

Reizt mich jetzt eigentlich, das mal auf ein Steckbrett zu nageln...

Gruß aus Berlin
Michael

von TravelRec. (Gast)


Lesenswert?

>>Den 4. Port als Parallel-Port zum PC, geht schneller und ist
>>einfacher als seriell.

Da wage ich zu widersprechen, denn es gibt so ein schönes HTerm von
Tobi im PC-Forum. Außerdem ist das Flash bei weitem lahmer als der
Parallelport, also was soll´s? An neueren Rechnern gibt´s keinen echten
Parallelport mehr - USB zu seriell-Adapter funktionieren jedoch
ausgesprochen gut. Und der ATMEGA16 hat ein sehr umgängliches USART mit
feinen Interrupt-Möglichkeiten, warum darauf verzichten?

von Michael U. (Gast)


Lesenswert?

Hallo,

wenn man sich das beim Tippen so ausdenkt...
Besser den M8515 nehmen, da sind noch 3 Portleitungen am Port E mehr.

Nachtrag: am letzten freien Bit des 3. Ports muß eine LED ran, die die
PC-Übertragung anzeigt.
Beim 2. Port sind ja sinnvoll nur 4 Pins als Adresse nötig. (wäre dann
ein 8MBit (1Mx8).
Die letzten 4: 2 Taster . Start und Stop
2 Schalter (oder mehr bei M8515), um den Typ einstellen zu können.

Problem ist nämlich, daß es keine Rückmeldung am Ende gibt.
Die Dateilänge muß also mit der Flashgröße übereinstimmen.
Der PC sagt fertig, wenn er den Kram in seinen Buffer befördert hat.
Der AVR muß also melden, wenn er alles geschrieben hat (per LED z.B.).

Wenn man die Leitungen mal durchzählt, kommt man beim M8515 vielleicht
sogar mit einem Latch aus.

Gruß aus Berlin
Michael

von Michael U. (Gast)


Lesenswert?

Hallo,

@TravelRec.:

naja, schneller ist nicht zwingend die Datenübertragung.
Die Realisierung im AVR ist simpel, weil sonst Hardware-Handshake
angesagt ist. Man bekommt die 512kByte so schlecht in den AVR-Ram. ;)

Ich habe sowas mal für was anderes gemacht, war die eben einfach.
Ein Copy to LPT sollte auch mit USB-Parallel-Adapter ohne Probleme
gehen, es wird ja kein Hardwarezugriff gemacht, sondern die
Betriebssystem-Funktion genutzt.

Gruß aus Berlin
Michael

von Paul Baumann (Gast)


Lesenswert?

Den M8515 wollte ich nehmen, weil der gerade hier ist und im
DIL-Gehaeuse sitzt. Ein 8-Bit Latch (74hct574). PortA soll A0-A7
ausgeben.
An PortB kommt das Latch, das erst mit A8-A15 geladen wir und dann
selbst A16-A20 ausgibt. PortC gibt die Daten ein/aus. So sieht das
obige Programm bis jetzt aus. PortD4 steuert die WR-Leitung vom EEprom
an und PortD5 das Latch.
Kann man das Ding wenigstens normal lesen, oder muß man da auch noch
erst eine Sequenz hinschicken? Das sehe ich im Datenblatt nicht.

MfG paul

von Roland Schmidt (Gast)


Lesenswert?

@Paul Baumann

Schau dir diesen Programmer mal an.
http://s-huehn.de/elektronik/epromprog/epromprog.htm

von Paul Baumann (Gast)


Lesenswert?

@Roland
Da war einer schneller als ich. :-)) Gut, das ist genau das, was ich
haben wollte.
Danke.

MfG Paul

von TravelRec. (Gast)


Lesenswert?

Ja, nettes Projekt, allerdings viele Jumper und keine Überprüfung des
EEPROMs auf korrekte Steckung. Und viele externe Bauelemente zur
Spannungsgenerierung...

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

Die c't hat einen Flasher-Bausatz für den PC im Angebot:
http://www.heise.de/ct/ftp/projekte/flasher/default.shtml
programmierbare Typen:
Am29F010/002/040 AMD
AT29C010A   Atmel
i28F001BX-T/B   Intel
(PH)29EE010   SST
W29EE011   Winbond

von TravelRec. (Gast)


Lesenswert?

Naja - mein Rechner hat noch ISA-Slots, Deiner auch...?

von Paul Baumann (Gast)


Lesenswert?

Ich werde mal die Schaltung von S.Hühn (Link oben) als Anregung nehmen.
Jetzt habe ich mich mit meinem Ablaufplan lange geschunden und
will es nun auch wissen.

@Travelrec.
Wie soll man es bei so vielen verschiedenen Programmierspannungen
vereinfachen können? Die Teilerwiderstände vor dem LM317 kann man
ja so nicht einfach über ein Port schalten, weil dann die hohe Spannung
"rückwärts" am Prozessor läge. Müßte man einen ULN2003
oder so etwas dazwischen setzen. ....wolln mal sehen.

MfG Paul

P.S. Ich habe sogar noch den Gaststätten - Bus in meinem Rechner:

Vesa- Lokal! :-))

von Michael U. (Gast)


Lesenswert?

Hallo,

naja, so findet sich ja doch noch was im Netz. :)

Trotzdem noch eine Anmerkung:
Wenn Du nicht Unmengen äußerst exotischer Eproms brennen willst, kommst
Du mit 12,5V, 21V und 25V aus. Ob Du 25V und 21V wirklich noch brauchst,
muß Du entscheiden, die kleinen Eproms, wo die nötig sind (2716/2732 und
Abkömmlinge) sind ohnehin kaum noch zu finden.
Ob Dir der Zeitgewinn mit der Ub-Umschaltung wichtig ist, muß Du auch
selbst wissen. Alle mir bekannten C-Mos-Eproms lassen sich mit dem
schnellen Version (1ms Impulse usw.) bei 5V auch zuverlässig
programmieren.
Bis zum 27C512 ist mir zumindest nichts begegnet, was nicht mit 12,5V
und 1ms-Impulsen zu programmieren ging. Größere hatte ich damals
nicht.

Gruß aus Berlin
Michael

von Paul Baumann (Gast)


Lesenswert?

@Michael
Das mit der Up-Umschaltung war eher für Travelrec bestimmt. Ich
schrecke nicht vor Jumpern zurück und halte es mit Albert Eisbein:
Mache Dinge so einfach wie möglich, - aber nicht einfacher.
Der Mann hatte Recht. :-))

Gruß aus Thüringen

Paul

von TravelRec. (Gast)


Lesenswert?

Meine Programmierspannungsgenerierung sieht so aus: PWM-Ausgang vom
ATMEGA, MOSFET IRF7401, selbsgewickelter Trafo auf 09P-Kern 1:2, danach
1N4148 und 1000µF/35V als Spannungssammler. Daran ein Spannungsteiler
zurück zum A/D-Converter des ATMEGA, in der Software ein
interruptgesteuerter, geschlossener Regelkreis. Über Transistoren
schalte ich die Spannung an die notwendigen Pins vom EEPROM. Aufwand: 6
Bauelemente für die Spannungserzeugung und Messung und die Transen zum
auf die Pins geben. Macht letztlich weniger Lötaugen, als für die
ganzen Jumper und ich kann direkt zum angewählten, im ATMEGA abgelegten
EEPROM-Typ die passende Prog-Spannung wählen lassen und auf die
passenden Pins geben, alles per Software, inklusive Notabschaltung im
Fehlerfall. Also: Nix anfassen - nix falschmachen. Auch ein Sprichwort
;-)

von inoffizieller WM-Rahul (Gast)


Lesenswert?

>Spannungssammler
Interessante Wortkreation... ;)

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

lateinisch heißt der Sammler Accumulator, das deutsche Wort wurde
gelegentlich auch für Autoakkus benutzt.

von TravelRec. (Gast)


Lesenswert?

War auch mehr mit zugekniffenem Auge formuliert. Ebenso hätte ich
auch:"...zur Glättung..." schreiben können. Da der Kondensator aus
dem Trafo über die Einweggleichrichtung quasi in der Spannung
hochläuft, bis die Regelung das PWM reduziert, schien mir der Begriff
gerade recht passend, zumal ja auch die Programmier"Spannung" von dem
Kondensator bereitgestellt wird. Klar fließt dann auch Strom, somit
müßte da "Leistungssammler" gestanden haben ;-)

von Paul Baumann (Gast)


Lesenswert?

@Travelrec
Das ist eine gute Idee. Mal sehen, ob ich das in meinem Programm noch
mit unterbringen kann. Ich habe bloß die Demo-Version von Bascom und
die kann nur 4Kbyte verarbeiten. Gut, daß ich noch keine feste Platine
angeferigt habe, auf Lochraster kann ich noch ändern.

Frage: Was haltet Ihr davon, die Programmierspannung über eine Delon-
Schaltung, die vom PWM _Ausgang gespeist wird herzustellen. Ich habe
keine kleinen Trafokerne hier. :- (

MfG Paul

von Hauke Radtki (Gast)


Lesenswert?

Delon-Schaltung was ist das?
Ich würde es einfach mit nem einfachen kleinen Step-Up machen.

von Paul Baumann (Gast)


Lesenswert?

@Hauke
Die Delon- Schaltung ist ein Spannungsvervielfacher aus Dioden und
Kondensatoren. Ja, Hauke, ich will so wenig wie möglich Sachen
einsetzen, die ich erst kaufen müßte. (Wegen des Deines Vorschlags
mit dem Aufwärtswandler).

So, "richtige" Eproms wie 27128 gehen schon gut, aber ich hänge noch
an dem Algorithmus aus dem Datenblatt vom EEprom fest. :-(
Mein Programm ist größer als 4 Kbyte geworden und ich werde wohl erst
die Vollversion von Bascom kaufen müssen.

MfG Paul

von Hauke Radtki (Gast)


Lesenswert?

du hast doch nen AVR in deinem Projekt, dann nimmst doch noch ne kleine
Spule+transistor oder Mosfet+Diode+kondensator, alles keine besonderen
Bauteile und fertig ist dein step up.

von Paul Baumann (Gast)


Lesenswert?

Ich setze jetzt erst mal meine Idee mit der Delon - Schaltung um.
Wie ich schon weiter oben schrieb, habe ich keine kleinen Trafokerne
da.

Gruß Paul

von Paul Baumann (Gast)


Lesenswert?


von Paul Baumann (Gast)


Lesenswert?

So, das funktioniert jetzt mit der "Hochspannungs"-Erzeugung. Ich
mache es aber nicht mit PWM sondern toggele einfach einen Pin, wo obige
Schaltung dran sitzt. Jetzt will ich die Spannung noch über einen Teiler
auf einen der AD-Wandler geben und auswerten.

MfG Paul

von TravelRec. (Gast)


Lesenswert?

Najaa - wenn Du kein PWM-Pin an Deiner Spannungserzeugung hast, wie
willst´n die Spannung dann regeln, einfach Pin aus und warten bis die
Spannung gefallen ist, dann wieder weitertoggeln? Das dürfte Dich aber
einiges an Prozessorpower kosten und ruckelig wird die Spannung
bestimmt auch arg.

von Paul Baumann (Gast)


Lesenswert?

Nein, nein. Ich gebe die erzeugte Spannung auf einen LM317. Den steuere
ich über ULN 2803 an und zwar so, daß ich die "unteren"
Widerstände des LM317 als Einstellregler auslege. Den ULN2803
wiederum steuert ein 74164, den ich immer soweit zählen lasse, daß der
entsprechende Ausgang den Einstllregler auf L zieht. So ist
gewährleistet, daß immer die richtige Programmierspannung für den
jeweiligen Typ anliegt.
Über PWM konnte ich nicht gehen, da meine beiden Timer die Länge
der Programmierimpulse machen. Außerdem hatte ich den PWM-Ausgang
mitten in einem Adressbyte drin. :)

Ist zwar ein großer Aufwand an Schaltkreisen (2 Stück mehr als im
Original), spart aber die vielen Jumper und die Spannung ist die
richtige.

MfG Paul

von Hauke Radtki (Gast)


Lesenswert?

Dann hätte ich mir einfach nen 2. Spannungsregler µC reingehaun :> sowas
wie n tiny2323 oder was kleines in der art.

von Paul Baumann (Gast)


Lesenswert?

Spannungsregler wie tiny2323  ??? Kopf katz. :-o

MfG Paul

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.