Arduino Serial Terminal And Tester For AD7745, AD7746 AD7747 With ...

01/ 2020 Arduino serial terminal and tester for AD7745, AD7746 AD7747with precise i2c communication and automatic offset adjustment Tested with Arduino IDE 1.8.10 and Arduino AVR Boards Built-In Arduino version 1.8.1 This text is valid for software version V1.5 *********************** The automatic offset adjustment ************ The automatic offset adjustment, it is command "oo", works only for the ranges 0 - 8.192pF (0 - 4.096pF for AD7745/46) as CDC single-ended input configuration and +- 8.192pF (+- 4.096pF for AD7745/46) as CDC differential input configuration. For other ranges it is necessary to set the offset manually, because a universal algorithm would be unnecessarily complex. In the case of AD7746, only the currently active channel is balanced. Be sure to make the basic settings in the AD774X_Init section. The message "AD774X not responding !" indicates that the AD774X probably not connected properly. ********************** Serial Terminal Commands ********************* - the baud rate is 115200 - number of digits for a command with parameter must be preserved, excess zeros must not be deleted - sent command must be terminated with codes 0x0D + 0x0A ie. CR + LF or \r\n, most PC terminals doing this by default (Arduino Serial Monitor must be set to "Both NL&CR") - macros can be created if the PC terminal allows it, but each command must be from the next command separated by codes 0x0D + 0x0A - registers 00 - 06 are read only and registers 15 - 18 are factory calibrated, they are not saved to flash memory - the sampling period variable SamplePeriod (command pwdddd) is a program variable. Minimal possible interval is determined by conversion time, set in CONFIGURATION registers. The SamplingPeriod variable is also stored in flash memory by the FW command. Signs in the following text: h = hexadeximal digit, d = decimal digit fw FLASH WRITE writes current registers 07-14 and variable SamplePeriod to EEPROM memory as default after RESET / POR fr FLASH RESET clears the EEPROM memory area in use, registers 07-14 are initialized from PROGMEM after RESET / POR nn NOP no operation - delay 250 ms oo OFFSET automatic offset compensation or OFFSET RESET clear offset compensation (CAPDACs = off, OFFSET = 0x8000 the middle of the interval) pr PERIODE READ prints the sampling period of the converter, in the decimal form dddd, the unit is time in [ms] pwdddd PERIODE WRITE write setting the AD774X sampling period, dddd are four digits 0000-9999, the unit is time in [ms] rr REGISTERS READ prints all registers in the form "R00 = hh R01 = hh R18 = hh" rrdd REGISTER READ prints one register in the form "Rdd = hh" rwddhh REGISTER WRITE writes to the register dd hexadecimal value hh, dd are two decimal digits in the range 00 - 18 ss SAMPLE STOP disables / enables periodic sampling of AD774X and printing of data, default is OFF !!! tt TEST THEM reads the data registers once and displays them. Makes meaning only when sampling is stop. vv VERSION displays the version of this software xx XINDL restart Arduino with SW reset AD774X including setting its default values Example: rw10A2<CR+LF> write to configuration register number 10 value 0xA2 identical is RW10a2<CR+LF> pw0300<CR+LF> changes the sampling period to 300ms Example makro: SS<CR+LF> use it separately for stop sampling RW10A2<CR+LF>NN<CR+LF>TT<CR+LF> and then this as macro - write to configuration register number 10 value 0xA2(start single conversion), set delay 250ms for conversion and display recieved data

Here is Arduino sketch for download

Tag » Ad7747 Arduino