PDA

View Full Version : Olsen 595 and Vixen



HankD
12-17-2009, 11:59 AM
Last year I built a strippboard Olsen 595 with 16 channels. I wrote some VBA code for Excel to drive the boards. Everything worked the way I expected. This year I wanted to use Vixen due to the ease of editing and setting sequences. After setting Vixen up with the Olsen 595 plugin it looks like the computer only sends one channel out per time slot. Therefor I need one time slot for each channel. This does not seem right. Without changing any hardware I ran my VBA/excel program from last year and I could set any light on any time slot. My question is, does Vixen send only one channel out per time slot or do I have Vixen set up wrong. My VBA/excel software sends all channels out for each time slot. Am I expecting Vixen to do something it wasn't intended to do or am I not setting Vixen up the right way? Any help would be appreciated.

dirknerkle
12-17-2009, 12:28 PM
I'm assuming you have Vixen set up for 64 channels and you're using only the first 16? I'm not *absolutely* positive on this but I believe the 595 plugin assumes a 64 channel rig, so you may not be getting the parallel output you're supposed to get if you've only defined 16.

We also suggest that the port's CMOS setting be in EPP mode (ECP as second choice) since we've found that to provide superior performance to the other modes.

If Vixen is set for 50ms intervals (20 cells per second) and 64 channels, as it tracks through the time base, it will scan all 64 channels every 50ms and send appropriate pulses out the port for each channel.

Oh, BTW... Welcome to DIYC!

RavingLunatic
12-17-2009, 01:09 PM
HankD,

Here's a mini lesson of how Vixen handles Olsen:

With each new change in event data, Vixen will output all channel data assigned to the Olsen plug-in while also generating the clock and strobe signal. The data comes out in reverse order, so for you channel 16 comes out first and channel 1 last.

So Vixen will output 16 data values along with 16 clock cycles and then a strobe at the end to latch the data into the 595 chips.

For your Olsen 16, you need to set the Olsen 595 plug-in for 16 channels. Don't forget to assign those channels to your parallel port via the Plugin Setup button.

I've included a schematic of how the COOP 595 boards (Macrosill's design) are done so you can make sure you are hooking up to the correct data lines on the parallel port.

Hope this helps.

RL

dirknerkle
12-17-2009, 02:15 PM
Thanks, RL for the lesson -- Terrific explanation!

Sharkey
12-17-2009, 10:08 PM
I was looking that the .NET code for the Olsen 595, and noticed that it did do it backwards, as RL mentioned.

Why is this?

RavingLunatic
12-18-2009, 01:30 AM
Here's a mini lesson of how Vixen handles Olsen (part II):

Why does the data get sent in decending order?

The simple answer: The board is setup in a manner that requires it to be sent that way.

More complex answer (could have shortened it but what the heck): The 595 chip clocks the data thru its registers like this:

1st Clock = Data (from Data input line) put in register QA of Chip #1 but not latched to the output
2nd Clock = Data shifts QA => QB and new data loaded into QA, still not latched to the outputs
3rd Clock = Data shifts QB => QC, QA => QB and new data loaded into QA, still not latched to the outputs
4th Clock = Data shifts QC => QD, QB => QC, QA => QB and new data loaded into QA, still not latched to the outputs
5th Clock = Data shifts QD => QE, QC => QD, QB => QC, QA => QB and new data loaded into QA, still not latched to the outputs
6th Clock = Data shifts QE => QF, QD => QE, QC => QD, QB => QC, QA => QB and new data loaded into QA, still not latched to the outputs
7th Clock = Data shifts QF => QG, QE => QF, QD => QE, QC => QD, QB => QC, QA => QB and new data loaded into QA, still not latched to the outputs
8th Clock = Data shifts QG => QH and QH (out of this chip to the input of the next chip), QF => QG, QE => QF, QD => QE, QC => QD, QB => QC, QA => QB and new data loaded into QA, still not latched to the outputs
9th Clock = Chip #2 loads data into register QA (from QH of Chip #1), Chip #1 data shifts QG => QH and QH, QF => QG, QE => QF, QD => QE, QC => QD, QB => QC, QA => QB and new data loaded into QA, still not latched to the outputs

If the strobe signal is applied now then the data is latched from the register to the output. Currently there would be 9 channels set on the Olsen with the first piece of data sent being the first channel on the second chip. So if the first chip was identified as channels 1-8 and the second as 9-16 (like the Olsen is) then the first data is channel 9 and the last is channel 1.

Now imagine the above routine operating over a period of 64 clock cycles to load data in all the registers from QA of 595 Chip #1 to QH of 595 Chip #8 before the strobe latches the data.

In theory, the board could have been numbered in reverse and then the data could have been sent in ascending order but that might be even more confusing when adding additional boards.


Refer to the datasheet for the 595 chip for more detailed info.

HankD
12-18-2009, 02:47 PM
Thanks to all who replied. I found my problem! Pin1 and pin 14 were reversed. They where wired according to http://computerchristmas.com/christmas/link-how_to/HowToId-25/Build_a_1024_Port_Controller_for_100. This is the way I used it last year. Thanks to RavingLunatic for the coop schematic. It now functions they way I would expect. My lights are up but no blinking this year. Next year I will start sooner (maybe).
Merry Christmas to all

frenchruston
12-18-2009, 02:59 PM
Would the olsen driver have to be altered if I use the ULN2003 instead of the ULN2803A.

RavingLunatic
12-18-2009, 03:09 PM
As long as you are still using the 595 chips to "decode" the data then there would be nothing to change in the Olsen plug-in.

You would just need to wire up those chips correctly to the outputs of the 595 chips. Which might get creative since the ULN2003 only has 7 circuits and each 595 chip has 8 outputs.