Forum: Mikrocontroller und Digitale Elektronik Betreibsstundenzähler


von Andrè (alangerfeld)


Lesenswert?

Hallo

ich habe mal einen kleinen Fragenkomplex zu einer eigentlich recht 
einfachen Sache, welche ich euch mal als Funktionsablauf beschreiben 
möchte.

Eine Attiny ( Typ noch nicht eindeutig bestimmt ) soll folgendes machen:
Wenn der Tiny durch die Herstellung der Stromversorgung gestartet wird, 
soll er aus dem EEPROM einen Zahlenwert auslesen, welcher eine 
Zeitstempel in Minuten verkörpert.
Dann soll ein Timer- oder Zählfunktion gestartet werden, welche jede 
weiter Minute diesen eingelesenen Zahlenwert um eins erhöht. Nebenbei 
soll mit einem ADC die Versorgungsspannung vor einen Energiespeicher / 
Elko überwacht werden, damit in diesem Moment, wo noch etwas Strom zur 
Verfügung steht dieser Zahlenwert noch schnell in den EEPROM geschrieben 
werden kann.
Als Kommunikationsschnitttstelle soll die Serielle genutzt werden, um 
den aktuellen Minutenwert auszulesen.
Meine Fragen dazu:
Wie groß müßte die Kapazität eines solchen ELKOs sein, um das sichere 
Schreiben auf dem EEPROM zu gewährleisten ?
Benötige ich zur genauer Fortschaltung des Minutenzählers einen Quarz ?
Was müßte ich sonst noch bei der Stromversorgungsschaltung beachten ?

Ziel des ganzen ist eine Art Betriebsstundenzähler für ein älteres Boot, 
wo es für den alten Diesel noch keinen solchen Zähler, auch wegen der 
Durchführung von Wartungsarbeiten, gibt. Das nachgerüstete 
Onboard-Info-System ( Baujahr 1998 )verfügt über eine serielle 
Schnittstelle, über welche man Daten auslesen oder ausgeben kann. Leider 
verfügt dieses System auch noch über keinen eigen Betriebsstundenzähler. 
Daher wollte ich das Spannungssignal der Lichtmaschine nutzen, um damit 
zu lokalisieren, wann der Motor wirklich läuft.

Ich hoffe euch fällt dazu einiges ein, was mir bei der Umsetzung helfen 
könnte. Apropos, die Lichtmaschine erzeugt 18 Volt Wechselspannung.

Damit bedanke ich mich schon im voraus, und wünsche allen noch ein paar 
schöne friedliche Feiertag

Andrè

von Thomas F. (igel)


Lesenswert?

Andrè schrieb:
> Ziel des ganzen ist eine Art Betriebsstundenzähler für ein älteres Boot,
> wo es für den alten Diesel noch keinen solchen Zähler

Ich würde den Zähler fertig kaufen. Funktioniert dann auch zuverlässig:
https://www.hengstler.de/de/s_c10010416i36878/Betriebsstundenzaehler_-_DC_636/10416.html

Andrè schrieb:
> die Versorgungsspannung vor einen Energiespeicher /
> Elko überwacht werden, damit in diesem Moment, wo noch etwas Strom zur
> Verfügung steht dieser Zahlenwert noch schnell in den EEPROM geschrieben
> werden kann.

Hab ich schon mal gemacht:
Versorgungsspannung 12V, unter 8V wird Stopp erkannt. 470µF haben bei 
einen Atmega328 dafür gut ausgereicht.

von Rahul D. (rahul)


Lesenswert?

Andrè schrieb:
> Wie groß müßte die Kapazität eines solchen ELKOs sein, um das sichere
> Schreiben auf dem EEPROM zu gewährleisten ?
> Benötige ich zur genauer Fortschaltung des Minutenzählers einen Quarz ?
> Was müßte ich sonst noch bei der Stromversorgungsschaltung beachten ?
Dazu brauchst du die Angaben, wie viel Strom dein Controller beim 
Schreiben ins EEPROM benötigt, die Dauer des Schreibvorganges.
Dazu kommte dann noch, die Spannung, auf die die µC-Betriebsspannung 
absinken darf, damit er noch ordnungsgemäß funktioniert.

Andrè schrieb:
> Apropos, die Lichtmaschine erzeugt 18 Volt Wechselspannung.

gleichrichten und auf eine µC-verträgliche runterregeln.

von Steve van de Grens (roehrmond)


Lesenswert?

Andrè schrieb:
> Wie groß müßte die Kapazität eines solchen ELKOs sein, um das sichere
> Schreiben auf dem EEPROM zu gewährleisten ?

1F verliert bei 1A genau 1V pro Sekunde.

von Steve van de Grens (roehrmond)


Lesenswert?

Andrè schrieb:
> Benötige ich zur genauer Fortschaltung des Minutenzählers einen Quarz ?

Wenn du keine andere ausreichend genaue Taktquelle hast, wäre das der 
normale Weg.

von Steve van de Grens (roehrmond)


Lesenswert?

