Translate

17 Januar 2013

SAE J1772 und IEC 61851 Steuersignale (Hardware)


Im letzten Blog sprach ich über die Steuersignale, jetzt geht es darum,wie man die
erzeugen und auswerten kann.

Ich habe auf alle Fälle vor, das mit ein paar Microcontrollern und einigen Analogen
Bauteilen (Transistoren und Operatiosverstärker) zu machen.
Da das Puls-Pausenverhältnis einstellbar sein soll werde ich das Rechtecksignal
mit einem Microcontroller erzeugen.
1kHz Takt ist hierbei eher langsam.....ich muss überhaupt erst mal überlegen,
wie ich am besten auf diese Frequenz komme.Bisher hatte ich eher das Problem,
nicht hoch genug mit der Frequenz zu liegen.......

Da die PWM-Frequenz bei einer 8-Bit-PWM mit Prescaler1 etwa doppelt
so viele kHz hat wie der Prozessortakt in MHz sollte also ein ca 4MHz Quarz
mit Teilung durch 8 zum Erfolg führen.
(Entweder Timer-Prescaler1 und Teiler beim Prozessortakt durch 8 oder
Prozessortakt 4MHz und Timer-Prescaler 8
Da so ein ATtiny bzw Atmega bevorzugt zwischen 1 und 10MHz getaktet werden sollte
gefällt mir die Lösung mit 4MHz und Timer-Prescaler 8 am besten,
obwohl 0,5MHz und Prescaler1 sicher auch noch schnell genug wäre,
wenn da kein Display dran hängt.

Da der Timer nicht bis 250 sondern bis 256 (0-255) zählt, muss das korrigiert werden
und ein Quarz mit 4,096 MHz eingesetzt werden. (ein absolut handelsüblicher Wert)

Berechnung
Quarz = 4.096 MHz ; Prescaler = 8 ; Timer = 8 Bit ergibt: (512000Hz/1) / (256*2) = 1000Hz

Als Treiber an +-12V will ich ev. einen TC4431 nehmen, eigentlich ein Mosfet-Treiber,
aber der schaltet sehr schön bis zu 30V und kann mit 5V angesteuert werden.wofür
aber hier ein Optokoppler benötigt wird.Ein Motortreiber L293 wäre auch geeignet,
oder vielleicht tuts sogar ein simpler OP, wobei der sogar noch den Vorteil hätte, dass
man noch nicht mal einen Optokoppler braucht....das ist weitere Überlegungen wert!
Da könnte ein (1)  4-fach OP reichen. Einen als Treiber, einer für den positiven max-Wert
einer für den negativen Max-Wert und einer als Inverter zum Messen der
negativen Spannung. (Der Atmega kann ja nur im positiven Bereich von 0 bis 5V messen)
Die Last von 12mA bei 12V an 1k ist dabei eher zu vernachlässigen, aber die Umsetzung
eines 5V TTL-Signals gegen GND auf ein +-12V Rechteck ist gar nicht so trivial,
wie man zunächst meint.......ein OP hat das Problem, dass er nicht ganz auf die
Versorgungsspannung durchschaltet, und hier muss die Spannung aber exakt passen,
genauer gesagt beide Spannungen, weil ja +12V und -12V gegen GND ausgewertet werden.
Die + und -12V kann ein DC-DC-Wandler liefern oder ein entsprechendes Netzteil.
aber hier ist wieder das Problem, dass die Spannungen abgeglichen werden müssen,
weil die Ausgänge nicht ganz bis zur Versorgung durchschalten.
Treiberbausteine wie der TC4431 oder der L293 wiederum schalten zwar noch
schöner als der OP, aber ihre Steuersignale sind auf die Masse des IC bezogen,
also da wo unsere -12V liegen.Es muss also noch irgend eine Umsetzung
zwischen Microcontroller und Treiberbaustein rein, damit der Potentialunterschied
überwunden werden kann.......erst mal wird der OP getestet, der ist ohnehin
schon in der Schaltung und erzeugt das Signal, und wenn das mit dem Pegel
passt bzw anzupassen ist dann reicht das ja schon so. Aber mit einem ordentlichen Treiber
am Ausgang wäre das einfach eleganter gelöst, und so richtig robust und überdimensioniert
solls am Ende auch noch sein, schliesslich läuft diese Messleitung später zusammen mit Leitungen
auf denen womöglich mehrere hundert Ampere per PWM getaktet fliessen in einem Strang!
Das muss man ganz sicher schirmen und schützen!

 Vielleicht betreibe ich ja den OP weiterhin an der ungeregelten Spanung des DC-DC-Wandlers
um ein paar Volt Spielraum zu haben und steuere damit einen TC4432 an (nicht invertierend)
der an geregelten +-12V hängt oder ich baue gleich eine Halbbrücke, wie ich sie auch schon in der
Franzbox drin habe.... aber das ist eigentlich viel zu viel Aufwand.......
Der LT1014 schaltet schon mal ganz gut nach -12V durch, nur am oberen Ende fehlen die
berühmten 0,7V.Das könnte man durch eine Diode in der Masseleitung des +12V-Reglers
kompensieren. Ich habe gerade keinen "Rail to Rail" OP zur Hand, der auch die 24V
Versorgung aushält und von der Pinbelegung passt
Man könnte ja auch Verstärkung und Offset einstellen, aber das finde ich nicht
ganz so ideal.Da führen wieder mal viele Wege zum Ziel! Hier wird sich sicher noch so
manches ändern
. .......mal schauen was bei den Tests rauskommt!


Ja, ja, wieder mal die selben Teile.......ein Atmega....welche Überraschung   ;-)
Aber das ist halt auch wieder mal ein ganz typischer Fall für die Grundschaltung
der Franzbox, und die hat sich mittlerweile sehr gut bewährt, auch wenn ich hier
wegen der Verstärkergeschichte die Schaltung erst mal auf einer Lochrasterplatine
aufbauen werde und ausserdem wieder mal ein Design-Update immer näher rückt
Da werde ich wohl beim nächsten Update der Franzbox-Platine vermutlich vom
Atmega48 bis 168 auf einen Atmega16 oder 32 in SMD umsteigen.
Ich hätte gerne mehr Schnittstellen insbesondere zur Kommmunikation zur Verfügung.
Wie schon mehrfach erwähnt fehlen mir da Ausgänge für RS232, RS485,
sowie die Möglichkeit einer galv.getrennten Spannungsmessung.
und Anschlüsse für I²C und /oder SPI wobei I²C schon machbar ist,
aber (noch) nicht galv.getrennt. Wobei I²C nicht ideal ist sobald die Leitungen länger
werden oder wenn galv.Trennung gefordert wird.(dafür ist I²C eigentlich nicht vorgesehen)
Trotz alledem werde ich aber demnächst noch eine Erweiterung zur bisherigen Franzbox
zu bauen versuchen, wo ein 4-Fach AD-Wandler MCP3428 mit einem I²C Isolator
vom Typ ADUM1250 oder 1251 angesteuert galv.getrennte Messungen ermöglichen soll.
als delta sigma ADC mit programmierbarem "Gain" könnte der MCP3428 sogar Shunts in
einer Auflösung von 62,5µV in 16bit ; 250µV in14bit und 1mV in 12bit auswerten.
falls das in der Praxis tatsächlich so funktioniert wie angepriesen
Mal sehen wie ich das alles zeitlich hinbekomme.......
aber von den bisherigen Platinen habe ich keine mehr, und weil ich die als Prototypen
fertigen liess, ist es eigentlich preislich egal, ob ich wieder mal was ändere oder nicht

