Hi,
I'm at the research stages of a project which will basically merge multiple DMX streams on a highest-takes-precedence basis. I will have 4 inputs and one output, and for each of the 512 channels it will choose whichever of the 4 inputs has the highest value for this channel and then transmit that particular one.
The specifications for DMX are "Data are transmitted serially at 250 kbit/s and is grouped into packets of up to 513 bytes, called 'slots' in DMX512-A. Data are sent with 1 start bit and 2 stop bits, LSB first. The start of a packet is signified by a break of at least 88 uS, extended from 44 uS in the 1986 standard, and when receivers detect the break they reset their receiving code. Then up to 513 bytes are sent. The first byte is always the "Start code" byte.".
I envisage I'll have to have a micro (PIC?) running with a high clock (20MHz?) which will read in the serial data from all 4 ports and store all of it in a large EEPROM (I'm guessing parallel memory would be more suited to this task). Then another PIC can sit and read the memory as well (by piggybacking the data lines of the memory) and then do the calculations and then transmit the DMX.
However I'm just wondering if this is going to be feasable. At the high transfer rates with the large amounts of data will PIC chips/standard memory be able to keep up or is it easily going to handle it? Anyone got any tips on how else I could achieve this?
Cheers
I'm at the research stages of a project which will basically merge multiple DMX streams on a highest-takes-precedence basis. I will have 4 inputs and one output, and for each of the 512 channels it will choose whichever of the 4 inputs has the highest value for this channel and then transmit that particular one.
The specifications for DMX are "Data are transmitted serially at 250 kbit/s and is grouped into packets of up to 513 bytes, called 'slots' in DMX512-A. Data are sent with 1 start bit and 2 stop bits, LSB first. The start of a packet is signified by a break of at least 88 uS, extended from 44 uS in the 1986 standard, and when receivers detect the break they reset their receiving code. Then up to 513 bytes are sent. The first byte is always the "Start code" byte.".
I envisage I'll have to have a micro (PIC?) running with a high clock (20MHz?) which will read in the serial data from all 4 ports and store all of it in a large EEPROM (I'm guessing parallel memory would be more suited to this task). Then another PIC can sit and read the memory as well (by piggybacking the data lines of the memory) and then do the calculations and then transmit the DMX.
However I'm just wondering if this is going to be feasable. At the high transfer rates with the large amounts of data will PIC chips/standard memory be able to keep up or is it easily going to handle it? Anyone got any tips on how else I could achieve this?
Cheers