Andrè schrieb:
> Was müßte ich sonst noch bei der Stromversorgungsschaltung beachten ?

Ohne Stromversorgung darf keine Spannung an den I/O Pins anluegen. Das 
betrifft in deinem Fall speziell die serielle Schnittstelle. Denn die 
liegt im Ruhezustand auf HIGH.

: Bearbeitet durch User
von Klaus H. (hildek)


Lesenswert?

Andrè schrieb:
> Benötige ich zur genauer Fortschaltung des Minutenzählers einen Quarz ?
Ja. Der interne Oszillator hat schon mal 10% Ablage und ist 
temperaturabhängig.

> Was müßte ich sonst noch bei der Stromversorgungsschaltung beachten ?
Nun, du brauchst einen (Brücken-)Gleichrichter, einen Siebelko und einen 
Spannungsregler für den µC. Und du musst möglichst früh erkennen, ob der 
Generator nichts mehr liefert.
Also, nach dem Brückengleichrichter und vor dem Siebelko noch eine Diode 
schalten und dazwischen das Signal für diese Erkennung abgreifen und 
über einen passende Spannungsteiler dem µC zuführen - evtl. auch mit 
Z-Dioden-Schutz.
Dann kann der µC sofort erkennen, wenn die erste Halbwelle fehlt und die 
Zeit ins EEPROM schreiben.
Die Größe des Siebelko hängt von mehreren Faktoren ab: Wieviel Strom 
braucht der µC und der Spannungsregler und wie lange dauert es, bis ins 
EEPROM geschrieben ist? Die Generatorspannung ist ja recht hoch, so dass 
es recht lange dauern wird, bis die Versorgungsgrenze vom Regler bzw. µC 
unterschritten wird. Was hindert dich daran, dort einfach mal mit 1000µF 
anzufangen bzw. den generell großzügig zu dimensionieren? Und dann ggf. 
zu optimieren.
Ich würde testhalber eine kleine LED aktivieren und die µC-Versorgung 
überwachen, dann sieht man schnell, wie lange es dauert, bis diese 
sinkt, wenn man zu dem Zeitpunkt die LED wieder abschaltet.
Man kann es sicherlich auch rechnen ...

von Egon (egon12345)


Lesenswert?

Für mein Moped hab ich zwei Gleichrichter Dioden, die erste als 
Verpolschutz und die zweite als Entladeschutz der Elkos vom uC in die 
Batterie/ Bordnetz.

Wenn das Moped ausgeschaltet wird wird ein Komparator mit IRQ Input 
geschaltet und der Wert sofort in den EEPROM geschrieben das dauert bei 
einer Long Zahl 3 ms. Die elkos Puffern die Versorgung noch etwas.

Über die Schnittstelle kannst du dir bequem die Spannungswerte, abhängig 
der zu probierenden Kapazitäten ausgeben lassen.

: Bearbeitet durch User
von Andrè (alangerfeld)


Lesenswert?

Egon schrieb:
> Für mein Moped hab ich zwei Gleichrichter Dioden, die erste als
> Verpolschutz und die zweite als Entladeschutz der Elkos vom uC in die
> Batterie/ Bordnetz.
>
> Wenn das Moped ausgeschaltet wird wird ein Komparator mit IRQ Input
> geschaltet und der Wert sofort in den EEPROM geschrieben das dauert bei
> einer Long Zahl 3 ms. Die elkos Puffern die Versorgung noch etwas.
Kannst du mir sagen wie die Spannung in deinem Moped ist =? Ich glaube 
kaum das ich die 18 Volt aus der Lichtmaschine auf einen der 
Eingangs-Pins legen kann ?
> Über die Schnittstelle kannst du dir bequem die Spannungswerte, abhängig
> der zu probierenden Kapazitäten ausgeben lassen.
Welche Spannungswerte ?

von Steve van de Grens (roehrmond)


Lesenswert?

Andrè schrieb:
> Ich glaube kaum das ich die 18 Volt aus der Lichtmaschine auf einen der
> Eingangs-Pins legen kann ?

Siehe Spannungsteiler.

von Egon (egon12345)


Lesenswert?

Ich hab 12 V DC mit einem Festspannungsregler hinten dran, bei AC musst 
Du halt erst mal gleichrichten ..

von Frank K. (fchk)


Lesenswert?

Andrè schrieb:

> Ich hoffe euch fällt dazu einiges ein, was mir bei der Umsetzung helfen
> könnte. Apropos, die Lichtmaschine erzeugt 18 Volt Wechselspannung.

Wenn der Betriebsstundenzähler selber das Ziel ist, würde ich den auch 
einfach fertig kaufen. Schau her:

https://www.amazon.de/dp/B07JVNNTR1/

Der funktioniert von 6 bis 80V DC. Für AC nimmst Du einen 
Brückengleichrichter, und fertig ist die Sache.