Zum Auswerten müssen Ops die Spannung verstärken und über Dioden
Kondensatoren aufladen so dass der max-Wert messbar wird
Die Spannungsmessung und Auswertung macht der Microkontroller, der auch die
Rechteckspannung erzeugt.

In etwa so sollte der Analogteil letztendlich werden.
(Achtung, das ist nur mal ein erster Entwurf mit Bauteilwerten "aus dem Bauch raus")

...........so siehts aus......und der Verstärkerteil funktioniert schon mal grundsätzlich,...nur die Spannung ist
ohne Spannungsregler etwas zu hoch weil der DC-DC-Wandler ein ungeregelter ist, und mit 12V Festspannungsregler fehlt etwa ein halbes Volt. Da muss eine andere Regelung her!
No Problem !.....oder etwa doch????

Update vom 21.01.2013:
Ich hab jetzt hinter den Ausgang des OP noch einen TC4432 drangehängt und
 versorge den mit exakt +12,04 und -12,02V (ausgesuchte 7812 bzw. 7912)
Der OP hängt aber jetzt an der ungeregelten Spannung,damit da noch etwas Reserve zum Verstärken
bzw Umpolen der Meßspannung bleibt. (könnte man auch runterteilen, muss sowieso noch geschehen)
aber ich wollte den vollen Wert haben. zumindest vorerst mal)
Der TC4432 schaltet das nach -12,02 und +11,67V (der OP kam nur auf 11,35 V)
Das ist zwar nicht viel mehr, aber ich liege immerhin schon innerhalb der Spezifikation von 11,5V-12,5V
Das lass ich mal so, bis mir noch was Besseres einfällt.
Eine Halbbrücke aus zwei Mosfet wäre ja der totale "Overkill" !

