Hallo,

Ik heb nu een hele resem aan DMX ontvangers gemaakt. Dit houdt in DMX ontvanger(on/off), DMX dimmers, DMX tester, DMX RGB spot, DMX scanner/movinghead.

Maar nu heb ik hier nog thuis een paneel liggen met enkele schakelaars op en een PIC16F877A. Deze zit met een seriele poort en ook een SN75176. Maar ik zou nu van dit paneel graag een DMX zender maken. ALs ik dit dan heb is zo goed als alles gemaakt rond DMX die ik wou.

Mijn vraag is nu: Heeft iemand een idee waar we software kunnen vinden voor een DMX zender in een PIC. Zijn er nog personen die heiermee bezig zijn...

Groetjes

nonkel_dw is er mee bezig maar ik weet niet of daar schot in zit

Ik dacht dat ik ook eens ergens gelezen had dat T.Assies er ook een gemaakt heb, maar deze vind ik nergens meer terug...

Iemand enig idee. Het was een beschrijving met code dacht ik.

Greets

hoi

ik ben hier inderdaad mee bezig :)
ik heb al een code maar er zit nog ergens een bugje in.

De fout zit zich in het ad ontvangen denk ik.

[Bericht gewijzigd door nonkel_dw op (20%)]

Heb je eventueel de voorbeeld software ergens staan.
Is het met een PIC? Wordt de seriele poort gebruikt ?

Greets

ik werk oko nog met een externe ic
aan 4051 zo danig dat ik door 4 lijn en 1 ad ingang 8 verschillende potmeters kan inlezen :)

ik post even de code zit nog wel een foutje in maar mss halen we die er samen wel uit


LIST	P=16F870
	include<P16F870.INC>


	__CONFIG	_CP_OFF & _PWRTE_OFF & _WDT_OFF & _HS_OSC  & _LVP_OFF

	 

	WACHT1	EQU	20H
	MAB		EQU	21H
	WAARDE	EQU	22H
	TIMER	EQU	23H
;ALLE KANALEN

	MABD	EQU	24H
	KAN0	EQU	25H
	KAN1	EQU	26H
	KAN2	EQU	27H
	KAN3	EQU	28H
	KAN4	EQU	29H
	KAN5	EQU	30H
	KAN6	EQU	31H
	KAN7	EQU	32H
	KAN8	EQU	33H
	KAN9	EQU	34H
	PWM		EQU	35H
	BREAK	EQU	36H

	#DEFINE A0	PORTB,0
	#DEFINE A1	PORTB,1
	#DEFINE A2	PORTB,2

	ORG 0X00
	GOTO INIT

	INIT
	
;	MOVLW	D'128'
;	MOVWF	WAARDE
	BSF		STATUS,RP0	;GA NAAR BANK1	
	MOVLW	B'00000000'
	MOVWF	PORTC
	MOVWF	PORTB
	MOVLW	B'11111111'
	MOVWF	PORTA


	


;UART
	;BSF	RCSTA,SPEN	; ZET DE POORT AAN 
	BSF	TXSTA,TX9 	; 9 BIT AAN
	BSF	TXSTA,TXEN	; ONTVANGEN AAN
	BCF	TXSTA,SYNC	; ASYNCGROON ZENDEN
	BCF	TXSTA,BRGH	; HOGE SNELHEID
;	BSF	TXSTA,TRMT	; CHIFT REGISTER
	BSF	TXSTA,TX9D	; ZET DE 9 DE BIT AAN
	BSF	TXSTA,TXIF
	MOVLW	D'4'	; BAUDRATE IN STELLEN      49
	MOVWF	SPBRG
;AD CONVERTER
	
	MOVLW	B'00000000'	; ZET DE POORTEN JUIST VOOR TE ONTVANGEN
	MOVWF	ADCON1		; ZET HET WEG

	BCF		STATUS,RP0	; GA NAAR BANK0
	BSF		RCSTA,SPEN
	MOVLW	B'10000101'	
	MOVWF	ADCON0
	
	;ZET DE MAB JUIST
	MOVLW	B'00000001'	; DMX ONTVANGEN DE MAB BREAK
	MOVWF	MABD
	NOP

		
	CLRF	KAN0		;CLEAR DE FILE
	GOTO	MAIN		; GA NU MAAR ZENDEN

			
