-         

Ergebnis 1 bis 10 von 10

Thema: Attiny2313 macht Probleme

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    18.04.2011
    Beiträge
    11

    Attiny2313 macht Probleme

    Anzeige

    Liebes Forum,

    ich bin mir nicht sicher ob ich hier richtig bin, dennoch möchte ich um eure Hilfe bitten.
    Es handelt sich um eine Steuerung für einen Servo und einen Motor. Ein Attiny2313 steuert das ganze. Ich habe die Platine gemäß dem Schaltplan geätzt und aufgebaut. Dann habe ich mit WinAVR, in dem ich die beiden C Dateien in das Programmers Notepad gezogen habe, mit selbigen auch auf den Controller gebrannt. Der Compiler hat keine Fehler zurückgegeben. Nun wird der Chip mit Daten wie unten im Anhang gespeist. Der Servo jedoch dreht unabhängig von den Daten nach rechts und die Motorsteuerung läuft überhaupt nicht. Der Controller bekommt wie auch die Platine Strom. Es scheint, dass irgendetwas mit der UART nicht stimmt aber das ist nur eine Vermutung.

    Ich hoffe, dass ihr mir bezöglich des Problems weiterhelfen könnt.
    Liebe Grüße
    Max
    Angehängte Dateien Angehängte Dateien

  2. #2
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Die UART sollte man erstmal unabhängig vom Rest prüfen. Wenn die Fuses noch unverändert sind, läuft der µC mit ca, 1 MHz internem Takt, auch wenn ein Quarz dran hängt.

    Beim Festlegen der Baudrate sollte man das nicht per Case machen, denn das wird ggf. erst zur Laufzeit ausgeführt. GCC ist zwar gut mit der Optimierung, aber hier würde er wohl wenigstens ein static Inline als Hilfe brauchen um die case Anweisung weg zu optimieren. Besser geht das per #ifdef, oder halt direkt mit Ausrechenen der Teilerwerte.


    Beim Schaltplan sind mir 2 Dinge aufgefallen: Die LED parallel zum Motor wird nicht unbedingt lange halten, 12 V sind zu viel als Sperrspannung. Da sollte man 2 LEDs antiparallel haben, oder eine Diode dazu. Die 1N400x sind als Freilaufdioden zu langsam - die lieber weglassen und die MOSFET internen Dioden nutzen. Die Steuerung der MOSFETs ist für PWM außerdem reichlich langsam.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    18.04.2011
    Beiträge
    11
    Ich habe jetzt die Funktion UART_Init auskommentiert und auch den Aufruf in main und dann unter den Aufruf UBRRL = 12; geschrieben da die Baudrate 38400 beträgt jedoch ist die Situation unverändert. Es sind keine Fuses verändert worden.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    18.04.2011
    Beiträge
    11
    Ich vergaß zu erwähnen, dass ich auf dem Gebiet Microcontroller neu bin, weshalb ich jetzt die Frage habe, ob externer Quarz bei diesem Code notwendig ist.

  5. #5
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Man kann die UART auch mit dem internen Takt nutzen, das ist aber schon an der Grenze. Meist geht es, aber nicht immer zuverlässig.

    Ohne ändern der Fuses hat man erstmal nur ca. 1 MHz Takt. Mit dem 1 MHz takt bekommt man die 38,6 KBaud nicht hin. Man kann den Takt im Programm auf 8 MHz internen Takt umstellen über das Register CLKPR. Wie genau kann man im Datenblatt nachlesen, denn das ist mehr als ein einfacher Zugriff.

    So hat man erstmal erstmal eine Baudrate von 38,6 K / 8 = 4800 Baud.

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Der Tiny 2313 wird mit aktiviertem CKDIV8 Fusebit ausgeliefert. Dieses Bit ist in den Fuses auszuschalten. Dann läuft der Konroller mit den erforderlichen 8MHz.
    Erst dann ist auch eine Baudrate von 38400 möglich und erst dann wird auch das Timing für das Servo funktionieren.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    18.04.2011
    Beiträge
    11
    Ich habe jetzt das Fuesbit CKDIV8 ausgeschaltet. Der Servo knurrt jetzt, bewegt sich aber nicht. Am Motor ausgang passiert nach wie vor nichts. Also habe ich den Ausgang an das Oszilloskop angeschlossen, habe die Zeit auf 1mS/Cm gestellt. Eine Phase ist nun 2 Striche Lang, also 2ms. Dies bedeutet, dass das ganze 10 mal langsamer sein müsste oder?

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Die Impulse für das Servo sollten alle 20mSec kommen.
    Was macht die Serielle Schnittstelle?
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    18.04.2011
    Beiträge
    11
    Die serielle Schnittstelle scheint jetzt zu laufen, jedoch läuft der Servo immer noch dauernd nach rechts und der motor gibt nur Mist aus.

  10. #10
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Das Servo steht bei mir ganz ruhig. Wie ändert man die Position? Da geht bei mir nichts.
    Es geht nur Motordrehrichtung umstellen. PWM geht nicht.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

Ähnliche Themen

  1. Probleme mit AtTiny2313
    Von Cybernix im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 29.11.2008, 11:20
  2. Bootloader macht Probleme
    Von H3llGhost im Forum Asuro
    Antworten: 2
    Letzter Beitrag: 25.02.2008, 16:19
  3. TWI (I2C) am AVR Atmega128 macht Probleme
    Von tuxer im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 13.03.2007, 07:18
  4. timerhandler macht probleme
    Von crishy im Forum AVR Hardwarethemen
    Antworten: 4
    Letzter Beitrag: 06.07.2005, 13:03
  5. INT3 macht probleme
    Von Apollo im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 11
    Letzter Beitrag: 21.05.2005, 19:58

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •