-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Atmega32 Pins/Ports : Welchen am "besten" für was

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    03.07.2006
    Ort
    Gründau
    Alter
    30
    Beiträge
    19

    Atmega32 Pins/Ports : Welchen am "besten" für was

    Anzeige

    Hey ho,

    Ich bin gerade am aufbauen einer kleinen Prototyp Platine. Die gewünschte funktion später ist erstmal egal. Ich bräuchte nur ein wenig hilfe bei den Anschlüssen der entsprechenden Komponente an den Atmega32.

    Nicht dass ich mir durch evtl. Layout fehler selbst steine in den Weg lege wie zum beispiel einen wichtigen " Timer Interrupt "Eingang" durch einen Taster belegen usw.

    Ich bin auf diesem Gebiet noch nicht ganz so bewandert daher meine Frage an euch:



    Angeschlossen an den Atmega sollen:

    6 x Taster
    1x LCD Display in 4 Bit Mode
    1x Mosfet für PWM Motorreglung
    1x Ausgang um Lüfter zu schalten ( Transistor ) evtl. SIL Relays.
    1x ICP Schnittstelle zur Programmierung wenns geht ohne Multiplexen
    1x Eingang zum auslesen eines Tachosignals eines PC Lüfters.
    4x Ausgänge zur Servo Steurung
    4x Ausgänge für 2 Farbige LED also für 4 Leds eher 8 Ausgänge um sie zweifarbig zu schalten ? oder sehe ich das falsch ?


    jetzt die erste Frage ? ist das überhaupt alles mit einem einzigen Atmega32 zu bewältigen bei 16MHz ?

    Ich brauche ja je einen Timer für Servos , Motor PWM , das Display und um das Tachosignal auszulesen ? Oder brauche ich für das Display keinen Timer ? hätte ja sonst einen zu wenig !? oder !?
    Nur welchen Timer für welche Komponente ? und an welchen Pin schließe ich das Tachosignal des Lüfters an ?


    im moment habe ich folgende Konfiguration:

    PC0-PC5 : LCD Display

    alles weitere ist "offen"

    wo würdet ihr den Rest anschließen ? sodass ich alle Pins richtig vergeben habe ?


    Vielen Vielen Dank schonmal,

    Grüße,

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2009
    Ort
    Singen - Rostock
    Alter
    32
    Beiträge
    159
    Ich bin zwar auch noch Neuling im Bereich Microcontroller, habe aber mein Board mit Hilfe der schon fertigen im Download Bereich befindlichen Schaltpläne erstellt.
    Einfach alle ausdrucken nebeneinander legen und dann wird einem das meißte auch klar. Dort findet man auch einige Boards mit Servo und LCD Anschlüssen.
    Kannst sie dir ja mal ansehen

    Gruß Andi

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    03.07.2006
    Ort
    Gründau
    Alter
    30
    Beiträge
    19
    danke schonmal
    ja das ist mir schon klar wie ich alles einzeln irgendwie zum laufen bekomme..
    aber bei den vielen komponenten wirds problematisch
    ich weiß zum beispiel nicht welchen pin ich brauche um das tacho signal vom pc lüfter auszulesen..
    welchen timer ich dazu am besten verwende und inwiefern sich das mit der servo ansteurung , dem lcd und der motor pwm verträgt..

    usw..

    bräuchte im prinzip eine anweisung die mir sagt.. lcd --> pd0-pd4 usw...
    tacho --> pc1 z.B.

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2009
    Ort
    Singen - Rostock
    Alter
    32
    Beiträge
    159
    OK das ist noch zu hoch für mich, würde mich aber auch interessieren da ich auch noch ein board für meine Servos erstellen muß

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied Avatar von mycroc
    Registriert seit
    29.11.2006
    Ort
    Bochum
    Beiträge
    111
    Da hatt sicher jeder andere vorstellungen wie es am besten ist. Aleine das Tachosignal kann man z.b. mit den Tx pins oder den INTx pins oder dem ICP1 pin auswerten. Wenn das "Hauptprogramm" nicht zu lang wird kann auch jeder andere pin genutzt werden. Wenn du AVR technisch noch am anfang stehst mein tip. Alle möglichkeiten einmal austesten.

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Klingon77
    Registriert seit
    26.09.2006
    Ort
    Hunsrück
    Alter
    56
    Beiträge
    2.543
    hi,

    bin auch Neuling bei den AVR´s.

    Einen Hinweis hätte ich doch für Dich:

    Mach zwei mögliche Ausgänge und Treiberstufen für Motor-PWM.

    Die meisten Robby´s laufen mit zwei Motorsteuerungen.


    Evtl. gäbe es eine Möglichkeit die markanten PIN´s über ein oder zwei "Mäuseklaviere" oder Steckbrücken auf unterschiedliche Ausgänge zu schalten?
    Dann bleibst Du flexibel.

    liebe Grüße,

    Klingon77
    Der kürzeste Weg zwischen zwei Menschen ist ein Lächeln - http://www.ad-kunst.de

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Zunächst ist es einmal wichtig, dass du dir überlegst, welche Funktionen du mit Hardware unterstützen willst oder musst.
    Die AVRs haben Hardware an Bord, die dir erlaubt, unabhängig vom Programm bestimmte Aktionen auszuführen.
    Willst du z.B. ein oder mehrere PWM Signale ausgeben, dann ist es sinnvoll, dafür die Ausgänge OC0, OC1A, OC1B und OC2 zu benutzen. Dann können diese Signale von den Timern ausgegeben werden, ohne dass du in deinem Programm dauernd dafür etwas tun musst.
    Ebenso beim Tacho Signal. Dafür kannst du den ICP1 nehmen.
    Die ADC Eingänge musst du nehmen, wenn du analoge Signale auswerten willst.
    Falls du schnelle Signale hast, auf die du unmittelbar reagieren willst, dann nimmst du dafür die externen Interrupt Eingänge INT0 - INT2.
    Hardware SPI über MISO, MOSI, SS und SCK.
    Für I2C sind es die Pins SDA und SCL.
    Wenn du das alles abgeklopft hast, kannst du für ein LCD die dann noch frei bleibenden Pins nehmen. Bei den Graphik LCDs müssen diese allerdings häufig auf einem Port liegen.
    LEDs und Taster kannst du sowieso über jeden beliebigen Pin steuern.

    Gruß

    Rolf

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    03.07.2006
    Ort
    Gründau
    Alter
    30
    Beiträge
    19
    danke danke danke
    echt super community hier was hilfsbereitschaft angeht bin begeistert

    okay.. dann werde ich mal alles verkabeln und schauen ob dann am ende alles so geht wie ich will


    kann ich denn mit den 3 timern des atmega 32 gleichzeitig : LCD , 4 Servos , 1 Motor PWM , und lüfterdrehzahl auslesen ?

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Für das LCD brauchst du keinen Timer.
    Die Servos gehen über Timer0 oder Timer1.
    Für PWM brauchst du auch einen Timer. Da kommt es auf die Auflösung an. Timer1 ist 16bit, du kannst also 65536 verschiedene Ein/Aus Verhältnisse einstellen. Beim Timer2 (8bit) sind es nur 256, was aber in der Regel auch reicht. Dies kann vollkommen in Hardware laufen, also ohne ISR. Dann kannst du den Timer allerdings nicht mehr für etwas anderes benutzen.
    Ansonsten kannst du in der ISR des Timers Variablen hochzählen, Flags setzen oder Ausgänge schalten. Da könntest du dann auch das Tachosignal einlesen, wenn die Abtastrate mit der Frequenz des Signals passt. Minimum wäre 3 mal schneller abtasten als das schnellste Signal, damit du sicher jede Pegeländerung mitbekommst. Also bei 3000 U/min (50U/sec) abtasten mit min. 150Hz.
    Möglichst wenige Befehle in der ISR ist übrigens die Grundregel.
    Das Aufrufen einer ISR ist allerdings eine zeitaufwändige Sache. Daher ist es meist nicht so gut, eine ISR sehr schnell aufzurufen. Als absolutes Maximum würde ich etwa $crystal/100 sehen.
    Timer0: Servos
    Timer2: PWM
    Timer1: Alles andere

    Gruß

    Rolf

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    03.07.2006
    Ort
    Gründau
    Alter
    30
    Beiträge
    19
    vielen dank.. das hat mich wirklich weitergebracht..

    wenn ich timer2 für die pwm nehme muss ich dann mit dem gate des mosfet an OC2 ( PD7 ) meine atmega32 wenn ich es komplett in hardware laufen lassen will ? habe ich das richtig verstanden ?

    ist dann nur PD7 für die pwm reserviert oder kann ich dann den kompletten PORTD nicht mehr anderweitig nutzen ?

    also wäre es möglich timer 0 für Servos
    timer 1 = drehzahl auslesen
    timer 2 = pwm ?

    die "standart" delay() funktion !? nutzt die nicht auch einen timer ? muss ich da etwas beachten ?

    grüße,

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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