Compare commits

...

33 Commits

Author SHA1 Message Date
Benny Liu a2e4540e93 Change BOARD_517 feedback R to 200k, 6.2k, 200R.
Update calibration code.
2020-05-25 18:03:44 +08:00
Benny Liu 01c5c06494 Change BOARD_517 feedback R to 200k, 6.2k, 510R. 2020-05-25 16:19:13 +08:00
YiChin 59a4d9dafe ship version(0.2mV) 2020-02-25 18:32:13 +08:00
yichin 1d8d987d22 don't care 2020-02-25 10:38:03 +08:00
yichin 5538e13e69 Merge remote-tracking branch 'origin/Elite_0213_0.2mv_sinica_roy' into Elite_0213_0.2mv_sinica_roy 2020-02-25 10:08:58 +08:00
YiChin 1b75ccb056 send IV CV 's V(uV) (Theoretical value) 2020-02-21 17:57:26 +08:00
YiChin 131051e227 CV 1~4mV debug 2020-02-21 15:57:15 +08:00
YiChin e0e116b1d1 take away NotifyImpedance 2020-02-19 18:31:44 +08:00
YiChin 9a9cf40c74 return version from CIS 2020-02-19 16:01:18 +08:00
YiChin 246052bf9c return version from CIS 2020-02-19 15:48:05 +08:00
yichin 66229c2821 Merge remote-tracking branch 'origin/Elite_0213_0.2mv_sinica_roy' into Elite_0213_0.2mv_sinica_roy
# Conflicts:
#	simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/EliteDeviceCorrection.h
2020-02-19 13:29:32 +08:00
YiChin 347259fe7e don't care 2020-02-19 13:18:11 +08:00
YiChin d1b3aa9506 RTmode:1K bug ok 2020-02-19 11:53:05 +08:00
yichin 6cdecd9e87 BOARD_SATURN 2020-02-19 11:30:13 +08:00
YiChin 56937a0780 IVmode: VoltStep 0.2mv ok 2020-02-19 10:04:59 +08:00
YiChin cb1ca49985 boards calibration data_20200217 2020-02-19 10:02:11 +08:00
YiChin 7e9dfbc4c2 test 2020-02-18 18:38:50 +08:00
YiChin d86b008bb1 test 2020-02-18 11:47:11 +08:00
Roy ceac955327 test:CV can't run 2020-02-17 17:51:31 +08:00
yichin 64effd5a02 board C64C calibration data 2020-02-17 12:33:01 +08:00
YiChin c7d531f0a5 test data:NotifyImpedance 2020-02-17 12:27:08 +08:00
YiChin 37caa92565 test data:NotifyImpedance 2020-02-17 11:28:25 +08:00
YiChin 4c04c57728 don't care 2020-02-14 17:33:36 +08:00
YiChin 9bc16f7687 VoltStep 0.2mv OK 2020-02-14 16:41:55 +08:00
YiChin e11eae5302 test 2020-02-14 11:36:15 +08:00
YiChin 2269a2b4d7 test 2020-02-13 17:47:04 +08:00
YiChin 3ffa567f1b test:device Identify 2020-02-11 15:57:38 +08:00
YiChin de4d766ed5 test:device Identify 2020-02-10 16:42:23 +08:00
YiChin 7b5d46edff test:device Identify 2020-02-10 16:27:40 +08:00
YiChin 7399ddce01 battery function take away 2020-02-06 15:28:51 +08:00
YiChin 7e16a54533 CVmode overflow debug(Vin) 2020-02-06 10:08:26 +08:00
YiChin 778495a07a IVmode can stop 2020-02-06 09:56:33 +08:00
YiChin 527a90f732 calibration data 2020-02-06 09:44:01 +08:00
16 changed files with 948 additions and 251 deletions
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<configurations XML_version="1.2" id="configurations_0">
<configuration XML_version="1.2" id="configuration_0">
<instance XML_version="1.2" desc="Texas Instruments XDS100v3 USB Debug Probe" href="connections/TIXDS100v3_Dot7_Connection.xml" id="Texas Instruments XDS100v3 USB Debug Probe" xml="TIXDS100v3_Dot7_Connection.xml" xmlpath="connections"/>
<connection XML_version="1.2" id="Texas Instruments XDS100v3 USB Debug Probe">
<instance XML_version="1.2" href="drivers/tixds100v2icepick_c.xml" id="drivers" xml="tixds100v2icepick_c.xml" xmlpath="drivers"/>
<instance XML_version="1.2" href="drivers/tixds100v2cs_dap.xml" id="drivers" xml="tixds100v2cs_dap.xml" xmlpath="drivers"/>
<instance XML_version="1.2" href="drivers/tixds100v2cortexM.xml" id="drivers" xml="tixds100v2cortexM.xml" xmlpath="drivers"/>
<property Type="choicelist" Value="2" id="The Converter Usage">
<choice Name="Generate 1149.7 2-pin advanced modes" value="enable">
<property Type="choicelist" Value="1" id="The Converter 1149.7 Frequency">
<choice Name="Overclock with user specified value" value="unused">
<property Type="choicelist" Value="5" id="-- Choose a value from 1.0MHz to 50.0MHz"/>
</choice>
</property>
<property Type="choicelist" Value="5" id="The Target Scan Format"/>
</choice>
</property>
<platform XML_version="1.2" id="platform_0">
<instance XML_version="1.2" desc="CC2640F128" href="devices/cc2640f128.xml" id="CC2640F128" xml="cc2640f128.xml" xmlpath="devices"/>
</platform>
</connection>
</configuration>
</configurations>
@@ -0,0 +1,9 @@
The 'targetConfigs' folder contains target-configuration (.ccxml) files, automatically generated based
on the device and connection settings specified in your project on the Properties > General page.
Please note that in automatic target-configuration management, changes to the project's device and/or
connection settings will either modify an existing or generate a new target-configuration file. Thus,
if you manually edit these auto-generated files, you may need to re-apply your changes. Alternatively,
you may create your own target-configuration file for this project and manage it manually. You can
always switch back to automatic target-configuration management by checking the "Manage the project's
target-configuration automatically" checkbox on the project's Properties > General page.
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<configurations XML_version="1.2" id="configurations_0">
<configuration XML_version="1.2" id="configuration_0">
<instance XML_version="1.2" desc="Texas Instruments XDS100v3 USB Debug Probe" href="connections/TIXDS100v3_Dot7_Connection.xml" id="Texas Instruments XDS100v3 USB Debug Probe" xml="TIXDS100v3_Dot7_Connection.xml" xmlpath="connections"/>
<connection XML_version="1.2" id="Texas Instruments XDS100v3 USB Debug Probe">
<instance XML_version="1.2" href="drivers/tixds100v2icepick_c.xml" id="drivers" xml="tixds100v2icepick_c.xml" xmlpath="drivers"/>
<instance XML_version="1.2" href="drivers/tixds100v2cs_dap.xml" id="drivers" xml="tixds100v2cs_dap.xml" xmlpath="drivers"/>
<instance XML_version="1.2" href="drivers/tixds100v2cortexM.xml" id="drivers" xml="tixds100v2cortexM.xml" xmlpath="drivers"/>
<property Type="choicelist" Value="2" id="The Converter Usage">
<choice Name="Generate 1149.7 2-pin advanced modes" value="enable">
<property Type="choicelist" Value="1" id="The Converter 1149.7 Frequency">
<choice Name="Overclock with user specified value" value="unused">
<property Type="choicelist" Value="5" id="-- Choose a value from 1.0MHz to 50.0MHz"/>
</choice>
</property>
<property Type="choicelist" Value="5" id="The Target Scan Format"/>
</choice>
</property>
<platform XML_version="1.2" id="platform_0">
<instance XML_version="1.2" desc="CC2640F128" href="devices/cc2640f128.xml" id="CC2640F128" xml="cc2640f128.xml" xmlpath="devices"/>
</platform>
</connection>
</configuration>
</configurations>
@@ -0,0 +1,9 @@
The 'targetConfigs' folder contains target-configuration (.ccxml) files, automatically generated based
on the device and connection settings specified in your project on the Properties > General page.
Please note that in automatic target-configuration management, changes to the project's device and/or
connection settings will either modify an existing or generate a new target-configuration file. Thus,
if you manually edit these auto-generated files, you may need to re-apply your changes. Alternatively,
you may create your own target-configuration file for this project and manage it manually. You can
always switch back to automatic target-configuration management by checking the "Manage the project's
target-configuration automatically" checkbox on the project's Properties > General page.
@@ -9,6 +9,6 @@
<linkerCommandFile value="cc26x0f128.cmd"/>
<rts value="libc.a"/>
<createSlaveProjects value=""/>
<connection value="common/targetdb/connections/TIXDS110_Connection.xml"/>
<connection value="common/targetdb/connections/TIXDS100v3_Dot7_Connection.xml"/>
<isTargetManual value="false"/>
</projectOptions>
@@ -18,8 +18,8 @@
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" errorParsers="org.eclipse.rtsc.xdctools.parsers.ErrorParser;com.ti.rtsc.XDCtools.parsers.ErrorParser;com.ti.ccstudio.errorparser.CoffErrorParser;com.ti.ccstudio.errorparser.LinkErrorParser;com.ti.ccstudio.errorparser.AsmErrorParser;org.eclipse.cdt.core.GmakeErrorParser" id="com.ti.ccstudio.buildDefinitions.TMS470.Default.67178137" name="FlashROM" parent="com.ti.ccstudio.buildDefinitions.TMS470.Default" postbuildStep="${CG_TOOL_HEX} -order MS --memwidth=8 --romwidth=8 --intel -o ${ProjName}.hex ${ProjName}.out" prebuildStep="">
<folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Default.67178137." name="/" resourcePath="">
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain.1369151231" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.223507680">
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.732777020" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain.687113732" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.1175214904">
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1766090240" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=Cortex M.CC2650F128"/>
<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
<listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>
@@ -34,17 +34,17 @@
<listOptionValue builtIn="false" value="LINK_ORDER=TOOLS/ccs_linker_defines.cmd;TOOLS/cc26xx_app.cmd;"/>
<listOptionValue builtIn="false" value="RTSC_MBS_VERSION=2.2.0"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.579299287" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="18.1.4.LTS" valueType="string"/>
<targetPlatform id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.targetPlatformDebug.2112816025" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.targetPlatformDebug"/>
<builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.builderDebug.1418617668" name="GNU Make.FlashROM" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.builderDebug"/>
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.compilerDebug.1368914557" name="ARM Compiler" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.compilerDebug">
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.SILICON_VERSION.872349905" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.SILICON_VERSION" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.SILICON_VERSION.7M3" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CODE_STATE.1023813954" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CODE_STATE" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CODE_STATE.16" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.ABI.1674413144" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.ABI.eabi" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.LITTLE_ENDIAN.184317276" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.LITTLE_ENDIAN" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_LEVEL.1068578615" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_LEVEL" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_LEVEL.4" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_FOR_SPEED.1943600764" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_FOR_SPEED" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_FOR_SPEED.0" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.INCLUDE_PATH.644525479" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.INCLUDE_PATH" valueType="includePath">
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.1440160666" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="18.1.4.LTS" valueType="string"/>
<targetPlatform id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.targetPlatformDebug.1899549400" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.targetPlatformDebug"/>
<builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.builderDebug.1290729302" name="GNU Make.FlashROM" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.builderDebug"/>
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.compilerDebug.721499569" name="ARM Compiler" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.compilerDebug">
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.SILICON_VERSION.748175460" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.SILICON_VERSION" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.SILICON_VERSION.7M3" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CODE_STATE.626419827" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CODE_STATE" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CODE_STATE.16" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.ABI.647015929" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.ABI.eabi" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.LITTLE_ENDIAN.289941614" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.LITTLE_ENDIAN" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_LEVEL.1253275540" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_LEVEL" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_LEVEL.4" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_FOR_SPEED.728465942" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_FOR_SPEED" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.OPT_FOR_SPEED.0" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.INCLUDE_PATH.1083748399" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.INCLUDE_PATH" valueType="includePath">
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
<listOptionValue builtIn="false" value="C:\ti\simplelink\ble_sdk_2_02_02_25\src\examples\simple_peripheral\cc26xx\app\headstage"/>
<listOptionValue builtIn="false" value="${SRC_EX}/examples/simple_peripheral/cc26xx/app"/>
@@ -70,7 +70,7 @@
<listOptionValue builtIn="false" value="${SRC_BLE_CORE}/rom"/>
<listOptionValue builtIn="false" value="${CC26XXWARE}"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE.1330623088" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE" valueType="definedSymbols">
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE.1126030229" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE" valueType="definedSymbols">
<listOptionValue builtIn="false" value="BOARD_DISPLAY_EXCLUDE_UART"/>
<listOptionValue builtIn="false" value="POWER_SAVING"/>
<listOptionValue builtIn="false" value="BOOSTXL_CC2650MA"/>
@@ -86,71 +86,71 @@
<listOptionValue builtIn="false" value="xdc_runtime_Assert_DISABLE_ALL"/>
<listOptionValue builtIn="false" value="xdc_runtime_Log_DISABLE_ALL"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL.1308360247" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.504235202" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.C99" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GCC.105967788" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GCC" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS.698913237" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS" valueType="stringList">
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL.1162837514" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.2135753083" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.C99" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GCC.710476155" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GCC" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS.1054015944" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS" valueType="stringList">
<listOptionValue builtIn="false" value="48"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING.1399241416" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING" valueType="stringList">
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING.323133680" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING" valueType="stringList">
<listOptionValue builtIn="false" value="225"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WRAP.867926379" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DISPLAY_ERROR_NUMBER.980626282" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GEN_FUNC_SUBSECTIONS.374992114" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GEN_FUNC_SUBSECTIONS" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GEN_FUNC_SUBSECTIONS.on" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CMD_FILE.1890491357" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CMD_FILE" valueType="stringList">
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WRAP.827786109" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DISPLAY_ERROR_NUMBER.1167890580" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GEN_FUNC_SUBSECTIONS.2012181802" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GEN_FUNC_SUBSECTIONS" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.GEN_FUNC_SUBSECTIONS.on" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CMD_FILE.1145821475" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.CMD_FILE" valueType="stringList">
<listOptionValue builtIn="false" value="${SRC_EX}/config/build_components.opt"/>
<listOptionValue builtIn="false" value="${ORG_PROJ_DIR}/build_config.opt"/>
<listOptionValue builtIn="false" value="${ORG_PROJ_DIR}/../../ccs/config/ccs_compiler_defines.bcfg"/>
</option>
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__C_SRCS.263445006" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__C_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__CPP_SRCS.1235873701" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__CPP_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM_SRCS.207268648" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM2_SRCS.1068957263" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM2_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__C_SRCS.984631123" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__C_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__CPP_SRCS.1536412064" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__CPP_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM_SRCS.955203011" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM2_SRCS.534126004" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__ASM2_SRCS"/>
</tool>
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.223507680" name="ARM Linker" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug">
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.STACK_SIZE.698430423" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.STACK_SIZE" value="256" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.HEAP_SIZE.402182782" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.HEAP_SIZE" value="0" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE.1628689699" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE" value="&quot;${ProjName}.map&quot;" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE.2141951901" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE" value="${ProjName}.out" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.LIBRARY.679112687" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.LIBRARY" valueType="libs">
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.1175214904" name="ARM Linker" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug">
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.STACK_SIZE.195741240" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.STACK_SIZE" value="256" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.HEAP_SIZE.600159013" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.HEAP_SIZE" value="0" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE.1574331605" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE" value="&quot;${ProjName}.map&quot;" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE.664332972" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE" value="${ProjName}.out" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.LIBRARY.25625621" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.LIBRARY" valueType="libs">
<listOptionValue builtIn="false" value="libc.a"/>
<listOptionValue builtIn="false" value="${CC26XXWARE}/driverlib/bin/ccs/driverlib.lib"/>
<listOptionValue builtIn="false" value="${ROM}/common_rom_releases/03282014/common_rom.symbols"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH.650613345" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH" valueType="libPaths">
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH.5851816" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH" valueType="libPaths">
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/lib"/>
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS.782343525" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS" valueType="stringList">
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS.972853444" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS" valueType="stringList">
<listOptionValue builtIn="false" value="10247-D"/>
<listOptionValue builtIn="false" value="16002-D"/>
</option>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP.1555270082" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP.off" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DISPLAY_ERROR_NUMBER.16105060" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO.1713299511" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO" value="&quot;${ProjName}_linkInfo.xml&quot;" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.68776981" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.on" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION.1860389255" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION.on" valueType="enumerated"/>
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD_SRCS.152379533" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD2_SRCS.158095632" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD2_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__GEN_CMDS.978853236" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__GEN_CMDS"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP.749876507" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP.off" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DISPLAY_ERROR_NUMBER.1386058179" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO.699248925" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO" value="&quot;${ProjName}_linkInfo.xml&quot;" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.1864268761" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.on" valueType="enumerated"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION.1562698794" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.UNUSED_SECTION_ELIMINATION.on" valueType="enumerated"/>
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD_SRCS.1077744726" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD2_SRCS.198307799" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__CMD2_SRCS"/>
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__GEN_CMDS.1247173115" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exeLinker.inputType__GEN_CMDS"/>
</tool>
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.2015106526" name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex">
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH.1270425102" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH" value="8" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.MEMWIDTH.16813235" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.MEMWIDTH" value="8" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT.318851558" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT.INTEL" valueType="enumerated"/>
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.2020593432" name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex">
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH.855423016" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH" value="8" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.MEMWIDTH.793625032" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.MEMWIDTH" value="8" valueType="string"/>
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT.395278084" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT" value="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.OUTPUT_FORMAT.INTEL" valueType="enumerated"/>
</tool>
<tool id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.927640565" name="XDCtools" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool">
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH.1908494509" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH" valueType="stringList">
<tool id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.311958009" name="XDCtools" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool">
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH.825400340" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH" valueType="stringList">
<listOptionValue builtIn="false" value="${COM_TI_RTSC_TIRTOSCC13XX_CC26XX_REPOS}"/>
<listOptionValue builtIn="false" value="${TARGET_CONTENT_BASE}"/>
</option>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET.1746187707" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET" value="ti.targets.arm.elf.M3" valueType="string"/>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM.884959194" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM" value="ti.platforms.simplelink:CC2640F128" valueType="string"/>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW.943624305" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW" value="ti.platforms.simplelink:CC2640F128" valueType="string"/>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE.1521167272" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE" value="release" valueType="string"/>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR.1901654533" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR" value="${CG_TOOL_ROOT}" valueType="string"/>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS.138005453" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS" value="&quot;${COMPILER_FLAGS}&quot;" valueType="string"/>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET.602562416" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET" value="ti.targets.arm.elf.M3" valueType="string"/>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM.596219144" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM" value="ti.platforms.simplelink:CC2640F128" valueType="string"/>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW.341519465" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW" value="ti.platforms.simplelink:CC2640F128" valueType="string"/>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE.1369908851" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE" value="release" valueType="string"/>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR.1800641556" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR" value="${CG_TOOL_ROOT}" valueType="string"/>
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS.2138808751" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS" value="&quot;${COMPILER_FLAGS}&quot;" valueType="string"/>
</tool>
</toolChain>
</folderInfo>
@@ -1,20 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<configurations XML_version="1.2" id="configurations_0">
<configuration XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
<instance XML_version="1.2" desc="Texas Instruments XDS110 USB Debug Probe_0" href="connections/TIXDS110_Connection.xml" id="Texas Instruments XDS110 USB Debug Probe_0" xml="TIXDS110_Connection.xml" xmlpath="connections"/>
<connection XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
<instance XML_version="1.2" href="drivers/tixds510icepick_c.xml" id="drivers" xml="tixds510icepick_c.xml" xmlpath="drivers"/>
<instance XML_version="1.2" href="drivers/tixds510cs_dap.xml" id="drivers" xml="tixds510cs_dap.xml" xmlpath="drivers"/>
<instance XML_version="1.2" href="drivers/tixds510cortexM.xml" id="drivers" xml="tixds510cortexM.xml" xmlpath="drivers"/>
<property Type="choicelist" Value="1" id="Power Selection">
<choice Name="Probe supplied power" value="1">
<property Type="stringfield" Value="3.3" id="Voltage Level"/>
</choice>
</property>
<property Type="choicelist" Value="0" id="JTAG Signal Isolation"/>
<property Type="choicelist" Value="4" id="SWD Mode Settings">
<choice Name="cJTAG (1149.7) 2-pin advanced modes" value="enable">
<property Type="choicelist" Value="1" id="XDS110 Aux Port"/>
<configuration XML_version="1.2" id="Texas Instruments XDS100v3 USB Debug Probe_0">
<instance XML_version="1.2" desc="Texas Instruments XDS100v3 USB Debug Probe_0" href="connections/TIXDS100v3_Dot7_Connection.xml" id="Texas Instruments XDS100v3 USB Debug Probe_0" xml="TIXDS100v3_Dot7_Connection.xml" xmlpath="connections"/>
<connection XML_version="1.2" id="Texas Instruments XDS100v3 USB Debug Probe_0">
<instance XML_version="1.2" href="drivers/tixds100v2icepick_c.xml" id="drivers" xml="tixds100v2icepick_c.xml" xmlpath="drivers"/>
<instance XML_version="1.2" href="drivers/tixds100v2cs_dap.xml" id="drivers" xml="tixds100v2cs_dap.xml" xmlpath="drivers"/>
<instance XML_version="1.2" href="drivers/tixds100v2cortexM.xml" id="drivers" xml="tixds100v2cortexM.xml" xmlpath="drivers"/>
<property Type="choicelist" Value="2" id="The Converter Usage">
<choice Name="Generate 1149.7 2-pin advanced modes" value="enable">
<property Type="choicelist" Value="1" id="The Converter 1149.7 Frequency">
<choice Name="Overclock with user specified value" value="unused">
<property Type="choicelist" Value="5" id="-- Choose a value from 1.0MHz to 50.0MHz"/>
</choice>
</property>
<property Type="choicelist" Value="5" id="The Target Scan Format"/>
</choice>
</property>
<platform XML_version="1.2" id="platform_0">
@@ -172,16 +172,22 @@ static void ReadBatVolt(uint8_t *buf){
}
// theoretical boundary <20, 10~500, >100 (uA)
#define GAIN_SMALL_BOUNDARY 40000 // 40 uA = 40,000,000 pA
#define GAIN_MID_BOUNDARY1 20000 // 20 uA = 20,000,000 pA
#define GAIN_MID_BOUNDARY2 400000 // 400 uA = 400,000,000 pA
#define GAIN_LARGE_BOUNDARY 200000 // 200 uA = 200,000 nA
//#define GAIN_SMALL_BOUNDARY 40000 // 40 uA = 40,000,000 pA
//#define GAIN_MID_BOUNDARY1 20000 // 20 uA = 20,000,000 pA
//#define GAIN_MID_BOUNDARY2 400000 // 400 uA = 400,000,000 pA
//#define GAIN_LARGE_BOUNDARY 200000 // 200 uA = 200,000 nA
//#define GAIN_SMALL_BOUNDARY 8000 // 8 uA = 8,000,000 pA
//#define GAIN_MID_BOUNDARY1 3000 // 3 uA = 3,000,000 pA
//#define GAIN_MID_BOUNDARY2 90000 // 90 uA = 90,000,000 pA
//#define GAIN_LARGE_BOUNDARY 70000 // 70 uA = 70,000 nA
/* for Elite1.4-re which 6.3kohm replaced by 10kohm */
// theoretical boundary <40, 30~1350, >1000 (uA)
#define GAIN_SMALL_BOUNDARY 40000 // 40 uA = 40,000,000 pA
#define GAIN_MID_BOUNDARY1 30000 // 30 uA = 30,000,000 pA
#define GAIN_MID_BOUNDARY2 1350000 // 1350 uA = 1350,000,000 pA
#define GAIN_LARGE_BOUNDARY 1000000 // 1000 uA = 1000,000 nA
static int32_t AutoGainReadCurrent(uint8_t *buf){
int32_t Real_Current = 0;
@@ -139,7 +139,7 @@ static uint16_t CVCurve(CVMode *CV) {
static bool firstADCData; //firstADCdata=true,when min<x<max,cyclenumber--
// reset origin volt at the begin
if (DACReset) {
DACUserCode = CV->_VOrigin;
INSTRUCTION.VoltConstant = CV->_VOrigin;
if (CV->_VStop > CV->_VOrigin) {
direction_up = true;
current_direction_up = true;
@@ -148,7 +148,7 @@ static uint16_t CVCurve(CVMode *CV) {
current_direction_up = false;
}
DACOutCode = Usercode_Correction_to_DAC(DACUserCode);
DACOutCode = Usercode_Correction_to_DAC(INSTRUCTION.VoltConstant);
DAC_outputV(DACOutCode); // output VOLT_ORIGIN
DACReset = false;
firstADCData = true;
@@ -159,36 +159,83 @@ static uint16_t CVCurve(CVMode *CV) {
// Decide next direction
if (CV->_VoVi_Switch == 0x00){ //user see Vout
if (direction_up) {
if (DACUserCode >= CV->_VStop) {
if (INSTRUCTION.VoltConstant >= CV->_VStop) {
current_direction_up = false; // problem occurs when origin == 0000 final == ffff!!!!!!
} else if (DACUserCode <= CV->_VOrigin) {
firstADCData = false;
}
else if (INSTRUCTION.VoltConstant <= CV->_VOrigin) {
current_direction_up = true;
firstADCData = false;
if (CV->_CycleNumber == 0) {
PeriodicEvent = false; // periodic event end
DACReset = true;
}
CV->_CycleNumber--;
}
else if(current_direction_up){
if(INSTRUCTION.VoltConstant + CV->_Step > CV->_VStop){
current_direction_up = false;
}
}
else if(!current_direction_up){
if(INSTRUCTION.VoltConstant - CV->_Step < CV->_VOrigin){
current_direction_up = true;
if (CV->_CycleNumber == 0) {
PeriodicEvent = false; // periodic event end
DACReset = true;
}
CV->_CycleNumber--;
}
}
if (firstADCData){
CV->_CycleNumber--;
firstADCData = false;
}
} else {
if (DACUserCode <= CV->_VStop) {
if (INSTRUCTION.VoltConstant < CV->_VStop) {
current_direction_up = true; // problem occurs when origin == 0000 final == ffff!!!!!!
} else if (DACUserCode >= CV->_VOrigin) {
firstADCData = false;
}
else if (INSTRUCTION.VoltConstant > CV->_VOrigin) {
current_direction_up = false;
firstADCData = false;
if (CV->_CycleNumber == 0) {
PeriodicEvent = false; // periodic event end
DACReset = true;
}
CV->_CycleNumber--;
}
else if(current_direction_up){
if(INSTRUCTION.VoltConstant + CV->_Step > CV->_VOrigin){
current_direction_up = false;
if (CV->_CycleNumber == 0) {
PeriodicEvent = false; // periodic event end
DACReset = true;
}
CV->_CycleNumber--;
}
}
else if(!current_direction_up){
if(INSTRUCTION.VoltConstant - CV->_Step < CV->_VStop){
current_direction_up = true;
}
}
if (firstADCData){//first data =2899mv,CV->_CycleNumber--;
CV->_CycleNumber--;
firstADCData = false;
}
}
}
else if (CV->_VoVi_Switch == 0x01){ //user see Vin
if (direction_up) {
if (CV->MeasureVolt >= ((int32_t)(CV->_VStop) - DAC_ZERO)/5) {
if (INSTRUCTION.VoltConstant >= CV->_VStop) {
current_direction_up = false; // problem occurs when origin == 0000 final == ffff!!!!!!
firstADCData = false;
}
else if (CV->MeasureVolt <= ((int32_t)(CV->_VOrigin) - DAC_ZERO)/5) {
else if (INSTRUCTION.VoltConstant <= CV->_VOrigin) {
current_direction_up = true;
firstADCData = false;
if (CV->_CycleNumber == 0) {
@@ -200,12 +247,12 @@ static uint16_t CVCurve(CVMode *CV) {
else if(current_direction_up){
if(CV->MeasureVolt + ((int32_t)(CV->_Step) - DAC_ZERO)/5 > ((int32_t)(CV->_VStop) - DAC_ZERO)/5){
if(INSTRUCTION.VoltConstant + CV->_Step > CV->_VStop){
current_direction_up = false;
}
}
else if(!current_direction_up){
if(CV->MeasureVolt - ((int32_t)(CV->_Step) - DAC_ZERO)/5 < ((int32_t)(CV->_VOrigin) - DAC_ZERO)/5){
if(INSTRUCTION.VoltConstant - CV->_Step < CV->_VOrigin){
current_direction_up = true;
if (CV->_CycleNumber == 0) {
PeriodicEvent = false; // periodic event end
@@ -220,11 +267,11 @@ static uint16_t CVCurve(CVMode *CV) {
}
} else {
if (CV->MeasureVolt <= ((int32_t)(CV->_VStop) - DAC_ZERO)/5) {
if (INSTRUCTION.VoltConstant < CV->_VStop) {
current_direction_up = true; // problem occurs when origin == 0000 final == ffff!!!!!!
firstADCData = false;
}
else if (CV->MeasureVolt >= ((int32_t)(CV->_VOrigin) - DAC_ZERO)/5){
else if (INSTRUCTION.VoltConstant > CV->_VOrigin){
current_direction_up = false;
firstADCData = false;
if (CV->_CycleNumber == 0) {
@@ -234,7 +281,7 @@ static uint16_t CVCurve(CVMode *CV) {
CV->_CycleNumber--;
}
else if(current_direction_up){
if(CV->MeasureVolt + ((int32_t)(CV->_Step) - DAC_ZERO)/5 > ((int32_t)(CV->_VOrigin) - DAC_ZERO)/5){
if(INSTRUCTION.VoltConstant + CV->_Step > CV->_VOrigin){
current_direction_up = false;
if (CV->_CycleNumber == 0) {
PeriodicEvent = false; // periodic event end
@@ -244,14 +291,11 @@ static uint16_t CVCurve(CVMode *CV) {
}
}
else if(!current_direction_up){
if(CV->MeasureVolt - ((int32_t)(CV->_Step) - DAC_ZERO)/5 < ((int32_t)(CV->_VStop) - DAC_ZERO)/5){
if(INSTRUCTION.VoltConstant - CV->_Step < CV->_VStop){
current_direction_up = true;
}else if (firstADCData){//first data =2899mv
CV->_CycleNumber--;
firstADCData = false;
}
}
if (firstADCData){
if (firstADCData){//first data =2899mv,CV->_CycleNumber--;
CV->_CycleNumber--;
firstADCData = false;
}
@@ -269,53 +313,80 @@ static uint16_t CVCurve(CVMode *CV) {
if (direction_up) {
if (current_direction_up) {
// DACUserCode overflow ?
if (DACUserCode + CV->_Step < DACUserCode) {
DACUserCode = CV->_VStop;
if (INSTRUCTION.VoltConstant + CV->_Step < INSTRUCTION.VoltConstant) {
INSTRUCTION.VoltConstant = CV->_VStop;
}
// reach Vfinal ?
else if (DACUserCode + CV->_Step > CV->_VStop) {
DACUserCode =CV->_VStop;
else if (INSTRUCTION.VoltConstant + CV->_Step > CV->_VStop) {
INSTRUCTION.VoltConstant =CV->_VStop;
}
else if (INSTRUCTION.VoltConstant >= CV->_VStop){
INSTRUCTION.VoltConstant =CV->_VStop;
}
else {
DACUserCode = DACUserCode + CV->_Step;
INSTRUCTION.VoltConstant = INSTRUCTION.VoltConstant + CV->_Step;
}
}
else {
// DACUserCode underflow ?
if (DACUserCode - CV->_Step > DACUserCode) {
DACUserCode = CV->_VOrigin;
if (INSTRUCTION.VoltConstant - CV->_Step > INSTRUCTION.VoltConstant) {
INSTRUCTION.VoltConstant = CV->_VOrigin;
}
// reach Vorigin ?
else if (DACUserCode - CV->_Step < CV->_VOrigin) {
DACUserCode = CV->_VOrigin;
else if (INSTRUCTION.VoltConstant - CV->_Step < CV->_VOrigin) {
INSTRUCTION.VoltConstant = CV->_VOrigin;
}
else if (INSTRUCTION.VoltConstant <= CV->_VOrigin){
INSTRUCTION.VoltConstant = CV->_VOrigin;
}
else {
DACUserCode = DACUserCode - CV->_Step;
INSTRUCTION.VoltConstant = INSTRUCTION.VoltConstant - CV->_Step;
if(INSTRUCTION.VoltConstant > 60000){
INSTRUCTION.VoltConstant = 0;
current_direction_up = true;
if (CV->_CycleNumber == 0) {
PeriodicEvent = false; // periodic event end
DACReset = true;
}
CV->_CycleNumber--;
}
}
}
}
else {
if (current_direction_up) {
if (DACUserCode + CV->_Step < DACUserCode) {
DACUserCode = CV->_VOrigin;
if (INSTRUCTION.VoltConstant + CV->_Step < INSTRUCTION.VoltConstant) {
INSTRUCTION.VoltConstant = CV->_VOrigin;
}
else if (DACUserCode + CV->_Step > CV->_VOrigin) {
DACUserCode = CV->_VOrigin;
else if (INSTRUCTION.VoltConstant + CV->_Step > CV->_VOrigin) {
INSTRUCTION.VoltConstant = CV->_VOrigin;
}
else if (INSTRUCTION.VoltConstant >= CV->_VOrigin){
INSTRUCTION.VoltConstant = CV->_VOrigin;
}
else {
DACUserCode = DACUserCode + CV->_Step;
INSTRUCTION.VoltConstant = INSTRUCTION.VoltConstant + CV->_Step;
}
}
else {
if (DACUserCode - CV->_Step > DACUserCode) {
DACUserCode = CV->_VStop ;
if (INSTRUCTION.VoltConstant - CV->_Step > INSTRUCTION.VoltConstant) {
INSTRUCTION.VoltConstant = CV->_VStop ;
}
else if (DACUserCode - CV->_Step < CV->_VStop) {
DACUserCode = CV->_VStop;
else if (INSTRUCTION.VoltConstant - CV->_Step < CV->_VStop) {
INSTRUCTION.VoltConstant = CV->_VStop;
}
else if(INSTRUCTION.VoltConstant <= CV->_VStop){
INSTRUCTION.VoltConstant = CV->_VStop;
}
else {
DACUserCode = DACUserCode - CV->_Step;
INSTRUCTION.VoltConstant = INSTRUCTION.VoltConstant - CV->_Step;
if(INSTRUCTION.VoltConstant > 60000){
INSTRUCTION.VoltConstant = 0;
current_direction_up = true;
}
}
}
}
@@ -324,72 +395,92 @@ static uint16_t CVCurve(CVMode *CV) {
if (direction_up) {
if (current_direction_up) {
// DACUserCode overflow ?
if (DACUserCode + CV->_Step < DACUserCode) {
DACUserCode = CV->_VStop;
if (INSTRUCTION.VoltConstant + CV->_Step < INSTRUCTION.VoltConstant) {
INSTRUCTION.VoltConstant = CV->_VStop;
}
// reach Vfinal ?
else if (CV->MeasureVolt + ((int32_t)(CV->_Step) - DAC_ZERO)/5 > ((int32_t)(CV->_VStop) - DAC_ZERO)/5) {
DACUserCode =CV->_VStop;
else if (INSTRUCTION.VoltConstant + CV->_Step > CV->_VStop) {
INSTRUCTION.VoltConstant =CV->_VStop;
}
else if (CV->MeasureVolt >= ((int32_t)(CV->_VStop) - DAC_ZERO)/5){
DACUserCode =CV->_VStop;
else if (INSTRUCTION.VoltConstant >= CV->_VStop){
INSTRUCTION.VoltConstant =CV->_VStop;
}
else {
DACUserCode = DACUserCode + CV->_Step;
INSTRUCTION.VoltConstant = INSTRUCTION.VoltConstant + CV->_Step;
}
}
else {
// DACUserCode underflow ?
if (DACUserCode - CV->_Step > DACUserCode) {
DACUserCode = CV->_VOrigin;
if (INSTRUCTION.VoltConstant - CV->_Step > INSTRUCTION.VoltConstant) {
INSTRUCTION.VoltConstant = CV->_VOrigin;
}
// reach Vorigin ?
else if (CV->MeasureVolt - ((int32_t)(CV->_Step) - DAC_ZERO)/5 < ((int32_t)(CV->_VOrigin) - DAC_ZERO)/5) {
DACUserCode = CV->_VOrigin;
else if (INSTRUCTION.VoltConstant - CV->_Step < CV->_VOrigin) {
INSTRUCTION.VoltConstant = CV->_VOrigin;
}
else if (CV->MeasureVolt <= ((int32_t)(CV->_VOrigin) - DAC_ZERO)/5){
DACUserCode = CV->_VOrigin;
else if (INSTRUCTION.VoltConstant <= CV->_VOrigin){
INSTRUCTION.VoltConstant = CV->_VOrigin;
}
else {
DACUserCode = DACUserCode - CV->_Step;
INSTRUCTION.VoltConstant = INSTRUCTION.VoltConstant - CV->_Step;
if(INSTRUCTION.VoltConstant > 60000){
INSTRUCTION.VoltConstant = 0;
current_direction_up = true;
if (CV->_CycleNumber == 0) {
PeriodicEvent = false; // periodic event end
DACReset = true;
}
CV->_CycleNumber--;
}
}
}
}
else {
if (current_direction_up) {
// DACUserCode overflow ?
if (DACUserCode + CV->_Step < DACUserCode) {
DACUserCode = CV->_VOrigin;
if (INSTRUCTION.VoltConstant + CV->_Step < INSTRUCTION.VoltConstant) {
INSTRUCTION.VoltConstant = CV->_VOrigin;
}
// ex:command 3->1V ,when 1 to 3V, 2.99+0.1 > 3V
else if (CV->MeasureVolt + ((int32_t)(CV->_Step) - DAC_ZERO)/5 > ((int32_t)(CV->_VOrigin) - DAC_ZERO)/5) {
DACUserCode = CV->_VOrigin;
else if (INSTRUCTION.VoltConstant + CV->_Step > CV->_VOrigin) {
INSTRUCTION.VoltConstant = CV->_VOrigin;
}
else if (CV->MeasureVolt >= ((int32_t)(CV->_VOrigin) - DAC_ZERO)/5){
DACUserCode = CV->_VOrigin;
else if (INSTRUCTION.VoltConstant >= CV->_VOrigin){
INSTRUCTION.VoltConstant = CV->_VOrigin;
}
else {
DACUserCode = DACUserCode + CV->_Step;
INSTRUCTION.VoltConstant = INSTRUCTION.VoltConstant + CV->_Step;
}
}
else {
if (DACUserCode - CV->_Step > DACUserCode) {
DACUserCode = CV->_VStop ;
if (INSTRUCTION.VoltConstant - CV->_Step > INSTRUCTION.VoltConstant) {
INSTRUCTION.VoltConstant = CV->_VStop ;
}
else if (CV->MeasureVolt - ((int32_t)(CV->_Step) - DAC_ZERO)/5 < ((int32_t)(CV->_VStop) - DAC_ZERO)/5) {
DACUserCode = CV->_VStop;
else if (INSTRUCTION.VoltConstant - CV->_Step < CV->_VStop) {
INSTRUCTION.VoltConstant = CV->_VStop;
}
else if(CV->MeasureVolt <= ((int32_t)(CV->_VStop) - DAC_ZERO)/5){
DACUserCode = CV->_VStop;
else if(INSTRUCTION.VoltConstant <= CV->_VStop){
INSTRUCTION.VoltConstant = CV->_VStop;
}
else {
DACUserCode = DACUserCode - CV->_Step;
INSTRUCTION.VoltConstant = INSTRUCTION.VoltConstant - CV->_Step;
if(INSTRUCTION.VoltConstant > 60000){
INSTRUCTION.VoltConstant = 0;
current_direction_up = true;
}
}
}
}
}
DACOutCode = Usercode_Correction_to_DAC(DACUserCode);
// NotifyImpedance[0] = 0x00;
// NotifyImpedance[1] = 0x00;
// NotifyImpedance[2] = (uint8_t)((DACOutCode & 0xFF00) >> 8);
// NotifyImpedance[3] = (uint8_t)(DACOutCode & 0x00FF);
DACOutCode = Usercode_Correction_to_DAC(INSTRUCTION.VoltConstant);
DAC_outputV(DACOutCode);
}
return DACOutCode;
@@ -464,18 +555,19 @@ static void CV_Plot(CVMode *CV){
CV->MeasureVolt = DecodeADCVoutVolt(ADC_measure);
}
VoltCurrentSwitch++;
}else if (VoltCurrentSwitch < 13){
ReadBatVolt(spi_ADC_rxbuf);
VoltCurrentSwitch ++;
}
else if (VoltCurrentSwitch == 13){
// read battery volt
ReadBatVolt(spi_ADC_rxbuf);
ADC_measure = (uint16_t) (spi_ADC_rxbuf[0] << 8) | (uint16_t) (spi_ADC_rxbuf[1]);
CV->_MeasureBatvolt = DecodeADCBatVolt(ADC_measure);
CV->_MeasureBatvolt = CV->_MeasureBatvolt/10 - 250; // (5.00V) 5000->250 usercode
VoltCurrentSwitch ++;
}
// else if (VoltCurrentSwitch < 13){
// ReadBatVolt(spi_ADC_rxbuf);
// VoltCurrentSwitch ++;
// }
// else if (VoltCurrentSwitch == 13){
// // read battery volt
// ReadBatVolt(spi_ADC_rxbuf);
// ADC_measure = (uint16_t) (spi_ADC_rxbuf[0] << 8) | (uint16_t) (spi_ADC_rxbuf[1]);
// CV->_MeasureBatvolt = DecodeADCBatVolt(ADC_measure);
// CV->_MeasureBatvolt = CV->_MeasureBatvolt/10 - 250; // (5.00V) 5000->250 usercode
// VoltCurrentSwitch ++;
// }
else{
VoltCurrentSwitch = 0;
}
@@ -486,13 +578,20 @@ static void CV_Plot(CVMode *CV){
NotifyCurrent[3] = (uint8_t) (CV->_MeasureData & 0x000000FF);
if ((CV->_VoVi_Switch == 0x01) || (CV->_VoVi_Switch == 0x00)){ //user see Vin || user see Vout
NotifyVolt[0] = (uint8_t) (CV->MeasureVolt >> 24);
NotifyVolt[1] = (uint8_t) ((CV->MeasureVolt & 0x00FF0000) >> 16);
NotifyVolt[2] = (uint8_t) ((CV->MeasureVolt & 0x0000FF00) >> 8);
NotifyVolt[3] = (uint8_t) (CV->MeasureVolt & 0x000000FF);
// NotifyVolt[0] = (uint8_t) (CV->MeasureVolt >> 24);
// NotifyVolt[1] = (uint8_t) ((CV->MeasureVolt & 0x00FF0000) >> 16);
// NotifyVolt[2] = (uint8_t) ((CV->MeasureVolt & 0x0000FF00) >> 8);
// NotifyVolt[3] = (uint8_t) (CV->MeasureVolt & 0x000000FF);
int32_t RealV;
RealV = (int32_t)(INSTRUCTION.VoltConstant - 25000)*1000/5;
NotifyVolt[0] = (uint8_t)((RealV & 0xFF000000) >> 24);
NotifyVolt[1] = (uint8_t)((RealV & 0x00FF0000) >> 16);
NotifyVolt[2] = (uint8_t)((RealV & 0x0000FF00) >> 8);
NotifyVolt[3] = (uint8_t)(RealV & 0x000000FF);
}
NotifyBatVolt = (uint8_t) (CV->_MeasureBatvolt & 0x000000FF);
// NotifyBatVolt = (uint8_t) (CV->_MeasureBatvolt & 0x000000FF);
}
@@ -29,7 +29,7 @@
*/
#define BOARD_C5F3
#define BOARD_517
typedef struct _formula{
@@ -313,23 +313,23 @@ struct _correction{
#ifdef BOARD_517
{
.ADC_volt.coeff = (-6244769),
.ADC_volt.offset = 101714685687,
.ADC_volt.coeff = (-6242316),
.ADC_volt.offset = 101695491616,
.ADC_current[0].coeff = 30919726,
.ADC_current[0].offset = (-503489101786),
.ADC_current[0].coeff = 31209406,
.ADC_current[0].offset = (-508124232673),
.ADC_current[1].coeff = 654824495,
.ADC_current[1].offset = (-10660542778914),
.ADC_current[1].coeff = 1043627413,
.ADC_current[1].offset = (-16990954291421),
.ADC_current[2].coeff = 31376265,
.ADC_current[2].offset = (-510797752348),
.ADC_current[2].coeff = 31222625869,
.ADC_current[2].offset = (-508366282638261),
.DAC2RealV.coeff = (-18690126),
.DAC2RealV.offset = 564319610294 ,
.Usercode2DAC.coeff = (-10500774),
.Usercode2DAC.offset = 560779455904,
.Usercode2DAC.coeff = (-10498485),
.Usercode2DAC.offset = 560797798529,
.Gain0Boundary[0] = 0x5E2F,
.Gain0Boundary[1] = 0x5E96,
@@ -537,23 +537,23 @@ struct _correction{
#ifdef BOARD_VENUS
{
.ADC_volt.coeff = (-6268996),
.ADC_volt.offset = 102204055818,
.ADC_volt.coeff = (-6269185),
.ADC_volt.offset = 102228792306,
.ADC_current[0].coeff = 31131930,
.ADC_current[0].offset = (-507382432547),
.ADC_current[0].coeff = 31229744,
.ADC_current[0].offset = (-509240005160),
.ADC_current[1].coeff = 654620883,
.ADC_current[1].offset = (-10668953588943),
.ADC_current[1].coeff = 671245720,
.ADC_current[1].offset = (-10939750446252),
.ADC_current[2].coeff = 31245260000,
.ADC_current[2].offset = (-509181085054000),
.ADC_current[2].coeff = 35220821945,
.ADC_current[2].offset = (-574099564362474),
.DAC2RealV.coeff = (-19009388),
.DAC2RealV.offset = 567032653061,
.Usercode2DAC.coeff = (-10521117),
.Usercode2DAC.offset = 561308254899,
.Usercode2DAC.coeff = (-10524891),
.Usercode2DAC.offset = 561393946495,
.Gain0Boundary[0] = 0x5D96,
.Gain0Boundary[1] = 0x5DD9,
@@ -621,8 +621,8 @@ struct _correction{
#ifdef BOARD_SATURN
{
.ADC_volt.coeff = (-6262993),
.ADC_volt.offset = 101996256499,
.ADC_volt.coeff = (-6262258),
.ADC_volt.offset = 101986379869,
.ADC_current[0].coeff = 31482854,
.ADC_current[0].offset = (-513080696050),
@@ -630,14 +630,14 @@ struct _correction{
.ADC_current[1].coeff = 660069824,
.ADC_current[1].offset = (-10757047907091),
.ADC_current[2].coeff = 31599480301,
.ADC_current[2].offset = (-514997796786064),
.ADC_current[2].coeff = 31692010534,
.ADC_current[2].offset = (-516553361701835),
.DAC2RealV.coeff = (-19009388),
.DAC2RealV.offset = 567032653061,
.Usercode2DAC.coeff = (-10482326),
.Usercode2DAC.offset = 558931155711,
.Usercode2DAC.coeff = (-10484502),
.Usercode2DAC.offset = 558944670693,
.Gain0Boundary[0] = 0x5D96,
.Gain0Boundary[1] = 0x5DD9,
@@ -929,23 +929,23 @@ struct _correction{
#ifdef BOARD_D429
{
.ADC_volt.coeff = (-6241392),
.ADC_volt.offset = 101665575617,
.ADC_volt.coeff = (-6238779),
.ADC_volt.offset = 101605334434,
.ADC_current[0].coeff = 31118362,
.ADC_current[0].offset = -507070231542,
.ADC_current[0].coeff = 31071846,
.ADC_current[0].offset = -505811219439,
.ADC_current[1].coeff = 653903856,
.ADC_current[1].offset = -10652907999782,
.ADC_current[1].coeff = 656609367,
.ADC_current[1].offset = -10692060258062,
.ADC_current[2].coeff = 31380490401,
.ADC_current[2].offset = -511219632543579,
.ADC_current[2].coeff = 31524582021,
.ADC_current[2].offset = -513367397453127,
.DAC2RealV.coeff = (-19007867),
.DAC2RealV.offset = 646316924837,
.Usercode2DAC.coeff = (-10512540),
.Usercode2DAC.offset = 562273068204,
.Usercode2DAC.coeff = (-10507806),
.Usercode2DAC.offset = 562068643815,
.Gain0Boundary[0] = 0x5ECD,
.Gain0Boundary[1] = 0x5F0D,
@@ -1011,14 +1011,436 @@ struct _correction{
};
#endif
#ifdef BOARD_C673
{
.ADC_volt.coeff = (-6250835),
.ADC_volt.offset = 102137137483,
.ADC_current[0].coeff = 31377840,
.ADC_current[0].offset = -513157633310,
.ADC_current[1].coeff = 656775773,
.ADC_current[1].offset = -10735818498628,
.ADC_current[2].coeff = 31564418269,
.ADC_current[2].offset = -515846860363218,
.DAC2RealV.coeff = (-19007867),
.DAC2RealV.offset = 646316924837,
.Usercode2DAC.coeff = (-10589134),
.Usercode2DAC.offset = 566193811359,
.Gain0Boundary[0] = 0x5ECD,
.Gain0Boundary[1] = 0x5F0D,
.Gain1Boundary[0] = 0x5900,
.Gain1Boundary[1] = 0x64DD
};
#endif
#ifdef BOARD_C5E0
{
.ADC_volt.coeff = (-6245327),
.ADC_volt.offset = 101307483012,
.ADC_current[0].coeff = 31354974,
.ADC_current[0].offset = -507194879524,
.ADC_current[1].coeff = 658451900,
.ADC_current[1].offset = -10677456008545,
.ADC_current[2].coeff = 31568312650,
.ADC_current[2].offset = -511943326243316,
.DAC2RealV.coeff = (-19007867),
.DAC2RealV.offset = 646316924837,
.Usercode2DAC.coeff = (-21557794),
.Usercode2DAC.offset = 1122382223883,
.Gain0Boundary[0] = 0x5ECD,
.Gain0Boundary[1] = 0x5F0D,
.Gain1Boundary[0] = 0x5900,
.Gain1Boundary[1] = 0x64DD
};
#endif
#ifdef BOARD_C64C
{
.ADC_volt.coeff = (-6260844),
.ADC_volt.offset = 101746271485,
.ADC_current[0].coeff = 31234762,
.ADC_current[0].offset = -509025107922,
.ADC_current[1].coeff = 660737512,
.ADC_current[1].offset = -10739681096143,
.ADC_current[2].coeff = 31446881444,
.ADC_current[2].offset = -511179540163754,
.DAC2RealV.coeff = (-19007867),
.DAC2RealV.offset = 646316924837,
.Usercode2DAC.coeff = (-10547083),
.Usercode2DAC.offset = 562398595911,
.Gain0Boundary[0] = 0x5ECD,
.Gain0Boundary[1] = 0x5F0D,
.Gain1Boundary[0] = 0x5900,
.Gain1Boundary[1] = 0x64DD
};
#endif
#ifdef BOARD_C6F1
{
.ADC_volt.coeff = (-6247180),
.ADC_volt.offset = 102054272790,
.ADC_current[0].coeff = 30976281,
.ADC_current[0].offset = -505757488419,
.ADC_current[1].coeff = 655631961,
.ADC_current[1].offset = -10714280118989,
.ADC_current[2].coeff = 31377993512,
.ADC_current[2].offset = -512826236956373,
.DAC2RealV.coeff = (-19007867),
.DAC2RealV.offset = 646316924837,
.Usercode2DAC.coeff = (-10535141),
.Usercode2DAC.offset = 562486477211,
.Gain0Boundary[0] = 0x5ECD,
.Gain0Boundary[1] = 0x5F0D,
.Gain1Boundary[0] = 0x5900,
.Gain1Boundary[1] = 0x64DD
};
#endif
#ifdef BOARD_C5A7
{
.ADC_volt.coeff = (-6261077),
.ADC_volt.offset = 101626420148,
.ADC_current[0].coeff = 31238670,
.ADC_current[0].offset = -508954779962,
.ADC_current[1].coeff = 655018286,
.ADC_current[1].offset = -10624775781189,
.ADC_current[2].coeff = 31254713545,
.ADC_current[2].offset = -506913323208609,
.DAC2RealV.coeff = (-19007867),
.DAC2RealV.offset = 646316924837,
.Usercode2DAC.coeff = (-10486554),
.Usercode2DAC.offset = 558961930417,
.Gain0Boundary[0] = 0x5ECD,
.Gain0Boundary[1] = 0x5F0D,
.Gain1Boundary[0] = 0x5900,
.Gain1Boundary[1] = 0x64DD
};
#endif
#ifdef BOARD_C5BC
{
.ADC_volt.coeff = (-6247591),
.ADC_volt.offset = 101907211036,
.ADC_current[0].coeff = 31127907,
.ADC_current[0].offset = -509404424258,
.ADC_current[1].coeff = 657090640,
.ADC_current[1].offset = -10708439489521,
.ADC_current[2].coeff = 31323762927,
.ADC_current[2].offset = -510639983237350,
.DAC2RealV.coeff = (-19007867),
.DAC2RealV.offset = 646316924837,
.Usercode2DAC.coeff = (-10500262),
.Usercode2DAC.offset = 561352279115,
.Gain0Boundary[0] = 0x5ECD,
.Gain0Boundary[1] = 0x5F0D,
.Gain1Boundary[0] = 0x5900,
.Gain1Boundary[1] = 0x64DD
};
#endif
#ifdef BOARD_C61B
{
.ADC_volt.coeff = (-6240181),
.ADC_volt.offset = 101555032590,
.ADC_current[0].coeff = 31453336,
.ADC_current[0].offset = -512480994335,
.ADC_current[1].coeff = 655791462,
.ADC_current[1].offset = -10674697458906,
.ADC_current[2].coeff = 31308254406,
.ADC_current[2].offset = -509597572256835,
.DAC2RealV.coeff = (-19007867),
.DAC2RealV.offset = 646316924837,
.Usercode2DAC.coeff = (-10647081),
.Usercode2DAC.offset = 565878482890,
.Gain0Boundary[0] = 0x5ECD,
.Gain0Boundary[1] = 0x5F0D,
.Gain1Boundary[0] = 0x5900,
.Gain1Boundary[1] = 0x64DD
};
#endif
#ifdef BOARD_C73D
{
.ADC_volt.coeff = (-6295524),
.ADC_volt.offset = 102674817855,
.ADC_current[0].coeff = 31655210,
.ADC_current[0].offset = -516217345046,
.ADC_current[1].coeff = 657366554,
.ADC_current[1].offset = -10730794522132,
.ADC_current[2].coeff = 31455150257,
.ADC_current[2].offset = -513437175114578,
.DAC2RealV.coeff = (-19007867),
.DAC2RealV.offset = 646316924837,
.Usercode2DAC.coeff = (-10572307),
.Usercode2DAC.offset = 565374291147,
.Gain0Boundary[0] = 0x5ECD,
.Gain0Boundary[1] = 0x5F0D,
.Gain1Boundary[0] = 0x5900,
.Gain1Boundary[1] = 0x64DD
};
#endif
#ifdef BOARD_C635
{
.ADC_volt.coeff = (-6253221),
.ADC_volt.offset = 101809981406,
.ADC_current[0].coeff = 31341845,
.ADC_current[0].offset = -510459459634,
.ADC_current[1].coeff = 658436945,
.ADC_current[1].offset = -10717869924356,
.ADC_current[2].coeff = 31308250447,
.ADC_current[2].offset = -509649688240631,
.DAC2RealV.coeff = (-19007867),
.DAC2RealV.offset = 646316924837,
.Usercode2DAC.coeff = (-10515473),
.Usercode2DAC.offset = 561702427427,
.Gain0Boundary[0] = 0x5ECD,
.Gain0Boundary[1] = 0x5F0D,
.Gain1Boundary[0] = 0x5900,
.Gain1Boundary[1] = 0x64DD
};
#endif
#ifdef BOARD_C682
{
.ADC_volt.coeff = (-6255881),
.ADC_volt.offset = 101770749912,
.ADC_current[0].coeff = 31201404,
.ADC_current[0].offset = -508138266998,
.ADC_current[1].coeff = 656614595,
.ADC_current[1].offset = -10686126424043,
.ADC_current[2].coeff = 31414681873,
.ADC_current[2].offset = -511205882335203,
.DAC2RealV.coeff = (-19007867),
.DAC2RealV.offset = 646316924837,
.Usercode2DAC.coeff = (-10526542),
.Usercode2DAC.offset = 561504215196,
.Gain0Boundary[0] = 0x5ECD,
.Gain0Boundary[1] = 0x5F0D,
.Gain1Boundary[0] = 0x5900,
.Gain1Boundary[1] = 0x64DD
};
#endif
#ifdef BOARD_C688
{
.ADC_volt.coeff = (-6258215),
.ADC_volt.offset = 102154138920,
.ADC_current[0].coeff = 31341184,
.ADC_current[0].offset = -510715097964,
.ADC_current[1].coeff = 659789967,
.ADC_current[1].offset = -10771124472519,
.ADC_current[2].coeff = 31519139222,
.ADC_current[2].offset = -514534188233139,
.DAC2RealV.coeff = (-19007867),
.DAC2RealV.offset = 646316924837,
.Usercode2DAC.coeff = (-10537634),
.Usercode2DAC.offset = 562780854012,
.Gain0Boundary[0] = 0x5ECD,
.Gain0Boundary[1] = 0x5F0D,
.Gain1Boundary[0] = 0x5900,
.Gain1Boundary[1] = 0x64DD
};
#endif
#ifdef BOARD_C758
{
.ADC_volt.coeff = (-6243164),
.ADC_volt.offset = 101637253844,
.ADC_current[0].coeff = 30911246,
.ADC_current[0].offset = -503647274606,
.ADC_current[1].coeff = 653825342,
.ADC_current[1].offset = -10648468733909,
.ADC_current[2].coeff = 31170419731,
.ADC_current[2].offset = -507639789070676,
.DAC2RealV.coeff = (-19007867),
.DAC2RealV.offset = 646316924837,
.Usercode2DAC.coeff = (-10486554),
.Usercode2DAC.offset = 558961930417,
.Gain0Boundary[0] = 0x5ECD,
.Gain0Boundary[1] = 0x5F0D,
.Gain1Boundary[0] = 0x5900,
.Gain1Boundary[1] = 0x64DD
};
#endif
#ifdef BOARD_C5F1
{
.ADC_volt.coeff = (-6253958),
.ADC_volt.offset = 101452368461,
.ADC_current[0].coeff = 30744013,
.ADC_current[0].offset = -498179836930,
.ADC_current[1].coeff = 654390794,
.ADC_current[1].offset = -10613673358566,
.ADC_current[2].coeff = 31298803888,
.ADC_current[2].offset = -507656332800484,
.DAC2RealV.coeff = (-19007867),
.DAC2RealV.offset = 646316924837,
.Usercode2DAC.coeff = (-10518181),
.Usercode2DAC.offset = 560301589307,
.Gain0Boundary[0] = 0x5ECD,
.Gain0Boundary[1] = 0x5F0D,
.Gain1Boundary[0] = 0x5900,
.Gain1Boundary[1] = 0x64DD
};
#endif
#ifdef BOARD_C6D5
{
.ADC_volt.coeff = (-6237534),
.ADC_volt.offset = 101605935716,
.ADC_current[0].coeff = 31115458,
.ADC_current[0].offset = -507263643623,
.ADC_current[1].coeff = 658403575,
.ADC_current[1].offset = -10732526947976,
.ADC_current[2].coeff = 31390460797,
.ADC_current[2].offset = -511690836380334,
.DAC2RealV.coeff = (-19007867),
.DAC2RealV.offset = 646316924837,
.Usercode2DAC.coeff = (-10584982),
.Usercode2DAC.offset = 563383734482,
.Gain0Boundary[0] = 0x5ECD,
.Gain0Boundary[1] = 0x5F0D,
.Gain1Boundary[0] = 0x5900,
.Gain1Boundary[1] = 0x64DD
};
#endif
#ifdef BOARD_C706
{
.ADC_volt.coeff = (-6265060),
.ADC_volt.offset = 101304934795,
.ADC_current[0].coeff = 31017413,
.ADC_current[0].offset = -501641612769,
.ADC_current[1].coeff = 657630384,
.ADC_current[1].offset = -10633992921166,
.ADC_current[2].coeff = 31013727410,
.ADC_current[2].offset = -501507479075525,
.DAC2RealV.coeff = (-19007867),
.DAC2RealV.offset = 646316924837,
.Usercode2DAC.coeff = (-10557808),
.Usercode2DAC.offset = 560287506126,
.Gain0Boundary[0] = 0x5ECD,
.Gain0Boundary[1] = 0x5F0D,
.Gain1Boundary[0] = 0x5900,
.Gain1Boundary[1] = 0x64DD
};
#endif
// this function turn ADC measure value (0xXXXX) into real voltage
// unit should be mV
// unit should be uV
static int32_t DecodeADCVolt(uint16_t ADC_measure){
long long ADCRealVolt = 0;
ADCRealVolt = (Correction.ADC_volt.coeff * ADC_measure + Correction.ADC_volt.offset);
ADCRealVolt = ADCRealVolt / 1e7;
ADCRealVolt = ADCRealVolt / 1e4;
return (int32_t) (ADCRealVolt);
}
@@ -1238,9 +1660,9 @@ static int32_t DAC_to_realV(uint16_t DACcode)
usercode_32 = ((DACcode * 1e7) - Correction.Usercode2DAC.offset) / Correction.Usercode2DAC.coeff;
RealV = (int32_t) (usercode_32 / 5) - 5000;
// return mV
RealV = (int32_t) ((usercode_32 / 5) - 5000) * 1000;
// RealV = (int32_t) usercode_32;
// return nV
return RealV;
}
@@ -41,7 +41,7 @@ static uint16_t OneWayVoltScan(IVMode *IV) {
}
if (CT.StepTimeCounter == IV->_StepTime){
if (IV->_VOrigin < IV->_VStop) {
if (IV->_VOrigin < IV->_VStop) {//4~5V
// output the next output volt
INSTRUCTION.VoltConstant = INSTRUCTION.VoltConstant + IV->_Step;
// Only used in two-wire IV
@@ -76,27 +76,42 @@ static uint16_t OneWayVoltScan(IVMode *IV) {
//// reset();
// }
}
if (IV->_VoVi_Switch == 0x00){ //user see Vout
if (IV->_VOrigin < IV->_VStop) {
if(INSTRUCTION.VoltConstant >= IV->_VStop){
PeriodicEvent = false;
DACReset = true;
}
}
else{
if(INSTRUCTION.VoltConstant <= IV->_VStop){
PeriodicEvent = false;
DACReset = true;
}
}
}
int32_t RealV;
RealV = DAC_to_realV(DACOutCode);
NotifyVolt[0] = (uint8_t)((RealV & 0xFF000000) >> 24);
NotifyVolt[1] = (uint8_t)((RealV & 0x00FF0000) >> 16);
NotifyVolt[2] = (uint8_t)((RealV & 0x0000FF00) >> 8);
NotifyVolt[3] = (uint8_t)(RealV & 0x000000FF);
// if (IV->_VoVi_Switch == 0x00 || IV->_VoVi_Switch == 0x01){ //user see Vout/user see Vin
// if (IV->_VOrigin < IV->_VStop) {
// if(INSTRUCTION.VoltConstant >= IV->_VStop){
// PeriodicEvent = false;
// DACReset = true;
// }
// }
// else{
// if(INSTRUCTION.VoltConstant <= IV->_VStop){
// PeriodicEvent = false;
// DACReset = true;
// }
// }
// }
// int32_t RealV;
// RealV = DAC_to_realV(DACOutCode);
// NotifyVolt[0] = (uint8_t)((RealV & 0xFF000000) >> 24);
// NotifyVolt[1] = (uint8_t)((RealV & 0x00FF0000) >> 16);
// NotifyVolt[2] = (uint8_t)((RealV & 0x0000FF00) >> 8);
// NotifyVolt[3] = (uint8_t)(RealV & 0x000000FF);
// int32_t RealV;
// RealV = (int32_t)(INSTRUCTION.VoltConstant - 25000)/5*1000;
// NotifyVolt[0] = (uint8_t)((RealV & 0xFF000000) >> 24);
// NotifyVolt[1] = (uint8_t)((RealV & 0x00FF0000) >> 16);
// NotifyVolt[2] = (uint8_t)((RealV & 0x0000FF00) >> 8);
// NotifyVolt[3] = (uint8_t)(RealV & 0x000000FF);
// NotifyImpedance[0] = 0x00;
// NotifyImpedance[1] = 0x00;
// NotifyImpedance[2] = (uint8_t)((INSTRUCTION.VoltConstant & 0xFF00) >> 8);
// NotifyImpedance[3] = (uint8_t)(INSTRUCTION.VoltConstant & 0x00FF);
}
@@ -170,18 +185,18 @@ static void IV_Plot(IVMode *IV) {
}
VoltCurrentSwitch++;
}
else if (VoltCurrentSwitch < 13){
ReadBatVolt(spi_ADC_rxbuf);
VoltCurrentSwitch ++;
}
else if (VoltCurrentSwitch == 13){
// read battery volt
ReadBatVolt(spi_ADC_rxbuf);
ADC_measure = (uint16_t) (spi_ADC_rxbuf[0] << 8) | (uint16_t) (spi_ADC_rxbuf[1]);
IV->_MeasureBatvolt = DecodeADCBatVolt(ADC_measure);
IV->_MeasureBatvolt = IV->_MeasureBatvolt/10 - 250; // (5.00V) 5000->250 usercode
VoltCurrentSwitch ++;
}
// else if (VoltCurrentSwitch < 13){
// ReadBatVolt(spi_ADC_rxbuf);
// VoltCurrentSwitch ++;
// }
// else if (VoltCurrentSwitch == 13){
// // read battery volt
// ReadBatVolt(spi_ADC_rxbuf);
// ADC_measure = (uint16_t) (spi_ADC_rxbuf[0] << 8) | (uint16_t) (spi_ADC_rxbuf[1]);
// IV->_MeasureBatvolt = DecodeADCBatVolt(ADC_measure);
// IV->_MeasureBatvolt = IV->_MeasureBatvolt/10 - 250; // (5.00V) 5000->250 usercode
// VoltCurrentSwitch ++;
// }
else{
VoltCurrentSwitch = 0;
}
@@ -193,27 +208,55 @@ static void IV_Plot(IVMode *IV) {
NotifyCurrent[2] = (uint8_t) ((IV->_MeasureData & 0x0000FF00) >> 8);
NotifyCurrent[3] = (uint8_t) (IV->_MeasureData & 0x000000FF);
if((IV->_VoVi_Switch == 0x01) || (IV->_VoVi_Switch == 0x00)){ //user see Vin || user see Vout
NotifyVolt[0] = (uint8_t) (IV->MeasureVolt >> 24);
NotifyVolt[1] = (uint8_t) ((IV->MeasureVolt & 0x00FF0000) >> 16);
NotifyVolt[2] = (uint8_t) ((IV->MeasureVolt & 0x0000FF00) >> 8);
NotifyVolt[3] = (uint8_t) (IV->MeasureVolt & 0x000000FF);
// if((IV->_VoVi_Switch == 0x01) || (IV->_VoVi_Switch == 0x00)){ //user see Vin || user see Vout
//// NotifyVolt[0] = (uint8_t) (IV->MeasureVolt >> 24);
//// NotifyVolt[1] = (uint8_t) ((IV->MeasureVolt & 0x00FF0000) >> 16);
//// NotifyVolt[2] = (uint8_t) ((IV->MeasureVolt & 0x0000FF00) >> 8);
//// NotifyVolt[3] = (uint8_t) (IV->MeasureVolt & 0x000000FF);
// int32_t RealV;
// RealV = (int32_t)(INSTRUCTION.VoltConstant - 25000)/5*1000;
// NotifyVolt[0] = (uint8_t)((RealV & 0xFF000000) >> 24);
// NotifyVolt[1] = (uint8_t)((RealV & 0x00FF0000) >> 16);
// NotifyVolt[2] = (uint8_t)((RealV & 0x0000FF00) >> 8);
// NotifyVolt[3] = (uint8_t)(RealV & 0x000000FF);
//
// if (IV->_VOrigin < IV->_VStop) {
// if((IV->MeasureVolt/1000) >= ((int32_t) (IV->_VStop) - DAC_ZERO)/5){
// PeriodicEvent = false;
// DACReset = true;
// }
// }
// else{
// if((IV->MeasureVolt/1000) <= ((int32_t) (IV->_VStop) - DAC_ZERO)/5){
// PeriodicEvent = false;
// DACReset = true;
// }
// }
// }
if (IV->_VoVi_Switch == 0x00 || IV->_VoVi_Switch == 0x01){ //user see Vout/user see Vin
int32_t RealV;
RealV = (int32_t)(INSTRUCTION.VoltConstant - 25000)*1000/5;
NotifyVolt[0] = (uint8_t)((RealV & 0xFF000000) >> 24);
NotifyVolt[1] = (uint8_t)((RealV & 0x00FF0000) >> 16);
NotifyVolt[2] = (uint8_t)((RealV & 0x0000FF00) >> 8);
NotifyVolt[3] = (uint8_t)(RealV & 0x000000FF);
if (IV->_VOrigin < IV->_VStop) {
if(IV->MeasureVolt >= ((int32_t) (IV->_VStop) - DAC_ZERO)/5){
if(INSTRUCTION.VoltConstant >= IV->_VStop){
PeriodicEvent = false;
DACReset = true;
}
}
else{
if(IV->MeasureVolt <= ((int32_t) (IV->_VStop) - DAC_ZERO)/5){
if(INSTRUCTION.VoltConstant <= IV->_VStop){
PeriodicEvent = false;
DACReset = true;
}
}
}
NotifyBatVolt = (uint8_t) (IV->_MeasureBatvolt & 0x000000FF);
// NotifyBatVolt = (uint8_t) (IV->_MeasureBatvolt & 0x000000FF);
}
@@ -28,12 +28,12 @@ static void ZT_Plot(RTMode *RT) {
}
volt_32 = User2Real(INSTRUCTION.VoltConstant)*1e4;
volt_32 = User2Real(INSTRUCTION.VoltConstant)*1e5;
// ReadVolt(SPIVolt);
// VoltMeasure = (uint16_t) (SPIVolt[0] << 8) | (uint16_t) (SPIVolt[1]);
// volt_32 = DecodeADCVolt(VoltMeasure)*1e4;
resister_32 = volt_32 / current_32;
volt_32 = volt_32 / 1e4;
volt_32 = volt_32 / 1e2; //uV
NotifyVolt[0] = (uint8_t) (volt_32 >> 24);
NotifyVolt[1] = (uint8_t) ((volt_32 & 0x00FF0000) >> 16);
@@ -375,10 +375,11 @@ characteristic change event
// product information
#define DEVICE_NAME "Elite-ZM-v1.4-re"
#define MAJOR_PRODUCT_NUMBER 0
#define MINOR_PRODUCT_NUMBER 2
#define MAJOR_VERSION_NUMBER 1
#define MINOR_VERSION_NUMBER 2
#define MAJOR_PRODUCT_NUMBER 0 //0:Elite ,1:Neulive
#define MINOR_PRODUCT_NUMBER 2 //1:Elite_legacy(Ori_Neulive) 2:Elite_zm 3:Elite_bat
#define MAJOR_VERSION_NUMBER 1 //1
#define MINOR_VERSION_NUMBER 2 //2 (1.2:support 1.2~1.4-re)
//0310 //bat1.0
#define ELITE_VERSION_1_4
//#define ELITE_VERSION_1_3
@@ -492,6 +493,7 @@ static uint8 channel_table[CHANNEL_COUNT] = {0};
*/
static int8 channel_pointer = -1;
static uint8_t not_buf[BLE_DAT_BUFF_SIZE] = {0};
static uint8_t cis_buf[BLE_CIS_BUFF_SIZE] = {0};
/*=====================================
==== headstage function prototype ====
@@ -578,6 +580,8 @@ static void set_update_instruction_callback(update_instruction_callback_type cal
#define VIS_SHIFT_200K 0b10100000
#define VIS_SHIFT_10K 0b11100000
#define VIS_SHIFT_200R 0b10000000
#define VIS_DEVICE_SHINY 0b00010000
#define VIS_SHINY_DIS 0b00100000
// real instruction
#define IV_CURVE 0b00010000
@@ -596,6 +600,7 @@ static void set_update_instruction_callback(update_instruction_callback_type cal
#define CYCLE_CONSTANT_CURRENT 0b11110000
// CIS instruction
#define CIS_VERSION 0x40
// test instruction
#define ADC_TEST 0b10010000
@@ -698,6 +703,7 @@ static void TurnOn10V();
#include "EliteCCCMode.h"
#include "impedance_meter.h"
#include "EliteReadVout.h"
#include "headstage_version.h"
// update instruction for Z meter
static void update_ZM_instruction(uint8 *ins) {
@@ -733,6 +739,8 @@ static void update_ZM_instruction(uint8 *ins) {
if (ins[7] | ins[8]) {
INSTRUCTION.Step = ((uint16_t)(ins[7]) << 8) | (uint16_t)(ins[8]);
// NotifyImpedance[2] = (uint8_t)((INSTRUCTION.Step & 0xFF00)>>8);
// NotifyImpedance[3] = (uint8_t)(INSTRUCTION.Step & 0x00FF);
INSTRUCTION.Step = StepCode2DACcode(INSTRUCTION.Step);
}
// if (ins[9]) {
@@ -822,7 +830,7 @@ static void update_ZM_instruction(uint8 *ins) {
// CleanBuffer();
INSTRUCTION.eliteFxn = CV_CURVE;
DACReset = true;
INSTRUCTION.SampleRate = 500;
INSTRUCTION.SampleRate = 100;
// if (ins[3] | ins[4]) {
INSTRUCTION.VoltOrigin = ((uint16_t)(ins[3]) << 8) | (uint16_t)(ins[4]);
@@ -1076,6 +1084,31 @@ static void update_ZM_instruction(uint8 *ins) {
break;
}
case VIS_DEVICE_SHINY:{
LED_color(DARKLED, 0xFF, 0x00, 0xFF);
// uint8_t deviceShinySwitch = (ins[2] & 0b11110000) >> 4;//1:open 0:close
// if(deviceShinySwitch == 1){
// LED_color(DARKLED, 0xFF, 0x00, 0xFF);
// }else if(deviceShinySwitch == 0){
// if(PeriodicEvent){
// WORKLED();
// }else if(!PeriodicEvent){
// LEDPowerON();
// }
// }
break;
}
case VIS_SHINY_DIS:{
if(PeriodicEvent){
WORKLED();
}else if(!PeriodicEvent){
LEDPowerON();
}
break;
}
default: {
break;
}
@@ -1089,6 +1122,19 @@ static void update_ZM_instruction(uint8 *ins) {
I2CWrite(0x01, 0xAB);
break;
}
case CIS_VERSION:{
cis_buf[0] = VERSION_DATE_YEAR;
cis_buf[1] = VERSION_DATE_MONTH;
cis_buf[2] = VERSION_DATE_DAY;
cis_buf[3] = VERSION_DATE_HOUR;
cis_buf[4] = VERSION_DATE_MINUTE;
SimpleProfile_SetParameter(BLE_CIS_BUFF_CHAR, BLE_CIS_BUFF_SIZE, cis_buf);
break;
}
}
break;
}
@@ -0,0 +1,11 @@
#ifndef VERSION_DATE
#define VERSION_DATE
#define VERSION_DATE_YEAR 20
#define VERSION_DATE_MONTH 2
#define VERSION_DATE_DAY 25
#define VERSION_DATE_HOUR 18
#define VERSION_DATE_MINUTE 32
#endif
@@ -277,7 +277,7 @@ static void EliteNotifyControl() {
static uint16_t StepCode2DACcode(uint16_t StepCode){
return (StepCode * 0x0005);
return (StepCode * 0x0005 / 10);
}
static uint16_t OldStep2NewStepTime(uint8_t StepTime) {
@@ -632,6 +632,7 @@ static void SimpleBLEPeripheral_taskFxn(UArg a0, UArg a1) {
InitEliteInstruction();
ADCGainControl(INSTRUCTION.ADCGainLevel);
DAC_outputV(Usercode_Correction_to_DAC(INSTRUCTION.VoltConstant));
Free_Work_Mode = false;
}
} else {
@@ -648,8 +649,12 @@ static void SimpleBLEPeripheral_taskFxn(UArg a0, UArg a1) {
// Perform periodic application task
SimpleBLEPeripheral_performPeriodicTask(WorkModeData);
// Turn off Elite if battery voltage < 3V
// ReadBatVolt(spi_ADC_rxbuf);
key = PIN_getInputValue(switch_on);
EliteKeyPress(key); // onPress=> key = 0; 1.lighten LED 2.long press shut down 2650
}
}