Andererseits....muss man denn überhaupt gezielt nach -12V schalten? Die negative Halbwelle wird ja
gar nicht belastet.... wieso nicht einfach die Masse eines 24V-Reglers auf -12V beziehen
und die +12V ein und ausschalten.......ein Widerstand nach -12V würde wohl reichen
um den Ausgang sauber nach GND(hier -12V) zu ziehen
Es gibt ja auch Spannungsregler mit Enable-Eingang. Hier würde der endlich mal Sinn machen!

Wie ich oben schon erwähnte könnte ich den 12V-Regler noch etwas "feintunen" mit einer
Schottky-Diode am Masseanschluss. Die Spannungsverluste in den Dioden der Meßschaltung
kann ich im Auswerteprogramm berücksichtigen. das ist jetzt weniger schlimm.
Die Elkos an den Messleitungen reagieren auch noch etwas langsam, da wären wohl 10K
oder 22k als Last die bessere Wahl bzw 100µF statt 220µF.Das stört aber vorerst mal nicht.
Wenn ich oft genug messe, und immer den höchsten Wert nehme, dann könnte man vielleicht
auch auf die Analoge Maximumermittlung verzichten! Einen OP zum invertieren der negativen
Spannung werde ich aber immer brauchen

Update vom 22.01.2013:
Da habe ich was interessantes entdeckt:
(warum denn nicht schon früher?)

http://code.google.com/p/open-evse/        höchst interessant, incl Schaltpläne etc!

....immer wieder interessant, was rauskommt, wenn verschiedene Leute das Selbe erreichen wollen!
Da wurde zunächst auch die OP-Variante probiert! aber mittlerweile ist da ein DG419 im Einsatz.
Das ist ein bidirektionaler Umschalter für Analogsignale, der ein eigenes Massepotential
zum Ansteuern hat! Also einen Eingang auf-12V, den Anderen auf +12V (=Versorgung)
und dann den Ausgang zwischen den beiden Eingängen hin und herschalten
Ideal für diesen Zweck! den Baustein kannte ich noch nicht so genau! Bzw. hätte ich so einen hierfür
eigentlich überhaupt nicht in Betracht gezogen. Scheint aber bestens geeignet zu sein! und ist billig!
Ca. 1,50 Euro, das ist OK ein "richtig guter" OP kommt fast auf 10Euro! Wieder was gelernt!
Der wird sogar ab und zu in meiner Firma verbaut, aber in einer anderen Abteilung,
deswegen war mir der bislang nicht geläufig. Ich habe aber manchmal mit dem DG408 zu tun,
Aber ich wäre nie auf die Idee gekommen, den hier für diesen Zweck einzusetzen.



 Das sind die offiziellen Spannungs-Sollwerte wie sie seit 2001 gültig sind:
(ursprünglich waren die Spannungen 9V 6V und 3V mit +-1V definiert, mit jeweils 1V ungültigem Bereich
zwischen den Sollwerten, das wurde aber irgendwann geändert und etwas enger definiert, 
insofern ist es zweckmäßig, die Auswertung auf die alten Grenzen auszurichten, 
aber die tatsächlichen Signale im "neueren" Bereich zu halten)


minimum
nominal
maximum
Positive Spannung Zustand A (offen)               
11.40
12.00
12.60
Positive Spannung Zustand B  (Auto erkannt)
8.36
9.00
9.56
Positive Spannung Zustand C  (Anforderung)
5.48
6.00
6.49
Positive Spannung Zustand D (mit Lüftung)    
2.62
3.00
3.25
Negative Spannung - Zustände B, C, D, und F
-11.40
-12.00
-12.60


Im Zustand A (Leitung offen) wird die Taktung nach einigen Sekunden abgeschaltet



Keine Kommentare:

Kommentar veröffentlichen