STM32F103C8 Plattformprojekt mit Display, FATFS, IMU MPU-9250 und Examples

nichtgedacht

Erfahrener Benutzer
#62
Wenn du spielen willst: simonk firmware auf git. Avrstudio4.
Mit diesem Pointer kann ich gar nichts anfangen. In BLHeliSuit16... sind keine Hexfiles für Simonk.
In github.com finde ich nicht "simonk firmware auf git. Avrstudio4"


Normalerweise ist RXD nicht mit pwm-in verbunden. Nur bei den afro esc (von TC, dem baseflight author) ist das seitlich rausgeführt ...
Heißt das, dass man für die Konze Firmware den Signalanschluss auf UART umlöten muss?

Gruß
Dieter
 

cesco1

Erfahrener Benutzer
#64
In BLHeliSuit16... sind keine Hexfiles für Simonk
Du musst genau wissen welche esc du hast, silabs oder atmel, blheli oder simonk bootloader. Flash deine esc nicht kaputt. Simonk geht nur mit atmel.
Git: https://github.com/sim-/tgy




Heißt das, dass man für die Konze Firmware den Signalanschluss auf UART umlöten muss?
Leider ja. Ich hab bisher keine esc gefunden bei der input auf rxd ist. Wahrscheinlich muss man auch pwm-pin für firmware updates behalten und seriell pin neu verkabeln.

Edit:
Offenbar wird dshot gelich wie pwm mit timer gelesen ... keine uart.

Blheli source von git
Code:
Decode_Dshot_2Msb MACRO
	movx	A, @DPTR
	mov	Temp6, A
	clr	C
	subb	A, Temp5					; Subtract previous timestamp
	clr	C
	subb	A, Temp1
	jc	t1_int_msb_fail			; Check that bit is longer than minimum
 
Zuletzt bearbeitet:

nichtgedacht

Erfahrener Benutzer
#65
Du musst genau wissen welche esc du hast, silabs oder atmel, blheli oder simonk bootloader.

Leider ja. Ich hab bisher keine esc gefunden bei der input auf rxd ist. Wahrscheinlich muss man auch pwm-pin für firmware updates behalten und seriell pin neu verkabeln.
Ich habe hier noch T-Motors 12A Steller mit Simonk.
https://dl.dropboxusercontent.com/u/1459803/TM-ESC-Manual.pdf
https://www.readymaderc.com/store/index.php?main_page=product_info&products_id=2580

Da sitzt ein ATMEGA8A drauf. In der Liste von BLHeliSuit taucht der Steller nicht auf.
Welche BLHeli Hex Datei würde dort passen?

Der ATMEGA8A hat UART RX auf pin 30. Genau dieser Pin ist bei diesem Steller mit einem 220 Ohm Widerstand an der Signalleitung angeschlossen.

Gruß
Dieter
 

brm

Erfahrener Benutzer
#66
das mems ding kann daten im 1 oder 8khz raster bereitstellen.
im 1 khz modus mit 1.25hhz lesen bewirkt zwischendurch das lesen alter daten.
diese dann zu verarbeiten macht regelungstechnisch keinen sinn.
die regelung tutet am besten wenn bei raten identisch sind.
besser wäre im 8khz modus mit 8khz lesen und runtersampeln auf 1khz und die regelung füttern.

alternativ den fifo modus einschalten und alle samples im 2khz takt auslesen und wieder auf 1khz runtersampeln
und die regelung füttern.
mit dem 8khz lese modus hättest du das antialiasing problem erschlagen
https://de.wikipedia.org/wiki/Antialiasing_(Signalverarbeitung)

im 8khz modus und nicht alle samples auslesen bedeutet, dass du das rauschen verstärkst.
das kann massive probleme verursachen. weil nicht alle daten verarbeitet werden.

für kampfschweber allerdings ist das kein problem.
da ist auch kein unterschied zwischen oneshot mit 6050 mpu oder dshot 600 mit 6000er mpu festzustellen.
 

brm

Erfahrener Benutzer
#67
Ich habe hier noch T-Motors 12A Steller mit Simonk.
https://dl.dropboxusercontent.com/u/1459803/TM-ESC-Manual.pdf
https://www.readymaderc.com/store/index.php?main_page=product_info&products_id=2580

Da sitzt ein ATMEGA8A drauf. In der Liste von BLHeliSuit taucht der Steller nicht auf.
Welche BLHeli Hex Datei würde dort passen?

Der ATMEGA8A hat UART RX auf pin 30. Genau dieser Pin ist bei diesem Steller mit einem 220 Ohm Widerstand an der Signalleitung angeschlossen.

Gruß
Dieter
probiere mal mit betaflight und der blheli suite diese auszulesen.
wenn blheli die esc kennt sagt es dir welche firmware zu verwenden ist.

ach ja - props abnehmen - muss sein ...
 

cesco1

Erfahrener Benutzer
#68
Du solltest bei dem ding simonk flashen, nicht blheli. Blheli suite missbrauchen wir als flash-utility.

Dein t-motor ist wahrscheinlich ein relabel vom "hk blue series 12a". Der braucht bs_nfet.hex
simonk liste

Allerdings ist bei bs-nfet "uart" default auf off. Kann ich machen, kein problem. Irgendwo hab ich noch blue series 20A verbaut, ich muss die mal anschauen ob wirklich input mit rxd verbunden ist.

Ist denn ein bootloader drauf?

