www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ProzessorGeflüster


Autor: walifogel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ProzessorGeflüster

So ein Prozessor hat einige Interessante Fähigkeiten.
Z.B. der ’’ATmega8515’’ Mir steht nur das Datenblatt aus dem Internet
zur Verfügung.
Da steht das man extern noch einen Speicher anschließen kann. Die
Signale, ALE, /WR, /RD und Adressen sind vorhanden.

Nun das große ABER.
Ich will auch einen speicher anschließen aber anders als vorgesehen
weil ich die Ports brauche und der RAM als ein Ringbuffer organisiert
ist.

Kann ich trotzdem mit den Leitungen ALE, /RD, /WR im richtigen Timing
klappern oder ist das ein feststehender Befehl der nicht teilweise
ausführen werden kann. Also keinen Adressleitungen, weil dort ein ander
Port benötigt wird.

Erst mal danke für eure Antworten

Wf

Autor: Michael Wolf (mictronics) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei Nutzung des XMEM Interface musst Du deinen externen Speicher auch
entsprechend der Signal und Port Belegung anschliessen.
Der Controller Kern erzeugt dann bei Zugriff auf die entsprechenden
XMEM Adressen die Signalpegel und das Timing.

Wenn Du den Speicher anderst anschliessen willst, must das XMEM
Interface deaktiviert sein. Du musst dann aber die richtigen Pegel und
das Timing über Software abhandeln.

/Michael

Autor: walifogel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Michael
Wenn ich dich richtig verstanden habe, dann ist das ein feststehendes
Protokoll, das komplett deaktiviert werden muss.

Ist dir bekannt ob man dann noch mit den Beinchen Klappern kann.
Dann bräuchte ich keine Ausgänge zu Opfern!

Ich muss das über Software abhandeln, da der Speicher als RingBuffer
betrachtet wird und ich die Zeiger verwalten mus. Extern kommt noch ein
Adresszähler hinzu.

Wf

Autor: noname (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also der >betreff< ist große scheiße

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> also der >betreff< ist große scheiße

Wieso???
Der sagt doch sehr viel aus... ;-)

...

Autor: Kai Riek (kairiek)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Prozessorgeflüster: Schade und ich dachte hier wirds intim... ;-)

Nix für ungut, lasst euch ned ärgern.

Aber kurz zum Thema: Mit den Zeigern solltest du keine Probleme haben.
Der µC stellt dir nämlich schon drei Stück zur Verfügung, über die du
auf deinen Speicher zugreifen kannst. Schau mal im Datenblatt noch den
Registern X, Y und Z...
Was soll der externe Adresszähler? Bitte näher erklären...

MFG

Kai

Autor: walifogel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Datenblatt, des ATmega8535/ATmega8515, das ich hier habe, ist nicht
besonders Informativ.
Das DatenBuch währe sehr hilfreich, weis jemand wo ich das für kleines
Geld bekommen kann, am besten in German.

wf

Autor: Kai Riek (kairiek)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Des hier ist sehr informativ:
http://atmel.com/dyn/resources/prod_documents/doc2512.pdf

MFG

Kai

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man den "Complete-Datasheet" hat, dann sind da alle notwendigen
Informationen drin (ausser vielleicht dem Instruction Set, für den es
ein eigenes PDF gibt...)

Autor: Christoph Wagner (christoph)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst zumindest PortC bei eingeschaltetem XMEM Interface komplett
abschalten. Mit PortA geht das allerdings nicht. Da dieser Port
gemultiplext wird, wirst du den auch nicht frei kriegen. Minimalbedarf
für XMEM ist PortA + ALE + RD + WR (11 Signale).

Autor: walifogel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Christoph Wagner (Christoph)

’’Michael Wolf (Mictronics)’’’ hat weiter oben geschrieben das man XMEM
Interface komplett deaktivieren kann, und somit der Port A frei wird.
Ich möchte aber die Pins ALE, /WR, /RD weiterverwenden, weil ich eine
Externe Hardware Speicherlösung bevorzuge.
Dadurch wird es möglich das der Prozessor in den RAM schreibt und ein
externer USB, on Block, aus dem RAM liest.