MAIN
	; ontvangen van analoge signalen
;KANAAL1
	CALL KANAAL1
	BSF	ADCON0,GO
	CALL	WACHT2
	MOVF	ADRESH,W
	MOVWF	KAN1
;KANAAL2
	CALL KANAAL2
	BSF	ADCON0,GO
	CALL	WACHT2
	MOVF	ADRESH,W
	MOVWF	KAN2
;KANAAL3
	CALL KANAAL3
	BSF	ADCON0,GO
	CALL	WACHT2
	MOVF	ADRESH,W
	MOVWF	KAN3
;KANAAL4
	CALL KANAAL4
	BSF	ADCON0,GO
	CALL	WACHT2
	MOVF	ADRESH,W
	MOVWF	KAN4
;KANAAL5
	CALL KANAAL5
	BSF	ADCON0,GO
	CALL	WACHT2
	MOVF	ADRESH,W
	MOVWF	KAN5
;KANAAL6
	CALL KANAAL6
	BSF	ADCON0,GO
	CALL	WACHT2
	MOVF	ADRESH,W
	MOVWF	KAN6
;KANAAL7
	CALL KANAAL7
	BSF	ADCON0,GO
	CALL	WACHT2
	MOVF	ADRESH,W
	MOVWF	KAN7
;KANAAL8
	CALL KANAAL8
	BSF	ADCON0,GO
	CALL	WACHT2
	MOVF	ADRESH,W
	MOVWF	KAN8
	GOTO	ZENDEN
;-------------------------------------------------------------------
	
; BREAK ZENDEN
BREAKL
	MOVLW	D'60'
	MOVWF	BREAK
LUS
	DECFSZ	BREAK,F
	GOTO	LUS
	RETURN
;ZENDEN VAN DATA
WACHT
	BTFSS	TXSTA,TRMT	; KIJKEN OF HET VERZONDEN IS
	GOTO	WACHT
	RETURN	
; WACHTEN VOOR DATA ONTVANGEN
WACHT2
	BTFSC	ADCON0,GO
	GOTO	WACHT2
	RETURN
;-------------------------------------------------------------------
	ZENDEN
;DMX ZENDEN
	BSF STATUS,RP0	; ga naar bank1
 	BCF	RCSTA,SPEN ; zet de serieel poort uit
	BCF	STATUS,RP0	; terug naar bank 0

	BCF	PORTC,6		; zet de pin laag
	CALL	BREAK	; nu de break

	BSF	STATUS,RP0	;naar bank1
	BSF	RCSTA,SPEN	; ZET UART AAN
	BCF	STATUS,RP0	; terug naar bank0
; ZENDEN VAN MAB
	CLRF 	MABD	; we zenden en lege byte deze kan gebruik worden als MAB
	MOVF	MABD,W	; zet het in w
	MOVWF	TXREG	; dan in zend register
	CALL	WACHT	; dan wachten tot het verzonden is
; ZENDEN VAN KANAAL 1
	MOVF	KAN1,W
	MOVWF	TXREG
	CALL	WACHT
; ZENDEN VAN KNAAL2
	MOVF	KAN2,W
	MOVWF	TXREG
	CALL	WACHT
;ZENDEN VAN KANAAL3
	MOVF	KAN3,W
	MOVWF	TXREG
	CALL	WACHT
;ZENDEN VAN KANAAL4
	MOVF 	KAN4,W
	MOVWF	TXREG
	CALL	WACHT
; ZENDEN VAN KANAL5
	MOVF	KAN5,W
	MOVWF	TXREG
	CALL	WACHT
	NOP