Wenn Du jedoch ein Problem für Deinen Attiny suchst, darfst Du natürlich 
selber basteln. Microchip hat für Dich EERAMs. Das sind I2C 
SRAM-Bausteine, die ihren Inhalt beim Spannungsverlust in EEPROM-Zellen 
verschieben und beim Poweron wieder automatisch laden. Als Backup fürs 
Sichern reicht denen ein kleiner 10uF 10V SMD-Keramikkondensator in 0603 
aus. Das ist sozusagen was für Idioten, da muss man nicht mehr groß 
nachdenken.

https://ww1.microchip.com/downloads/aemDocuments/documents/MPD/ProductDocuments/DataSheets/47L04-47C04-47L16-47C16-4-Kbit-16-Kbit-I2C-Serial-EERAM-20005371E.pdf

fchk

von Andrè (alangerfeld)


Lesenswert?

Frank K. schrieb:
> Andrè schrieb:
>
>> Ich hoffe euch fällt dazu einiges ein, was mir bei der Umsetzung helfen
>> könnte. Apropos, die Lichtmaschine erzeugt 18 Volt Wechselspannung.
>
> Wenn der Betriebsstundenzähler selber das Ziel ist, würde ich den auch
> einfach fertig kaufen. Schau her:
>
> https://www.amazon.de/dp/B07JVNNTR1/
>
> Der funktioniert von 6 bis 80V DC. Für AC nimmst Du einen
> Brückengleichrichter, und fertig ist die Sache.

Nein ich möchte keinen mechanischen Zähler sondern diese Information via 
Serial in das Onboard-Info-System einspeisen, oder darüber auslesen 
lassen, weil dort ohnehin schon alle anderen Informationen zu 
Batteriespannung, Motor- und Abgastemperatur, sowie Öldruck und dem 
Status der Lenzpumpen zusammenlaufen. Dort kann ich für die Serielle ein 
16 Bit Befehlswort ablegen, und dann soll der Tiny antworten. Die 
Protokollparameter dazu sind bekannt. Ich habe schon zu Testzwecken mit 
einen PI Zero einfache Texte abgesendet die dann auch angezeigt wurden.
> Wenn Du jedoch ein Problem für Deinen Attiny suchst, darfst Du natürlich
> selber basteln. Microchip hat für Dich EERAMs.
>
> fchk
Ich habe mit dem TINY noch kein Problem, weil es eine Idee war, wie man 
es nach meine Vorstellung auch umsetzen könnte. Daher hatte ich die 
Fragen gestellt.

von Steve van de Grens (roehrmond)


Lesenswert?

Steve van de Grens schrieb:
> Ohne Stromversorgung darf keine Spannung an den I/O Pins anluegen. Das
> betrifft in deinem Fall speziell die serielle Schnittstelle. Denn die
> liegt im Ruhezustand auf HIGH.

Das gilt auch umgekehrt für die Richtung ATtiny -> Boardcomputer. Denke 
daran, falls dein ATtiny länger mit Strom versorgt wird, als der 
Boardcomputer.

von Andrè (alangerfeld)


Lesenswert?

Steve van de Grens schrieb:
> Das gilt auch umgekehrt für die Richtung ATtiny -> Boardcomputer. Denke
> daran, falls dein ATtiny länger mit Strom versorgt wird, als der
> Boardcomputer.

Das Board-Info System startet mit dem Einstecken des Zündschlüssels in 
das Zündschloss. Mit der Drehung auf die Stellung "boat" und dem 
anschließenden drücken des Startknopfes wird der Motor gestartet. Damit 
beginnt die Lichtmaschine zu arbeiten.

Definitiv ist immer erst dieses Info System am Start, welches bis zur 
ersten Anzeige auf einem kleinen Display vielleicht 2 sek. benötigt. 
Somit der Vorgang Zündschlüssel einsetzen, herumdrehen und den 
Startknopf für den Motor drücken bis dann der alte Diesel auch mal in 
Schwung gekommen ist dauert definitiv 15-20 Sek. bis die Kontrollanzeige 
Boardspannung erlischt.

von Steve van de Grens (roehrmond)


Lesenswert?

Andrè schrieb:
> Definitiv ist immer erst dieses Info System am Start

Dann würde ich für die Richtung ATtiny -> Boardcomputer nur einen 
simplen Schutzwiderstand verwenden.

Für die andere Richtung musst du dir etwas mehr Gedanken machen, damit 
der ATtiny nicht parasitär über die serielle Schnittstelle gespeist 
wird.

Zum Beispiel:
1
                   2,2 kΩ
2
TxD o---|<|----+---[===]---o Attiny RxD
3
               |
4
               +---[===]---o 5V vom Attiny
5
                   2,2 kΩ

Der obere Widerstand dient zum Schutz vor negativer Fremdspannung, falls 
mal Kabel kaputt gehen oder ein Depp Namens "ich" es falsch anschließt.

: Bearbeitet durch User
von Andrè (alangerfeld)


Lesenswert?

