DMX Tester mit Atmel

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 05 11 2024  22:22:27      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
DMX Tester mit Atmel
Suche nach: dmx (395)

    







BID = 415983

JoJo1987

Gerade angekommen


Beiträge: 8
Wohnort: Willstätt
 

  


Hallo,

ich brauche dringend eure Hilfe,

ich muss für die Schule (Informationstechnisches Gymnasium)im Rahmen einer Projektarbeit eine Arbeit mit dem Mikrocontroller Atmel 8051. Wir haben hierzu fertig aufgebaute Platinen mit Taktgeber, Stromversorgung und 4 Ports.
Ich habe mit jetzt als Thema eine DMX Tester ausgesucht. Hierzu möchte ich an Port 1 ein schiebe Poti anschließen um den DMX Wert einzustellen und an Port 2 8 Schalter und den Kanal zu adressieren. an Port 3 möchte ich dann den DMX Wert ausgeben.

Das Ganze muss in Assembler programmiert werden.
meine frage ist nun wie schaffe ich es den DMX Wert von dem 8 Poligen Port auf den 3 Poligen Seriellen DMX zu bringen?
Hab ihr so etwas vielleicht schon einmal gemacht?
Ist es sehr kompliziert?
Helft mit bitte es geht um mein Abitur.
Falls dann noch jemand einen Quelltext für mich hat währe das Genial.

Danke im Voraus
mfg
JoJo

BID = 415992

cholertinu

Inventar



Beiträge: 3755
Wohnort: CH

 

  


Zitat :
JoJo1987 hat am 21 Mär 2007 13:12 geschrieben :

wie schaffe ich es den DMX Wert von dem 8 Poligen Port auf den 3 Poligen Seriellen DMX zu bringen?

Dabei handelt es sich grundsätzlich um eine Art Parallel-Serie-Wandlung.
Ansonsten: DMX Protokoll studieren z.B. hier oder hier.

Dann mal eigene Ideen entwickeln und hier posten, wir helfen dann weiter wenn du Probleme hast. Einfach so wird dir hier keiner ein fertiges Projekt abliefern.
Zeig mal her was du bisher gemacht hast.

Bis wann muss die Arbeit fertig sein, wie sehen deine bisherigen Kenntnisse bezüglich uC aus?

Edit: Willkommen im Forum!

[ Diese Nachricht wurde geändert von: cholertinu am 21 Mär 2007 13:34 ]

BID = 416008

JoJo1987

Gerade angekommen


Beiträge: 8
Wohnort: Willstätt

Hi,

mir ist klar das mir niemand ein fertiges Projekt liefert. Das möchte ich auch gar nicht. Ich möchte bei dem ganze ja auch ein bischen etwas lernen.
Das Projekt steht noch komplett am Anfang fertig sein muss es anfang Juli.
Meine kentnississe für µC's halten sich in Grenzen. In der Schule haben wir uns mit den grundkentnissen von Asambler und µC#s befasst. (Schleifen, Intrups, verwenden von Tabellen ect.) In dem Projekt sollen wir zeigen dass wir mit diesen Grundkentnissen in der Lage sin auch kompliziertere Aufgaben zu lösen. Wobei natürlich hilfestellungen aller Art erlaubt sind solange wir si angeben.
Ich arbeite in meiner Freizeit sehr viel mit Licht und Tontechnik und daher habe ich mir das Thema ausgewählt.
Mit dem DMX Protokoll habe ich mich auch schon beschäftigt. Ich bräuchte lediglich ein paar Ansätze zu umsetzung.
Der schwerpunkt des ganzen wird ja in der Paralel seriel Wandlung liegen. Der rest erscheint mir recht einfach mit meinen Kentnissen umzusetzen.
Ich würde mich also freuen wenn ihr mir ein bischen weiterhelfen könnt und mich durch dieses Projekt begleiten würdet.

mfg

BID = 416016

cholertinu

Inventar



Beiträge: 3755
Wohnort: CH

