Impulskonverter mit Atmega

Bernd Langner

Moderator
Teammitglied
Hallo

Ich selber habe nicht allzuviel Fachwissen im Bereich der Programmierung der Atmega Prozessoren.
Wie man die Programm hineinbekommt schon eher ebenso mit der Beschaltung.

Deshalb jetzt mal eine Frage an die Leser dieser Rubrik.
Wäre es möglich das Impulsdiagramm der alten Multiplexanlagen (Mitte 1,6ms)mit einem Atmega umzusetzen
auf das übliche Impulsdiagramm mit Mitte 1,5ms.
Trimmwerte bzw Mittenverstellung müßte dann natürlich auch möglich sein.

Hintergrund ist der das ich noch mehrere MC30xx besitze und ich jedesmal entweder die Servohebel versetzen muß oder
die Servomitte in der MPX verstellen muß. Ist etwas lästig und deshalb diese Idee.

Gruß Bernd
 

k_wimmer

User
Hallo Bernd,
es ist egal ob mit ATMega oder PIC oderST
Einlesen über ein Input Capture, 100uS abziehen und über ein Outpu Compare wieder rausgeben.
Das ist eine ISR und 2 Subroutines zum berechnen.
Wichtig ist immer die 300uS Austastlücke zu berücksichtigen.
Wenn ich am WE dazu komme setz ich vll. mal was auf.
 

ta-uli

User
Hi,
Eventuell kannst du auch die Potis im Servo verdrehen, um die Nulllage für die neuen Impulsbreiten zu justieren.
Das hab ich so für meine alten Robbeservos aus den 80ern gemacht. Klappt gut...


Uli
 

Bernd Langner

Moderator
Teammitglied
Hallo Uli

Ja das wäre auch machbar nur halt ein Eingiff in die Sender den ich nicht machen wollte.
Durch die Alterung ist der Kunststoff nicht mehr jungfräulich und bricht gerne gerade
bei den arbeiten am Knüppelaggregat.

Gruß Bernd
 

ta-uli

User
Ahh so,
ich dachte Du meinst die Servos.

2 Ideen hab ich noch (sind aber nicht so interessant wie Microcontroller :) ):

- Kannst Du vielleicht bei den Potis in den Kreuzknüppeln die Verschraubung lösen und die Potis etwas verdrehen?
Dann musst du an der Knüppelmechanik selbst nichts verbiegen.

- Schau mal, ob es im Sender Trimmpotis für die Neutralstellung gibt. Dann geht es evtl. einfacher als gedacht.

Mit dem spröden Kunststoff muss man natürlich aufpassen, das stimmt...


Uli
 

k_wimmer

User
da die 3030 CenterTrim hat geht das so nicht!
da hilft nur das PPM Signal selber zu modifizieren!
 

Bernd Langner

Moderator
Teammitglied
Hallo Kai

Ja stimmt Center trim und ob die Abgleichroutine die per Servicestecker aktiviert
das auch akzeptiert?

Ich favorisiere eher die Atmegalösung;)

Gruß Bernd
 

k_wimmer

User
Hallo Bernd,

Impulserfassung läuft schon, un die 100µS werden schon runtergerechnet.
Jetzt kommt nur noch die Ausgabe.
Habe das ganze mi einem Pic16F1619 gelöst.
Ist zwar ein wenig oversized, aber den habe ich 1. hier liegen und 2. hat der die passenden Peripherals drauf die man für diese Aufgabe brauchen kann.

Ich schätze nächste Woche kann ich dir Schaltbild und SourceCode veröffentlichen.
 

Bernd Langner

Moderator
Teammitglied
Hallo Kai

Das wäre super muß mal sehen ob ich vom Pic noch einen herumliegen habe.
Ansonsten order ich den mal von Reichelt.

Ätzbrühe steht noch in der Schule muß dann nur schnell ein print zeichnen mit Sprintlayout.

Danke dir erst mal für die Mühen

Gruß Bernd
 

k_wimmer

User
bevor du loslegst,
vieeleicht brat ich dir dann gleich kurz was zusammen.
Auf Lochraster ist das kein grosset Akt.
 

Bernd Langner

Moderator
Teammitglied
Hallo Kai

Plan reicht ich muß fast das ganze Jahr über Platinen löten und
habe dementsprechend alles vorrätig.;)

Auch planen von Leiterplatten gehört zum Ausbildungsplan.

Gruß Bernd
 
Hallo Bernd,
oder auf die schnelle so,
habs ausprobiert das Servo bleibt immer auf der gleichen Stelle stehen.

Code:
' BASCOM-Programm

$regfile = "m16def.dat"
$crystal = 1000000

$hwstack = 32                                               ' default use 32 for the hardware stack
$swstack = 10                                               ' default use 10 for the SW stack
$framesize = 40                                             ' default use 40 for the frame space


Config Portb = Output



Do

Waitms 20
Portb.0 = 1
Waitus 1600
Portb.0 = 0



Loop
End



Return
 

k_wimmer

User
Hallo Smith?
da hast du wohl was falsch verstanden.
Du hast da einen Neutralgenarator programmiert!
Bernd möchte aber das Serielle PPM Signal zwischen Sender und HF-Modul so modden, dass von jedem Servopuls immer 100uS abgezogen werden, und dann das Signal erst zum HF-Modul weitergegeben wird.
Das ist schon etwas komplexer :).
 

k_wimmer

User
Hallo Bernd,

Software läuft !
werde die Sache mal morgen Abend packen und hochladen.
 

Bernd Langner

Moderator
Teammitglied
Hallo Kai

Ist ja super wenn das klappen sollte.
ICh werde dann mich sofort dransetzen ein Test zu fahren.

Ist es beim Pic geblieben oder hast du eien andere Hardware?

Gruß Bernd
 

k_wimmer

User
Hallo Bernd,

Ich haben fertig !
Als µController habe ioch den Pic16F1619 verwendet.
Entwicklungsumgebung:
IDE: MPLABX Ver. 3.30 mit dem MCC (Microchip Code Configurator) Ver. 3.15
Compiler: XC8 Ver. 1.37
Emulator: RealIce mit dem AC244066 als Emulator Extension Chip (kann aber auch direkt am µC gemacht werden)

Pinout.jpg
Anhang anzeigen Neutral_Adaptor.txt

Das txt musst du in zip umbenennen, da man hier keine zip hochladen darf.
Das Bild gibt die Pinbelegung des µControllers an.

Natürlich würde die Software auch auf einem Pic12F1612 im 8-Pin Gehäuse spielen, aber da hat man dann keine richtige Möglichkeit zu debuggen.
Von den Peripherien des µC habe ich den SMT (Signal Measurement Timer) verwendet um das Eingangssignal zu analysieren und die CCP (Capture Compare PWM unit) zur Ausgabe des Signals.

Das signal wir mit ca. 5mS Verzögerung ausgegeben, da die Ausgabe sonst schneller wäre als die Datenerfassung, da die Gesamtzeit der Ausgangssignalkette kürzer ist als die am Eingang.
Aber prinzipiell werden die Signale im gleichen Frame Eingelesen und ausgegeben.

Aber wenn du dir die Software genau anschaust, wirst du schon sehen wie das gemacht ist.
Der Controller kann mit 2,5V bis 5.5V versorgt werden.
Wenn du willst kann ich dir noch die Schaltung drumrum machen, aber ich schätze mal das kriegst du auch ohne mich hin:).

Alles in Allem viel Spass damit !
 
Ansicht hell / dunkel umschalten
Oben Unten