Other Parts Discussed in Thread: OPT3101,
Hello all,
Here is a little bit information about what I've done so far, to understand where I'm stuck right now.
So I need to develop a sub-system which will give the distance from surface to main application. For that purpose, I selected OPT3101 and using EVM board for codebase development.
I've gone through the SDK provided in software section for OPT3101EVM. But we have "Only C" policy. As a result, I've been developing a basic SDK which can serve my purpose.
So far I've done,
1. Register bank abstraction in a header file as register_map.h
2. I2C abstraction to modify or read certain field from register abstraction as reg_modify(addr, lsb, msb, val) ;
3. Functions to initialize the system, select operation mode(monoshot or continuous), start measurement in case of monoshot, get distance.
I'm testing system in Auto HDR mode. While testing system gets initialised properly, but when I try to read the distance(Phase Out), I don't get proper distance even though I've been using same conversion formula given in datasheet.
If you want to check codebse it's here.
Now the question.
I've been reading something about calibration in forum and datasheets, but when I read through C++ SDK I don't get what are all the things that are needed to be calibrated. Can you help me out here?
Do you have any particular set of values or set of registers which are needed to be changed every time on reboot or periodically to make system more reliable and accurate?