-
That would be 4v p-p wouldn't it? +2 to -2v.
-
OK cool,
so this is only 50% of full deflection - correct? I thought the ILDA standard was from
+ +5v
- -5v
to
+ -5v
- +5v
for full deflection.
Giving 10v signal ptp and a whopping 20V total perceived 'swing' (-10v to +10v)
So to get a full deflection we would need to translate the DAC output by -2.5v and then amplify with a gain of 2?
*then* pass it to the balanced line driver for full diff output.
why is this sooooo complicated?
Can I propose a new standard - 0 to 5v on just two wires...
-
Yes, this part is correct:
+ +5v
- -5v
to
+ -5v
- +5v
for full deflection.
Giving 10v signal ptp and a whopping 20V total perceived 'swing' (-10v to +10v)
But I have no idea what you mean by this part:
So to get a full deflection we would need to translate the DAC output by -2.5v and then amplify with a gain of 2?
*then* pass it to the balanced line driver for full diff output.
-
Presently DAC(000) = 0v and DAC(FFF) = +5v
So what I mean is take the signal from 0-5v to the -5v / +5v range
[ie. shift it down by -2.5v and then multiply by 2.]
So DAC(000) = -5v, DAC(7FF) = 0v and DAC(FFF) = +5v
Then if we apply this -5v / +5v signal to the input of the differential line driver IC do we get the full deflection on the output?
Steve
-
Embedded Source uploaded
Hi all....
I have uploaded Version 1.0 of the embedded source code as well as all the PC source for the Bottloader GUI, USBDAC Tester GUI and the USB Driver...
Here is the link again:
http://hacylon.case.edu/usbdac/
I have rearranged the ftp site and now the schematics, embedded firmware and PC source are all in seperate folders. I have done a revision on a couple of the schematics as I picked up some hardware issues during testing.... if anyone is interested in the veroboard layout drop me a PM and i will upload it to the ftp site.
I will be doing some more bench testing this weekend. I still need to test this DAC hooked up to decent scanner amps. I am hoping to have some spare cash in a couple of weeks.
I am going to put together a basis programmers guide for this USBDAC by next weekend so those of you who are a wizz at PC GUI development can hopefully put something together for testing purposes.
The basic command to send to the USBDAC is pretty simple....
Here is the PC side in Delphi: (This procedure is called from the DAC Polling timer which is set to 1mS)
Procedure TfrmUsbTest.UpdateDacs;
var selection: WORD;
send_buf:TUsbData;
SentDataLength: WORD;
Begin
Selection:=0;
myOutPipe := MPUSBOpen(selection, vid_pid, out_pipe, MP_WRITE, 0);
if (myOutPipe = INVALID_HANDLE_VALUE) then
Begin
if (myOutPipe = INVALID_HANDLE_VALUE) then memo1.lines.add('Failed to open out data pipe - Update DACS');
Exit; //USB Operation Failed
End;
send_buf.Cmd := Update_DACS;
send_buf.Data[0]:= X_upper;
send_buf.Data[1]:= X_lower;
send_buf.Data[2]:= Y_upper;
send_buf.Data[3]:= Y_lower;
send_buf.Data[4]:= R_upper;
send_buf.Data[5]:= R_lower;
send_buf.Data[6]:= G_upper;
send_buf.Data[7]:= G_lower;
send_buf.Data[8]:= B_upper;
send_buf.Data[9]:= B_lower;
send_buf.Data[10]:= A_upper;
send_buf.Data[11]:= A_lower;
send_buf.DataLen:= 14;
if MPUSBWrite(myOutPipe,@Send_buf,Send_buf.DataLen,@S entDataLength,1000) <> 0 then
Begin
if (SentDataLength <> Send_buf.DataLen) Then
memo1.lines.Add('Failure on sending command Update DACS');
End
else
CheckInvalidHandle();
MPUSBClose(myOutPipe);
myOutPipe := INVALID_HANDLE_VALUE;
end;
.....send_buf.Cmd := Update_DACS; (Update_DACS = $0F)
send_buf.Data[0....11] are the 12 bits for each MCP4822 broken up into 2 bytes the upper byte = 4 upper bits and the lower byte = 8 lower bits....
these two bytes are then manipulated in the PIC as follows....(The following section appears in user.c under the Process_IO routine)
case Update_DACS: // Update MCP4822 x 3 and Latch their outputs in sync
X_DAC_Output((dataPacket._byte[2] * 255) + dataPacket._byte[3]);
Y_DAC_Output((dataPacket._byte[4] * 255) + dataPacket._byte[5]);
Red_DAC_Output((dataPacket._byte[6] * 255) + dataPacket._byte[7]);
Green_DAC_Output((dataPacket._byte[8] * 255) + dataPacket._byte[9]);
Blue_DAC_Output((dataPacket._byte[10] * 255) + dataPacket._byte[11]);
AUX1_DAC_Output((dataPacket._byte[12] * 255) + dataPacket._byte[13]);
Latch_DACs();
counter = 0x00;
break;
...as you can see all 3 MCP4822 DAC's are latched at the same time...Latch_DACs();
If I can be of any more help either post a reply or PM me...
Cheers
Paul
-
Do you have any news about this project to share?
-
Sorry to bump this thread, but has anything new happened here?
I'm very interested
-
This sounds very interesting. I was just referred here by a link from LPF, and I do like a good open source project, even though I may not have much to contribute to it.
May I ask is this getting anywhere? Are there schematics / complete parts lists / code for it?
-
There hasn't been any update on it here in months so it may have died. I hope it lives on, though. I would really like to support and open source DAC with my free laser software.
Norm (the guy with the laser kits) is also working on a USB DAC. I am not sure how far along with it he is, though. I don't know if I will add support to his to my laser software or not, though. I sent him an email asking if he would like me to do that and he never replied.
-
I am currently developing something similar to this. I would really like for you to support my dac when it's finished gary.
greets
FourDee
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules