Attiny 2313 Servotreiber

Gast #2792883
Hallo liebe Forenmitglieder,
Zur zeit programmiere ich in C# und wollte nun ein kleines Hobbyprojekt
starten bei dem ich ein paar servos über RS232 steuere. Am einfachsten
schien es mir den RNS1 (µC = Atiny 2313) von Robotikhardware zu nehmen
da ich mich primär auf die Win-Aplikation fokusieren wollte.

Der RNS1 wird relativ einfache angesteuert. Man sendet einfach 4 Byte
Byte 1+2 "#s"
Byte 3 Servonummer zwischen 1 und 10
Byte 4 Position zwischen 1 und 255 (0 -> undefiniert)

Beschaltet hab ich ihn einfach wie in der Anleitung (im Anhang, konnte
keinen Link geben da der Shop den Controller seit kürze nicht mehr
vertreibt). Seinen RXD hab ich einfach mit den TXD meines PCs verbunden.
Als Pegelwandler fungiert ein MAX232. Nun ist das Problem dass der
Controller keine Anweisungen entgegennimmt. Wenn ich Vdd anleg dreht der
Servo auf Position 255 und zittert dort vor sich hin. Erst hab ich
gedacht das mein PC crap sendet, was ich mit einem 2 Testterminal
überprüft habe. Mein Programm sendet sauber. Als Eingabe erhielt ich
(#s☺☺) was richtig ist da ja ASCII code 1 ☺ ist. Der Befehl sollte also
den servo 1 (PB0) auf position 1 setzen. Anschließend habe ich den
Ausgang für Servo 1 (PB0) mit dem Oszi überprüft und musst feststellen
das ich ein 6ms langes HIGH Signal bekomme also der Servo übersteuert
wird. Ich vermute es gibt ein Problem mit dem Takt was erklären würde
warum das Servo signal zu lang ist und die RS232 übertragung nicht funkt
da eine falsche Baudrate herauskommt. Der Controller soll ja mit eine 4
MHz Quarz zwischen XTAL 1 und XTAL 2  beschaltet werden aber als Fuse
ist der interne 8 MHZ Quaroszillator angegeben.

Hat jemand eine Idee was mit den Takt los ist oder was isch falsch mach
?

Würde mich über erste Antworten freuen.

Mfg rockster
Gast #2792958
rockster schrieb:
> Der Controller soll ja mit eine 4 MHz Quarz zwischen XTAL 1 und XTAL 2
> beschaltet werden aber als Fuse ist der interne 8 MHZ Quaroszillator
> angegeben.

Die CKDIV8 Fuse hast du noch vergessen - mal abgesehen davon, dass der 
µC keinen internen Quarz hat, was wegen der Genauigkeit leicht zu 
Problemen bei der RS232-Kommunikation führen kann (spätestens, wenn sich 
die
Temperatur ändert).
(Datenblatt Absatz "Default Clocl Source")
Gast #2794169
Ich hab den CKDIV8 Fuse mal rausgehaun und der µC gibt bei 8 MHZ 
interner Takt 0,8~ ms High aus. Passt schon fast aber über rs232 lässt 
er sich noch nicht ansprechen. Ich glaube ich brauche den externen 4 MHz 
takt des Quarz und der beiden Kondensatoren. Wie heißt die 
Fuseeinstellung in AVR studio für externer 4 MHz takt aus Quarz und zwei 
Kondensatoren.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.