Anzeigeschaltung für Öltemperatur und Dieselpartikelfilter-Regeneration

Begonnen von picass, 01.07.2025, 19:16:10 CEST

Vorheriges Thema - Nächstes Thema

picass

Schicker Titel..., wa?! Und mein neuestes Projekt wird hoffentlich auch schick. Bislang hatte ich für meinen Dicken - was mein 6-Zyl-Diesel darstellt - sowohl eine Schaltung erstellt, welche die nachträgliche Anzeige der Öltemperatur ermöglicht, als auch eine für die Anzeige der Regeneration des Dieselpartikel-Filters (RDPF). Nachträglich, weil serienmäßig Öltempanzeige nicht vorhanden war und die Anzeige der RDPF nur in 3 Fahrzeugen in ganz Deutschland vorhanden ist. Das eine ist das Meine und die anderen Zwei haben die Schaltung von mir! >:D
Und nun möchte ich die beiden Anzeigen auf einer einzigen Platine vereinigen. Diese P gab es schon seit einigen Monaten, aber wie das so ist mit der Zeit..... Aber gettz gehts los und ein erster, fleißiger Anfang ist gemacht.
Es wird dann also zwei Anzeigen geben, jede besteht aus 3 roten 7-seg-LEDs. Nix LCD, das passt stilistisch überhaupt nicht. Entwickelt wurde der Dicke kurz nach der Jahrtausendwende, da waren rote 7-s-A's noch voll schick.
Auf der Platine werkeln dann gleich zwei PIC18F14K13. Mag sein, dass man mit einem auskommen könnte. Aber bevor ich mir die Arbeit mache, aus zwei Assembler-Progs eines zu machen und dann auch noch die beiden Anzeigen gleichzeitig unter einen einzigen Hut zu bekommen, zahle ich ca. 3 € für den zweiten Pic, nehme die fertigen Progs und fettich isses.
Wohlan denn, es darf mal wieder gepict werden. >:D
Grüße, picass
projekt1.jpgprojekt2.jpg

pic18

Ist immer wieder beeindruckend wie Du die Platinenlayout machst. Das traue ich mir nicht zu. Routes Du die Leiterbahnen von Hand, oder kann man dies auch automatisch machen. Du benutzt für jeder Anzeige einen eigenen LED - Driver? Ist es der 4511?

picass

Ja! Da bin ich voll der Macher! >:D Kann ich mit Fug und Recht behaupten....., das gehört zu meinen meist geliebten Aktionen, also das Routen von Hand.
Gaaaaaanz früher mal, als das Layout-Prog "Eagle" noch von CAD-Soft verkauft wurde, hatte ich als Hobby- und Gelegenheitsanwender wie so furchtbar viele auch den Wunsch, die teuerste Version dieses Progs zu haben, weil das halt einen Auto-Router enthielt. Is klar, war aber nicht nur etwas, sondern furchtbar viel zu teuer, zumindest die Version, welche über 8 cm Platinenlänge rausging. Und das waren selbstredend noch Zeiten, in denen kein Nicht-Profi mit SMDs arbeitete, das waren noch die voll externen Zeiten.
Irgendwann bin ich auf Wegen, die hier nicht debattiert werden müssen, an solche Version geraten. Is klar, sofort den Autorouter anwerfen! Und auch gleich wieder abstellen. Kaum war das Sehnsuchtsobjekt verfügbar, wurde es nicht mehr benutzt. Quasi sofort wurde mir klar, dass mir kein einziger dieser Layout-"Vorschläge" gefallen würde und dass ich das wesentlich besser hinbekommen würde.
Und so kam es, dass diese Luxusversion zwar vorhanden war, aber seitdem in diesem Punkt nicht ein einziges Mal mehr genutzt wurde. Auch die für mich verzwicktesten Platinen route ich selbstverständlich mit der Hand. Da freue ich mich immer vorher schon, währenddessen erst recht und hinterher bin ich stolz "wie Bolle".

