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
timmie
niet met me uitspraken(of opmerkingen) eens mail me.K8048 guide
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
nonkel_dw
nonkel dw
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
nonkel_dw
nonkel dw
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
nonkel_dw
nonkel dw
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
nonkel_dw
nonkel dw
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
nonkel_dw
nonkel dw
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.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
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
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
"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.
Jochem
If you want to succeed, double your failure rate.
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
Jochem
If you want to succeed, double your failure rate.
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