wf

Autor: Michael Wolf (mictronics) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Pinfunktionen ALE /WR und /RD sind entweder auf Port-Pins mit
Mehrfachbelegung oder als einzelne Pins nur mit dieser Funktion
ausgeführt.

Bei Pins mit Mehrfachbelegung sind diese speziellen Funktionen nur dann
aktiv, wenn auch das XMEM aktiviert ist, ansonsten verhalten die sich
wie normale Port-Pins.

Mit anderen Worten: Nur wenn XMEM aktiviert ist, werden die Signale an
ALE, /WR und /RD automatisch erzeugt.

Wenn XMEM deaktiviert ist kannst Du mit den Ports und Pins machen was
Du willst. Ausser bei Controllern mit separatem ALE Pin. Dieser läst
sich nicht direkt ansprechen.

Alles das kann man auch in den Datenblättern der entsprechenden
Controller mit XMEM Interface nachlesen.

---
>>Ich möchte aber die Pins ALE, /WR, /RD weiterverwenden, weil ich
eine
>>Externe Hardware Speicherlösung bevorzuge.
>>Dadurch wird es möglich das der Prozessor in den RAM schreibt und
ein
>>externer USB, on Block, aus dem RAM liest.

Aha, und wie willst Du den RAM nur mit Hilfe von ALE, /WR und /RD
adressieren?
Um Adressleitungen kommst Du nicht drum herum.

/Michael

Autor: walifogel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Michael Wolf (Mictronics)
Das ist ganz einfach, ich habe doch geschrieben das das RAM ein
Ringbuffer werden soll.
Auf so was gibt es keinen wahlfreiem Zugriff, sondern einen
SchreibZeiger und einen LeseZeiger.
Holt der Schreib- den Lese- Zeiger ein ist der Buffer voll.
Eine Startadresse wie im Hauptspeicher brauche ich nicht das ist der
Physikalische beginn des RAMs.
Nun ja ALE sollte halt den Zähler Takten der die Adressen für das RAM
erzeugt.

Autor: Profi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie bringe ich Dir das am besten bei ... ?
Wenn Du die Adressen mit einem externen Zähler erzeugen willst, musst
Du ihn mit normalen Port-Pins ansteuern, und Deine Software muss die
Pins entsprechend bedienen (Zähler clearen und hochzählen).

Oder Du machst es mit dem XMEM-Interface, dann hast Du die Adressen vom
µC erzeugt (man braucht einen Adress-Zwischenspeicher, der mit ALE
(Adress Latch Enable) gelatcht wird) und kannst z.B. mit den
x,y,z-Registern darauf zugreifen.

Eine Mischung aus diesen beiden Möglichkeiten geht nicht!

Die 2. Lösung erscheint mir wesentlich einfacher, da wenn Du 2 Pointer
(read und write) brauchst, Du den Zähler viel zählen lassen musst
(außer Du verwendest 2 Zähler, einen zum Lesen und einen zum Schreiben.
So würde die Software einfacher, aber die HW komplizierter.)

Autor: Kai Riek (kairiek)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo walifogel,

ich würde mir an deiner Stelle auch überlegen, ob ich das USB Interface
nicht mit an den µC anschließe. Wenn dieses Daten anfordert kannst du
diese, ggf. auch mit Interrupt, ruck zuck aus dem RAM lesen. Zusammen
mit den X, Y, Z Regs und dem XMEM Interface ist das eine sehr gute
Alternative zu deiner Hardware-Variante und ist auch nicht unbedingt
langsamer.
Außerdem macht es kaum einen Unterschied zwischen beiden Varianten, da
du dir die Zeigen so oder so merken mußt.

MGF

Kai

Autor: walifogel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Profi
@Kai Riek (kairiek)