Ist dir serielle Datenübertragung ein Begriff? Du musst an einem Port Pin die auszugebenden Daten "hintereinander" ausgeben, z.B. zuerst Bit0, dann Bit1... Bit7 des ersten Datenbytes, dann Bit0..Bit7 des zweiten Datenbytes usw. Die Reihenfolge der Bits und Bytes sowie Zugemüse (Start/Stop/Ack usw) ist vom Protokoll abhängig, in deinem Fall DMX.

Der Empfänger liest dann diese seriellen Daten ein und setzt sie wieder zu (parallel gelesenen) Datenbytes zusammen.

Mach dich mal schlau über die serielle Datenübertragung.

Wenn du dann die Ausgabe der DMX Daten in eine timergesteuerte Interruptroutine packst, dann klappt das auch mit dem Timing.

[ Diese Nachricht wurde geändert von: cholertinu am 21 Mär 2007 14:46 ]

BID = 416037

JoJo1987

Gerade angekommen


Beiträge: 8
Wohnort: Willstätt

Ok das mit der Timeroptimirten Ineruproutine müsste ich hin bekommen. Dann werde ich mir mal das DMX Protokoll genauer betrachten. und mir eine Lösung einfallen lassen wie ich das mit dem hintereinander senden der Daten hin bekomme.
Werde mich gleich mal über die Serielle Datenübertragung schlau machen.
Ich melde mich dann wieder
Danke

BID = 416045

JoJo1987

Gerade angekommen


Beiträge: 8
Wohnort: Willstätt

Hier bin ich nochmal,

ich habe mir die Protokolle ienmal näher betrachte und muss zugeben ich verstehe sie nicht so ganz.
http://mikrocontroller.cco-ev.de/de/dmx512.php
Ich werde daraus nicht ganz schalu wie ich dies umsetzten soll. Vileicht hat von euch jemand eine Ahnung von diesem Protokoll und kann es mir in einfache Worte zusammenfassen.
Der Kontroller mit dem ich arbeite ist eine AT89S8252. Ich habe auch hiervon schon die Datenblätter studiert und stellte mir die frage auf welchem Port gebe ich denn die Daten aus.
In den Datenblättern fand ich heraus, dass der Kontroller über ein SPI Serial Interface verfügt. Kann ich dieses Interface auch zur Ausgabe verwende und wenn ja wie.
Ich lese jetzt seit Stunden Protokolle und Datenblätter ich steige aber nicht so ganz dahinter wie ich dieses Problem lösen könnte.

Nehmt euch bitte die Zeit für mich und helft mir auf die Sprünge!

Vilen Dank

BID = 416083

JoJo1987

Gerade angekommen


Beiträge: 8
Wohnort: Willstätt

die frage mit der SPISchnitstelle hat sich geklärt.
Dumme frage!

BID = 416095

cholertinu

Inventar



Beiträge: 3755
Wohnort: CH

Ein Hardware-Serial Interface (SPI, I2C, ...) bringt dir nichts, da diese immer ein spezifisches Protokoll implementieren.
Du musst die Bit- und Bytefolgen in Software nachbauen und das Timing genau einhalten, sonst kann der Empfänger nichts mit deinen Daten anfangen - ausser er ist robust implementiert.

BID = 416134

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Mit der UART sollte es aber wohl gehen. Diese stellt man auf 250kbit/s ein und der Rest des Protokolls ist nur Software. Bis eben auf die Verdrahtung und die Abschlusswiderstände. Aber das ist ja eh klar.

Was ich ziemlich blöd finde:
http://www.mikrocontroller.net/topic/37890
Hier steht das z.B. auch mit der UART und mit den 250kbit/s (kbaud). Da hast du dich doch angemeldet und bereits eine Frage formuliert. Hast du da oben nicht mitgelesen?

Weiterhin frage ich mich, wieviel ihr gemacht habt bzw. wie du sowas alleine schaffen willst, wenn du nicht mal in der Lage bist, die richtigen Informationen zu finden. Sry, das ist nicht böse gemeint, aber ich frage mich halt...

_________________

BID = 416153

photonic

Schreibmaschine



Beiträge: 1301
Wohnort: Zürich, Schweiz