Wirf mal einen Blick auf die angehängten Entwürfe. Da hatte ich ja aus zwei Schaltungen eine einzige gemacht. Die ursprünglichen Schaltungen sind auch noch einzeln vorhanden, rsp. es gibt Schaltung 1 und halt die 2. Im Layouter ließ sich das irgendwie zusammenfügen. Und so klappt nun das Doppel. Also fast. Im zweiten Bestückungsschritt waren u.a. die 3 Spannungsregler dran. Einer davon wollte nicht. Da hatte ich doch tatsächlich im Gestrüpp der Leiterbahnen auf beiden Seiten eine winzige "Luft-Linie" übersehen, also die vom Schaltplan her vorgegebene Verbindung, welche aber noch nicht in eine Leiterbahn umgewandelt wurde. Schwitz. Also 'nen Millimeter-Stück Draht verlötet und nu' kann der Regler auch regeln. Und bei die Gelegenheit wurde noch eine zweite Stelle mit Luftrouting entdeckt. War "nur" ein Entstörkondensator, der nur einseitig verbunden war. Wahrscheinlich hatte ich diesen Entwurf mal wieder - wie so oft - nachts kurz vor dem Insbettgehen abgeschlossen. >:D
Ja, sind 4511-er !
Grüße, picass
kombisch1.pngkombisch2.pngkombilay.png

pic18

kann es sein, dass du den Transistor neben C3 unten links (Bild1), und den Transistor unten rechts neben C2 (Bild2) falsch eingezeichnet hast?

picass

Sehr aufmerksam von dir. Ja, die Darstellung ist in beiden Fällen falsch. Tatsächlich sitzen an beiden Positionen kleine, dreibeinige LDO's für die PIC-Versorgungsspannung. Aber diese Bauteile waren in meiner alten Eagle-Version nicht vorhanden und ich hatte wohl keine Lust, so'n Bauteil via Inet nach zu schieben.
Grüße, picass

picass

Mühsam nährt sich das .....is klar.
Ist nicht gut, wenn man länger aus einem Thema raus ist, zumindest gilt das für mich. Eine der beiden Schaltungen ist für die Anzeige der Öltemp. Zeitlich war das, als ich "Hüfte hatte". >:D  Das Layout von dunnemals hatte ich jüngst übernommen und in den Neuentwurf integriert. Integration kann Probleme aufwerfen. So waren - siehe oben - zwei winzige, also sehr kurze Luftlinien übersehen worden. Entsprechend fehlten im Layout nun diese zwei Leiterbahn-Stückchen. Die also flinkt nachgefädelt, ist ja nun wirklich kein Prob. Ist aber leider doch ein Prob geworden, denn im Eifer wurde eine Leiterbahn verbunden, die besser ohne Bindung geblieben wäre. Und nu' zog die noch längst nicht fertig gestellte Schaltung über 20 mA und das steigerte sich mit der Betriebsspannung, obwohl da eigentlich nichts zu verbrauchen war. Hat lange gedauert, bis der Fehler gefunden wurde. Leider könnte es alle bereits montierten HCT4511-er erwischt haben. Das wird noch 'ne Nummer. :'(
Grüße, picass

Ottmar

Hallo picass,
nur mal 'ne Anmerkung zu Deinem wirklich klasse ausgeführten PCB der Anzeigeschaltung (Öltemperatur etc.) - nur ein Hinweis, keine Kritik!
Du magst ja Deine Gründe haben, um diese Dekoder und die vielen Vorwiderstände zu verwenden.
Man könnte jedoch künftig darüber nachdenken, die 7 Segment-Anzeigen über einen 8bit-Port, per Multiplex anzusteuern. Dann braucht es nur noch je Digit 1 Transistor als Digittreiber. In Deinem Fall also 3 Stück davon und zur Ansteuerung 3 weitere Portpins.

Vorteile:
Ersparnis von Vorwiderständen, 1x7, bzw. 1x8 Vorwiderstände reichen aus.
Ersparnis von 3 Dekoderbausteinen. Es sei denn, die Features des Dekoders sind notwendig,aber dann könnte man das mit 1 Dekoder, ebenfalls im MPX-Verfahren betreiben.
Vereinfachte Leiterbahnführung