Ohne Schaltung ist das schwierig zu erklähren.
Im prinzip ist das so, das sowohl der Prozessor als auch zusätzliche
Hardware, auf das RAM zugreifen können.
Nur der USB macht mir noch sorgen. Zu erst dachte ich,
mit einem externen USB könnte ich die Daten aus dem RAM in den PC
schaufeln.
USB <->Harware<->RAM | AVR hat Pause
Dann an USB<->USART<->AVR<->Software<->Hardware<->RAM
Oder an USB<-> in Software <->AVR<->Software<->Hardware<->RAM

wf

Autor: Michael Wolf (mictronics) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>Ohne Schaltung ist das schwierig zu erklähren.

Na vielleicht gibst Du uns dann ein paar mehr Details, damit die Leute
auch verstehen was Du überhaupt machen willst.

Vielleicht zum Anfang ein paar einfache Fragen:
Welcher AVR Controller wird verwendet?
Welcher USB Interface Controller wird verwendet?
Was macht die "Hardware"?
Was soll die ganze Schaltung darstellen?

/Michael

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ist dir bekannt ob man dann noch mit den Beinchen Klappern kann.
> Dann bräuchte ich keine Ausgänge zu Opfern!

Kannst du mal erläutern, was du unter "mit den Beinchen Klappern"
verstehst, und wie das Ausgänge sparen soll?

Autor: walifogel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das frage ich mich allmählich auch. Ich war bisher der Meinung das man
ein Register, (z.B. PB0…7) mit einem Befehl komplett in die Ausgänge
schreiben kann, und/oder von da lesen kann.
Es geht um diese Geschwindigkeit, um die Timer und Interrupt. Sonst
hätte ich ja auch eine Hand voll ICs nehmen können.

(Es geht immer noch um einen Low- Kost Logik Analysator)

Ich weis jetzt nich-, bin ich ein Blindfisch oder bin ich nich-.
Jedenfalls finde ich in den ganzen Datasheet, der Prozessoren, keine
angaben über die Setup time, wie lange dauert es z.B, bis ein Eingang
vom Prozessor erkannt wird, und er darauf reagiert ????
Klar einige Timing Diagramme habe ich gesehen aber keine Zeiten, Daten,
Fackten.

Weis jemand etwas näheres über die versteckten ’’ns’’.

Autor: Schau Mal (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Blindvisch bitte

fuer Dich muss ein ganz neuer Prozessortyp entwickelt werden !

Du solltest mal DataSheets lesen anstatt komic-prozesse zu entwickeln.

Autor: walifogel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>Blindfische bitte << Ich sag doch, zu dumm zum zumm zummm …

Was aber sind  >>komic-prozesse<< :--)))))

wf

Autor: Michael Wolf (mictronics) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>(Es geht immer noch um einen Low- Kost Logik Analysator)

Na vielleicht fängst Du erst mal klein an. zB. Damit:

Hier ganz unten:
http://www.mikrocontroller.net/articles/Logic_Anal...

Oder direkt:
Projekt LoLA
http://avrfreaks.net/index.php?module=FreaksAcadem...

Autor: Mnaos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"...wie lange dauert es z.B, bis ein Eingang vom Prozessor erkannt
wird, und er darauf reagiert ????"
Nun, ich gehe mal davon aus, dass der Prozessor spätestens einen Takt
nach dem anlegen des Signals den Wert auslesen kann... Soll das ganze
Interrupt gesteuert laufen kommt dann noch die Verzögerung durch den
Einsprung in die Interrupt-Routine dazu.

Wieviel Kanäle willst Du machen dass Du Dich so am PortA festklammerst?
Der 8515 hat ja immerhin 35 I/O's - ist da der PortA so wichtig, dass
Du auf den nicht verzichten kannst?

Autor: walifogel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Michael Wolf (Mictronics)

>>(Es geht immer noch um einen Low- Kost Logik Analysator)
>>Na vielleicht fängst Du erst mal klein an. zB. Damit:

Würde wir alles unterlassen was andere schon gemacht haben, währe die
Menschheit längst ausgestorben.

Ein gutes Projekt, es ist aber zu Teuer und für den Einfachen Bastler
nur schwerlich nachzubauen.

Nicht jeder kann die FPGAs oder Prozessoren in der dort geforderten
form, beschaffen und Programmieren.

