Basic für 80C31

#4355820
Lesenswert?

Janus M. schrieb:
> Somit wird nur das RAM versorgt. Insofern ist D2 ziemlich sinnvoll.

Meine Güte, aber in der Schaltung hast Du es wieder anders gemacht, da 
hängen nun RAM und ROM an Minus der Batterie. -> Ist beseitigt.
Und D6 ist überflüssig bis störend.

(Wenn Du beim MAX meinst zwei Ausgänge gegeneinander arbeiten lassen zu 
müssen auch wenn es nach Deinen Aussagen irgendwie funktioniert - 
meinetwegen. Ich werde mich dazu nicht weiter äussern. Ich verstehe 
nicht, warum ich da Disskussionen anfangen sollte. Wenn Du uns nicht 
glaubst, warum fragst Du hier dann überhaupt, wenn Du die Ratschläge 
dann ignorierst?

Damit Du mal verstehst, wie es uns ergeht:
Zeitpunkt kurz nach Erfindung des Rades.
"Hallo! Ich habe meinen Karren nun mit quadratischen, drehbar gelagerten 
Scheiben versehen. Die Fortbewegung ist jedoch anstrengend und sehr 
holperig. Was kann ich tun?" Antwort aus dem Steinzeit-Rad-Forum: "Du 
musst runde Scheiben montieren, dann ist die Fortbewegung ganz leicht."
"Ja, aber Kreise verstehe ich nicht. Pi ist mir auch unheimlich. Ich 
habe jetzt ein Dreieck genommen, es funktioniert ja auch so irgendwie.")


Edit: Hat sich zeitlich überschnitten - ne ich habe die 2. Seite nicht 
gelesen ...

Gruß

Jobst
OP #4355841
Lesenswert?

Jobst M. schrieb:
> Janus M. schrieb:
>> Somit wird nur das RAM versorgt. Insofern ist D2 ziemlich sinnvoll.
>
> Meine Güte, aber in der Schaltung hast Du es wieder anders gemacht, da
> hängen nun RAM und ROM an Minus der Batterie. -> Ist beseitigt.
> Und D6 ist überflüssig bis störend.
>
> (Wenn Du beim MAX meinst zwei Ausgänge gegeneinander arbeiten lassen zu
> müssen auch wenn es nach Deinen Aussagen irgendwie funktioniert -
> meinetwegen. Ich werde mich dazu nicht weiter äussern. Ich verstehe
> nicht, warum ich da Disskussionen anfangen sollte. Wenn Du uns nicht
> glaubst, warum fragst Du hier dann überhaupt, wenn Du die Ratschläge
> dann ignorierst?

Huch wieso das? Ist ja noch offen habe da ja noch keine Lösung und wird 
auch nicht ignoriert. Habe nur den Stand bis jetzt eingearbeitet.


>
> Damit Du mal verstehst, wie es uns ergeht:
> Zeitpunkt kurz nach Erfindung des Rades.
> "Hallo! Ich habe meinen Karren nun mit quadratischen, drehbar gelagerten
> Scheiben versehen. Die Fortbewegung ist jedoch anstrengend und sehr
> holperig. Was kann ich tun?" Antwort aus dem Steinzeit-Rad-Forum: "Du
> musst runde Scheiben montieren, dann ist die Fortbewegung ganz leicht."
> "Ja, aber Kreise verstehe ich nicht. Pi ist mir auch unheimlich. Ich
> habe jetzt ein Dreieck genommen, es funktioniert ja auch so irgendwie.")

Naja, versuche nur meine Platine aufzuarbeiten. Wer was dazu sagen will 
kann es gerne tun. Wem es zu langweilig ist muss ja nichts sagen.
Vielleicht ist manchen gar nicht mehr klar wie komplex das alles ist.
Ignoriert habe ich die Ratschläge sicher nicht und versuche die auch 
irgendwie umzusetzen.



>
> Edit: Hat sich zeitlich überschnitten - ne ich habe die 2. Seite nicht
> gelesen ...

Weiss jetzt nicht genau was mit 2ter Seite gemeint ist.

Der Schaltplan wurde weiter angepasst.
Angehängte Dateien:
(Firma: matzetronics) #4355984
Lesenswert?

Janus M. schrieb:
> Huch wieso das? Ist ja noch offen habe da ja noch keine Lösung und wird
> auch nicht ignoriert. Habe nur den Stand bis jetzt eingearbeitet.

Der MIDI Empfänger und der MAX232 an RXD des 8052 erzeugen einen 
Konflikt, denn hier arbeiten der Ausgang des OK und des MAX auf eine 
Leitung. Wenn du allerdings in die Leitung vom MAX noch eine Diode 
einarbeitest, kannst du das lösen(Wired-OR). Allerdings hast du im 
Moment im Plan die MIDI-RXD Leitung dauerhaft auf Masse, da ist also 
noch ein Fehler im Plan. Ausserdem scheint der Phototransistor verpolt 
zu sein.
OP #4356260
Lesenswert?

Matthias S. schrieb:
> Ausserdem scheint der Phototransistor verpolt
> zu sein.


https://www.conrad.de/de/optokoppler-mit-schmitt-trigger-sharp-pc-900-dip-6-ausfuehrung-optokoppler-mit-schmitt-trigger-184098.html

Von Conrad übernommen und in der Bauteiledatei nur die Anschlüsse
angepasst.

Danke für den Hinweis mit der Diode.


>Allerdings hast du im
>Moment im Plan die MIDI-RXD Leitung dauerhaft auf Masse, da ist also
>noch ein Fehler im Plan.

Ja das stimmt. Wird noch geändert.
Angehängte Dateien:
OP #4356328
Lesenswert?

So müsste das jetzt stimmen. Die Diode in der RXD Leitung ist 
hoffentlich so richtig. Der Kurzschluss ist auch beseitigt.

Hab auch die Diode raus genommen, die Jobst als überflüssig erachtet 
hat.
Die Pufferschaltung sieht jetzt etwas anders aus als in der 
ursprünglichen Zeichnung. Habe da letztlich den Vorschlag von Jobst 
genommen.

Einen Fehler in der Vertauschung der CE Leitungen hab ich auch 
korrigiert.
Praktisch stimmte es bei meiner Schaltung nur im Schaltplan war da etwas 
verrutscht.
Angehängte Dateien:
OP #4361665
Lesenswert?

Jetzt kommt das Problem mit den undefinierten Zuständen.
Ich hoffe dass ich das auch irgendwie gelöst bekomme.

Ich habe jetzt den TL7705 eingezeichnet.

Im Gegensatz zum TomAs Version sieht das etwas anders aus die CS 
Leitungen werden bei Ihm angesteuert bei mir sind es OE. Da ich die 
Funktion von JP2 und JP3 erhalten will.
Angehängte Dateien:
Gast #4361794
Lesenswert?

Hallo Janus,

deine Schaltung wird so nicht funktionieren. Das OE-Signal des Speichers 
aktiviert und deaktiviert das lesen aus dem Speicher. Es zu deaktivieren 
verhindert nur das lesen aus dem Baustein. Lesen funktioniert aber 
zerstörungsfrei, es kann beliebig oft durchgeführt werden, ohne etwas im 
Speicher zu verändern - es muß nicht deaktiviert werden.

Willst du den Speicherinhalt schützen, mußt du Schreibzugriffe 
verhindern. Dies geht mit deaktivieren des Chip über CS oder 
deaktivieren von Write (WR).

Dazu muß das NAND-Gatter das Sperrsignal (für WE oder CS) auch beim 
Zusammenbruch der Versorgungsspannung auf High-Pegel halten können, das 
setzt voraus, daß der Steuerchip seine Versorgung weiter behält. 
Entweder aus einem Kondensator, oder aus einer Batterie/Akku.

Der Standard 7400 oder ähnliche haben einen viel zu hohen statischen 
Strombedarf dafür, hier muß ein CMOS Baustein 74HC00 o.ä. her. Sein 
Strombedarf ist im statischen Zustand (ohne Schaltflanken) 
vernachlässigbar gering.

Problematisch können die drei restlichen Gatter im Baustein werden. Ist 
die Versorgungsspannung weg, liegt meist einer der Eingänge auf Low, 
damit ist sein Ausgang High (~Batteriespannung). Ist an diesem Ausgang 
eine Last gegen 0V angeschlossen (ausgeschaltet ist auch VCC auf 0V), 
kann ein Strom fließen welcher die Batterie belastet. In deinem 
Schaltplan sind U5 A,B,D OK (sie liegen an hochohmigen Eingängen), aber 
U5C könnte Probleme machen. Wenn am Stecker nichts angeschlossen ist, 
ist sein Eingang offen und kann allen möglichen Mist einfangen, was zu 
Schaltflanken führt die wieder Stromverbrauch bedeuten. Legst du die 
Eingänge über PullDown-Widerstand an 0V ist der Ausgang High und legt 
die Batteriespannung als Sperrspannung an die LED. Legst du die Eingänge 
über PullUp-Widerstand an Batteriespannung, sollte es passen. Sicherer 
wäre es allerdings für die LED einen Transistor zu nehmen und U5C 
einfach lahmlegen (Eingänge an 0V) Ausgang offen.

Am besten aufbauen und dann den Strom aus der Batterie messen, unter ca. 
1µA ist alles in Ordnung. Über 1µA fließt irgendwo anders als gewollt 
ein Strom. Bei mir braucht ein 62256 zwischen 0,2µA bis 0,6µA, abhängig 
vom Baustein und der Höhe der Batteriespannung.

Gruß. Tom
#4361814
Lesenswert?

TomA schrieb:
> liegt meist einer der Eingänge auf Low,

Wenn die Gatter mit an der Batterie hängen, liegen die stromlosen 
Schaltungsteile auf 'High'. Das war ja der Trick mit den Dioden ...


Janus M. schrieb:
> Weiss jetzt nicht genau was mit 2ter Seite gemeint ist.

Man kann sich die Threads hier auch seitenweise ansehen.
Daher sind auch die beiden letzten Absätze in Klammern gewandert.



Gruß

Jobst
OP #4361902
Lesenswert?

Jobst schrieb:

>Wenn die Gatter mit an der Batterie hängen, liegen die stromlosen
>Schaltungsteile auf 'High'. Das war ja der Trick mit den Dioden ...

Das tun sie aber so nicht. Die Gatter sind nach dieser Schaltung 
stromlos :-(


TomA schrieb:
>Der Standard 7400 oder ähnliche haben einen viel zu hohen statischen >Strombedarf 
dafür, hier muß ein CMOS Baustein 74HC00 o.ä. her. Sein >Strombedarf ist im 
statischen Zustand (ohne Schaltflanken) vernachlässigbar >gering.

Da ist ein 74HC00 drin hatte das nur wegen der Schriftlänge als 7400 
geschrieben.

>Dazu muß das NAND-Gatter das Sperrsignal (für WE oder CS) auch beim 
>Zusammenbruch der Versorgungsspannung auf High-Pegel halten können, das >setzt 
voraus, daß der Steuerchip seine Versorgung weiter behält. Entweder >aus einem 
Kondensator, oder aus einer Batterie/Akku.

In der Schaltung habe ich aber kein NAND am RAM für WE oder CS oder muss 
da dann eine neue Verbindung gezogen werden? Ist mir so nicht ganz klar 
wie Du das meinst mit dem NAMD.

>Dies geht mit deaktivieren des Chip über CS oder deaktivieren von Write >(WR).

Deaktiviert heisst Low?

Mal abgesehen von U5C und wenn ich den 74er nach Anleitung von Jobst 
noch auf die Batterie lege, brauch ich dann den TL7705 überhaupt?
OP #4362154
Lesenswert?

TomA schrieb:

>Dazu muß das NAND-Gatter das Sperrsignal (für WE oder CS) auch beim 
>Zusammenbruch der Versorgungsspannung auf High-Pegel halten können,
>das setzt voraus, daß der Steuerchip seine Versorgung weiter behält.

>Entweder aus einem Kondensator, oder aus einer Batterie/Akku.

War wieder mal spät. Natürlich muss das High sein wie Du schon 
geschrieben hast. :-)

P28 vom MC muss LOW sein und U5B muss per Jumper vertikal gesteckt sein 
um High am CS vom RAM zu haben. Der TL7705 wäre demnach überflüssig
Gast #4362447
Lesenswert?

Hallo Janus,

ja. die Signale WR und CS sind Lowaktiv. Durch High-Pegel ist ihre 
Funktion passiv.

Die Schaltung wie sie jetzt ist, könnte eventuel funktionieren. Ein 
Rückfluß des Stromes in den µC wird durch D10 verhindert, wodurch der 
Pegel an CS High bleiben sollte. Aber was macht der µC, wenn seine 
Spannung soweit gesunken ist, daß er undefiniert arbeitet, wenn er CS 
und WR aktiviert schreibt er in den Speicher.

Ich denke du kommst um eine Unterspannungserkennung nicht herum. Du 
kannst aber auch die Schaltung, so wie sie jetzt ist, testen. Schreib 
ein Testprogramm das das RAM mit definierten Werten füllt und nach aus- 
und wieder einschalten den Raminhalt überprüft. Wenn der Inhalt nach 
mehrmaligen Versuchen unverändert ist und die Stromaufnahme paßt, bist 
du am Ziel.

Gruß. Tom
Gast #4362474
Lesenswert?

Hallo Janus,

das ist die Flußspannung der Schottky-Diode D10, scheint in Ordnung zu 
sein.

Im eingeschalteten Zustand fließt Strom von VCC durch das RAM, kommt bei 
GND des RAM wieder raus und fließt über D10 zu GND des Netzteils. 
Dadurch entsteht an D10 eine Flußspannung von ca. 0,3V für eine 
Schottky-Diode. Um diese Spannung ist GND vom RAM gegenüber GND vom 
Netzteil angehoben.

Gruß. Tom
OP #4362485
Lesenswert?

TomA schrieb:
> Hallo Janus,
>
> das ist die Flußspannung der Schottky-Diode D10, scheint in Ordnung zu
> sein.
>
> Im eingeschalteten Zustand fließt Strom von VCC durch das RAM, kommt bei
> GND des RAM wieder raus und fließt über D10 zu GND des Netzteils.
> Dadurch entsteht an D10 eine Flußspannung von ca. 0,3V für eine
> Schottky-Diode. Um diese Spannung ist GND vom RAM gegenüber GND vom
> Netzteil angehoben.
>
> Gruß. Tom

Danke, das ist dann somit OK.

Um eine Unterspannungserkennung komm ich dann wohl nicht herum. Obwohl 
ich das mit dem Testprogramm noch nicht gemacht habe.

Proplem ist, wo schliesse ich denn genau an? Insbesondere POWERG?
Angehängte Dateien:
OP #4366588
Lesenswert?

Habe noch eine Frage zur Programmierung des 89S52.

Gibt es da einen Unterschied gegenüber dem alten 89C52?
Andersrum gefragt, kann man die einfach blind gegeneinander austauschen 
und mit dem gleichen Programmiertool (AVRISP) bearbeiten.

Und inwiefern muss man die Frequenz des Quarzes beachten? Ist es dabei 
egal ob man mit 4 bis 6 MHz oder 11 bis 12 MHz arbeitet?
(Firma: matzetronics) #4366733
Lesenswert?

Janus M. schrieb:
> Gibt es da einen Unterschied gegenüber dem alten 89C52?

Die 89C52 kannst du nicht mit ISP programmieren, diese MC erfordern 
einen anderen Algorithmus und auch mehr Anschlussleitungen als ISP. 
Siehe dazu auch Seite 13 ff. im AT89C52 (Rev 313h 02/00) Datenblatt.
Die 89C52 mit der Signatur '1E 52 FF' sind 12V Typen und lassen sich in 
entsprechenden EPROM Brennern programmieren - die Typen mit der Signatur 
'1E 52 05' hingegen sind für 5V Programmierung gedacht.

Wenn die Beschriftung etwas wie 'xxxx - 5' zeigt, hast du einen 5V Typ 
erwischt.

Janus M. schrieb:
> Und inwiefern muss man die Frequenz des Quarzes beachten? Ist es dabei
> egal ob man mit 4 bis 6 MHz oder 11 bis 12 MHz arbeitet?

Ja. Wenn du über ISP programmierst (also einen 89S52) muss aber 
sichergestellt werden, das der ISP Takt nur 1/4 des CPU Taktes ist.
OP #4366766
Lesenswert?

Danke Matthias, dann kann ich mir die Lötarbeit erst mal sparen.

Ich wollte den 89S52 nämlich mittels EPROM Burner wie den 89C52 brennen.
Das entfällt dann. Somit ist die Lösung, die Du mit dem AVRISP angegeben 
hattest die einzig mögliche.

Werde dann einen Quarz mit 11,0592/4 oder 12/4 MHz besorgen. Werde mir 
dann auch so was zusammenbasteln.

Kannst Du mir vielleicht noch sagen ob der Unterspannungsschutz (TL7705) 
so funktionieren kann. Bin mir immer noch nicht ganz im Klaren ob ich 
den
negierten RESET Ausgang an CS vom RAM so direkt anschliesse oder ob da 
noch was fehlt.
Angehängte Dateien:
OP #4367658
Lesenswert?

Matthias S. schrieb:
> Kapitel 22 "Programming Interface – Parallel Mode"
> Könnte von einem einigermassen modernen EPROM Brenner unterstützt
> werden. Das sollte aber auch im Manual des Brenners stehen.


Danke für den Texthinweis. Na dann kann es mit dem "Braten" ja losgehen.
Wie man nun einigermassen interpretieren darf werde ich dann sehen. 
Bisher funktionierte mein Prommer aus den 90ern ganz gut.
Naja damals gab es den 89S52 noch nicht und deswegen steht darüber 
nichts im Prommer. Muss das probieren.

BTW: Hab noch einen 150 Ohm Widerstand bei dem Schaltplan vergessen.
Portanschluss direkt auf Masse über Schalter ist nicht so gut auf Dauer.

Schade, dass sich noch niemand über die Unterspannungserkennung 
geäussert hat. Scheint wirklich ein schwammiges Thema zu sein.
Angehängte Dateien:
#4368080
Lesenswert?

Janus M. schrieb:
> Offenbar bin ich nicht der Einzige, der es nicht gefunden hat.

Wieso?

Matthias S. schrieb:
> Kapitel 22 "Programming Interface – Parallel Mode"

Offenbar bin ich nicht der einzige, der es gefunden hat. :-D


Janus M. schrieb:
> Portanschluss direkt auf Masse über Schalter ist nicht so gut auf Dauer.

Gerade beim 8051 ist dies sogar bei einem Programmfehler völlig 
unproblematisch ...



Gruß

Jobst
(Firma: matzetronics) #4370672
Lesenswert?

Janus M. schrieb:
> ...das sieht der Verfasser wie im Anhang ersichtlich etwas anders.

Ist aber sein Problem. Solange man das nicht auf dem Adressbus, sondern 
auf z.B. Port 1 oder Port 3 macht, ist das völlig egal. Es ist ja sogar 
so, das du einen Eingang beim 8051 so definierst, das du in einfach auf 
high setzt.
Gegen den internen Pullup kannst du dann den Port auf low ziehen.
Was meinst du, was dein MAX232 auf der RXD Leitung sonst macht? Erzieht 
sie schlicht auf low mit seiner Ausgangsstufe.

Port 2 und Port 0 verhalten sich im /EA Modus etwas anders hier - wird 
während des Zugriffs aktiv auf High gezogen. Steht aber auch im 
Datenblatt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren