PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] USB



08.08.2004, 15:28
Ich habe leider keinerlei erfahung mit USB! :-k
würde aber gerne eine dimmbare Lichtansteuerung mit über 100 Lampen bauen! Ist das mögich und wenn ja wo find ich Literatur bzw. hilfe (auch im Internet)?
Im programiren habe ich leider auch keine große Erfahrun und würde mich auch hier über Tips freuen!

danke im voraus

sonic
08.08.2004, 15:51
Ich habe leider keinerlei erfahung mit USB! :-k
würde aber gerne eine dimmbare Lichtansteuerung mit über 100 Lampen bauen! Ist das mögich und wenn ja wo find ich Literatur bzw. hilfe (auch im Internet)?
Im programiren habe ich leider auch keine große Erfahrun und würde mich auch hier über Tips freuen!
danke im voraus

Für USB gibt's entweder uC wo USB gleich integriert ist, oder Chips die eine USB-Schnittstelle per RS232 bereitstellen. Z.B. FT8U232AM ...siehe http://s-huehn.de/elektronik/usb-rs232/usb-rs232.htm
Du brauchst auf alle Fälle einen uC, wie der die Lampen dann ansteuert, wie das gemacht wird ist klären wir dann wenn das Interface läuft ;-)

Gruß, Sonic

08.08.2004, 16:49
Kann man aber auch kaufen: Conrad (www.conrad.de)-Bestellnummer: 191148-14

So, ich glaub das is erstma der einfachste Teil gewesen, kommen wir jetzt zum schwierigen ;) :
Sollen diese 100 Lampen alle einzeln Dimmbar sein?
Oder nur alle gleichzeitig?
Ich hoffe ma das zweite, sonst würde das ziemlich kompliziert werden [-o<
Wenn man alle einzeln dimmen will, müsste man einen Microcontroller nehmen, der mindestens 100 Ports hat, was es 1.) Nich gibt und 2.) wenn doch, wär das wohl plcc mit smd abstand zwischen den pins, was man nich löten kann.
Also müsste man mehrer MC's miteinander verschalten, am besten man nimmt 4 atmega8 als dimmer und dann noch ein mega8 als "verteiler" bei dem dann die Steuerbefehle vom PC einlaufen und der die denn über ein Busssystem an die 4 dimmer-mc's verteilt. Als Bussystem nimmt man am besten ein eigenes (Selbstprogrammiertes) Bussystem, weil das mit dem i2c nur einmal am avr verwenden kann, aber man braucht ja min. 4.

Dann müsste man man die Avr's "nur" noch programmieren.
Am besten wäre es warscheinlich die Lampen mit PWM zu regeln, aber die avr's haben nur 2 bis 4 (?) Timer und auch nur so viele PWM-ausgänge.
Man bräuchte aber mindestens 25 :!:.

Ich bin nämlich immo auch am grübeln, wie man mehrere PMw's nutzen kann, und hab mir gedacht, man macht das so:
Man sortiert die ganzen Pegel von klein nach groß.
Der max. pwm soll dabei 200 (normal ist 255, aber so ist einfacher zu rechnen *gg*) und der min. halt 0.
Jetzt is das sortiert und man hat dann z.b. 100, 50, 40, 20, 10.
Dann wartet man 200 - 100 = 100 ms (mus warscheinlich im us bereich liegen, also dann mit nem faktor malnehmen)
Jetzt schaltet man den Port für die 100 ein.
Dann wartet man 100 - 50 = 50 ms und schaltet den Port dafür ein.
Usw mit den anderen, wenn man jetzt alle hat, schaltet man ale wieder aus und beginnt das ganze von vorne.

Soweit erstma.
Aber es kommt halt auf die anwendung an, ob sich das denn alles lohnt.
Was soll das denn später werden wenns fertig ist?


mfg God

God
08.08.2004, 16:54
Ach genau, der Beitrag ist wie gesagt von mir. ;)
Bin im Urlaub und nicht am mein PC.

