Has anyone found a schematic for the Arduino variant of the CN0216 (CN0216-ARDZ)?
The CD that comes with the EvKit has very little on it, and refers to the SDP variant.
(A bit of reverse engineering shows) There is an odd ADG3308 voltage translator that is powered via the "i/o ref" pin. Given that the "I/Oref" pin isn't present on all Arduinos , and Arduinos run on 5v like the AD7791 there is no need for the level translators.
The power arrangement is a bit odd. I'm just going to connect +5 from my CPU to the power input, and see how well the LDP3301 manages with 0v headroom, and connect same 5v to straingage , and to level converter, and see how it all goes.
The schematic and other design files for the Arduino version of the CN0216 can be found in this zip file (http://www.analog.com/CN0216-Shield-DesignSupport )
There is actually a whole wiki page dedicated to the CN0216 Arduino Shield (CN0216 Shield Evaluation Board User Guide [Analog Devices Wiki] ) but because there is no hardware ordering capability on the wiki, we needed to add the ordering information to the CN0216 web page.
Without looking at the designs, my guess is that the ADG3308 is only present on the SDP version of the board because of the 3.3V requirements coming from the SDP. I believe you won't find this on the Arduino version, and like you said should work with 5V with no problem.
Hi Brandon thanks for that.
A couple of hours after posting the first message, I managed to get the board working.
The "http://www.analog.com/CN0216-Shield-DesignSupport.html " seems to be a "page not found".
Ah the wiki page page, I found that before then lost it again. Now I have the link where I can find it again.
The directory on the CD is mostly about the SDP version.
I did eventually find a schematic for the CN0216-ARDZ buried in the thousands of files on the CD. It was named 1508723.pdf
It looks like the CN0216-ARDZ PCB was a job given to a vacation student : "Take the existing CN0216-SDPZ and make it fit an Arduino shield" . Lots of minor issues like a 10v MLCC on the 12v input, the right angle strain gage connector wrong way around, unable to plug ISP programmer in, 1206 resistors jammed onto 0805 pads, and a major goof up using the ADG3304 (it's actually the 04 not the 08, my mistake- didn't count the pins). Having a good look at the ADG3304 shows it is a special purpose device with an extremely limited application area. As a level converter, it is completely incapable of driving TTL, which, as a "level converter" makes it as useless as a screen door on a submarine. A handful of MOSFETs in cascode configuration would be more than adequate level translators, and in the case of an Arduino , a 5v to 5v level converter can be achieved with 4 pieces of wire (4 x 100R resistors for some protection).
In the real world, an SPI bus can be attached to many devices , and may include small pullup resistors.
The particular development SBC I am using has a 4k7 pullup on the MISO line. So while I was reading actual strain gage data, that changed when the load cell was loaded, but it also changed erratically when a finger was placed on the MISO line or a scope probe was connected. With a scope probe connected it could be seen that the line was only being pulled down to ~2.8v (A surprise that any data was being read at all) , more disturbingly the MISO line had ~ 1v of high frequency oscillation on it , even when the CN0216 was de-selected. Seems that on a bus with modest capacitance and a 4k7 pullup resistor, the ADG330x with its 6k output impedance and SCR-like functionality turned into a relaxation oscillator.
Anyway I can get back to the job at hand, the AD7791 and ADA4528 are examples of Analog Devices doing what it does best!
My apologizes for that link not working, it is supposed to be a virtual URL that redirects users to a zip file location. We just had a website redesign and it appears that did not propagate over. I've put in a ticket to our web team to address this.
I agree with the remainder of your points, and I hope they aren't a huge burden on what you are doing. I've played with this board as well and the programmer and the board can be plugged in at the same time, but they don't quite sit flush. I didn't do the design myself so I can't comment on the reason for having the ADG3304, but the goal was to have this board work with many different Arduino type form factors. So I think it was put there to ensure there was always 5V coming to the circuit.
This was our first board attempting to use the Arduino form factor, and feedback such as this is important to making improvements. I hope you'll continue to use ADI, and to help us improve our designs with feedback like this.
I'm certainly not going to stop using ADI !. See figures 2 and 3 below !!
These eval PCB's are great because they save you a first round of PCB layout, better to learn from someone elses mistakes!
I actually stumbled on the CN0216 while ordering parts for an unrelated project.
========== Some numbers if anyone is interested======================
(a) Using the CN0216-ARDZ board with the digital interface 6 x 24g wires soldered to the PCB with a plug to match the JED256 SBC. Wires about 12" long with an additional 22g between mounting screws for earth bond. There is a 100ohm series resistor on the MISO line to stop the ADG3304 oscillations.
(b) There are two layers of bubble wrap around the CN-216 and the load cell connector to minimise thermal effects.
(c) The ADC is in default state, (I write 0x38 and get 3bytes back), this is 9.5Hz update mode, I read the data every 2 seconds, it's squirted over a serial port to a simple Labview vi that plots it , saves as CSV etc.
(d) The loadcell is a LSP-1 , 1kg at 1mv/V, it's just a bare beam load cell , it has 1m of screened cable attached. One end is clamped in a drill vise on my wooden bench
(e) So if I take blocks of 120 samples (= 1minute) I get an RMS average over 5 blocks of 5.01milligrams or 14.75 counts (8.8uV at ADC input); For peak-peak I get about 120counts over 5 minutes or ~ 80 counts over a minute, so somewhat better than the CN016 app note measurements.
(f) I do get a lot of thermal drift from the load cell, (it's a bare beam, and I'm directly under the aircon, and it's summer in Australia) , if I place a 2 litre plastic tub over the load cell , most of the thermal drift goes away, see first snapshot below.
(g) I've also attached a plot comparing the noise of the CN0216 (upper), with an existing weigh scale (lower) we are intending to upgrade, as you can see the RMS noise is ~10x better than the "other system" although my thermal drift is worse (the "other" system has a better, more expensive load cell, but clearly the AFE is not doing it justice).
Fig 1: Covered (first 30minutes) then uncovered weight measurement on 1kg load cell,
3.5g weight added at end of run for scale. The Yaxis is 0-4.5g or ~ 1/200 of full scale of load cell
Fig 2 Analog Devices CN0216 chipset effective noise (2hz sampled, 9.5Hz update mode)
The 0.01% FSD dimension(100mg) is 1/10,000 of full scale
Fig 3 The "other guys" , same axis scales as fig2. (1Hz sample, AFE bandwidth unknown)
Hi Brandon , The AD website is a bit messed up! . Tried to get to AN940 by clicking a link in the ADA4528A datasheet, http://www.analog.com/an-940?doc=ADA4528-1_4528-2.pdf but a dead end, what's worse is that the search terms "AN940" or "AN-940" failed to locate it. But good old google to the rescue, it found http://www.analog.com/media/en/technical-documentation/application-notes/AN-940.pdf Actually none of the hyperlinks sprinkled through the ADA4528A data sheet work.
Ok they work all right if you remove the "?doc=ADA4528-1_4528-2.pdf "
Thanks for pointing those linking issues out, I'll get them over to the web team as well. The website migration didn't go as smoothly as we would have hoped, and there are several linking errors we are experiencing at the moments. So thanks for finding these and reporting them, it will help us correct them as quickly as possible. Again sorry for the hassle.
I am looking for a ready-made circle
Precision Weigh CN0216
The quantity of a few hundred a year
I'd looking to get help finding a Supplier
CN0216 is just a reference design. There are at least 3 PCB's that have this reference design on them, there are slight differences with pinout, and the power supply.
I think these are
EVAL-CN0216-ARDZ (Fits onto most Arduino's as a shield)
EVAL-CN0216-PMDZ (matchbox size, connects with a 10way ribbon, good as an add-on to your existing SBC )
EVAL-CN0216-SDPZ (fits onto the standard development platform used by AD, probably too complex for an average user)
I have just evaluated the AD7195 side by side with the above, and I think it is better, performance is limited only by the weigh cell. It's a single chip solution, offers AC excitation, and the effective resolution is better (2 bits more than the AD7791) an evaluation board is available EVAL-AD7195EBZ that includes a LCD display, and a 9v Battery option, so you can get a weighscale going in a few minutes , It has a USB connection so you can conveniently plug in a PC, and easily setup all the registers in the chip, scale into user units, and log to disk.
You can buy the eval PCB's from a variety of worldwide vendors e.g. Element14 , Mouser , Digikey and others.
The load cells are a bit harder to find and can be obtained from RS worldwide
(I'm not affiliated with AD or any of the companies above, just an end user/OEM)
The AD7195 is an excellent example of an evaluation board done properly, it would be ideal as a teaching aid and for experimental use in a classroom . (I'd give it 9.5/10 as a score, losing 0.5 point because (a) the settings aren't saved (b) no access to the protocol used on the USB link, (c) labview VI's arent supplied, just an executable.).
Hello, I need help as soon as possible ...
I have a design to evaluate the CN0216 respectivly the AD 7791.
The design is with 3 scales.
When I use the board with one scale all is working as expected.
When I connecte 2 scales (each with his Chip Select) the second scale is not working.
So I have one scale with cs=8 and the other with cs = 9.
If I use the first one or the second one it is running well.
If I use both, the scale with the CS9 is not working.
I am sure all cs are connected correctly.
For testing, i used the software provided by AD, just changing the CS in the *.ino code.
I have to finish my software soon, so I need help..
Best regards and many thanks for your help in advance.
Thierry Vorms from Switzerland
Most likely your problem is in firmware, so I can't help much there, but as a mentioned earlier I did find an issue with the ADG3304 and oscillations on the MISO line when you you use a longer cable, maybe extra capacitance is your problem with two in parallel, I fixed it with a 100ohm series resistor on the MISO line to stop the ADG3304 oscillations.
Adding pull-up resistors to the chip selects may help too, to avoid accidental activity on the SPI bus while the Arduino is waking up.
I'm trying to understand your setup better. How do you have everything connected up? Do you have (2) CN0216 Arduino shields stacked on top of each other? Are you using an Arduino Uno to control the shields? Have you only tried the Labview software?
If you could supply a picture or block diagram with some notes, that would be helpful.
I added 100 ohms resistors on SPI MISO bus line and this stop high frequency
oscillation... Some very strange behaviour...
So, man thanks for your help, and if your heard about eval card for Arduino
with ac excitation gauge, please keep me in touch !
An suggestion for this card is to change the ISP connector by a longer one for enabling connection from one card to the other, I do the replacement of this part, but this is not easy.
Be careful also if you use the Mega card because the SPI line is not at the same pins than Uno.
Just an question, is Analog Device planed to do a development card for the AC strain gauge using the AD7195 chip ?