Hallo, wäre jemand hier mal so nett und würde mir die "Pin configuration" übersetzen? Also ich verstehe das DB nicht so ganz, das problem hatte ich bisher bei allen Megas. Der ATMega128 hat 7 PWM Channels, nur welche PINs sind es nun? Dann noch welche PINs sind für die Timer / Counter? Also bei den ADC Pins ist es ja klar, da steht hinter den PINs ADC, genau so wie bei I2C (SDA,SCL) oder RS232 (TXD,RXD). So in der Art würde mir das schon für die Timer/Counter/Interrupts reichen. Also die Interrupts sind ja die mit INT (oder?) nur da stellt sich mir ein Problem. Zu PWM: ich brauche 4 besser 6 PWM Channels. Der Mega128L hat ja 7. So weit so gut, nur kann man (habe bisher immer nur mit SoftPWM gearbeitet) auch bei den Hardware PWMs einen Soll und Ist Wert machen? Kann man wärend die eine PWM aufdimmt die andere PWM abdimmen lassen? Läuft die Hardware PWM unabhängig vom Code oder würde ein delay genau so wie bei der SoftPWM zu fehlern führen? Optimal wären 6 PWMs (Hardware) dann noch einen externen Interrupt und ein Timer im Sekundentakt. Meiner Rechnung nach brauche ich aber dann 8 channels, oder? Also 6 für die PWM, einen für den Interrupt und einen für den Timer. Sehe ich das richtig? Hätte jemand von euch noch ein paar lesenswerte Seiten bezüglich Hardware PWMs? Also optimal wäre den Soll und ist wert einstellen zu können und das das ganze unabhängig vom Code läuft. Dann habe ich im Datenblatt noch was von einem internen kondensator (36pF) für einen Quarz gelesen. Brauche ich dann noch extern Kondensatoren? Ebenfalls (wenn ich es richtig verstanden habe) steht da das der "vom Werk" aus intern mit 1,2,4 und 8 Mhz laufen kann. Wenn dem so ist welchen Takt hat er denn nun bei auslieferung und wie ändere ich die Fuses dann am besten (bisher 0 erfahrung mit Fuses) Danke euch schonmal. Gruß Tobias
Tobias N. schrieb: > Also ich verstehe das DB nicht so ganz, das problem hatte ich bisher bei > allen Megas. Der ATMega128 hat 7 PWM Channels, nur welche PINs sind es > nun? Dann noch welche PINs sind für die Timer / Counter? Steht eigentlich alles im Datenblatt. Die PWM Ausgänge sind die mit 'OC' bezeichneten. OC0 ist gesteuert von Timer 0, OC1A-OC1C sind drei PWM Kanäle für Timer 1 und OC3A-OC3C sind die drei PWM Kanäle des Timers 3. Tobias N. schrieb: > ich brauche 4 besser 6 PWM Channels. Der Mega128L hat ja 7. So weit so > gut, nur kann man (habe bisher immer nur mit SoftPWM gearbeitet) auch > bei den Hardware PWMs einen Soll und Ist Wert machen? 'Soll' Werte für PWM? Wie meinst du das? Es gibt für den MC nur 'Ist' Werte und die werden in die OC Register des jeweiligen Kanals geschrieben. Wenn du also z.B. Timer 3 benutzt mit seinen 16 bit und in das Output Compare Register OCR3A den Wert 32767 reinschreibst, wird am OC3A Pin ein Signal mit ca. 50/50 Pulsbreite erscheinen, vorausgesetzt, du hast die Richtung des Pins auch als Ausgang programmiert und hast die COM3 Bits richtig gesetzt (clear on Match, set on TOP) Tobias N. schrieb: > Läuft die Hardware PWM unabhängig vom Code oder würde ein delay genau so > wie bei der SoftPWM zu fehlern führen? Ja und nein. Einmal programmiert, läuft die Hardware PWM ohne zusätzliche Klimmzüge. Delays in deinem Programm stören diesen Vorgang nicht. Tobias N. schrieb: > Optimal wären 6 PWMs (Hardware) dann noch einen externen Interrupt und > ein Timer im Sekundentakt. Meiner Rechnung nach brauche ich aber dann 8 > channels, oder? > > Also 6 für die PWM, einen für den Interrupt und einen für den Timer. > Sehe ich das richtig? Nö. Du brauchst doch keinen PWM Kanal für einen Interupt oder Timer. Wenn du 6 PWMs brauchst, nimmst du praktischerweise Timer 1 und Timer 3 mit jeweils 3 PWM Kanälen. Die Timer lässt du so schnell laufen, das die PWM Ausgänge die Wiederholfrequenz haben, die du brauchst. Da es für gesparte Timer kein Geld zurück gibt, könntest du Timer 0 oder Timer 2 als Sekundentakt benutzen. Tobias N. schrieb: > Dann habe ich im Datenblatt noch was von einem internen kondensator > (36pF) für einen Quarz gelesen. Brauche ich dann noch extern > Kondensatoren? Der interne Kondensator ist normalerweise nur für den Betrieb mit einem niederfrequenten (Uhren-)quarz. Im Normalfall (8 oder 16MHz Quarz) beschaltest du ihn mit 2*22p, wie im Datenblatt beschrieben. Tobias N. schrieb: > Ebenfalls (wenn ich es richtig verstanden habe) steht da das der "vom > Werk" aus intern mit 1,2,4 und 8 Mhz laufen kann. Wenn dem so ist > welchen Takt hat er denn nun bei auslieferung und wie ändere ich die > Fuses dann am besten (bisher 0 erfahrung mit Fuses) Atmel liefert normalerweise gefused auf internen RC-Oszillator mit 8MHz aus und setzt die 'CKDIV8' Fuse. Ergebnis ist ein voreingestellter Takt von 1 MHz. Das variiert ein wenig von Typ zu Typ, steht aber im Datenblatt. Du musst übrigens beide haben: ATMega128 und ATMega128L mit den Ergänzungen für diesen MC.
danke erstmal. also ich habe ein Datenblatt (was bei dem shop bei dem mega zum download war (pollin)) das hat 368 seiten. also bei der "softpwm" hatte ich immer soll und ist werte. so konnte ich dann von halb runter oder hoch dimmen. also einen "start" wert usw. wenn ich das nun richtig verstanden habe schalte ich lediglich den pin als ausgang, stelle die register ein (fastpwm z.b.) sowie die auflösung und setze dann nur noch den OCR... wert der jeweiligen pwm. von 0 - 256 oder 0 - 65... und schon läuft die pwm auf dem jeweiligen pin. Ähm schön zu wissen wäre es noch wo/wie man bestimmt ob L oder H, also ob nun z.b. bei einer LED die Anode oder Kathode am MC hängt. und wenn ich die beiden T/C mit den jeweils 3 pwms nehme dann habe ich noch den "einzelnen" T/C für den Timer um diesen im 10ms bereich zählen zu lassen, korrekt? ich habe den quarz noch nicht angeschlossen. zwar schon bohrungen für quarz und kondensatoren vorhanden (habe mir ein testboard mit allen pins auf buchenleisten gelegt geätzt) aber habe ich nur noch einen 20mhz quarz da. im chat wurde nur was von "overclocking" erwähnt und danach ein Kick. Im Netz finde ich auch nichts um "mehr" als 16 Mhz laufen zu lassen demnach bleibt mir nur morgen der weg einen zu kaufen. Also "mehr" als 1Mhz ohne Quarz haben sie so oder so nicht? Da fiel mir noch was ein. Wo kann ich nachlesen "wie" ich die Pullups für I2C berechne? Und die "interrupt" Pins sind denn die mit dem "INT" ? Dann hat der ja ganz schön viele. (Habe bisher nur mit Mega8 und Mega32 gearbeitet. Das SDRAM an Mega128 anschließen will ich mir als nächsten vornehmen) Danke auf jeden Fall.
Tobias N. schrieb: > Ähm schön zu wissen wäre es noch wo/wie man bestimmt ob L oder H, also > ob nun z.b. bei einer LED die Anode oder Kathode am MC hängt. Das hängt von den oben erwähnten COM bits für das jeweilige Output Compare Register ab. Bei 'Clear On Match/Set on TOP' hast du positive Logik (je höher der Compare Wert, desto länger bleibt der Ausgang auf High) und bei 'Set on Match, Clear on TOP' negative Logik. Tobias N. schrieb: > und wenn ich die beiden T/C mit den jeweils 3 pwms nehme dann habe ich > noch den "einzelnen" T/C für den Timer um diesen im 10ms bereich zählen > zu lassen, korrekt? Zwei sogar. Sowohl Timer 0 als auch Timer 2 werden für 6 PWM Kanäle nicht benötigt und sind frei. Tobias N. schrieb: > also ich habe ein Datenblatt (was bei dem shop bei dem mega zum download > war (pollin)) das hat 368 seiten. Geh bitte nochmal direkt zu Atmel und hole dir da das für den Mega128 und das für den Mega128L. Bei unseren bayrischen Freunden ist das nicht unbedingt das aktuellste. Tobias N. schrieb: > Also "mehr" als 1Mhz ohne Quarz haben sie so oder so nicht? 8 Mhz hast du, wenn du lediglich die CKDIV8 Fuse löschst und den internen RC Oszillator auf 8 Mhz lässt. Tobias N. schrieb: > aber habe ich nur noch einen 20mhz > quarz da. Ich kanns natürlich nicht garantieren, aber ich habe einen Arduino Mega328 auch schon mit 19,6MHz getaktet (für AVR Mario) und das lief sicher.
Tobias N. schrieb: > overclocking Wenn das Teil für dein Auto ist, in dem es natürlich mal ziemlich Kalt oder Warm wird, würde ich mich an die angegeben Spezifikationen des Herstellers halten.
Matthias Sch. schrieb: > Tobias N. schrieb: >> Ähm schön zu wissen wäre es noch wo/wie man bestimmt ob L oder H, also >> ob nun z.b. bei einer LED die Anode oder Kathode am MC hängt. > > Das hängt von den oben erwähnten COM bits für das jeweilige Output > Compare Register ab. Bei 'Clear On Match/Set on TOP' hast du positive > Logik (je höher der Compare Wert, desto länger bleibt der Ausgang auf > High) und bei 'Set on Match, Clear on TOP' negative Logik. das stellt man dann bei diesen WC..... werten ein, korrekt? Also diese werte wo man ihm auch sagt fastpwm oder was auch immer, richtig? > Tobias N. schrieb: >> und wenn ich die beiden T/C mit den jeweils 3 pwms nehme dann habe ich >> noch den "einzelnen" T/C für den Timer um diesen im 10ms bereich zählen >> zu lassen, korrekt? > > Zwei sogar. Sowohl Timer 0 als auch Timer 2 werden für 6 PWM Kanäle > nicht benötigt und sind frei. na die sollten zum "zählen" ja ausreichen. > Tobias N. schrieb: >> also ich habe ein Datenblatt (was bei dem shop bei dem mega zum download >> war (pollin)) das hat 368 seiten. > > Geh bitte nochmal direkt zu Atmel und hole dir da das für den Mega128 > und das für den Mega128L. Bei unseren bayrischen Freunden ist das nicht > unbedingt das aktuellste. ok werde ich tuen. > Tobias N. schrieb: >> Also "mehr" als 1Mhz ohne Quarz haben sie so oder so nicht? > > 8 Mhz hast du, wenn du lediglich die CKDIV8 Fuse löschst und den > internen RC Oszillator auf 8 Mhz lässt. also kann ich den auf 8Mhz intern Takten. Also wird er zwar mit 1 Mhz ausgeliefert, kann aber auf 8Mhz umgestellt werden, richtig? Ich habe da noch was gelesen von "calibrated", aber "so" kalibriert kann er ja nicht sein weil RS232 ohne externen quarz ja nichts wird. > Tobias N. schrieb: >> aber habe ich nur noch einen 20mhz >> quarz da. > > Ich kanns natürlich nicht garantieren, aber ich habe einen Arduino > Mega328 auch schon mit 19,6MHz getaktet (für AVR Mario) und das lief > sicher. also muss man da nicht noch was eingeben sondern einfach den quarz dran, fuses auf externen quarz einstellen und hoffen das es läuft? wie gesagt bisher 0 erfahrungen mit fuses. weiss nicht ob man da die mhz vom quarz angeben muss oder etwas in der art. Ich glaube ich fange an ein Datenblatt zu verstehen.
Tobias N. schrieb: > das stellt man dann bei diesen WC..... werten ein, korrekt? Also diese > werte wo man ihm auch sagt fastpwm oder was auch immer, richtig? Ja. Im Aktuellen Datenblatt des ATMega128 schau auf Seite 132. Da werden die COM Bits beschrieben, sie befinden sich im TCCR1A bzw. TCCR3A Register. > also muss man da nicht noch was eingeben sondern einfach den quarz dran, > fuses auf externen quarz einstellen und hoffen das es läuft? wie gesagt > bisher 0 erfahrungen mit fuses. weiss nicht ob man da die mhz vom quarz > angeben muss oder etwas in der art. Wenn dein Quarz angechlossen ist und die beiden 22p Kondensatoren montiert sind, stellst du 'High Frequency Crystal Oscillator' und 'Slowly Rising Power' (65ms Startup Time) in den Fuses ein. In AVR Studio geht das recht komfortabel, wenn du einen kompatiblen Programmierer hast. Ansonsten greifst du auf einen der im Netz vorhandenen 'Fuse Calculators for AVR' zurück. Du darfst nicht etwa 'External Clock' oder so einstellen. In Tabelle 9 auf Seite 39 des Mega128 Datenblattes wähle also die letzte Option. > Also wird er zwar mit 1 Mhz > ausgeliefert, kann aber auf 8Mhz umgestellt werden, richtig? Ich habe da > noch was gelesen von "calibrated", aber "so" kalibriert kann er ja nicht > sein weil RS232 ohne externen quarz ja nichts wird. Ja - und das ist ein Gerücht. Mit niedrigen Baudraten bis 19200 hatte ich damit auch noch keine Probleme. Wenns drauf ankommt, sollte man aber schon einen Quarz nehmen.
da ich mal auf win mal auf linux progge nutze ich avrstudio nicht. also geflasht wird dann mit make und avrdude. ja cool. danke danke für deine Antworten. Solch eine erfahrung hätte ich gerne auch schon viel früher hier im Forum gehabt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.