SPI-Baustein für digitale Potis gesucht... Im Unterforum Alle anderen elektronischen Probleme - Beschreibung: Was sonst nirgendwo hinpasst
Autor |
SPI-Baustein für digitale Potis gesucht... |
Problem gelöst
|
|
|
|
BID = 109956
schreibfaul Gerade angekommen
Avatar auf fremdem Server ! Hochladen oder per Mail an Admin
Beiträge: 3
|
|
Hier mal in ein paar Worten mein Problem:
Ich habe in meinem PC eine Karte mit digitalen I/O-Kanälen (TTL-Logic) eingebaut, kann also damit ein Low- (0V) oder High-Pegel (5V) ausgeben lassen. Nur mit diesen Kanälen möchte ich nun digitale Potis betreiben und einstellen.
Ursprünglich hatte ich an einen UART gedacht, an dem ich parallel 8Bit anlege und dieser schickt sie mir dann seriell weiter zum digitalen Poti.
Woran es jetzt scheitert, ist die Kombination.
Entweder ich brauche ´das passende Poti zum UART, d.h. das Poti benutz den selben Takt/das selbe Protokoll wie der UART.
Oder ich benötige einen SPI-Baustein und ein kompatibles Poti.
Hier bei mir habe ich einen UART "EF58B50P" oder ich könnte auch einen bei Reichelt bestellen (z.B. TL16C450FN), brauch aber dann ein passendes Poti.
Außerdem habe ich ein Poti "DS 1803-10", welches einen "seriell Clock" für den SCL-Eingang benötigt.
Zusammen passen die beiden aber nicht.
Ich hoffe hier ist jemand unter Euch, der mir eine sinnvolle Kombination und die passenden Bauteile nennen kann. Ich benötige also am besten eine Möglichkeit, wie ich nur mit reiner TTL-Logic mein "DS 1803" angesteuert und eingestellt bekomme.
Danke schonmal für Eure Hilfe! |
|
BID = 110005
Her Masters Voice Inventar
Avatar auf fremdem Server ! Hochladen oder per Mail an Admin
Beiträge: 5308 Wohnort: irgendwo südlich von Berlin
|
|
Moin Moin.
Ich hab bisher nur mit Xicor Digitalpotis zu schaffen gehabt aber die lassen sich auch zur Not über einfache Tasten ansteuern. Ein Schalter für die Richtung (up/down) und ein Taster der den Takt macht und schon gehts los. Natürlich kann man so nicht alle Features des Chips nutzen aber zum probieren reichts erstmal. So getestet mit nem X9c503. Eine Ansteuerung über irgendeine Elektronik ist dann auch kein Problem.
_________________
Tschüüüüüüüs
Her Masters Voice
aka
Frank
***********************************
Der optimale Arbeitspunkt stellt sich bei minimaler Rauchentwicklung ein...
*********************************** |
|
BID = 110028
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Mit einem UART wird das ohnehin nicht gehen, weil der vor jedem Datenwort immer noch ein Startbit sendet. Außerdem liefert er kein Taktsignal.
Am Einfachsten dürfte es sein wenn du die Steuersequenz im PC-Programm selbst bastelst, und dann nur an den beiden I/O Leitungen SCL und SDA fiddelst.
Die Geschwindigkeit, mit der du das machst, ist dem Chip ziemlich egal.
A0..A2 legst du fest, denn die sagen dem Chip ja nur auf welche Adresse eur hören soll.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
[ Diese Nachricht wurde geändert von: perl am 4 Okt 2004 14:28 ]
|
BID = 110399
schreibfaul Gerade angekommen
Avatar auf fremdem Server ! Hochladen oder per Mail an Admin
Beiträge: 3
|
Auf diese Idee bin ich noch gar nicht gekommen.
Werde das mal probieren - wäre sogar besser, weil man dann 6 Datenleitungen einspart.
Probleme wird aber erstens das Zeitmanagement machen, da die TTL-Leitungen nicht simultan laufen und der Ablauf der Steuerung dann komplett der Rechenleistung des PCs unterliegt. Bringt man diese Steuerung in einem Programm unter, welches nebenbei andere Aufgaben erfüllt, kann die Sache sehr unsicher werden.
Nur um es richtig zu verstehen:
Ich gebe also auf einem Kanal (für SCL) Ein Rechteck aus und auf dem anderen (SDA) versuche ich parallel die Bits zu setzen?
Wie reagiere ich dann auf das "acknowledge" vom Poti?
Du sagst die Zeit ist egal, aber ist es dann auch egal, wenn ich keine konstante Frequenz hinkriege?
(Wird die Bit-Information von SDA bei SCL=High übernommen, solange kein Wechsel des Zustandes auf SDA währenddessen erfolgt?)
Jedenfalls werde ich das jetzt mal ausprobieren, das geht ja wie man weiß übers studieren... Danke.
(PS: Das Datenblatt von oben genannnten Poti werd ich mir auch mal zu Gemüte führen.)
|
BID = 110541
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Das Datenblatt solltest du natürlich studieren. Da stehen auch die Timing Diagramme drin.
Ansonsten handelt sich es um eine ziemlich statische Angelegenheit, völlig zeitunkritisch.
Wenn im DB setup oder hold Zeiten vom ein paar ns angegeben sind, bedeutet das ja lediglich, daß die betreffenden Signale mindestens schon so lange vor der Taktflenke stabil sein müssen bzw. noch etwas gehalten werden müssen.
Das meiste davon interessiert nur Leute, die maximale Geschwindigkeit fahren. Du kannst das alles gemütlich hintereinander machen.
Zitat :
| Bringt man diese Steuerung in einem Programm unter, welches nebenbei andere Aufgaben erfüllt, kann die Sache sehr unsicher werden. |
Wenn das ein Thema ist, solltest du überhaupt keinen PC oder jedenfalls keinen unter Windows verwenden.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 117104
schreibfaul Gerade angekommen
Avatar auf fremdem Server ! Hochladen oder per Mail an Admin
Beiträge: 3
|
Ist leider nicht eher geworden und hab auch ne Weile probiert... aber es FUNZT! *freu*
Gebe die gewünschten Bitfolgen (für SCL und SDA) über meine Karte aus und kann so das Poti einstellen.
DANKE für den TIPP!
Da meine TTL-Signale Ausschläge von bis zu 2Volt um den eigentlichen Wert hatten, hab ich jetzt 100n dazu gehangen. Dadurch muß ich dem Signal aber mehr Zeit geben.
In C# hab ich die Möglichkeit mit "Thread.Sleep('Zeit in ms');" kleine Pausen zw. den Ausgaben einzulegen. Die sind notwendig, denn ohne schafft auch die Ausgabekarte die Geschwindigkeit nicht. Leider muß man dann aber mindestens 1 für eine Millisekunde nehmen, schneller geht nicht.
Jetzt dauert der gesamte Vorgang (ändern des R-Wertes) aber 1,2s. Mal sehen, ob ichs noch schneller hinkrieg, aber dafür bräuchte ich einen anderen Befehl in C#.
|
|
Das Thema ist erledigt und geschlossen. Es kann nicht mehr geantwortet werden !
Zum Ersatzteileshop
Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum
Datenschutz
Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland
gerechnet auf die letzten 30 Tage haben wir 22 Beiträge im Durchschnitt pro Tag heute wurden bisher 4 Beiträge verfasst © x sparkkelsputz Besucher : 182195015 Heute : 1422 Gestern : 4612 Online : 754 18.10.2024 11:17 9 Besucher in den letzten 60 Sekunden alle 6.67 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
|
xcvb
ycvb
0.0381219387054
|