On the matter of the MCP DAC. I had a good and hard look through the datasheet and really don't have any idea of the internal architecture of the DAC. Is it successive approximation? Is it some kind of screwy Sigma-Delta method? How about double-buffered? If the output is going to a R-2R resistive ladder just how good is the trimming process?
The data sheet says it is a 'resistive string architecture' -- to me that means a chain of 4096 resistors in a voltage divider, mosfet switches for each tap, and a buffer amplifier. It seems a bit surprising to have that long of a string, but it would explain the large INL, and they do claim that it provides low DNL, which makes sense.
@Dave
Can't you keep the 1mV/step you're after while disabling the x2 gain and the error associated with it by multiplying your value by 2 before sending it to the DAC? You don't actually need the DAC to scale all the way to 4.096V right? In the video, it looked like your error was at least somewhat smaller before you switched on the x2 gain. (closer to 2.5mV rather than 5mV)
Also, by forcing the 2 MSBs to zero it seems to me that you're clipping your max DAC output to 1024mV (or 512mV with x1 gain). Obviously you'll catch that sooner or later, but it may as well be sooner.
I believe the formula referencing D/4096 in page 23 is a bit of a datasheet bug... It contradicts Table 4-1 on page 19 which states clearly that 1LSB = Vref /256 * G in the case of the 8-bit part (so for Dave's design that would be 16mV).
So clearly the INL is still tightest for the 12-bit part as one would expect.
Also, agree with @benemorius... The error will be less if only using the gain when it is needed for the full 4.096V range, as with the gain turned off 1LSB on the 12-bit part is .5mV so only +-6mV INL ( or even better by reducing the gain error, which is max 1% of FSR, or 40mV!).
from the size of the heatsink it looks like the case could potentally host an entire second layer of pcb and possibly even a third, if one wanted to mod that far, possible?
from the size of the heatsink it looks like the case could potentally host an entire second layer of pcb and possibly even a third, if one wanted to mod that far, possible?
Indeed. There is a second board to come...
Dave.
and the case
, you have been dragging us along on that
My money is on a stackable instrument enclosure from polycase http://www.polycase.com/zn2
They're not made Down Under...you sure you want to make that bet?
BTW, thanks for the link. Never heard of these guys before.
They're not made Down Under...you sure you want to make that bet?
Unfortunately the only cases that are made in Australia are the Jiffy Boxes, as used in the uCurrent.
The case is nothing special, nor secret, but now that everyone is keen to know, I'll tease a bit longer...
Dave.
The case is nothing special, nor secret, but now that everyone is keen to know, I'll tease a bit longer...
You're a big meanie, Dave
It's the secret 'higher purpose' you've mentioned that intrigues me; I have my suspicions, but better to remain silent and be thought a fool and all that!
You're a big meanie, Dave It's the secret 'higher purpose' you've mentioned that intrigues me; I have my suspicions, but better to remain silent and be thought a fool and all that!
It's not really a "higher purpose" as such, like an application use like a battery charger some people have suggested. Its just more of a feature that I envisioned from the start that drove many of the decisions.
Dave.
They're not made Down Under...you sure you want to make that bet?
What else should he use, carved wood?
BTW, thanks for the link. Never heard of these guys before.
They have some nice stuff. Unfortunately they have horrible shipping costs to Europe, so I tend to avoid them, unless my employer pays. I can think of better deals than $3 for an enclosure plus $50 to $80 for shipping.
They have some nice stuff. Unfortunately they have horrible shipping costs to Europe, so I tend to avoid them, unless my employer pays. I can think of better deals than $3 for an enclosure plus $50 to $80 for shipping.
I have the same problem (Switzerland). In addition you start to pay taxes and custom fees when the price, including shipping exceeds $75 or so. A small $35 order then costs $120 because of $50 shipping and $35 tax+custom. The Chinese have learnt to deal with this as you can get cheap shipping to the world. This allows Dealextreme et al to thrive.
One idea for the link to a PC, maybe on a daughter-board: Just use a low cost Bluetooth adapter. This provides a serial link with galvanic separation (no cable). On the PC it looks like a serial port, much the same as a USB/serial converter.
With most PCs these days having Bluetooth built-in and such modules available for under $10 this looks very attractive. Example:
Bluetooth module at Dealextreme, $6.60
Just a quick question from a noob to avr's is the sda line pulled high internally as I can't see one on the board?
Just a quick question from a noob to avr's is the sda line pulled high internally as I can't see one on the board?
The external pullups are in section C4 on the rev B schematics. AVRs do have internal, switchable pull-up's, however these are too weak for I2C.
Thanks for that B@W. Missed that section entirely...one of the problems with 'modular' schematics is traceing signals that go to umpteen places with no indication on the drawing (especially if you are not familiar with the system/operation) but I should have spotted that one. Getting old I guess
Thanks for that B@W. Missed that section entirely...one of the problems with 'modular' schematics is traceing signals that go to umpteen places with no indication on the drawing (especially if you are not familiar with the system/operation) but I should have spotted that one. Getting old I guess
But one of the huge advantages of pdf schematics is that you can use the search feature to follow net names around.
Dave's teaser: Use two boards and you've got a +- powersupply....
Nice for opamps etc...
BTW about that heatsink. It appears to be a single-source item common to Australia and New Zealand.
Just how much dissipation is being contemplated here? Ohmite has a number of chunky single TO-220 heatsinks, but no duals of the same mounting character as yours. Any particular recommendation on a Mouser/Digikey/Allied substitution?
Sorry, no idea.
Yes, the heatsink is custom made for Altronics apparently.
It was just the right size for my box.
The holes are not the right height for a TO-220 package though which is annoying.
Dave.
Just a quick question from a noob to avr's is the sda line pulled high internally as I can't see one on the board?
The external pullups are in section C4 on the rev B schematics. AVRs do have internal, switchable pull-up's, however these are too weak for I2C.
Hmm? You can definitely use the internal ones for I2C. The Arduino Wire library enables them (20k??), which has been used numerous times without external pullups. There are situations where external ones are better though.
Maximum value for pull up resistors is determined by the capacitance of the track/cable and connected devices. I believe the max rise time for standard mode is 1 us. From the ATmega328p datasheet, the value of the internal pull-ups would be about 33 kohm for Vcc=2.7V, this would limit the capacitance to about 30 pF. The ATmega328p alone contributes about 10pF, this would leave another 10 pF for one slave and about 10 cm of PCB trace. It's probably not enough for multiple slaves or if connectors are involved.
Hmm? You can definitely use the internal ones for I2C. The Arduino Wire library enables them (20k??), which has been used numerous times without external pullups. There are situations where external ones are better though.
The Arduino people do a lot of rubbish things. And just because it sometimes works for them, it isn't a good idea. The build-in pull-ups are rather imprecise, varying up to 50k or maybe higher in older AVRs. Depending on the capacitive load and clock frequency you have on the I2C bus this becomes a gamble. The greater the capacitive load, the higher the clock frequency, the smaller the pull-up resistors should be. Therefore engineers put real pull-up resistors on the bus, while Arduino gamblers just throw the dice.