Aber danke für den Hinweis.

Wf

Autor: walifogel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Mnaos
Der Portname ist eigentlich egal, wichtig ist nur das der möglichst
nicht x-fach belegt ist, ich den als eine Einheit behandeln kann und
nicht auf einige Funktonen des uC verzichten muss.

>>Wieviel Kanäle willst Du machen dass Du Dich so am PortA
festklammerst?
Na ja pro Prozessor, 8 Eingänge, 1 RAM, 1 USB einmal anschaffen.
Low- Cost eben.

Leider gibt es anscheinend keinen Prozessor der Schnell >16MHz ist,
Preiswert ist, leicht zu beschaffen ist und keine Zerrupfte Ports
hat!!

Wf

Autor: Kai Riek (kairiek)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ohne Schaltung ist das schwierig zu erklähren.
>Im prinzip ist das so, das sowohl der Prozessor als auch zusätzliche
>Hardware, auf das RAM zugreifen können.
>Nur der USB macht mir noch sorgen. Zu erst dachte ich,
>mit einem externen USB könnte ich die Daten aus dem RAM in den PC
>schaufeln.
>USB <->Harware<->RAM | AVR hat Pause
>Dann an USB<->USART<->AVR<->Software<->Hardware<->RAM
>Oder an USB<-> in Software <->AVR<->Software<->Hardware<->RAM

Kannst du dann nicht wenigstens versuchen ein Blockschaltbild zu
entwerfen, wie das ganze etwa aussehen soll? Hier kann sich nämlich
wirklich niemand ein richtiges Bild von deinem Vorhaben machen.

MFG

Kai

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@komischer Vogel

>Würde wir alles unterlassen was andere schon gemacht haben, währe die
>Menschheit längst ausgestorben.

>Ein gutes Projekt, es ist aber zu Teuer und für den Einfachen Bastler
>nur schwerlich nachzubauen.

>Nicht jeder kann die FPGAs oder Prozessoren in der dort geforderten
>form, beschaffen und Programmieren.

>Aber danke für den Hinweis.

DU erwartest hier Hilfe; leider sehe ich aber das Du gewisse Dinge und
Links ignorierst. DU scheinst eine Vorstellung zu haben, was Du
vorhast; leider sieht das aber immer mehr so aus: sagt ihr mal was
gutes, ich suche mir schon das Beste raus.

Wie wäre es ein Blockschaltbild zu zeigen und dann könnte man auch auf
Zeitkritische Fragen eingehen.
Ehrlich gesagt, es vergeht einem die Lust - jemandem so zu helfen.....

Autor: Manos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Na ja pro Prozessor, 8 Eingänge, 1 RAM, 1 USB einmal anschaffen. Low-
Cost eben."
naja, der 8515 hat wie gesagt 35 Eingänge, 512 Byte RAM (wieviel auch
immer 1 RAM ist^^)... Es gibt auch Bastelanleitungen, mit denen man aus
einem mit 12 MHz betiebenen Atmel einen USB-Client macht (war glaube ich
mit einem Tiny2313) - ob dann aber noch genug CPU-Zeit bleibt um andere
(High-Speed) Aufgaben zu erledigen weiß ich nicht.

"Leider gibt es anscheinend keinen Prozessor der Schnell >16MHz ist,
Preiswert ist, leicht zu beschaffen ist und keine Zerrupfte Ports
hat!!"
Tiny2313, Mega48/88/168, Mega644 haben alle 20MHz, und 18, 23 bzw. 32
Eingänge, wo bestimmt auch zusammenhängende frei sind :)
http://atmel.com/dyn/products/param_table.asp?fami...

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube, hier gibt es noch einen Irrtum.

Es wird wohl vorausgesetzt, dass eine USB-Verbindung zwischen PC und
AVR-MikroCONTROLLER (nicht -PROZESSOR) schnell ist. Das ist sie aber
nur dann, wenn große Datenpakete übertragen werden. Dazu haben die AVRs
aber zu wenig RAM. Eine echte UART-Direktverbindung ohne USB könnte
durchaus schneller sein.

...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.