Quote:
Originally Posted by DaKi][er /img/forum/go_quote.gif
If you want to code the whole thing then I'm fine with that, and having the finished hardware in front of you will be a must for that. I was thinking of doing it myself for the MCU and setting up the other chips over the I2C as I’m pretty fluent in the 8051 assembly language I was going to do it all in that.
|
Either way works for me, though I've not used the 8051 architecture before. I was planning on C since there's example code and a proven free compiler (mostly because of the example code). Also makes it easier to collaborate. I suspect that you have better test equipment than I do though, so the final programming and debugging would probably be easier on your side. We aren't really there yet though.
Quote:
I don’t see any other way without putting some logic between the clocks and the TAS1020B, we don’t have any other way of selecting the proper one. I just went through the logic gate library and picked one that looked alright, the fact that it is a LS part isn’t really a concern, it’s just the label that the software gave it and HC should be used throughout. I’ll have to read up some more about squarewave /sinewave clocks and if needed an analog switch could be used then. I’m pretty much set on using TentLabs XO’s for this, the specs are pretty good and I don’t know of anything better. |
Maybe gang the outputs together and switch the power with a pair of FETs? Or run the outputs through diodes and pull the 'off' one down through a GPIO (or FET if necessary)?
Tent's XOs are pricey, but the specs are good. I'm very skeptical of that sort of product though, I wouldn't be at all surprised if they're just rebranded generic XOs. Few can measure the difference, and fewer care after shelling out 5x the price of a standard part. On the plus side, that means they're pin compatible so I don't really care.
Quote:
I’ve taken the 74HC74 out for now as well, though I do see some merit for having it in there somewhere, as the reason we need low jitter is only for the clock that transfers the digital data sitting in the parallel registers in the DAC and shifting them to analog, now the datasheets don’t show which of the clock inputs are doing this, but ‘m pretty sure that it is BCLK that is doing it and since that is being produced by the TAS1020B and we don’t really know what evil thing it is doing to create it then I was thinking it is safe to reclock it. |
According to the datasheet, SCLK controls the DACs. It also mentions that a low-jitter clock is especially critical here, see pg 13. The DAC is oversampling, so it's run from the internal PLLs anyway, and there's no such thing as a parallel data clock, it's probably a 1-bit DAC. It runs at 64Fs, and I'm assuming it's derived from SCLK, nothing else really makes sense.
Quote:
The only reason I’m doing this project is for low jitter digital data out of USB, while it started as just requiring 96khz that is of little concern for me and having it is just a bonus. If there are DMA buffers then I’d think that they are long enough to stop buffer over/under runs and as long as something in there can tell the PC to speed up or slow down a bit then I should be fine. If that isn’t possible at all then I got a few ideas that might be able to overcome that as well, using VXCO’s we can make our own PLL basically but keep its response really slow in the 0.1hz range as long as we have large enough buffers that can take this. I really don’t want it to come down to this |
Yea, I'm pretty sure there's some flow control in there. The datasheet and app notes are pretty light on the detail w.r.t. the USB standard, and I've only skimmed that so I'm not sure. The buffers will be 1ms, as far as I can tell. There's a total of 1308bytes.
Quote:
I thought I was pretty sure that I got the pins the right way on the UART output, as the datasheet says there are 4 modes that it can run in and for the first the pins are swapped to the other 3 |
You're right, my bad.
Quote:
Will a jumper on the power pin of the EEPROM be enough? Just there isn’t a whole lot of room |
Yup, that's fine. Just an easy way to force DFU mode if we upload firmware that jumps to nowhere or gets stuck in a loop or whatnot. Also enables easier upgrading later. I don't know if it's possible to send a software command to request it boot into DFU mode (it's possible from the uC perspective, not sure how easy it is from the driver side). Though I'm not positive the uC will write to the EEPROM if it's not there when it tries to boot. Needs a 'clear all' pin
.
Quote:
And finally, I thought this thread is good enough to discuss the design and build, we’ve already got everything in here so far |
Sure.