Steve van de Grens schrieb:
> Zum Beispiel:
>
1
>                    2,2 kΩ
2
> TxD o---|<|----+---[===]---o Attiny RxD
3
>                |
4
>                +---[===]---o 5V vom Attiny
5
>                    2,2 kΩ
6
>
>
> Der obere Widerstand dient zum Schutz vor negativer Fremdspannung, falls
> mal Kabel kaputt gehen oder ein Depp Namens "ich" es falsch anschließt.
Diese |<| soll vermutlich eine Diode sein?
Eine normale Diode wie eine 1N4148 oder eine spezielle Schottky-Diode ?

von Steve van de Grens (roehrmond)


Lesenswert?

Andrè schrieb:
> Diese |<| soll vermutlich eine Diode sein?

Ja

> Eine normale Diode wie eine 1N4148

Ja

> oder eine spezielle Schottky-Diode ?

Nicht nötig. An der 1N4148 fallen weniger als 1V ab, das reicht.

Nimm keine "dicke" 1N400x, die wäre womöglich zu träge.

: Bearbeitet durch User
von Mi N. (msx)


Lesenswert?

Es reicht ein ATtiny45, wenn man die serielle Schnittstelle mit 
niedriger Baudrate (9600 Bd) per Software umsetzen möchte. Dazu ein x,yz 
MHz Quarz, Gleichrichterdiode, Elko und ZD4V7 zur Spannungsbegrenzung. 
Dazu ein paar Widerstände.
Die Wechselspannung dient der Nachtriggerung, daß die Versorgung noch 
stabil ist. Alternativ vergleicht man VCC mit der internen Referenz, um 
den Spannungsausfall zu erkennen.
Ein Elko 100 - 470 µF reicht, um die Daten ins EEPROM zu schreiben.

Wenn man ganz faul ist, nimmt man einen ATmega48. Da hat man schon die 
UART dabei.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Tiny mit vom Bordcomputer speisen und Klemme W am Diesel (liegt auch am 
Drehzahlmesser an) zur Aktivitätsmessung der Maschine benutzen. Dann 
spart man sich Klimmzüge an der seriellen und muss sich nur noch um den 
geregelten Rückzug mit EEPROM schreiben kümmern. Reicht aber auch, wenn 
Klemme W keine Wechselspannung mehr führt, dann ist der Motor aus. In 
dem Moment kann man einmal schreiben. Ich tendiere zu einem der neueren 
'mittleren' Tinys für Quarzoszillator und echter UART, wie Tiny 441/841.

von Georg P. (perthil)


Lesenswert?

Bei dem AVR den ich verwende (AVR DA) kann das interne EEPROM pro Zelle 
100000 Mal beschrieben werden. Wenn man jede Minute schreibt gibt das 
ca. 1700 Stunden oder 70 Tage. Sollte das nicht ausreichen ist es wohl 
besser externen Speicher zu verwenden.

Es gibt auch die Möglichkeit nach einer bestimmten Anzahl von 
Schreibzugriffen einfach andere EEPROM Zellen für den Zähler zu 
verwenden. Für ein Bastelprojekt ist das aber wohl zu viel Aufwand.

Außerdem muss dann man eventuell noch einen EEPROM Refresh machen. Beim 
AVR DA ist das typisch nach 4 Millionen Schreibzyklen der Fall.

Der ATtiny45 hat auch 100000 Schreibzyklen, bezüglich des Refreshs habe 
ich nichts im Datenblatt gefunden.

von Peter D. (peda)


Lesenswert?

Ich würde da einfach einen FRAM anschließen (10^14 read/writes), z.B. 
FM24CL16B-GTR (Mouser: 1,57€) und jede Sekunde drauf schreiben. Falls 
mitten im Schreiben der Strom ausfällt, abwechselnd auf 2 Adressen mit 
CRC.  Als MC z.B. einen ATtiny24 mit Uhrenquarz.

von Steve van de Grens (roehrmond)


Lesenswert?

ATtiny2313 und 4313 haben auch UART.

von Ralf K. (kurtx)


Lesenswert?

Keine Ahnung, was da ein externer Speicher besser machen könnte:

Das klappt auf jedem ATTiny ab 512 Byte EEPROM. Eine passende 
Quarzfrequenz hilft auch noch bei der evtl. nötigen Software-RS232.

EEPROM: 100.000 Schreibzyklen begrenzen die Minutenzählung auf 1667 
Stunden, was gerade mal 70 Tage sind.

Nehmen wir mal an, der Motor macht noch 20 Jahre Betrieb, das sind 
5.259.600 Minuten, die passen locker in 3 Byte.
Allerdings müssen wir die Schreibzyklen auf z.B. 1/128 (41.091) 
reduzieren, den Minutenstand also reihum in z.B. 128 x 3 Byte (384 Byte) 
des EEPROMs ablegen. Ein Tiny84 hat 512 Byte EEPROM, darunter wird es 
nicht gehen.

Beim Programmstart wird der höchste Minutenstand aus den 128 x 3 Byte 
Einträgen ermittelt: Er ist voriger Wert + 1, wobei die folgende Zahl 
nicht in diese Schema passt. Jeder neue Eintrag wird reihum in die 
folgenden 128 x 3 Byte des EEPROM-Arrays geschrieben.