Flite
08.08.2004, 17:53
Hallo Gast,

was du da vorhast ist weder einfach noch billig. Du wirst sehr viel Zeit investieren müssen. Und die Anbindung an USB wird da wohl das einfachste sein.

Aber um etwas genaueres sagen zu können brauche ich noch weitere Infos.

Was für Lampen willst du ansteuern? 230V wieviel Watt? Wenn mit Wechselspannung kannst du PWM vergessen. Dann ist Phasenanschnitt oder besser Phasenabschnitt angesagt. Und das wird je nach verwendeter Leistung teuer, aufwändig und groß. Normale Dimmerpacks für DMX Anwendungen besitzen meistens 8 Kanäle.

Ich würde folgendes empfehlen. Bau dir Dimmerpacks, in denen ein uC sitzt, der den Phasenabschnitt/anschnitt steuert. Dieser hängt über ein RS485 Netzwerk an einem Mastercontroller, der dann per USB an den PC angeschlossen ist. So liese sich das Projekt dann auch über mehrere Etappen aufbauen, da ich denke, dass 100 Lampen inkl. Ansteuerung schnell in den 4stelligen TEuro Bereich kommen.

Vielleich erzählst du mal etwas mehr über das, was du vorhast. Dann können dir vielleicht mehr leute noch Tipps geben.

Was deine Frage betrifft. Ich würde dir einen Chip von FTDI (www.ftdi-chip.com) empfehlen. Kann man bei Segor bestellen. Aber um SMD löten wirst du nicht rumkommen.

Viele Grüße
Flite

sonic
08.08.2004, 18:05
Kann man aber auch kaufen: Conrad (www.conrad.de)-Bestellnummer: 191148-14


Stimmt ;-)



So, ich glaub das is erstma der einfachste Teil gewesen, kommen wir jetzt zum schwierigen ;) :
Sollen diese 100 Lampen alle einzeln Dimmbar sein?
Oder nur alle gleichzeitig?
Ich hoffe ma das zweite, sonst würde das ziemlich kompliziert werden [-o<


Ich tipp mal schwer auf 100 einzeln dimmbare Lampen, kompliziert wirds ,-)



Wenn man alle einzeln dimmen will, müsste man einen Microcontroller nehmen, der mindestens 100 Ports hat, was es 1.) Nich gibt und 2.) wenn doch, wär das wohl plcc mit smd abstand zwischen den pins, was man nich löten kann.
Also müsste man mehrer MC's miteinander verschalten, am besten man nimmt 4 atmega8 als dimmer und dann noch ein mega8 als "verteiler" bei dem dann die Steuerbefehle vom PC einlaufen und der die denn über ein Busssystem an die 4 dimmer-mc's verteilt. Als Bussystem nimmt man am besten ein eigenes (Selbstprogrammiertes) Bussystem, weil das mit dem i2c nur einmal am avr verwenden kann, aber man braucht ja min. 4.


*Räusper* nach deiner Argumentation müssten dann ja in nem PC hunderte von Prozessoren stecken, bzw. ein Prozessor mit Millionen von Pins. Sonst könnte man die zig MB Ram nicht einzeln ansprechen.
Gottseidank hat ein schlauer Mann die mathematische Logik erfunden, in der E-Technik auch Schaltnetze genannt. Damit wirds um einiges einfacher ;-). S.h. Boolsche Algebra und KV-Diagramm. Im PC steckt für den RAM genau deswegen eine Adresslogik.
Um 100 Lampen an/aus schalten zu können brauchst du 7 Bit, also 7 Ports eines uC. Eigentlich gehen damit auch 128 Lampen, das nächst kleinere wäre halt 64...danach kommt die Elektronik zum dimmen usw.



