Forum: Mikrocontroller und Digitale Elektronik Sent Protokoll nachbilden


von Samuel (Gast)


Angehängte Dateien:

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.

von Anja (Gast)


Angehängte Dateien:

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

von Wolfgang (Gast)


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.

von Samuel (Gast)


Angehängte Dateien:

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?

von Samuel (Gast)


Lesenswert?

Wolfgang schrieb:
> Lege dir das Pattern als Bitmuster in den Speicher und schiebe es per
> SPI raus, wenn du es nicht algorithmisch erzeugen willst/kannst.

das wäre tolle Idee aber das schaffe ich nicht in Simulink.

von Anja (Gast)


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

von Samuel (Gast)


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

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.