Hello,
I'd like to say thanks for everyone's help here on the forum! And now onto the problem..
Initial Testing
I am using the DAC7578 to output 7-bit MIDI information. My initial testing was to output the 7-bit information directly scaled to 12-bits. This testing allowed one data transmission per user interaction. This works fine and in real time. The data sequence after a user interaction goes as follows:
Address--->Command & Access--->MSDB--->LSDB---->End
Continuous Data Transfer Testing
7-bit information has an audible digital stepping to it, so I needed to output additional data to the DAC for every user interaction. The 7-bit information is scaled to 12-bit by multiplying the 7-bit value by 32, and outputting every integer from the last output value to the current value. For example:
LastValue = 10*32;
CurrentValue = 20 *32;
- Output the integers 320 through 640. 320 Messages in total
The data sequence after a user interaction goes as follows. I have tried the Command and Access byte set to 0x00 and 0x30:
Address--->Command & Access--->MSDB--->LSDB--->MSDB--->LSDB--->.......--->End
This only updates the DAC output a single time. Does anyone have any suggestions as to why my output isn't updating?
Timer Fired Testing
I have also tried one additional solution to my problem. I have set up a timer that fires every 2 ms. When this timer fires, it updates my DAC's output register. This solution will update my register every time I would like it to, but happens too slowly. So I speed my timer up to .25 ms. The DAC does not update at this speed. Should I try high-speed mode? In this testing mode I use the following data sequence:
Address--->Command & Access--->MSDB--->LSDB---->End
I would like to use the other data sequence, but I cannot get the DAC to function using that method.
Does anyone have suggestions to make the quicker data sequence work? Should I be using high-speed mode? Any other suggestions are very welcome.