Forum: Mikrocontroller und Digitale Elektronik ATmega328, PORTA fehlt


von Alexander M. (a_lexander)


Lesenswert?

Hallo Zusammen,

Warum gibt es eigentlich keinen PortA bei diesem µC, macht das Sinn oder 
wollte sich damit Atmel einen "Spaß" erlauben ;)?
Oder anders gefragt: warum wurde bei der Port-Bezeichnung nicht bei "A" 
angefangen?

Grüße :)

: Bearbeitet durch User
von Samuel C. (neoexacun)


Lesenswert?

Im Normalfall macht man sowas um Kompatibilität mit ähnlichen Bausteinen 
zu erreichen.

von Thomas E. (thomase)


Lesenswert?

Alexander M. schrieb:
> Warum gibt es eigentlich keinen PortA bei diesem µC

Früher hatte der mal einen. Haben sie aber irgendwann mal weggelassen.

von Einer K. (Gast)


Lesenswert?

Alexander M. schrieb:
> Oder anders gefragt: warum wurde bei der Port-Bezeichnung nicht bei "A"
> angefangen?

Meine Glaskugel sagt:
Ursprünglich wurde der Kern für ein Gehäuse mit mehr Pins entworfen.
(ist auch so sicherlich noch im Handel)

Dann musste/sollte der µC auf 28Pin reduziert werden.
Dann hat man einfach Port A gestrichen, mangels Pins.

Damit die Benennugsverfahren beim Hersteller einem System folgen 
(vermute ich mal) ist da keiner auf die Idee gekommen die Bezeichner neu 
zu vergeben.

Alexander M. schrieb:
> wollte sich damit Atmel einen "Spaß" erlauben ;)?
Nöö....
Glaube ich nicht.
Die sind einfach ihrem Schema gefolgt.

Oder mit anderen Worten:
Dein Estetikempfinden, war denen völlig egal.
Pragmatismus in Reinform!

von my2ct (Gast)


Lesenswert?

Alexander M. schrieb:
> Warum gibt es eigentlich keinen PortA bei diesem µC

Dafür hat der ATmega328 nicht genug Pins. Die vorhandenen sind durch die 
familienkompatiblen Verbindung zur Peripherie schon belegt.
Wenn du unbedingt einen PortA benötigst, könntest du auf 
ATmega640/1280/1281/2560/2561 o.ä. ausweichen.

von Alexander M. (a_lexander)


Lesenswert?

Interessant!
Viele Dank ;)

Im Vergleich zum ATmega640 beginnen beim ATmega328 die Register auch 
erst bei "0x03" (PortB, Datasheet S. 280), beim ATmega640 beginnen diese 
bei "0x00" (PortA, Datasheet S.402)

Noch eine weitere Frage, vielleicht kann die mir auch einer in Kürze 
beantworten:
Der Mikrocontroller an sich ist aber schon ein "Eigener", oder wurde da 
beispielsweise lediglich der Chip des ATmega640 genommen, nur die Pins 
wegen Platzersparnis nicht angeschlossen...das wäre wohl ein bisschen 
"pfuscherhaft" :D...?!

Danke ;)

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

Evtl. sind die Register bzw. ihre Adressen schon vorhanden, man könnte 
da also bestimmt Daten ablegen, die eben nur zu nichts führen.

Ist halt die Frage welchen Die/Core die verwendet haben oder was für 
Kompatibilität die erreichen wollten wenn sie die Pins nicht auf PortA 
gemappt haben.

von spess53 (Gast)


Lesenswert?

Hi

>Ursprünglich wurde der Kern für ein Gehäuse mit mehr Pins entworfen.

Falsch. Der allererste war der AT90(L)S4433. Mit 28 Pin und den PortsB,C 
und D. Danach folgte der ATMega8 mit der kompatiblen Pinbelegung. Und 
der wurde von den ATMega48,88,168 und 328 'abgelöst'. Die alle die 
gleiche Peripherie aber unterschiedliche Speicherausstattung besitzen.

MfG Spess

von Konrad Duden (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Dein Estetikempfinden, war denen völlig egal.

Mir ist dein Ästhetikempfinden nicht egal.

Dein Konrad

von M. K. (sylaina)


Lesenswert?

Thomas E. schrieb:
> Früher hatte der mal einen. Haben sie aber irgendwann mal weggelassen.

In welchem Universium hatte der 328 je einen PORTA gehabt? Sicher nicht 
in diesem ;)

Samuel C. schrieb:
> Im Normalfall macht man sowas um Kompatibilität mit ähnlichen Bausteinen
> zu erreichen.

Genau das ist auch bei Atmel der Fall gewesen.

Alexander M. schrieb:
> Der Mikrocontroller an sich ist aber schon ein "Eigener", oder wurde da
> beispielsweise lediglich der Chip des ATmega640 genommen, nur die Pins
> wegen Platzersparnis nicht angeschlossen...das wäre wohl ein bisschen
> "pfuscherhaft" :D...?!