Die Sorge um den letzten sicheren EEPROM-Eintrag ist überflüssig, wenn 
es nicht um JEDE Minute geht, wobei die ersten 25 Jahre nicht erfasst 
wurden...

Ist also mit einem Tiny machbar, man muss es nur wollen UND ... können.

von Andrè (alangerfeld)


Lesenswert?

Zu all den Diskussionen aber auch Vorschlägen:
Ich hatte nicht vor jede Minute den aktuellen Minutenwert in den EEPROM 
zurückzuschreiben. Daher hatte ich anfangs die Frage gestellt, welche 
Zeit für eine solchen Schreibvorgang benötigt wird, damit man über eine 
Pufferkondensator ELKO noch so viel Zeit / Strom in Reserve hat, damit 
man mit der Feststellung Motor aus gleich die Lichtmaschine liefert 
keinen Strom mehr damit noch schnell den aktuellen Wert in den EEPROM 
zurückschreiben kann.
Das die Schreibzyklen auch auf dem EEPROM begrenzt sind, ist und war mir 
bewusst, weil ich schon mehrere Datenblätter durchgesehen hatte.

Jetzt muss ich noch eine Möglichkeit finden, die "unsigned long" 
Variable time_value in den EEPROM zu schreiben, und diese auch wieder 
richtig / korrekt zurückzulesen.
 Der Hinweis von  <<Steve van de Grens>> bezüglich der Schutzbeschaltung 
des RX Ports habe ich schon erfolgreich umgesetzt. Danke für diese Info. 
Ebenso der Hinweis von <<Thomas F.>> zur einer ELKO-Größe.

Macht es einen wirklichen Sinn, die Vc des Tiny via eines 
Spannungswandlers auf 3,3 Volt abzusehen, wenn man ohnehin ein ext. 
Quarz benutzt ? Denn so wie ich schon geschrieben hatte, und feststellen 
konnte ist dieses Info-System, welches eigentlich nur die 
Betriebsparameter des laufenden Motors darstellt, auch mit dem Pegeln 
aus einem PI Zero klarkommt. Hier werden nach meinem Kenntnisstand über 
die PI GPIO Pins 8 + 10 auch nur 3,3 V Signale ausgegeben bzw. 
verarbeitet. Allerdings hatte ich einen 4,7k Widerstand in der Leitung 
Info-System TX Out zum Zero RX in !? Was mir allerdings komisch 
vorgekommen ist, wenn ich mit einem einfachen Multimeter die Spannung an 
diesem TX Out versuche zu messen, schwankt diese sehr stark. Die 
angezeigten Spannungswerte schwanken zwischen 4,83 Volt bis 5,86 Volt 
gelegentlich zeigt das Multimeter auch mal 6,3 Volt an.
Da mir auf der eine Seite egal ist, was dieses Info-System an Strom 
verbraucht, es aber auch keine wirklich genauen Angaben gibt welcher 
Pegel ( leider alles gebraucht als Gesamtpaket und mit unvollständiger 
Doku erworben ) an dieser RS232 Schnittstelle anliegen, ob man da zur 
Sicherheit noch einen MAX232 oder MAX3232 zwischen diesem und den 
Betriebsstundenzähler-Tiny dazwischen schalten sollte ?

von Rahul D. (rahul)


Lesenswert?

Andrè schrieb:
> Macht es einen wirklichen Sinn, die Vc des Tiny via eines
> Spannungswandlers auf 3,3 Volt abzusehen, wenn man ohnehin ein ext.
> Quarz benutzt ?

Was hat der Quarz mit deiner Problemstellung zu tun?



PS: Du plenkst!

von Steve van de Grens (roehrmond)


Lesenswert?

Ralf K. schrieb:
> EEPROM: 100.000 Schreibzyklen begrenzen die Minutenzählung auf 1667
> Stunden, was gerade mal 70 Tage sind.

Der Plan war allerdings nicht, jede Minute ins EEPROM zu schreiben.

von Steve van de Grens (roehrmond)


Lesenswert?

Andrè schrieb:
> Macht es einen wirklichen Sinn, die Vc des Tiny via eines
> Spannungswandlers auf 3,3 Volt abzusehen, wenn man ohnehin ein ext.
> Quarz benutzt

Der interne R/C Oszillator ist ein bisschen von der Spannung abhängig 
und deutlich von der Temperatur. Wenn du das IC ohne Quarz betreibst, 
ist ein 3,3V Regler also schon sehr zu empfehlen - bleibt aber noch die 
schwankende Temperatur. Nimm besser einen Quarz. Dem ist egal, ob du 3,3 
V oder 5 V nimmst.

Der RS232 Adapter muss zur Versorgungsspannung des Mikrocontrollers 
passen. Der MAX232 geht nur mit 5V, soweit ich mich erinnere.

> Was mir allerdings komisch vorgekommen ist ... an diesem TX Out
> schwanken zwischen 4,83 Volt bis 5,86 Volt
> gelegentlich zeigt das Multimeter auch mal 6,3 Volt an.