Dann müsste man man die Avr's "nur" noch programmieren.
Am besten wäre es warscheinlich die Lampen mit PWM zu regeln, aber die avr's haben nur 2 bis 4 (?) Timer und auch nur so viele PWM-ausgänge.
Man bräuchte aber mindestens 25 :!:.


S.h. Oben, gleiches Problem, ähnliche Lösung, -> google "multiplexen led"
Andere Ansätze sind natürlich auch möglich...
PWM geht auch in Software, man kann fast alle Pins dafür nutzen. Was du meinst ist die HardwarePWM...



Ich bin nämlich immo auch am grübeln, wie man mehrere PMw's nutzen kann, und hab mir gedacht, man macht das so:
Man sortiert die ganzen Pegel von klein nach groß.
Der max. pwm soll dabei 200 (normal ist 255, aber so ist einfacher zu rechnen *gg*) und der min. halt 0.
Jetzt is das sortiert und man hat dann z.b. 100, 50, 40, 20, 10.
Dann wartet man 200 - 100 = 100 ms (mus warscheinlich im us bereich liegen, also dann mit nem faktor malnehmen)
Jetzt schaltet man den Port für die 100 ein.
Dann wartet man 100 - 50 = 50 ms und schaltet den Port dafür ein.
Usw mit den anderen, wenn man jetzt alle hat, schaltet man ale wieder aus und beginnt das ganze von vorne.
Soweit erstma.
Aber es kommt halt auf die anwendung an, ob sich das denn alles lohnt.
Was soll das denn später werden wenns fertig ist?
mfg God

Genau, PWM braucht eben gerade keinen Pegel sondern bezieht sich auf die Einschaltzeit der einzelnen Pulse. Also bei 10KHz hast du dann 10000 Pulse pro s, die in der Länge variieren...
ABER 230V Lampen hängen normalerweise an Wechselstrom, dafür gibt's andere bessere Verfahren als PWM, z.B einen PhasenAnschnitt-Dimmer...
Trotzdem hoffe ich das er keine 230V Lampen nehmen will...

:strom

Gruß, Sonic

God
08.08.2004, 19:04
Entweder bin ich grad total bescheuert oder was weiß ich aber wie soll das mit der Addresslogik daraud Übertragbar sein, man brauch ja trotzdem 100 pins, oder?


mfg God

Flite
08.08.2004, 19:14
Nein - als Beispiel kann man die Addresslogik eines AVRs mit externem RAM nehmen.

Da der SRAM 3 x 8 Bit Daten braucht (8 bit Daten und 16 Bit Adresse) = 24 Pins. Da dies fals alle Pins zunichte machen würde, hat man folgende Lösung. Man schaltet einen sogenannten Latch dazwischen. Legt dann die ersten 8 Bit an - aktiviert dann eine 'Hold' Leitung - der Latch übernimmt nun die 8 bit und hält sie an seinem Ausgang. Der Eingang kann nun geändert werden, ohne dass sich der Ausgang ändert. Also legt man nun da die restlichen 8 Bit an. So benötigt man statt 24 Leitungen nur noch 17.
Das ganze geht natürlich auf Kosten der Geschwindigkeit, was aber beim AVR nichts ausmacht, da trotzdem der Zugriff innerhalb eines Taktzyklus geschehen kann.

Weitere Infos kannst du dem Datenblatt entnehmen (z.B. vom AT90S8515 oder vom Mega8515).

Viele Grüße
Flite

sonic
08.08.2004, 19:28
Entweder bin ich grad total bescheuert oder was weiß ich aber wie soll das mit der Addresslogik daraud Übertragbar sein, man brauch ja trotzdem 100 pins, oder?
mfg God

Nein, du bist nicht bescheuert, ich habs ein bisschen undeutlich geschrieben. Ich wollt damit sagen das man nicht zig uC's mit zig Pins braucht, sondern im Prinzip auch einer reicht...

Das man für jede Lampe 2 Pins braucht hab ich schon vorrausgesetzt...

Gruß Sonic