;TERUG NAAR DE MAIN
	GOTO	MAIN



	KANAAL1
	BCF A0
	BCF	A1
	BCF	A2
	NOP
	NOP
	NOP
	NOP
	RETURN
	KANAAL2
	BCF	A0
	BCF	A1
	BSF	A2
	NOP
	NOP
	NOP
	NOP
	RETURN
	KANAAL3
	BCF	A0
	BSF	A1
	BCF	A2
	NOP
	NOP
	NOP
	NOP
	RETURN
	KANAAL4
	BCF	A0
	BSF	A1
	BSF	A2
	NOP
	NOP
	NOP
	NOP
	RETURN
	KANAAL5
	BSF	A0
	BCF	A1
	BCF	A2
	NOP
 	NOP
	NOP
	NOP
	RETURN
	KANAAL6
	BSF	A0
	BCF	A1
	BSF	A2
	NOP
	NOP
	NOP
	NOP
	RETURN
	KANAAL7
	BSF	A0
	BSF	A1
	BCF	A2
	NOP
	NOP
	NOP
	NOP
	RETURN
	KANAAL8
	BSF	A0
	BSF	A1
	BSF	A2
	NOP
	NOP
	NOP
	NOP
	RETURN

	





	END

[Bericht gewijzigd door nonkel_dw op (90%)]

Hallo,

Deze heb ik ook net gevonden op het forum ;).

Ik zal deze dan eens bekijken. Het zenden werkt dus wel, of nog niet ?

Greets

ik ga me er zo nog eens achter zetten ik laat je wat weten wat het wel en niet doet :)

Ik ben volop bezig met nog wat te schrijven het zenden van het signaal doet het nog niet zoals ik wil

[Bericht gewijzigd door nonkel_dw op (38%)]

Ik heb de software eens bekeken, als ik tijd heb zal ik dit dan eesn gaan proberen op een PIC16f877a.

Heeft er iemand een idee hoe de SN75176 aangesloten meot worden om de data te verzenden.

Greets

Zo:
http://users.skynet.be/kristofnys/dongle.htm
Alleen je moet hem dan ipv porta.0 op een andere poort zetten; de uitgang van de uart.

Hallo,

Deze software werkt niet met de seriële poort dacht ik...
Heb deze ook al eens tegen gekomen maar vond deze niet echt handig geprogrammeerd ...
Nod ideeen, programma's, schema's ... ??
Greets

ik heb net even nog wat zitten programmeren aan men code nu komt er een dmx signaal uit :)
maar nu zit ik te denken hoe ik het best de potensiomters ga inlezen met in het achterhoofd dat er hier nog moeten bij komen

Hebben jullie mss al iets geschreven?

die dongle werkt niet van kristof nijs en die manulator ook niet :(

Hoi,

Zou je de code eens kunnen posten of doormailen. Dan zou ik deze eens bekijken en zien wat ik ermee kan doen.
Van mij moet ik enkel schakelaars doorsturen. Dus enkel 0 of 255.
Ik zou de code wat aanpassen dan.

Wat je vraag betrefd om meer potentiometers in te lezen. Je kan evenveel potentieometers gebruiken, maar doormiddel van verzchillende schakelaar verschillende banken maken. De waardes schrijf je dan weg naar de verschillende banken en heb je dus meer analoge ingelezen waarden. Zo werken de echte toestellen ook dacht ik, je meot daar een bepaald teostel aanduiden en dan kan je met dezelfde potmeter een ander toestel aansturen.

Alvast bedankt ;)

greets

[Bericht gewijzigd door boone op (46%)]

Hallo,

ik ben dus begonnen met die DMX zender.
ik kan al signalen verzenden, maar ik denk dat ik niet op de juiste baudrate zit.

volgend gedeelte stelt de seriele poort in:


	movlw		0x04
			movwf		SPBRG			; Zet baudrate
			clrf		TXSTA			; Stel connectie in
			bsf			TXSTA,TX9
			bsf			TXSTA,TX9D
			bsf			TXSTA,TXEN
			bcf			TXSTA,SYNC
			bsf			TXSTA,BRGH
			bsf			TXSTA,TRMT