Wenn dein Info-System ebenfalls keinen herkömmlichen RS232 Port mit 
ordentlichem Netzteil hat, sondern wie der MAX3232 mit einer 
Ladungspumpe aus Kondensatoren arbeitet, dann kann das schon gut sein. 
Die liefert nämlich keine stabilen 12 Volt, wie du das möglicherweise 
von einem alten PC gewohnt bist.

> ob man da zur Sicherheit noch einen MAX232 oder MAX3232 zwischen
> diesem und den Betriebsstundenzähler-Tiny dazwischen schalten sollte?

Wenn dein Info-System eine RS232 Schnittstelle hat, dann sollte deine 
Schaltung selbstverständlich ebenfalls eine RS232 Schnittstelle haben. 
Solche Sparmaßnahmen, wie du angedeutet hast kenne ich nur zu gut aus 
den 90er Jahren, und die haben IMMER zu sehr nervigen Problemen geführt. 
Fange das gar nicht erst an!

Bei UART liegt die Tx Leitung im Ruhezustand auf HIGH (3,3V oder 5V).
Bei RS232 liegt die Tx Leitung im Ruhezustand auf -3V bis -13V.

Das ist so grundsätzlich anders, dass ein Pegelwandler notwendig ist.

: Bearbeitet durch User
von Sebastian W. (wangnick)


Lesenswert?

Andrè schrieb:
> Wie groß müßte die Kapazität eines solchen ELKOs sein, um das sichere
> Schreiben auf dem EEPROM zu gewährleisten ?

Ich hatte mich mal an einem ähnlichen Projekt versucht. Die Diskussion 
dazu findest du hier: Beitrag "Stromaufnahme Attiny Eeprom/Flash schreiben". Da 
sind auch einige Zahlen für den Stromverbrauch des Tiny während der 
EEPROM-Programmierung genannt, aus denen man die benötigte Kapazität 
zurückrechnen kann.

LG, Sebastian

von Steve van de Grens (roehrmond)


Lesenswert?

Steve van de Grens schrieb:
> -3V bis -13V

Korrektur: -3V bis -15V

von Dietrich L. (dietrichl)


Lesenswert?

Steve van de Grens schrieb:
> Korrektur: -3V bis -15V
Auch nicht ganz richtig:
Der Empfänger (Rx) muss spätestens bei -3V eine logische "0" erkennen.

Der Sender (Tx) sollte aber kleiner/gleich -5V liefern:
"Bei den Sendern (Ausgänge) muss die Spannung mindestens +5 V bzw. −5 V 
an einer Last von 3 bis 7 kΩ betragen, um genügend Störabstand zu 
gewährleisten."
(https://de.wikipedia.org/wiki/RS-232#Definition)

von Peter D. (peda)


Lesenswert?

Bei vielen AVRs kann man den EEPROM schon im Voraus löschen, das 
reduziert die Schreibzeit von 8ms auf 4ms je Byte.
Externe EEPROMs (AT24C512) kann man als Page (128 Byte) beschreiben, das 
ergibt nur 5ms Schreibzeit gesamt.

von Steve van de Grens (roehrmond)


Lesenswert?

Dietrich L. schrieb:
> Der Empfänger (Rx) muss spätestens bei -3V eine logische "0" erkennen.

-3V bis -15V ist eine logische 1, oder HIGH (der Ruhepegel)

> Der Sender (Tx) sollte aber kleiner/gleich -5V liefern

Ja. Genau Daran hielten sich viele Frickel-Lösungen auch namhafter 
Hersteller in den 90er Jahren nicht.

: Bearbeitet durch User
von Mi N. (msx)


Lesenswert?

Sebastian W. schrieb:
> Ich hatte mich mal an einem ähnlichen Projekt versucht.

Da sind einige Punkte aber ganz anders. Zum einen müssen hier nur wenige 
Bytes (max. 4) gespeichert werden, was im Page-Mode sehr schnell geht, 
und zum anderen hattest Du mit 3,3 V eine niedrige Versorgungsspannung 
gewählt. Nimmt man 5 V, hat man deutlich mehr Zeit, bevor der BOD-Reset 
aktiv wird.

Steve van de Grens schrieb:
> Korrektur: -3V bis -15V

Bei diesen Fantasiewerten muß ich immer auflachen. Als ob Käse nur dann 
schmecken würde, wenn man ihn mit einem Käsemesser schneidet ;-)
Aktuelle RS232-Treiber arbeiten auch mit 0 V und 3,3 V Pegeln, wenn man 
den Blick ins Datenblatt nicht scheut.

von Steve van de Grens (roehrmond)


Lesenswert?

Mi N. schrieb:
> Bei diesen Fantasiewerten muß ich immer auflachen.
> Aktuelle RS232-Treiber arbeiten auch mit 0 V und 3,3 V Pegeln

Das war schon vor 30 Jahren so, und doch hatte ich immer wieder Probleme 
mit den Produkten, die sich nicht an die Spezifikation (nicht 
Fantasiewerte) hielten.