Nachteile:
Abgesehen vom etwas erhöhten Programmieraufwand für das Multiplexing, ist kein solcher ersichtlich, es sei denn die Dekoderfrequenz von ca. 50-100Hz stört unabwendbar. 

Der LT1521 ist ein nettes Teil das man nicht oft sieht. Habe immer noch ein Widerstands-Sortiergerät in Arbeit worin das Gegenstück TLE4267 verwendet wird (schalte nur die 5V zu, wenn ein Widerstand auf die Kontakte gelegt wird).

Weiterhin viel Erfolg
Ottmar

picass

Die Antwort auf das Beharren der Verwendung so vieler Bauteile ist schlicht "historischer" Art: natürlich hatte ich schon viel früher nach solchen 7-seg-Anzeigen geschielt und sie auch verwendet. Aber das Programmieren halt in Assembler. Und das war mir früher einfach zu aufwendig und auch heute ist mir Aufwand in Hardware lieber. In diesem Punkt war ich schon immer so und bin es bis heute geblieben: ich greife gerne zum Lötkolben, das Programmieren - na ja - kommt zum Schluss.

Heute wieder fleißig gelötet! Aber den größten Teil der Zeit damit verbracht, zu überprüfen, ob die durch den Leiterbahnfehler letztendlich verursachte Einleitung viel zu hoher Betriebsspannung auf die Reihe der sechs HCT4511-er nun alles demoliert hatte oder aber nicht. Durch die zuviel gezogene Drahtverbindung strömten Elektronen mit bis zu 12 Volt auf die Dekoder und deren Tod-Spannung wird mit wenig über 6 Volt angegeben. Gerechnet hatte ich natürlich mit dem Ableben aller. Bei einer Schaltung (Öltemp-Anzeige) stellte ich erst mal die Bestückung fertig, lötete zum Schluss den PIC ein und verpasste dem ein Mini-Prog, welches langsam die Zahlen von 0 bis 9 hochblättert und halt ausgibt.
Überraschung: bei zweien der drei Anzeigen gabs das erhoffte Wunder, alle Digits leuchteten. Bei einer aber war die Leuchtdichte zu gering und es fehlten zwei Digits. Das führte ich natürlich auf einen überstressten 4511-er zurück. Den also raus flexen, neuen rein und schwitz: ne, das wars nicht, wieder selbe Fehlanzeige. Oszi raus gekramt, aber die Signale kamen alle am Segment an. Also war das defekt!

Hat schon mal jemand eine 7-ziff-Segment-Anzeige aus einer Platine mit Layern oben und unten ausgelötet, bei der sämtliche Pinne durchgängig gut verlötet sind und nur unten kommt man ran? Also an einen Pin? Da fiel mir nur das Zerspanen ein. Was 'ne Sauerei und immer die Gefahr, gleich die Leiterbahnen auf der Platine mit zu versäbeln. Die neue Anzeige wurde nun aber doch vorher einzeln geprüft, was ich vorher nicht getan hatte. Nun sitzt sie drin und endlich darf ich mich nach zahlreichen Stunden wieder über das schlichte Leuchten von LEDs freuen.
Grüße, picass
defekt7seg1.jpgdefekt7seg2.jpgdefekt7seg3.jpgdefekt7seg4.jpg



picass

Fast fertig! Die zweite Teilschaltung - Diesel-Partikelfilter-Regeneration - ist auch mit seinem PIC bestückt. Und TUSCH: Auch hier sind alle 74HCT11-er "heile" geblieben und auch sonst nichts zerstört. Ein kleines Wunder: durch den o.g. Leiterbahnfehler waren ca. 14 Volt auf alle Input A -Eingänge gelangt. Dieser IC Typ hat 4 Eingänge für Daten und einer davon... Von dort muss der Strom/die Spannung sich ihren internen Weg gebahnt haben und am positiven Versorgungs-Anschluss (Vss) ausgetreten sein. Von dort gings auf den Ausgang (!) des Festspannungsreglers MCP1730-50 - ein 5 V-Regler - und dann intern in den rein. Alles lebt noch, bis auf den einen 74-er, den ich zwischenzeitlich als defekt im Verdacht und ihn abgeflext hatte. 7 Volt ist die Maximun (Tod) -Spannung für den 74-er laut Datenblatt, das Doppelte hat er abbekommen. Der gesamte Fehlerstrom lag bei ca. 30 mA, verteilt auf die sechs 74-er.