Edit:
Bei meinen blue series 20A ist auch int0 (ppm in) und rxd verbunden!
Allerdings kein bootloader drauf :(
 
Zuletzt bearbeitet:

nichtgedacht

Erfahrener Benutzer
#70
Du solltest bei dem ding simonk flashen, nicht blheli. Blheli suite missbrauchen wir als flash-utility.

Dein t-motor ist wahrscheinlich ein relabel vom "hk blue series 12a". Der braucht bs_nfet.hex
simonk liste


Ist denn ein bootloader drauf?
1. Schon klar aber eine neue BLHeli Firmware wäre besser als gar nichts bei dem Teil.
2. Das schau ich mal nach.
3. Ich konnte das Teil mit Arduino Nano als USB Linker verbinden
 

cesco1

Erfahrener Benutzer
#71
Das läuft mit der blue series 20A.

Ich musste ppm input ausschalten und uart einschalten.
Und offenbar läuft der bootloader nicht.
 
Zuletzt bearbeitet:

cesco1

Erfahrener Benutzer
#73
Silabs assembler kostet $70.

Und mit atmel blheli kenn ich mich nicht aus. Ich denke nicht blheli hat das serielle konze protokoll installiert ?
 

brm

Erfahrener Benutzer
#74
Silabs assembler kostet $70.

Und mit atmel blheli kenn ich mich nicht aus. Ich denke nicht blheli hat das serielle konze protokoll installiert ?
silab is ein 8051 derivat.
kann mir nicht vorstellen, dass man keine opensource quelle findet.


und ich hasse diese intel dinger ...
 

cesco1

Erfahrener Benutzer
#75
OK

Ich musste etwas ändern damit der bootloader bei ausgeschaltetem pwm weiss welcher pin. Das läuft. Pwm muss man ausschalten weil die seriellen daten da rüberlaufen.

Grossartig. Der dieter wusste die blueseries sind richtig verkabelt und ich habe welche :)

Die firmware hex kann ich hier nicht anhängen. Ich habs auf rcgroups:
https://www.rcgroups.com/forums/showthread.php?2890772-Blueseries-simonk-uart-firmware#post37555147

AUF EIGENES RISIKO !

Soll ich tatsächlich die anderen 3 esc auch noch flashen? Da meine keinen bootloader haben ist das mühsam, isp adapter anlöten. :(
 
Zuletzt bearbeitet:

nichtgedacht

Erfahrener Benutzer
#76
das mems ding kann daten im 1 oder 8khz raster bereitstellen.
im 1 khz modus mit 1.25hhz lesen bewirkt zwischendurch das lesen alter daten.
...

besser wäre im 8khz modus mit 8khz lesen und runtersampeln auf 1khz und die regelung füttern.

alternativ den fifo modus einschalten und alle samples im 2khz takt auslesen

mit dem 8khz lese modus hättest du das antialiasing problem erschlagen
Ich hab ja schon nachgebessert und mit den 1 kHz vom IMU Int Pin synchronisiert.

Für Lesen mit 8 kHz muss ich mir erst mal überlegen wie wie ich das programmiertechnisch gelöst kriege.

Was mache ich dann mit den 8 Datensätzen die dann im 1 kHz Takt vorliegen würden?
Einfach die Mittelwerte bilden?
 

brm

Erfahrener Benutzer
#77
Ich hab ja schon nachgebessert und mit den 1 kHz vom IMU Int Pin synchronisiert.

Für Lesen mit 8 kHz muss ich mir erst mal überlegen wie wie ich das programmiertechnisch gelöst kriege.

Was mache ich dann mit den 8 Datensätzen die dann im 1 kHz Takt vorliegen würden?
Einfach die Mittelwerte bilden?
den interrupt pin kannst du vergessen.
gewisse spezies sagen es sei viel besser ...
bringt gar nix ausser zusätzlich komplexität.
zudem gibt es in der regelung unruhe vonwegen jitter auf der zeitachse.
das willst du sicher nicht haben.
lieber mit 1001 hz auslesen damit du sicher bist keine neuen daten zu verpassen.

die gesparten cpu zyklen besser für was sinnvolleres verwenden.
 

nichtgedacht

Erfahrener Benutzer
#78
den interrupt pin kannst du vergessen....
Ich löse damit ja keinen extra Interrupt aus, sondern lasse damit den Timer zurücksetzen, der frei geringfügig länger laufen würde und ohnehin einen Update Interrupt erzeugen muss. Das kostet gar keine CPU extra. Ein minimaler Jitter entsteht nur dadurch, dass vor dem Betreten der Hauptschleife auf das Flag vom Update Interrupt getestet wird. Wie könnte man den Jitter kleiner als ein paar Clocks machen? Da ist eher das Problem, dass ich das RC Signal per Interrupt vom UART hole und nicht per DMA. Auf dem Logic Analyzer ist kein Jitter zu sehen.

Wenn man einfach ein 1000 Hz Signal mit 1001 Hz sampled läuft die Phasenlage im laufe der Zeit(1s) ja komplett durch. Damit schwankt die Latenz in dieser Periode des Durchlaufens ja mit 1 ms. Im Extremfall liest man dann die Daten unmittelbar bevor die jüngsten Daten lesbar wären. Da ist doch genau das was Du zu Recht kritisiert hast als ich die 1 kHz mit 1,25 kHz gelesen habe.
 

nichtgedacht

Erfahrener Benutzer
#80
Die Periode ist immer 1,001 ms vom Int Pin trotz laufender Interruptverarbeitung der RC Daten . Besser löst mein Logic Analyzer mit 40 MHz nicht auf. Der einzige sichtbare Jitter ist zwischen Int Signal und SPI Start für Sensor lesen wenn die Interruptverarbeitung der RC Daten bremst. Unterschied 8,47 us zu 11,x uS. An dem Ablauf an sich ändert das aber gar nichts.
 

Anhänge

RCLogger

FPV1

Banggood

Oben