Forum: Mikrocontroller und Digitale Elektronik fertiger Bus im ATMEGA?


von Tom (Gast)


Lesenswert?

Hallo,

ich möchte einen AVR mit einem FPGA verbinden und das ganze über 16 
Bit-Adress- und 8 oder 16 Bit-Datenbus. Gibt es einen AVR der da 
irgendwas an Board hat (8 oder besser 16 bit Datenbus). Oder gibt es da 
vielleicht eine Lösung die schonmal jemand erstellt hat?

Jegliche Hinweise oder Quellen in diese Richtung würden mich sehr 
interessieren.

Danke Tom

von Johannes M. (johnny-m)


Lesenswert?

ATMega8515 und alles ab ATMega64 aufwärts besitzen einen herausgeführten 
Datenbus, falls Du das meinst...

von Falk B. (falk)


Lesenswert?

@ Tom (Gast)

>ich möchte einen AVR mit einem FPGA verbinden und das ganze über 16
>Bit-Adress- und 8 oder 16 Bit-Datenbus. Gibt es einen AVR der da
>irgendwas an Board hat (8 oder besser 16 bit Datenbus). Oder gibt es da

Der MEGA8515 und noch einige andere haben eine exterene 
Speicherschnittstelle. (8 Bit Daten und 16 Bit Adressbus). Reicht für 
den AVR auch locker. Wieviel Daten willst du denn übertragen, dass es 16 
Bit Datenbus sein soll?

>Jegliche Hinweise oder Quellen in diese Richtung würden mich sehr
>interessieren.

Die Datenblätter der AVRs.

http://www.atmel.com

MFG
Falk

von Tom (Gast)


Lesenswert?

Hallo Johannes, das ging aber schnell :)

Ist das beim ATMega 8515 die alternativbelegung für Port A und C?

Ist da Adresse und Daten dann gemultiplext? Wie steuert man sowas dann 
an. Gibts da Funktionen wo man nur Adresse und Daten bereit stellen muss 
oder muss man sich um das Multiplexen und die ganzen Sachen manuell 
selber kümmern?

Gibt es irgendwo ein Beispiel dafür wo ich mir sowas mal ansehen könnte?

Gruß
Tom

von Falk B. (falk)


Lesenswert?

@ Tom (Gast)

>Ist das beim ATMega 8515 die alternativbelegung für Port A und C?

Ja.

>Ist da Adresse und Daten dann gemultiplext?

Ja.

>Wie steuert man sowas dann an.

Macht der AVR alleine.

> Gibts da Funktionen wo man nur Adresse und Daten bereit stellen muss
>oder muss man sich um das Multiplexen und die ganzen Sachen manuell
>selber kümmern?

Nein.

>Gibt es irgendwo ein Beispiel dafür wo ich mir sowas mal ansehen könnte?

Im Datenblatt (Surprise, Surprise).

MFG
Falk

von Tom (Gast)


Lesenswert?

Also ich hab schon das Datenblatt und ich seh ja auch die Doppelbelegung 
für die Pins aber ich find irgendwie nicht an welcher Stelle mehr dazu 
steht, und dementsprechend auch kein Bsp.

Kannst Du mir auf die Sprünge helfen unter welcher Rubrik ich das finde?

von Jörg X. (Gast)


Lesenswert?

"AVR ATmega8515 Memories" -> "External memory interface"

rtfm Jörg

von Tom (Gast)


Lesenswert?

Vielen Dank :)

Das sieht aus als könnte ich es für die Anbindung an meinen FPGA nutzen.

Wenn irgendjemand irgendwelche Gründe sieht das dies nicht gehn sollte 
wäre ich für Denkanstöße dankbar.

Gruß
Tom

von Falk B. (falk)


Lesenswert?

@ Tom (Gast)

>Das sieht aus als könnte ich es für die Anbindung an meinen FPGA nutzen.

Ja, kann man. Du kannst dir soagr das Latch sparen, das kann problemlos 
im FPGA nachgebildet werden.
MFG
Falk

von biggie (Gast)


Lesenswert?

Hallo,

ich habe auch vor, einen FPGA direkt an die externe 
Speicherschnittstelle zu hängen.
Allerdings hätte ich dazu ein kleine Anfängerfrage, da ich mich auf 
diesem Gebiet noch nicht so gut auskenne.
Mir ist noch nicht klar, wofür ich die Adressleitungen benötige? Würde 
es nicht auch einfach reichen, nur die 8 Datenleitungen an den FPGA zu 
hängen? Bei einem externen Speicher ist schon klar, dass der Speicherort 
bekannt sein muss. Ich möchte ja aber nur die Daten im FPGA 
weiterverarbeiten und dann wieder ausgeben.