Sicher bin ich mir nicht aber: Aufgrund der gleichen Adressierung und 
ähnlichen Eigenschaften ist es wahrscheinlich, dass der Atmega328 
wahrscheinlich einen etwas weniger aufwendigen Prozess hat als der 
Atmega640 und dessen Freunde. Große Teile der Prozessierung werden aber 
in der Tat gleich sein. Das hat weniger mit Pfusch zu tun als vielmehr 
mit Kostenersparnissen ;)
Generell sind alle AVR extrem ähnlich, insbesondere der Kern, die 
meisten unterscheiden sich eigentlich nur in der Peripherie/der 
Speicherausstattung.

von Thomas E. (thomase)


Lesenswert?

M. K. schrieb:
> In welchem Universium hatte der 328 je einen PORTA gehabt? Sicher nicht
> in diesem

Doch, hatte er.

von spess53 (Gast)


Lesenswert?

Hi

>Doch, hatte er.

Quelle.

MfG Spess

von Thomas E. (thomase)


Lesenswert?

spess53 schrieb:
> Quelle.

Weiß ich nichr mehr. Ist schon so lange her.

von M. K. (sylaina)


Lesenswert?

Thomas E. schrieb:
> spess53 schrieb:
>> Quelle.
>
> Weiß ich nichr mehr. Ist schon so lange her.

Und du bist dir sicher, dass du dich nicht irrst? Du verwechselst das 
jetzt nicht mit dem Atmega32, der hat nämlich nen PortA und klingt 
ähnlich...oder ein Atmega329, der hat auch ein PortA...oder der 
Atmega324...

Also der Atmega328 ist ein Ersatztyp/Nachfolger für den Atmega8 und der 
hatte auch noch nie einen PortA. Ich bin mir hier sicher, dass du dich 
irrst.

von Thomas E. (thomase)


Lesenswert?

M. K. schrieb:
> Und du bist dir sicher, dass du dich nicht irrst?

Hundertprozentig.

von Soul E. (Gast)


Lesenswert?

Alexander M. schrieb:

> Warum gibt es eigentlich keinen PortA bei diesem µC, macht das Sinn oder
> wollte sich damit Atmel einen "Spaß" erlauben ;)?
> Oder anders gefragt: warum wurde bei der Port-Bezeichnung nicht bei "A"
> angefangen?

Höchstwahrscheinlich gibt es ihn und die entsprechenden Pins wurden 
einfach nur nicht herausgeführt. Du kannst das Port-Register als 
zusätzliche Speicherstelle nutzen.

Der Controller wird einen großen Bruder haben, im 40/44 oder 64poligen 
Gehäuse, der den gleichen Chip verwendet. Bei dem sind dann alle Pins 
angeschlossen. Falls diese größere Variante mehr Speicher hat, ist 
dieser Speicher auch bei dem kleinen Derivat vorhanden. Allerdings vom 
Hersteller nicht geprüft und eventuell sogar deaktiviert.

Bei vielen Controller-Familien kommt man an die offiziell nicht 
vorhandenen FlashROM-Speicherblöcke über self-programming (Bootloader) 
dran, aber nicht über die externen Flash/Debug-Tools. RAM ist eigentlich 
immer zugänglich. Guck Dir die memory map des fettesten Derivates Deiner 
Controllerfamilie an und lass über dessen RAM-Bereich mal einen RAM-Test 
laufen.

von spess53 (Gast)


Lesenswert?

Hi

>Ist schon so lange her.

Also vor AVR?

Wie oben schon geschrieben, haben die 28pol AVRs schon seit Ende des 
letzten Jahrtausends (AT90S2233/4433) nur die Ports B,C und D. Und alle 
Nachfolger, ATMega8, ATMegaATMega48,88,168 und 328, haben die gleiche 
abwärts kompatible Pinbelegung. Lediglich der ATMega328PB im 32pol. 
QFN-Gehäuse hat noch zusätzlich PINs auf PortE.

MfG Spess

von Peter R. (Gast)


Lesenswert?

Eine weitre Vermutung:
Bei Kontrollern mit externem EPROM oder ROM war es Atandard, A für Daten 
bzw. Adressierung des RAM oder ROM zu benutzen. Port A hatte daher nicht 
die üblichen für I/O notwendigen Eigenschaften.
Bei mit internem Programmspeicher arbeitenden Kontrollern hat man das A 
vermieden, weil es sich vom üblichen IO-Port unterschied.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Thomas E. schrieb:
> M. K. schrieb:
>> Und du bist dir sicher, dass du dich nicht irrst?
>
> Hundertprozentig.

 Wie immer.
 Und wie immer liegst du hundertprozentig falsch.

 Die gaaanz alten DaBla hatten einen Typo mit ADC und Port A, aber
 die neuen haben das nicht mehr und beziehen sich richtig auf Port C.

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.