Auch mit dem Fädelwerk bin ich durch. Die oberste Leiste trägt ja die auf der Unterseite verborgenen Anzeigen. Nach Absäbeln der 3 kleinen Stege wird die Leiste um 90° hoch gedreht und mit Kleber so befestigt. Bei früherer Schaltung hatte ich die vielen Verbindungen mit dünnem Draht ausgeführt. War aber danach nur noch mit Gewalt zu verbiegen, was die Lötungen gefährdete. Nun also Fädeldraht. Der steckt locker 1 A und mehr weg, die ca. 12 mA für ein Digit machen den nicht an.
Gettz noch ein paar R's und dann die Progs in die PICs - die beiden "Programmiersockel" warten schon. Ist ja von nun an ganz einfach. Obs wirklich so wird...... ::)
Grüße, picass
defekt7seg5.jpg

picass

Natürlich wurde es nicht einfach. Aber nun funktioniert endlich wenigstens die Hälfte. Will sagen: der "linke" Teil des Doppelpacks an Schaltungen hat soeben seine Funktion aufgenommen. Der Linke, das ist die Anzeigeschaltung für die Regeneration eines Dieselpartikelfilters. Die letzte Hürde lag wieder bei den Basics: der Eingangsbereich an Port A war reichlich bestückt mit Widerständen. A0 und A1 verfügen je über eine Widerstandsdekade und damit werden die untere und die obere Bereichsgrenzen für den analogen Eingang festgelegt. Nach der Bestückung ist leider gegen das Prinzip verstoßen, dass die Programmiereingänge eben gerade nicht bestückt sein dürfen. Der PIC ist aber eingelötet, is klar, da mussten wieder Eingriffe her: Leiterbahnunterbrechungen, Jumper-Einbau, etc., Aber nu funkt es. Also so halbmäßig. >:D
Grüße, picass

picass

Wie man sich doch prima selbst austricksen kann?!
Gestern zum Kaffeetrinken am Nachmittag bemerkte meine Frau zu recht, dass ich verärgert aussehen würde. Was voll zutraf, denn nach dem ersten Befüllen des PICs wollte das Programm nicht funktionieren, obwohl es dasselbe Prog war, welches in der Vorläufer-Platine mit nahezu identischem Layout prima arbeitete. Zwei, dreimal kurz angeschaltet und die Eingangsspannung korrekt im passenden Bereich variiert, aber immer zeigte die Schaltung nur die Maximal-Temperatur an. Also: sich ärgern!
Nach dem K-Trinken standen noch die nachträglichen Einfügungen der Jumper-Brücken an, um die Port A-Eingänge A0 und A1 fürs Programmieren von den sonst im Betrieb notwendigen Widerständen zu befreien. Danach natürlich weitere Einschaltversuche. Erst 'ne Zeitlang wieder nichts und dann auf einmal gänzlich ohne irgendeine weitere Veränderung entschloss sich die Schaltung, doch wie erwartet zu arbeiten! Im Nachhinein leicht zu verstehen:

