Sent Protokoll nachbilden

Gast #5754401
Lesenswert?

Hallo zusammen,

ich wollte das Sent_Protokoll mit einem STM32 µC simulieren bzw. 
nachbilde, als ob ich einen Sensor hätte. und dies mit oscilloscope 
darstellen. Nun sollte das Signal wie ein normales PWM
Signal aussehen. nun weiß ich wirklich nicht, wie ich dieses Teil des 
Signales im unteren Bild am Anfang jeder Periode erzeugen kann. dafür 
kann ich fixed Compare modus verwenden. weil das bei jeder Periode 
identish ist (rot markiert). Aber es bleibt die 6 Nibbles(4 bits je 
Nibble) für die Daten(z.B. 0x 3FF294), dafür habe ich gedacht, dass ich 
die Signal-Periode entsprechend den Daten (grün markiert) ändern kann.
Nun zur konkreten Frage, wie kann man die Periode in Code ändern oder 
geht das überhaupt ? habe ich da einen Denkfehler?

Vielen Dnak.
Angehängte Dateien:
Gast #5755755
Lesenswert?

Samuel schrieb:
> habe ich da einen Denkfehler?

Das Sent-Protokoll wurde so gemacht daß selbst billigste Prozessoren per 
Bit-Banging das Sensor-Signal erzeugen können.
Also sollte das auch auf einem STM (Flanke für Flanke) möglich sein.
Das hat mit PWM oder Periodendauer eigentlich nichts zu tun.

Anbei mal ein Beispiel mit einem PIC12F683 im 8-Pin Gehäuse der 2 
Poti-Signale ausgibt.

Gruß Anja
Angehängte Dateien:
Gast #5755771
Lesenswert?

Samuel schrieb:
> Nun sollte das Signal wie ein normales PWM
> Signal aussehen. nun weiß ich wirklich nicht, wie ich dieses Teil des
> Signales im unteren Bild am Anfang jeder Periode erzeugen kann.

Lege dir das Pattern als Bitmuster in den Speicher und schiebe es per 
SPI raus, wenn du es nicht algorithmisch erzeugen willst/kannst.
Gast #5756581
Lesenswert?

Anja schrieb:
> Das hat mit PWM oder Periodendauer eigentlich nichts zu tun.

wie jetzt? ich denke doch. weil die Periode des einzelnen Pulses ändert 
sich je nach den Daten. eigentlich muss ich das auf Matlab simulieren 
und dann mit STM32 anbinden.

Jetzt habe ich dafür ein Modell, welches PWM Signal mit variabler 
Frequenz erzeugen kann. Das Problem aber, dass ich damit nur einzelnen 
Puls entsprechend der im Model definierte Frequenz habe. Das 
Sent-Protokoll aber hat fixe Low-Intervall, und variable High Intervall 
für jeden Puls im Signal.


-Gegeben: Synchronization Pulse = 56 Ticks  und T_tick =15 µs.  Also 
Tsyn= 56 Ticks * 15 (µs/Tick)=840 µs.
-Fsync=1/840µs=1190.47 Hz.  Und Toff =5 tick *15 (µs/tick)= 75 µs. 
daraus folgt 75µs/840µs =0.0892. duty Cycle =1-0. 0892=0.91.

das Bild im Anhang z.B. konnte ich nur Tsync. erzeugen  Tstatus hat zwar 
das gleiche Toff wie Tsync aber die Periode unterschiedlich sollte sein. 
Deswegen wollte ich fragen, ob es möglich ist, die Pulse-Breite im 
gleichen Signal zu erzeugen wie im Bild 2?
Angehängte Dateien:
Gast #5756879
Lesenswert?

Samuel schrieb:
> Jetzt habe ich dafür ein Modell, welches PWM Signal mit variabler
> Frequenz erzeugen kann.

zeig mir mal die Stelle in der SAE J2716 wo irgendwas von PWM oder 
Duty-Cycle drin steht.
Bei mir steht da nur 5 Ticks low time und 12-27 Ticks Gesamtdauer für 
ein Nibble.

Samuel schrieb:
> -Gegeben: Synchronization Pulse = 56 Ticks  und T_tick =15 µs.

In der Norm steht aber T_tick between 3 and 10 us (nominal).
Selbst mit der Toleranz +/-20% komme ich nicht auf 15 us.

Ich habe noch keinen Sensor gesehen der sich nicht an die 3 us gehalten 
hat.

Gruß Anja
Gast #5756922
Lesenswert?

Anja schrieb:
> In der Norm steht aber T_tick between 3 and 10 us (nominal).
> Selbst mit der Toleranz +/-20% komme ich nicht auf 15 us.
>
> Ich habe noch keinen Sensor gesehen der sich nicht an die 3 us gehalten
> hat.

Wahrscheinlich hast du recht. Ich habe dieses Protokoll erst vor 4 Tagen 
kennengelernt. Im Datenblatt steht auch 3µs. 15 µs kommt von diesem 
Video
https://vimeo.com/275593851 . Deswegen 15 µs.

wareum Duty Cycle und PWM ?

weil ich keine andere Lösung finden kann. Aber ich denke, dass mein 
Ansatz falsch ist, Da das gane Signal sich mit variabler Freq. ändert 
und nicht die Pulsen.

Grüße
Sam

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