Als ik nu echter meet met de scoop, dan meet ik van 1 datablok, dus 1 kanaal dat deze 44,4 µs is. Volgens mij moet dit getal nog lager liggen, of heb ik dit verkeerd op...

1:44,4 µS is dus 22522Hz, dus 22,5 kHz, dit is dus totaal naast de 250kbaud.

Of maak ik hier nu een rekenfout rond baud en frequentie ???

Greets

hoi

Daar zit ik ook even met te worstellen
Soms ontvangen men dimmers signaal en dan weer niet
Ergens loop de pic nog niet goed.
Men data frames duren iets te lang.

De baudrate is de lengte van 1 clockpuls, niet van een hele byte!
Start + 8 databits + parity + stop = 11 bits
44,4 / 11 = 4uS

Hallo,

Hoe moet je dan rekenen met baud.

Is 250kbaud dan 250 kHz of niet.
Wat is de berekening hierrond?

Niemand een idee ????

Weet iemand hoe je de SN75176 moet aansluiten als zender dus. Moeten er weerstanden aan bijvoorbeeld als terminator voor het begin, pull ups voor de lijn, ... ???

Greets

[Bericht gewijzigd door boone op (44%)]

Hallo,

Niemand enig idee van het aansluitschema van die SN75176.

En die berekening van Baud naar Hz, klopt dit :

250kbaud = 250000 bits per seconde

1 bit = 4µsec

Freq = 1/4µsec = 250000kHz

Dus baud en Hz is eigenlijk hetzelfde ...???

Greets

"Is 250kbaud dan 250 kHz of niet."

Ja, maar dat heeft dus niets te maken met de lengte van een 'datablok' zoals je noemt, dat zou een byte + start/stop/parity zijn. Baudrate is de bitsnelheid.

Illegaal kickje binnen 24u, maargoed.

Baudrate en bitrate hoeven niet hetzelfde te zijn, google of wiki kunnen je meer vertellen. In jouw geval kun je het inderdaad als gelijken zien.

De SN75176 heeft verder een keurige datasheet. De bus is differentieel, ik weet niet hoe je bij pull-ups komt? De terminator voorkomt reflecties aan het einde en is aan de transmitterzijde dus niet nodig.

Hallo,

Bedankt voor de reactie, dan volg ik idd het schema van de datasheet.

Maar ik dacht dat er hier ook een terminator aanmoest. Ik ging ervan uit dat aan alle uiteinden een terminstor moest. Dus aan zend en ontvangszijde ...

Greets

In een single-master applicatie (met je master aan het begin van de lijn) is termination alleen aan het einde nodig. Zolang je aan het einde netjes 'dempt' komt er (bijna) geen reflectie meer terug die aan de transmitter-kant van de lijn weer zou kunnen reflecteren. Bij meerdere masters wordt dat een ander verhaal, maar daar heb je bij DMX geen last van.

Hoi,

Ik heb de DMX zender dus in gang gekregen. Momenteel heb ik 8 kanalen die ik stuur.
Ik heb gisteren dit getest op een switch pack en een scanner.

Nu, ik heb op mijn paneel in totaal 12 schakelaars staan.

Mijn bedoeling was dus 8 schakelaarsvoor de kanalen. En dan heb ik er nog 4 over om bijvoorbeeld een keuze te maken van een bank. Dus bank 0 is kanaal 1 tot 8, dan bank 1 is kanaal 9 tot 16, enzo.

Nu dan kan ik gaan tot 16 banken en dus 128 kanalen.

Nu komt de vraag. Wat zouden jullie doen met die 4 toetsen.
Effectief gebruiken om bank te selecteren met 4 schakelaars.
Of zouden jullie kiezen om met 2 knoppen de bank te incrementeren en decrementeren. Hierdoor bespaar ik 2 schakelaars en kan ik nog meer kanalen uitsuren.

Maar wat kan ik dan doen met die andere 2 schakelaars.

Nu had ik graag eens jullie idee gehoord, wat jullie zouden doen ...

Greets

Jups,

Niemand enige ideeen wat ik kan doen als extra ...

Greets