This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
jansonntag:attempt4 [2021/03/13 14:04] jan |
jansonntag:attempt4 [2021/03/25 17:56] (current) jan |
||
---|---|---|---|
Line 5: | Line 5: | ||
There I will test out the bigger brother of the LDC1314: The LDC1614. It has the same pinout and overall package, so it will be an in-place replacement. The big advantage is the 28-bit resolution. Hopefully, there is no gain needed then. | There I will test out the bigger brother of the LDC1314: The LDC1614. It has the same pinout and overall package, so it will be an in-place replacement. The big advantage is the 28-bit resolution. Hopefully, there is no gain needed then. | ||
</ | </ | ||
+ | I´ve got the needed parts some weeks ago (thanks [[projects: | ||
+ | {{ : | ||
+ | Here are a bit more details about the LDC1614. First of all, you can find the documentation here: [[https:// | ||
+ | My thesis is nearly finished so I had some spare time to read some of the documentation. To my surprise (and luck) the LDC1314 and LDC1614 have nearly identical register maps. There are only two differences: | ||
+ | - There is no gain option (Compare Chapters LDC1314: 7.6.26 and LDC1614: 7.6.30) | ||
+ | - The measured data is split into an MSB and LSB part (32-bit in total, 4-bit error flags, 28-bit measurement data) | ||
+ | And I thought I would have to rewrite the whole library. So I quickly (30 minutes max) modified the old library to account for the above-mentioned differences. You can find it here: [[https:// | ||
+ | Even the parameters you have to set are identical between them too. I then modified the script from attempt 3 to use the new library: | ||
+ | <file ino ldc1614.ino> | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | LDC161X ldc1614(false); | ||
+ | |||
+ | void setup() { | ||
+ | Wire.begin(); | ||
+ | Serial.begin(9600); | ||
+ | ldc1614.LDC_resetLDC(); | ||
+ | delay(500); | ||
+ | ldc1614.LDC_setConversionTime(0, | ||
+ | ldc1614.LDC_setSettleTime(0, | ||
+ | ldc1614.LDC_setClockDividers(0, | ||
+ | ldc1614.LDC_setErrorConfig(0x0000); | ||
+ | ldc1614.LDC_setDriveCurrent(0, | ||
+ | ldc1614.LDC_setMUXConfig(0x20D); | ||
+ | ldc1614.LDC_setOffset(0, | ||
+ | ldc1614.LDC_setConfig(0x0801); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | Serial.println(ldc1614.LDC_readData(0)/ | ||
+ | delay(100); | ||
+ | } | ||
+ | </ | ||
+ | I removed the process of making an average just for testing right now. With the new LDC, I also ordered four Cherry MX Blacks (MX1A-11NN) and soldered these onto the test board. I then tested the board. As it seems to me there is a difference if the board lays flat on my table or if I hold it mid-air. But see for yourself: | ||
+ | |||
+ | ^ This one is mid-air | ||
+ | |{{: | ||
+ | |||
+ | Yes, there are still a lot of interferences, | ||
+ | |||
+ | As a little bonus I tried what happens when I touch the coil with my finger: | ||
+ | {{ : | ||
+ | Maybe this has a function for someone as well. Could be useful in some situations, but I don't know. (Free real estate ;-)) | ||
+ | |||
+ | I designed (a bit over an hour) and printed (2:38 h) the case for my test board. It screws together with M4 bolts and threads itself into the plastic. Because I made the holes for the jumper wires a bit too small on the outer edges, so I decided to solder some wires in place. I didn´t do a great job but I works for now and it looks a bit neater on the outside. | ||
+ | {{ : | ||
+ | Fortunately, | ||
+ | I then soldered and assembled everything and this is what came out: | ||
+ | {{ : | ||
+ | I didn't put in any metallic foil right now. In the first test, it seems the noise/ |