Forum: Mikrocontroller und Digitale Elektronik atmega8 mit atmega48 ersetzen?


von Michel (Gast)


Lesenswert?

Hi
ich mag 4 Motoren per PWM steuern und hab gerade ein ArduinoUSB board 
mit einem Atmega8 rumliegen.

Kann mir jemand aus dem Stand sagen ob das Arduino board auch einen 
Atmega48 verträgt?
Die Belegung de PDIP sieht ziemlich gleich aus, wenn ich keine Tomaten 
auf den Augen habe..


Die Software würde ich eh neu schreiben und einen ISP hab ich auch bin 
also auch nicht auf das USB Interface angewiesen...

Oder kann mir jemand sagen wie ich auf einem Atmega8 4 Kanäle PWM 
hinbekomme?

Meine Rechnung geht so:
Bei 7800Hz und 8Bit Auflösung ist der kürzeste Schaltzyklus:
1/(7800 * 256) = 5us
was bei 16MHz Takt gerade mal 10 Zyklen entspricht.... Irgendwie hab ich 
den Verdacht ich bekomm das in Software nicht hin, da im Zweifelsfall 
die Interrupts zu dicht aufeinander folgen. Die 6 PWM Kanäle des 
atmega48 wären da schon geschickt...


Jemand einen guten Rat?


Danke!

-michel

von Thomas O. (tarzanwiejane)


Lesenswert?

atmega8 und atmega48 sind pinkompatibel.
kannst du direkt ersetzen wenn du den code eh neu schreibst. 
codekompatibel sind sie leider nicht.

cu tarzanwiejane

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Dann würde ich doch gleich einen Mega168 einsetzen, der hat den 
doppelten Flash und SRAM gegenüber dem alten 8er und kann auch mehr. 
Ansonsten gilt oben gesagtes.

von Rolf Magnus (Gast)


Lesenswert?

Der 168er ist kompatibel zum 48er. Falls er also einen Mega48 rumliegen 
hat, kann er den erstmal nehmen. Wenn der Speicher nicht reicht, kann er 
den immer noch durch einen Mega88 oder Mega168 ersetzen.

> was bei 16MHz Takt gerade mal 10 Zyklen entspricht.... Irgendwie hab
> ich den Verdacht ich bekomm das in Software nicht hin, da im
> Zweifelsfall die Interrupts zu dicht aufeinander folgen.

Das ist definitiv so. Alleine die Reaktionszeit und der Rücksprung aus 
dem Interrupt, also noch ohne Registersicherung oder gar den 
eigentlichen ISR-Code, ist schon länger als 10 Zyklen.

von Johannes M. (johnny-m)


Lesenswert?

Schau mal in die Application Note AVR094 von ATMEL. Da steht alles drin, 
was beim Wechsel vom Mega8 zum Mega48/88/168 zu beachten ist.

von Oliver Keller (Gast)


Lesenswert?

Den Atmega168 kannst man auf jedenfall nehmen und direkt mit dem Arduino 
Board, der IDE und der API benutzen - ohne Code-Anpassungen. Seit der 
Ardunio IDE Version 0006 ist der Atmega168 als Alternative zum Atmega8 
ins Projekt integriert. In der Ardunio IDE, oben im Menü, unter "Tools / 
Microcontroller" einfach den Atmega168 als target auswählen.

Gruß, Oli

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
Noch kein Account? Hier anmelden.