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.
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
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.
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?
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.