Wäre sehr nett, wenn ihr mir dabei helfen könntet.

Vielen Dank!

mfg
biggie

von Ralf (Gast)


Lesenswert?

Wenn dein FPGA weiss, welche Daten wohin müssen, dann kannst du dir die 
Adressen sparen. Aber das kannst du dann nur über ne StateMachine 
erkennen. Mit den Adressen wirds dann halt einfacher, wenn du z.B. 
sagst, Adresse 0 ist Kommando-register, Adresse 1 ist Config-Register 
usw. Da du bei Verwendung des EMI automatisch Adressen hast, würd ich 
die auch nutzen, musst ja nicht alle 16 nehmen...

Ralf

von Falk B. (falk)


Lesenswert?

@ biggie (Gast)

>ich habe auch vor, einen FPGA direkt an die externe
>Speicherschnittstelle zu hängen.

Dann tu das doch einfach mit XMEM Interfache Speicher.

>Mir ist noch nicht klar, wofür ich die Adressleitungen benötige? Würde

Damit die Daten an einer sinnvollen Adress im FPGA landen? Wenn du nur 
ein eiziges Registe rim FPGA haben willst brauchst du keine Adressen, 
aber das kann ziemlich nervig werden.

>bekannt sein muss. Ich möchte ja aber nur die Daten im FPGA
>weiterverarbeiten und dann wieder ausgeben.

Trotzdem brauchst du einen gescheiten Übergabemechanismus, sprich eine 
vollständige Schnittstelle. Entweder wie ein SRAM oder SPI oder I2C.

MFG
Falk

von biggie (Gast)


Lesenswert?

Hallo,

danke für eure schnellen und hilfreichen Antworten. Ich glaube, ich war 
wahrscheinlich etwas auf dem Schlauch gestanden, weil ich noch nicht so 
viel mit FPGAs gearbeitet habe.

>ich habe auch vor, einen FPGA direkt an die externe
>Speicherschnittstelle zu hängen.

>Dann tu das doch einfach mit XMEM Interfache Speicher.
So ist das geplant. Ich verwende den ATmega128 und will ihn eben direkt 
an das externe Speicherinterface hängen.

>musst ja nicht alle 16 nehmen...
da ich die 8 Leitungen für die Datenübertragung sowieso verbinden muss, 
reicht es dann, wenn ich auch nur diese als Adressleitungen verwende?

Vielen Dank!

mfg
biggie

von Falk B. (falk)


Lesenswert?

@ biggie (Gast)

>>musst ja nicht alle 16 nehmen...
>da ich die 8 Leitungen für die Datenübertragung sowieso verbinden muss,
>reicht es dann, wenn ich auch nur diese als Adressleitungen verwende?

Nööö. Schau dir mal bitte das XMEM Interface an. Es wäre sehr unklug, da 
nochmal was eigenes stricken zu wollen. Nimm die 8 Bits für den 
Datenbus, 4..16 Bits für den Adressbus, CS, WR, RD und fertig.

MFG
Falk

von Peter D. (peda)


Lesenswert?

biggie wrote:

>>musst ja nicht alle 16 nehmen...
> da ich die 8 Leitungen für die Datenübertragung sowieso verbinden muss,
> reicht es dann, wenn ich auch nur diese als Adressleitungen verwende?


Ja, denn damit hast Du schon 256 Adressen, was oft ausreicht.
Nur den ALE-Pin nicht vergessen, um die Adresse im FPGA zu latchen.

Der AVR kann konfiguriert werden von 8..16Bit Adressen, die restlichen 
Pins sind dann ganz normale IOs.

Der 8051 hat das gleiche Interface und extra Befehle mit 
8Bit-Adreßpointer.

Und wenn man viel Datenbytes hintereinander reinladen muß, kann man im 
FPGA auch ein Autoincrement machen.


Peter

von biggie (Gast)


Lesenswert?

Hallo zusammen!

>Nimm die 8 Bits für den
>Datenbus, 4..16 Bits für den Adressbus,

Genau das will ich ja machen. Nur das die 8 Bit für den Datenbus und 8 
Bit für den Adressbus gemultiplext auf physikalisch gleichen Pins 
liegen. Vielleicht hab ich mich oben unklar ausgedrückt.

Vielen Dank nochmal an alle, die mir so schnell und kompetent 
weitergeholfen haben.

mfg
biggie

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.