Wenn du die Hardware von DMX genauer angeschaut hast ist dir sicher etwas in Sachen RS-485 aufgefallen. Für dieses Problem musst du noch einen passenden IC haben, z.B einen MAX485...

BID = 416184

cholertinu

Inventar



Beiträge: 3755
Wohnort: CH


Zitat :
DonComi hat am 21 Mär 2007 22:23 geschrieben :

Was ich ziemlich blöd finde:
http://www.mikrocontroller.net/topic/37890

Schliesse mich der Meinung von DonComi an. Möge sich JoJo1987 alias <siehe link?> entscheiden, in welchem Forum/Thread er das Thema weiterbearbeitet haben will.

BID = 428207

JoJo1987

Gerade angekommen


Beiträge: 8
Wohnort: Willstätt

Hi,

entschuldige mich nochmal, dass ich in mehreren Foren gleichzeitig nach Hilfe gesucht habe. Ich habe mich aber definitiv für euch entschieden.
Ihr habt gemeint, ihr helft mir wenn ich euch einen Ansatz schicke.
Hier ist einmal ein kleines Programm. Problem ist nur es fuktionirt nicht. Könnt ihr mir da bitte weiterhelfen?

Quelltext:
$import (reg52.inc)

org 0000h
S1 EQU P1.3

Daten EQU P0

;---------------------------------------------- Zum Hauptprogramm gehen

ORG 0000h
sjmp main


;---------------------------------------------- Hauptprogramm -----

ORG 0020h
main:
;init: mov P0,#11111111b ; setze P0 alles auf "1"
; mov TMOD,#00000010b ; Mode2 Timer (8 Bit - Reload!)
; mov TL0,#152d ; Startwert
; mov TH0,#152d ; Reloadwert
; mov IP,#00h ; Priorität der Interrupts ist gleich!
; setb EA
; setb ET0
; setb TR0
mov DPTR,#Kanalwerte
mov R0,#0
;mov R2,#8 ;Hier Anzahl der Kanäle einstellen! ===========> Anzahl der Kanäle unten beim cjne einstellen!

WARTEN: jb S1,WARTEN

bytes_send:
mov P0,#00h
mov R1,50
break_time: djnz R1,break_time ;100µs break_time!

mov P0,#255 ;(1 MZ) ;MAB (Mark after Break 12 µs (8xNOP + mov + movc + mov = 12µ)
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP

fetch_byte:
mov A,R0 ;(1 MZ)
movc A,@A+DPTR ;(2 MZ) Byte holen

mov P0,#0 ;MAB Ende => Startbit beginnt (low)
mov R1,#8 ;Zählregister für 8 Bits initialisieren
inc R0 ;Kanalzähler schonmal erhöhen
NOP

mov P0,A ; LSB
rr A
NOP
NOP

mov P0,A ; 2. Byte
rr A
NOP
NOP

mov P0,A ; 3. Byte
rr A
NOP
NOP

mov P0,A ; 4. Byte
rr A
NOP
NOP

mov P0,A ; 5. Byte
rr A
NOP
NOP

mov P0,A ; 6. Byte
rr A
NOP
NOP

mov P0,A ; 7. Byte
rr A
NOP
NOP

mov P0,A ; HSB
rr A


mov P0,#255 ;Stoppbits (2x 4µs)
NOP
NOP
; nach Sprung noch 4 MZ für fetch_byte
cjne R0,#8,fetch_byte ;(2 MZ) DEBUGGING: Braucht der CJNE noch einen MZ zum springen?


sjmp warten







Kanalwerte:
DB 0,255,255,0,255,0,255,0

end

Sagt mir bitte bescheid was ich anderst machen muss bzw. wo mein mein Fehler liegt.

Dank im voraus
gruß
JoJo


Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


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 24 Beiträge im Durchschnitt pro Tag       heute wurden bisher 17 Beiträge verfasst
© x sparkkelsputz        Besucher : 182288888   Heute : 4378    Gestern : 4888    Online : 617        5.11.2024    22:22
8 Besucher in den letzten 60 Sekunden        alle 7.50 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0367290973663