Die Schaltung liest einen Analog-Wert ein, arbeitet sich durch eine Tabelle hoch und vergleicht. Passt es, dann wird ein vorbereiteter Wert dort ausgelesen und kann ohne aufwendige Rechenschritte angezeigt werden. Die Tabelle liegt im EEPROM. Sie kommt dort rein, weil das Prog nach dem Starten den Inhalt einer festgelegten Speicherstelle ausliest und mit dem erwarteten Wert vergleicht. Passt das, dann wird ins Hauptprogramm gesprungen und die Standard-Arbeit wird ausgeführt. Wenn nix passen und das ist beim allerersten Start des Progs der Fall, werden erst die im Programm hinterlegten Werte ins EEPROM geschrieben. Und da lag der Hase im Pfeffer, denn die Tabelle besteht aus 16-bit-Werten, das Schreiben ins EEPROM ist nicht so der allerschnellste Vorgang und dann laufen meine PICs ja grundsätzlich mit angezogener Handbremse und 31,5 kHz. Also startete die Schaltung und funktionierte prächtig, aber weil nach kurzer Betrachtung nicht gleich Erhofftes zu sehen war, wurde gleich wieder abgeschaltet und rum gegrübelt und die Hardware überprüft. Bei den ersten Einschalt-Tests wurde also immer erst zu kurz gesprungen. Bis endlich mal die Tabelle doch übertragen war und der PIC - befreit von dieser Last - sich im Messen und Anzeigen austoben konnte.
Tja, wenn man nicht mehr so drin steckt und dann in falscher Richtung - Hardware - sucht, dann passiert Ärger, der "eigentlich" gar nicht nötig ist.
Grüße, picass

^Cobra

Verstehe ich das richtig: DIe Werte stehen im Programm und werden, wenn nicht vorhanden in den EEPROM geschrieben?
Wieso schreibst du die Werte nicht direkt in den EEPROM? 

picass

Nach dem Programmiervorgang und beim allersten Start des Progamms werden die Tabellenwerte vom Programm automatisch ins EEPROM geschrieben. Das passiert nur einmal und nur beim ersten Start. Ab dem zweiten und jedem weiteren Start wird lediglich eine Abfrage ausgeführt, ob die Werte im EEPROM vorhanden sind. Fällt die Prüfung positiv aus, wird schlicht das normale Programm (ohne weiteres EEPROM-Befüllen) abgearbeitet.
Grüße, picass

^Cobra

Okay. Aber meine Frage bleibt:
Wieso schreibst du die Werte nicht gleich in dem eeprom? 
Gibt es einen Vorteil,wenn das Programm die Werte rein schreibt?
Oder ist das nicht der interne eeprom sondern ein externer?


picass

Ich kenne keinen anderen Weg als diesen, dem Programm die Werte einzuverleiben und anschließend das Prog zu beauftragen, das interne EEPROM zu befüllen. Nicht übersehen: es geht um das Füllen von 240 einzelnen Speicher-Stellen!
Grüße, picass

^Cobra

240 einzelne Speicherstellen die du ja auch erstmal im Program rein schreiben musstest.
Da könnte man mit:
EEPROM Code 0x2100
DA .1,.2,.3,.4,.5,.6,.7,.8,.9,.10,.100,.120 ;usw. 
ebenfalls die 240 nach einander ablegen.
Die 1 wäre nun bei speicherplatz 2100 und somit (bei mein gewählten pic zumindest) EEPROM Adresse 0. Die Huntert somit bei Adresse 10. 
Was auch schick ist: selbst im simulator kannst du kontrollieren ob die Werte in der richtigen Adresse stehen. Ich habe mir jetzt bei meiner PV Steuerung mit 
DE "PV_Steuerung V1.4"

Den String abgelegt. Dieser wird beim auslesen des Pic angezeigt. Da ich immer ein "alten" pic derzeit zur Seite liegen habe komme ich manchmal durcheinander welcher eig. grade getestet wird  :-\ so schaue ich jetzt einfach welche Version gerade nicht eingebaut ist und weiß dann was Sache ist. 

Schnellantwort

Name:
Verifizierung:
Bitte lassen Sie dieses Feld leer:
Geben Sie die Buchstaben aus dem Bild ein
Buchstaben anhören / Neues Bild laden

Geben Sie die Buchstaben aus dem Bild ein:

Tastenkürzel: Alt+S Beitrag schreiben oder Alt+P für Vorschau

🡱 🡳