Hallo Merijn
Der Attiny 1624 hätte 2xUART
BLHeli "Auslesecode" dafür habe ich fertig hier liegen.
Normal liefert der Regler das Kiss-Protokoll (pdf im Anhang), 115200 Baud 70Hz - das beschäftigt den Prozessor schon mit einiges an Arbeit.
Ich hatte letztes Jahr mal Spaßeshalber einen MPP mit direkt über die ausgelesenen Daten aufgebaut, aber 70Hz war mir dann doch zu langsam (grenzwertig, bei normalen fliegen würde es reichen).
Aufgebaut war das mit einem "altem" Attiny 841, den habe ich per Osccal auf 7,372MHz runtergeregelt, so das er die 115200Baud fehlerfrei geschafft hat. Der 841 ist wunderbar, kann nur leider kein One-Wire-Update, aber Arduino-Optiboot am "dritten" (=gemappten) UART.
Man kann den UART auch bei dem 412 mappen, Ein Frame vom Regler abholen, auf Telemtrie ummappen, Telemetrie versenden, und wieder von vorne.
Bei den BLHeli32 Reglern muss man aufpassen, die kleinen haben kein Lötpad für Telemetrie (man kann direkt am Prozessor anlöten, ist aber sehr fummelig) nicht alle haben eine Stromsensor, und die meisten mit Stromsensor funktionieren erst ab 3S Lipo.
Für Telemetrie muss man ja aber auch nicht alle 70Frames abholen, da würden ja erheblich weniger reichen. Egal wie, bevor ich mir einen externen Stromsensor legen würde, dann besser das Gewicht in einen größeren Regler, der zugleich niederohmiger ist.
Der MPP ist eigentlich garnicht so anfällig, der regelt 500x die Sekunde, alle 2mS, parallel weil auch das Signal in 500Hz zu,, Regler geht. Wenn der mal etwas verzögert ist das nicht schlimm. Schlimm wäre wenn ein anderer Code kommplett blockt, so einige Arduino-Befehle schaffes es ja gut den Prozessor erheblich lange zu blockieren (darum schreibe ich das lieber in C).
- Stromsensor auslesen, auch den LM35.... Der 1624 hätte auch einen zweiten ADC-CHannel (muss ich nochmal guggen, bin nicht 100% sicher)
Der 1624 hat zusätzlich einen 12Bit ADC, der 412 hat einen 10Bit ADC.
Bei den neuen Attinys war mein Plan, den ADC Accumulator zu nutzen, der soll im Hintergrund den ADC 2mS lang lesen, Werte addieren, und sich dann per ISR melden. In der ISR nachregeln.
Der ADC der neuen Attiny hat auch eine Compare Funktion inkl eine programmierbaren Hysterese, dann müsste der RC-Wert in das Compare-Register, es würde stetig im Hintergrund verglichen, und die ISR würde dann nur auftauchen wenn tatsächlich nachgeregelt werden muss. Aber soweit bin ich im Prozessor noch nicht vorgedrungen, es ist aber beeindruckend was die kleinen Dinger können.
-----
Eine tatsächliche Alternative wäre der winzige Seeduino XIAO, die Dinger sind verfügbar, da werkelt ein leistungsfähiger 32Bit AVR SAMD21G18 drauf, 3,3V-Level, hat auch die Funktionen wir RC im Hintergrund lesen, ADC Accumulator u.s.w. 2xUart, aber einer halt nur für den USB, und einfach in der Arduino programmierbar.
Da denke ich schon länger drüber nach, was besser ist, früher war das einfacher, da gab es nicht so viel ;-)
Entdecken Sie bei Eckstein Komponente eine Vielzahl an Elektronikprodukten – von epaper eink displays bis hin zu Entwicklungsbrettern wie Raspberry Pi und A
eckstein-shop.de