"Für die Datenleitungen (TxD und RxD) wird eine negative Logik 
verwendet, wobei eine Spannung zwischen −3 V und −15 V 
(ANSI/EIA/TIA-232-F-1997) eine logische Eins und eine Spannung zwischen 
+3 V und +15 V eine logische Null darstellt. Signalpegel zwischen −3 V 
und +3 V gelten als undefiniert."
https://de.wikipedia.org/wiki/RS-232#Definition

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Mi N. schrieb:
> Aktuelle RS232-Treiber arbeiten auch mit 0 V und 3,3 V Pegeln, wenn man
> den Blick ins Datenblatt nicht scheut.

Selbst der uralte MAX232 erkennt <0,8V oder >2,4V an RXD als gültige 
Pegel.

von Mi N. (msx)


Lesenswert?

Steve van de Grens schrieb:
> Das war schon vor 30 Jahren so, und doch hatte ich immer wieder Probleme
> mit den Produkten, die sich nicht an die Spezifikation

Es geht hier nicht um 'Produkte', sondern um eine für den TO spezielle 
Lösung für seine Gerätschaften. Dabei muß er sich an keinerlei Norm 
halten, sofern er die Daten wie gewünscht auslesen kann.
Nicht, daß hier noch jemand ankommt, und irgendwelche 'Zertifizierungen' 
vorschreiben möchte.

von Mi N. (msx)


Lesenswert?

Peter D. schrieb:
> Selbst der uralte MAX232 erkennt <0,8V oder >2,4V an RXD als gültige
> Pegel.

War der das mit den +/- 15 V? :-)
Meine Referenz sind SN75189 oder MC1489 und bevorzugt die A-Typen. 
Allerdings gab es dabei auch 'Schnullis', die mit einem 
Pullup-Widerstand die Hysterese ins negative gezogen haben. Das hat dann 
genervt.

Noch einmal auf eine minimale Schaltung zu kommen:
Einen ATtiny mit 32,768 kHz Quarz betreiben und seinen Zählerstand 
einfach alle 5 s ausgeben lassen. Dann braucht man kein 
Abfrageprotokoll, kann den µC vielleicht an einer Pufferbatterie/-akku 
betreiben und hält den Zählerstand einfach im RAM.

von Dietrich L. (dietrichl)


Lesenswert?

Steve van de Grens schrieb:
> Dietrich L. schrieb:
>> Der Empfänger (Rx) muss spätestens bei -3V eine logische "0" erkennen.
>
> -3V bis -15V ist eine logische 1, oder HIGH (der Ruhepegel)

Oh Mist, da hast du natürlich recht.

von Andrè (alangerfeld)


Lesenswert?

Jetzt wird es aber komisch bis ganz komisch.
Zu der Aussage von << Mi N.>> und der Minimalschaltung.
Warum soll ich jetzt noch irgendwo eine zusätzliche Batterie hinbasteln. 
Diese Logik erschließt sich mir nicht. Wenn der TINY ( ich werde 
wahrscheinlich einen 84er nehmen ) hat doch einen EEPROM ?
Und warum soll dann im Winter der Tiny, wenn das Boot auf Reede liegt, 
weitermachen ? Ich muss ohnehin getrennt an die Lichtmaschine noch vor 
dem Laderegler ran, denn sonst würde offensichtlich diese Schaltung über 
den Batteriestrom weiter laufen. Denn alles mit Ausnahme der Lenzpumpen 
hängt mit an dem Zündschloßschalter "Schlüssel steckt drin" und erst 
wenn der Schlüssel gedreht wird, in diesem Fall auf Stellung 3, ist es 
möglich den Motor via eines gesonderten Startknopfes zu starten. Und 
solange dieser Schalter in dieser Stellung verweilt, kann auch der Motor 
laufen. Die anderen Stufen dienen nur dazu, in zwei Gruppen die 
Beleuchtung soweit einzuschalten, das alle vorgeschriebenen Lichter und 
Beleuchtungen aktiv werden. Somit diese Schaltung auf das Dauerplus der 
Lenzpumpen zu klemmen bringt mir gar nichts - oder habe ich das Ansinnen 
dieses Textes nicht richtig aufgefasst ?
Noch eine Frage zu den UART, oder RS232 Schnittstelle. So wie ich das 
gelesen habe, steht an der Rückseite diese Info-System-Kastens RS232, 
aber ich kann dort keine negativen Spannungen messen. COM am Meßgerät = 
schwarzes Kabel geht auf Masse der Sub-D9 Buchse. Ob ich da nun einen 
MAX232 oder was auch immer dazwischenschalte wäre mir egal, es muss nur 
dauerhaft funktionieren.

von Frank O. (frank_o)


Lesenswert?


: Bearbeitet durch User
von Mi N. (msx)


Lesenswert?

Andrè schrieb:
> Warum soll ich jetzt noch irgendwo eine zusätzliche Batterie hinbasteln.
> Diese Logik erschließt sich mir nicht.

