www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 32 bit mit 74HCT165 schieben


Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

bevor ich hier einen dummen Fehler begehe, frage ich doch einfach einmal 
nach.

Ich habe vor, 32 bit aus einem (8 bit)-Flash-Baustein mittels 74HCT165 
seriell rauszuschieben. Ich würde einen Zähler nehmen, der die Adresse 
vom Flash hochzählt und diesen mit dem gleichen Takt wie den 74HCT165 
takten wollen. Es stellt sich nun die Frage nach den Timings.

Wenn ich die Zählerausgänge 3-4 an die Adressleitungen des Flashs hänge 
und das Laden des Schieberegisters dann triggere, wenn die 
Adressleitungen 0-2 alle low sind, frage ich mich, ob mir danach der 
erste Schiebepuls nicht verloren geht, denn es würde ja quasi 
gleichzeitig der Taktpuls und die PL-Leitung ansteigen (bzw. die 
PL-Leitung aufgrund der Laufzeit des notwendigen Gatters (vermutlich 
zwei Gatter des 74HCT10 verschachtelt) sogar später ansteigen). Das wird 
doch vermutlich nicht gut gehen.

Eine Idee könnte doch sein, die Zählerausgänge quasi um 1 zu 
verschieben, d.h. 4-5 an Flash, so dass man den 'halben' Takt an Ausgang 
0 noch für den Trigger nehmen könnte.

Gibt es vielleicht von Eurer Seite aus pfiffige Ideen dazu?

Gruß,

Florian

Autor: Jaq (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zum Einen wuerde ich den 165 durch den 595 ersetzen, zum Anderen koennte 
man sich ueberlegen
1)auf einen Simulator damit
2)in ein CPLD damit
Als Zaehler den 592 verwenden.
Ein Controller ist nicht beim Projekt dabei ?

Autor: Jaq (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei diskreter Logik : Wenn die Schieberegister auf steigend schieben, 
koennte man auf fallend zaehlen.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wieso seriell rausschieben???

im prinzip hast du doch 4x8(32bit).. da könntest du 4 latches nehmen, 
welche du mit ein bisschen diskreter logik ansteuerst.

adresse

000
001
010
011
100
101
110
111

die bits 0 und 1 sind entscheiden

latch 0 wenn 00
latch 1 wenn 01
latch 2 wenn 10
latch 3 wenn 11

so kannst du das durch den gesamten speicher des flashs machen...

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jaq:
595 hat einen seriellen Eingang, ich brauche aber einen parallelen.

Ein Controller ist für die Anwendung leider zu langsam (es sei denn, man 
investiert genug dafür).

@Sebastian:
Das wichtigste ist in der Tat das serielle Rausschieben. Es geht um eine 
Art PWM --- nur eben mit 32 bit.

Ein CPLD könnte die Lösung sein, dennoch wäre ich auch an einer 
diskreten Lösung interessiert.

Das Grundproblem mit dem Schieberegister ist in meinen Augen, dass beim 
Laden schon das entspr. Bit anliegt und daher das Laden quasi 
gleichzeitig mit dem Umschalten der Adresse laufen muss. Vermutlich muss 
ich einen zweiten Zähler für die Flash-Adresse verwenden, der quasi 
einen halben Takt voreilt.

Autor: Zacc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das 595 is seriell zu parallel, das 597 ist parallel zu seriell.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
32bit pwm!? okay!

jetzt verstehe ichs. grübel

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
welche frequenz schwebt dir denn vor?

müsstest ja quasi

takt1 high incr zähler (daten1 liegen an)
      low  lädt /PL    (daten1 sind im ersten register)
takt2 high incr zähler (daten2 liegen an) & Erster takt deiner pwm
      low  lädt /PL    (daten2 sind im ersten register)
takt3 high incr zähler (daten3 liegen an) & zweiter takt deiner pwm
      low  lädt /PL    (daten3 sind im ersten register)

nun folgen 29 takte shiften

takt1 high incr zähler (daten1 liegen an) & Letzter takt deiner pwm
      low  lädt /PL    (daten1 sind im ersten register)

viel spass mit ttl!!

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ist machbar. mit 2 binärzählern und ein paar logischen verknüpfungen. 
der eine zählt den flash/eeprom. und der andere zählt bis 32..
dann kommst du mit einem takt ganz gut hin, glaube ich

Autor: Thomas S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie schnell soll das ganze denn überhaupt sein ?

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich mal von 20.000 Wiederholungen pro Sekunde ausgehe, wäre das ein 
Bit-Takt von 640 kHz. Ein PIC mit 12 MHz getaktet war leider deutlich zu 
langsam. Ich habe in der Zwischenzeit Datenblätter gewälzt und wenn ich 
mich nicht vertue, sollte ein ATmega16 mit 16 MHz eigentlich genug Dampf 
haben, da die Befehle wohl teilweise in einen Taktzyklus abgefertigt 
werden. Beim PIC hatte m.W. jeder Befehl 12 Takte, so dass man dann auf 
1 MIPS kam. Das war ein wenig zu knapp für 640 kHz. Mit fast 16 MIPS vom 
ATmega16 sollte das dann aber reichen. Habe hier noch einen rumliegen 
und werde mal ein Layout basteln . Vielleicht habe ich ja Glück.

Autor: Freunde (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
geht doch ganz einfach, man nehme..

Autor: Lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und wie weiter bitte?

Autor: Andreas K. (oldcoolman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
könnte man nicht vor dem schiebetakteingang eine kleine
genau kalkulierte Zeitverzögerung einbauen.
74122 mit sehr kleinem c ? oder ein paar gatter hintereinander?

Gruß Andi

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.