m-labs / pdq

Pretty darn quick interpolating arbitrary waveform generator
GNU General Public License v3.0
6 stars 3 forks source link

16 channel wavesynth program seems to write the 16th channel's waveform to every channel #16

Closed erickson-nist closed 7 years ago

erickson-nist commented 7 years ago

16 channel example.txt

No matter what the hardware board select switch on the PDQ is set to, after programming with the attached file the output is always what I expect for the final board (an 8 V square pulse). If I comment out the final element of each channel_data array and set num_boards=15, the behavior is as expected where the height of the square pulse corresponds to the board number. Doing similar for num_boards=12 also yields the expected behavior.

jordens commented 7 years ago

You have 16 boards with one channel each? How did you wire that? With current hardware it is impossible to stack more than ~three boards. Yes. The board address 0xf is broadcast.

erickson-nist commented 7 years ago

Not 16 boards, one board where I change the rotating board select switch. The idea was to test that we can trigger individual boards with up to 16 on the same SPI line. After changing the board select switch, I reprogrammed the board with the attached script and then triggered it via SPI.

jordens commented 7 years ago

Yes. The address 15 is used consistently to address (trigger, select frame, configure, and write memory) all boards. You'll need to determine whether this is an actual issue given that you can't stack 16 boards anyway.

erickson-nist commented 7 years ago

Ok thanks, I understand now. Our physical stacks are 3 boards, so we will likely never have more than 3 boards x 5 stacks =15 boards on a single SPI line anyway.