Muss es ja auch nicht. Es gibt eben auch andere Ansätze.
Das 'vielleicht' hast Du gelesen?

Frank O. schrieb:
> Zack! Fertig!

Fehlt nur noch die ser. Ausgabe.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Andrè schrieb:
> Denn alles mit Ausnahme der Lenzpumpen
> hängt mit an dem Zündschloßschalter "Schlüssel steckt drin" und erst
> wenn der Schlüssel gedreht wird, in diesem Fall auf Stellung 3, ist es
> möglich den Motor via eines gesonderten Startknopfes zu starten.

Du hast meinen Beitrag nicht gelesen oder nicht verstanden.
Der Tiny wird ganz normal aus dem Bordnetz gespeist, wenn du den 
Schlüssel auf 'Zündung' drehst.
Er bekommt von der LiMa ein Signal der Klemme W - wenn das vorhanden 
ist, zählt er die Betriebsstunden, solange der Motor läuft. Stoppt der 
Motor, kann der Tiny in Ruhe ins EEPROM schreiben. Dreht man den 
Schlüssel auf aus, wird der Tiny stromlos.
Das erlaubt also mindestens 100.000 Start-Stop Zyklen des Diesels und 
sollte so auch verwöhnten Ansprüchen genügen. Noch besser ist, das 
keinerlei Rumgefummel an der Lima nötig ist, weil (wenn die Kiste einen 
Drehzahlmesser hat) alle Signale im Cockpit anliegen. Klemme W wird ein 
wenig begrenzt und gleichgerichtet und dient dann als 'Motor läuft' 
Signal.

von Steve van de Grens (roehrmond)


Lesenswert?

Andrè schrieb:
> Noch eine Frage zu den UART, oder RS232 Schnittstelle. So wie ich das
> gelesen habe, steht an der Rückseite diese Info-System-Kastens RS232,
> aber ich kann dort keine negativen Spannungen messen.

Das müsste aber so sein, wenn es RS232 ist.

Möglicherweise hat der Hersteller keinen ordentlichen Pegelwandler 
verwendet, sondern gefrickelt. Oder es ist doch keine RS232 
Schnittstelle, und vielleicht wird sie mit mehr als 3,3V und negativen 
Spannungen zerstört.

: Bearbeitet durch User
von Andrè (alangerfeld)


Lesenswert?

Matthias S. schrieb:
> Das erlaubt also mindestens 100.000 Start-Stop Zyklen des Diesels und
> sollte so auch verwöhnten Ansprüchen genügen. Noch besser ist, das
> keinerlei Rumgefummel an der Lima nötig ist, weil (wenn die Kiste einen
> Drehzahlmesser hat) alle Signale im Cockpit anliegen. Klemme W wird ein
> wenig begrenzt und gleichgerichtet und dient dann als 'Motor läuft'
> Signal.
Nein, es ist kein Drehzahlmesser als eigenständiges Anzeigeinstrument 
vorhanden. Das Info System greift einen Kontakt an der Lichtmaschine ab, 
welche sich noch vor dem Laderegler befindet. Es gibt nur einfache 
Kontrollanzeigen für Öldruck, welche immer heller wird, wenn etwas mit 
dem Öldruck nicht stimmt. An diesem Sensor ist ein wohl eine Art 
Membranbarometer mit Widerstand angeschlossen. Sinkt also der Druck an 
der Ölpumpe, verringert sich der Widerstand, und die Leuchte änderte 
ihre Helligkeit.
Weiterhin ein analoges Zeigermeßgerät für die Kühlwassertemperatur, 
welche parallel auf den Info System angezeigt wird, und ein Kontrollampe 
für die Abgas-Temperatur.

von Andrè (alangerfeld)


Lesenswert?

Frank O. schrieb:
> Und ohne Ladezustand.
> Gabelstapler, Betriebsstundenzähler, das sind deine Suchbegriffe. Da
> findest du alles was das Herz begehrt.
>
> Zack! Fertig!
Und nicht Zack und auch nicht fertig ! Wie ich schon geschrieben hatte, 
ich benötige kein System für welches ich noch zusätzliche Löcher in die 
Konsole bohren oder sägen muss, sondern ein System, welches ich über das 
vorhandene Board-Info System auslesen kann.
Entschuldige, du bist nun schon der X te, der solche Vorschläge macht, 
ohne das diese so gewollt sind, und so auch nicht umgesetzt werden 
können.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Andrè schrieb:
> Das Info System greift einen Kontakt an der Lichtmaschine ab,
> welche sich noch vor dem Laderegler befindet.

Dann zapf doch auch da. Klemme W sollte jede LiMa haben, die an einem 
Diesel hängt. Habe ich auch schon ab und zu für sowas benutzt auf 
Yachten, z.B. für die automatische Aktivierung der Heizungspumpe, wenn 
der Diesel läuft.

: Bearbeitet durch User
von Andrè (alangerfeld)


Lesenswert?

Danke an alle Mitglieder
Läuft und Funktioniert

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.