Compare commits
84 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 03626a351e | |||
| 3143e83702 | |||
| 1f555566be | |||
| 95a5a448aa | |||
| c3b834494d | |||
| 9c28a44c2a | |||
| da736d465b | |||
| d9d0a7a994 | |||
| c706b0119b | |||
| 5a9a3754e7 | |||
| 97040855af | |||
| 77ee73a878 | |||
| cbd8f96f60 | |||
| 631396c50e | |||
| d25103373e | |||
| 0f9ce0e22b | |||
| 8ddb66393d | |||
| f8d37fcf20 | |||
| c6b46c600e | |||
| a22253e384 | |||
| 116d4cfb76 | |||
| bd070a4ce8 | |||
| 5beb62613f | |||
| e27204bd50 | |||
| 34e9c644c5 | |||
| 74d2024731 | |||
| 7615f141ef | |||
| 38a45cdb1d | |||
| 9623751337 | |||
| dbf25c5712 | |||
| 77da097582 | |||
| 260bf54d61 | |||
| 252f3d9d06 | |||
| 5e4dad9027 | |||
| 7b2a51ee24 | |||
| bf57c10785 | |||
| 854e82a198 | |||
| 3107807268 | |||
| dff6c0a9e2 | |||
| 8480f60266 | |||
| cfc596c32b | |||
| 8808490caa | |||
| 0c4de74be8 | |||
| 4983bbd596 | |||
| 7f82ced132 | |||
| 59a4d9dafe | |||
| 1d8d987d22 | |||
| 5538e13e69 | |||
| 1b75ccb056 | |||
| 131051e227 | |||
| e0e116b1d1 | |||
| 9a9cf40c74 | |||
| 246052bf9c | |||
| 66229c2821 | |||
| 347259fe7e | |||
| d1b3aa9506 | |||
| 6cdecd9e87 | |||
| 56937a0780 | |||
| cb1ca49985 | |||
| 7e9dfbc4c2 | |||
| d86b008bb1 | |||
| ceac955327 | |||
| 64effd5a02 | |||
| c7d531f0a5 | |||
| 37caa92565 | |||
| 4c04c57728 | |||
| 9bc16f7687 | |||
| e11eae5302 | |||
| 2269a2b4d7 | |||
| 3ffa567f1b | |||
| de4d766ed5 | |||
| 7b5d46edff | |||
| 7399ddce01 | |||
| 7e16a54533 | |||
| 778495a07a | |||
| 527a90f732 | |||
| 9a1f409e08 | |||
| 4e01c27e8e | |||
| a71e456e81 | |||
| df1c1f9f7e | |||
| 06584e7d1c | |||
| 5ea5b16d89 | |||
| 10e2d12bc2 | |||
| 857388b204 |
Executable
+39
@@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
|
||||
#path=$(pwd)
|
||||
#folder=$($path | awk -F"/" '{$NF}')
|
||||
folder=$(basename "$(pwd)")
|
||||
|
||||
if [ "$folder" == "bioprocc2650" ]; then
|
||||
year=$(date +%-y)
|
||||
month=$(date +%-m)
|
||||
day=$(date +%-d)
|
||||
hour=$(date +%-H)
|
||||
minute=$(date +%-M)
|
||||
|
||||
hash=$(git rev-parse HEAD)
|
||||
branch=$(git rev-parse --abbrev-ref HEAD)
|
||||
|
||||
sed -i "5c #define VERSION_DATE_YEAR ${year}"\
|
||||
./simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/Elite_version.h
|
||||
|
||||
sed -i "6c #define VERSION_DATE_MONTH ${month}"\
|
||||
./simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/Elite_version.h
|
||||
|
||||
sed -i "7c #define VERSION_DATE_DAY ${day}"\
|
||||
./simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/Elite_version.h
|
||||
|
||||
sed -i "8c #define VERSION_DATE_HOUR ${hour}"\
|
||||
./simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/Elite_version.h
|
||||
|
||||
sed -i "9c #define VERSION_DATE_MINUTE ${minute}"\
|
||||
./simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/Elite_version.h
|
||||
|
||||
sed -i "13c #define VERSION_HASH ${hash}"\
|
||||
./simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/Elite_version.h
|
||||
|
||||
sed -i "14c #define VERSION_GIT_BRANCH ${branch}"\
|
||||
./simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/Elite_version.h
|
||||
|
||||
#cat ./simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/Elite_version.h
|
||||
fi
|
||||
+24
@@ -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>
|
||||
+9
@@ -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.
|
||||
+24
@@ -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>
|
||||
+9
@@ -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.
|
||||
+1
-1
@@ -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>
|
||||
|
||||
+55
-55
@@ -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.387558095" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.937216340">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.281169844" 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.2039965704" name="Compiler version" 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.1903277145" 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.149660968" keepEnvironmentInBuildfile="false" name="GNU Make" 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.289504931" 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.1502722911" name="Target processor version (--silicon_version, -mv)" 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.2080861677" name="Designate code state, 16-bit (thumb) or 32-bit (--code_state)" 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.937535249" name="Application binary interface. (--abi)" 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.1088642974" name="Little endian code [See 'General' page to edit] (--little_endian, -me)" 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.171996990" name="Optimization level (--opt_level, -O)" 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.609555771" name="Speed vs. size trade-offs (--opt_for_speed, -mf)" 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.394031010" name="Add dir to #include search path (--include_path, -I)" 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.625929411" name="Pre-define NAME (--define, -D)" 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.622361603" name="Debugging model" 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.390302855" name="C Dialect" 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.2050482239" name="Enable support for GCC extensions (DEPRECATED) (--gcc)" 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.1364894214" name="Suppress diagnostic <id> (--diag_suppress, -pds)" 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.822683146" name="Treat diagnostic <id> as warning (--diag_warning, -pdsw)" 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.1624671949" name="Wrap diagnostic messages (--diag_wrap)" 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.592612441" name="Emit diagnostic identifier numbers (--display_error_number, -pden)" 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.179162634" name="Place each function in a separate subsection (--gen_func_subsections, -ms)" 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.1498208441" name="Read options from specified file (--cmd_file, -@)" 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.250212368" 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.1375917091" 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.706927310" 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.276549457" 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=""${ProjName}.map"" 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.937216340" 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.1691972566" name="Set C system stack size (--stack_size, -stack)" 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.1078705642" name="Heap size for C/C++ dynamic memory allocation (--heap_size, -heap)" 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.1249113889" name="Link information (map) listed into <file> (--map_file, -m)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE" value=""${ProjName}.map"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE.1768184374" name="Specify output file name (--output_file, -o)" 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.2049179859" name="Include library file or command file as input (--library, -l)" 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.980701920" name="Add <dir> to library search path (--search_path, -i)" 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.783856815" name="Suppress diagnostic <id> (--diag_suppress)" 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=""${ProjName}_linkInfo.xml"" 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.984075892" name="Wrap diagnostic messages (--diag_wrap)" 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.669072727" name="Emit diagnostic identifier numbers (--display_error_number)" 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.1024317334" name="Detailed link information data-base into <file> (--xml_link_info, -xml_link_info)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO" value=""${ProjName}_linkInfo.xml"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.1828842189" name="Aggressively reduce size of the DWARF information (--compress_dwarf)" 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.787190393" name="Eliminate sections not needed in the executable (--unused_section_elimination)" 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.548957088" 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.1267836979" 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.1197025444" 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.1181725596" name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH.952035816" name="Specify rom width (--romwidth, -romwidth=width)" 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.86615841" name="Specify memory width (--memwidth, -memwidth=width)" 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.876565414" name="Output format" 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.377787212" name="XDCtools" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool">
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH.433008019" name="Package repositories (--xdcpath)" 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=""${COMPILER_FLAGS}"" valueType="string"/>
|
||||
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET.1864761673" name="Target (-t)" 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.435933837" name="Platform (-p)" 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.519249000" name="Platform (-p)" 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.457203420" name="Build-profile (-r)" 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.150643934" name="Compiler tools directory (-c)" 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.1168082181" name="Additional compiler options (--compileOptions)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS" value=""${COMPILER_FLAGS}"" valueType="string"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
|
||||
+14
-15
@@ -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">
|
||||
|
||||
+1
-1
@@ -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>
|
||||
|
||||
+45
-45
@@ -15,8 +15,8 @@
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1209999684" name="FlashROM" parent="com.ti.ccstudio.buildDefinitions.TMS470.Default" postannouncebuildStep="" postbuildStep="${CG_TOOL_HEX} -order MS --memwidth=8 --romwidth=8 --intel -o ${ProjName}.hex ${ProjName}.out;${TOOLS_BLE}/frontier/frontier.exe ccs ${PROJECT_LOC}/${ConfigName}/${ProjName}_linkInfo.xml ${ORG_PROJ_DIR}/../../ccs/config/ccs_compiler_defines.bcfg ${ORG_PROJ_DIR}/../../ccs/config/ccs_linker_defines.cmd" preannouncebuildStep="" prebuildStep=""${TOOLS_BLE}/lib_search/lib_search.exe" ${ORG_PROJ_DIR}/build_config.opt "${TOOLS_BLE}/lib_search/params_split_cc2640.xml" ${SRC_BLE_CORE}/../blelib "${ORG_PROJ_DIR}/../../ccs/config/lib_linker.cmd"">
|
||||
<folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Default.1209999684." name="/" resourcePath="">
|
||||
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain.958553711" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.2088015050">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.2112506999" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
|
||||
<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain.471422180" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.250601795">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1066752268" 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"/>
|
||||
@@ -26,17 +26,17 @@
|
||||
<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE="/>
|
||||
<listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.101349069" 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.572884961" 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.50794417" 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.783335843" 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.341974501" 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.274225680" 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.529764162" 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.1837039616" 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.1393115220" 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.2112471580" 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.152832201" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.INCLUDE_PATH" valueType="includePath">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.591066117" 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.465978664" 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.1782436453" 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.812292407" 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.945830577" 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.629358648" 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.1190507826" 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.524534756" 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.922960520" 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.589280788" 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.627953259" 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="${SRC_EX}/examples/simple_peripheral/cc26xx/stack"/>
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/common/cc26xx"/>
|
||||
@@ -60,7 +60,7 @@
|
||||
<listOptionValue builtIn="false" value="${SRC_EX}/profiles/roles"/>
|
||||
<listOptionValue builtIn="false" value="${CC26XXWARE}"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE.1361895403" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE" valueType="definedSymbols">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE.1479162610" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DEFINE" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="CC26XX"/>
|
||||
<listOptionValue builtIn="false" value="POWER_SAVING"/>
|
||||
<listOptionValue builtIn="false" value="CC26XXWARE"/>
|
||||
@@ -81,60 +81,60 @@
|
||||
<listOptionValue builtIn="false" value="xTESTMODES"/>
|
||||
<listOptionValue builtIn="false" value="xTEST_BLEBOARD"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.1555958931" 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.DIAG_SUPPRESS.1144396572" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS" valueType="stringList">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.C_DIALECT.966215934" 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.DIAG_SUPPRESS.1382031353" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_SUPPRESS" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="48"/>
|
||||
<listOptionValue builtIn="false" value="16004"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compilerID.DIAG_WARNING.1546809951" 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.868796990" 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.12083718" 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.1432753391" 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.CMD_FILE.1345637669" 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.2040185664" 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.381236121" 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.CMD_FILE.297855297" 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"/>
|
||||
</option>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.compiler.inputType__C_SRCS.1884548091" 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.682104615" 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.662317863" 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.728508440" 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.1192288700" 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.1950914604" 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.761772919" 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.1403518814" 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.2088015050" 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.1079333148" 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.1347544490" 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.136883143" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE" value=""${ProjName}.map"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE.1510359183" 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.1331488920" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.LIBRARY" valueType="libs">
|
||||
<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.exe.linkerDebug.250601795" 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.374772131" 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.1611239669" 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.1125944230" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.MAP_FILE" value=""${ProjName}.map"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.OUTPUT_FILE.1404460040" 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.707716591" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.LIBRARY" valueType="libs">
|
||||
<listOptionValue builtIn="false" value="libc.a"/>
|
||||
<listOptionValue builtIn="false" value="${ORG_PROJ_DIR}/../../ccs/config/lib_linker.cmd"/>
|
||||
<listOptionValue builtIn="false" value="${ROM}/ble_rom_releases/04242014/ble_rom_patch.symbols"/>
|
||||
<listOptionValue builtIn="false" value="${CC26XXWARE}/driverlib/bin/ccs/driverlib.lib"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.SEARCH_PATH.1835383942" 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.1465861606" 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.821225577" 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.2034053100" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_SUPPRESS" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="16002-D"/>
|
||||
<listOptionValue builtIn="false" value="10247-D"/>
|
||||
<listOptionValue builtIn="false" value="10325-D"/>
|
||||
<listOptionValue builtIn="false" value="10229-D"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.DIAG_WRAP.1390204935" 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.1601082213" 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.351715800" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO" value=""${ProjName}_linkInfo.xml"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.ENTRY_POINT.90863272" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.ENTRY_POINT" value="startup_entry" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.1779672459" 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.1701763005" 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.687564793" 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.1056923280" 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.73723664" 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.1351216935" 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.1920338944" 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.1799638407" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.XML_LINK_INFO" value=""${ProjName}_linkInfo.xml"" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.ENTRY_POINT.1388274122" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.ENTRY_POINT" value="startup_entry" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.linkerID.COMPRESS_DWARF.834696293" 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.1344940250" 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.1230012247" 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.270149070" 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.1784299431" 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.1766088709" name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH.494132983" 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.1603693219" 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.1153492005" 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.1645242169" name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex">
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.1.hex.ROMWIDTH.1390940545" 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.1983435198" 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.1140498271" 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>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
|
||||
+14
-15
@@ -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">
|
||||
|
||||
+211
@@ -0,0 +1,211 @@
|
||||
|
||||
#ifndef Elite15_PIN
|
||||
#define Elite_15PIN
|
||||
|
||||
#include "Elite_PIN.h"
|
||||
|
||||
static void update_latch_status (uint32_t latch_num, uint32_t elite_pin, bool highlow) {
|
||||
switch (latch_num) {
|
||||
case LOAD0: {
|
||||
switch (elite_pin) {
|
||||
case D0: {
|
||||
LH.LATCH0[0] = highlow;
|
||||
break;
|
||||
}
|
||||
case D1: {
|
||||
LH.LATCH0[1] = highlow;
|
||||
break;
|
||||
}
|
||||
case D2: {
|
||||
LH.LATCH0[2] = highlow;
|
||||
break;
|
||||
}
|
||||
case D3: {
|
||||
LH.LATCH0[3] = highlow;
|
||||
break;
|
||||
}
|
||||
case D4: {
|
||||
LH.LATCH0[4] = highlow;
|
||||
break;
|
||||
}
|
||||
case D5: {
|
||||
LH.LATCH0[5] = highlow;
|
||||
break;
|
||||
}
|
||||
case D6: {
|
||||
LH.LATCH0[6] = highlow;
|
||||
break;
|
||||
}
|
||||
case D7: {
|
||||
LH.LATCH0[7] = highlow;
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case LOAD1: {
|
||||
switch (elite_pin) {
|
||||
case D0: {
|
||||
LH.LATCH1[0] = highlow;
|
||||
break;
|
||||
}
|
||||
case D1: {
|
||||
LH.LATCH1[1] = highlow;
|
||||
break;
|
||||
}
|
||||
case D2: {
|
||||
LH.LATCH1[2] = highlow;
|
||||
break;
|
||||
}
|
||||
case D3: {
|
||||
LH.LATCH1[3] = highlow;
|
||||
break;
|
||||
}
|
||||
case D4: {
|
||||
LH.LATCH1[4] = highlow;
|
||||
break;
|
||||
}
|
||||
case D5: {
|
||||
LH.LATCH1[5] = highlow;
|
||||
break;
|
||||
}
|
||||
case D6: {
|
||||
LH.LATCH1[6] = highlow;
|
||||
break;
|
||||
}
|
||||
case D7: {
|
||||
LH.LATCH1[7] = highlow;
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case LOAD2: {
|
||||
switch (elite_pin) {
|
||||
case D0: {
|
||||
LH.LATCH2[0] = highlow;
|
||||
break;
|
||||
}
|
||||
case D1: {
|
||||
LH.LATCH2[1] = highlow;
|
||||
break;
|
||||
}
|
||||
case D2: {
|
||||
LH.LATCH2[2] = highlow;
|
||||
break;
|
||||
}
|
||||
case D3: {
|
||||
LH.LATCH2[3] = highlow;
|
||||
break;
|
||||
}
|
||||
case D4: {
|
||||
LH.LATCH2[4] = highlow;
|
||||
break;
|
||||
}
|
||||
case D5: {
|
||||
LH.LATCH2[5] = highlow;
|
||||
break;
|
||||
}
|
||||
case D6: {
|
||||
LH.LATCH2[6] = highlow;
|
||||
break;
|
||||
}
|
||||
case D7: {
|
||||
LH.LATCH2[7] = highlow;
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void PIN15_setOutputValue (uint32_t latch_num, uint32_t pin_num, bool highlow) {
|
||||
add_elite_pin();
|
||||
update_latch_status (latch_num, pin_num, highlow); // update status
|
||||
PIN_setOutputValue(&ZM_rst, latch_num, 1); // Turn on latch
|
||||
CPUdelay(10);
|
||||
switch (latch_num) {
|
||||
case LOAD0: {
|
||||
// PIN_setOutputValue(&ZM_rst, D0, LH.LATCH0[0]);
|
||||
// PIN_setOutputValue(&ZM_rst, D1, LH.LATCH0[1]);
|
||||
// PIN_setOutputValue(&ZM_rst, D2, LH.LATCH0[2]);
|
||||
// PIN_setOutputValue(&ZM_rst, D3, LH.LATCH0[3]);
|
||||
PIN_setOutputValue(&ZM_rst, D4, LH.LATCH0[4]);
|
||||
PIN_setOutputValue(&ZM_rst, D5, LH.LATCH0[5]);
|
||||
PIN_setOutputValue(&ZM_rst, D6, LH.LATCH0[6]);
|
||||
PIN_setOutputValue(&ZM_rst, D7, LH.LATCH0[7]);
|
||||
break;
|
||||
}
|
||||
case LOAD1: {
|
||||
PIN_setOutputValue(&ZM_rst, D0, LH.LATCH1[0]);
|
||||
PIN_setOutputValue(&ZM_rst, D1, LH.LATCH1[1]);
|
||||
PIN_setOutputValue(&ZM_rst, D2, LH.LATCH1[2]);
|
||||
PIN_setOutputValue(&ZM_rst, D3, LH.LATCH1[3]);
|
||||
PIN_setOutputValue(&ZM_rst, D4, LH.LATCH1[4]);
|
||||
PIN_setOutputValue(&ZM_rst, D5, LH.LATCH1[5]);
|
||||
PIN_setOutputValue(&ZM_rst, D6, LH.LATCH1[6]);
|
||||
PIN_setOutputValue(&ZM_rst, D7, LH.LATCH1[7]);
|
||||
break;
|
||||
}
|
||||
case LOAD2: {
|
||||
PIN_setOutputValue(&ZM_rst, D0, LH.LATCH2[0]);
|
||||
PIN_setOutputValue(&ZM_rst, D1, LH.LATCH2[1]);
|
||||
PIN_setOutputValue(&ZM_rst, D2, LH.LATCH2[2]);
|
||||
PIN_setOutputValue(&ZM_rst, D3, LH.LATCH2[3]);
|
||||
PIN_setOutputValue(&ZM_rst, D4, LH.LATCH2[4]);
|
||||
PIN_setOutputValue(&ZM_rst, D5, LH.LATCH2[5]);
|
||||
PIN_setOutputValue(&ZM_rst, D6, LH.LATCH2[6]);
|
||||
PIN_setOutputValue(&ZM_rst, D7, LH.LATCH2[7]);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
break;
|
||||
}
|
||||
}
|
||||
CPUdelay(10);
|
||||
PIN_setOutputValue(&ZM_rst, latch_num, 0); // Turn off latch
|
||||
remove_elite_pin();
|
||||
}
|
||||
|
||||
// Set every GPIO pin to LOW
|
||||
static void Init_Elite15_PIN () {
|
||||
InitLH();
|
||||
add_elite_pin();
|
||||
|
||||
PIN_setOutputValue(pin_handle, LOAD0, 1);
|
||||
PIN_setOutputValue(pin_handle, LOAD1, 1);
|
||||
PIN_setOutputValue(pin_handle, LOAD2, 1);
|
||||
CPUdelay(10);
|
||||
PIN_setOutputValue(pin_handle, D0, 0);
|
||||
PIN_setOutputValue(pin_handle, D1, 0);
|
||||
PIN_setOutputValue(pin_handle, D2, 0);
|
||||
PIN_setOutputValue(pin_handle, D3, 0);
|
||||
PIN_setOutputValue(pin_handle, D4, 0);
|
||||
PIN_setOutputValue(pin_handle, D5, 0);
|
||||
PIN_setOutputValue(pin_handle, D6, 0);
|
||||
PIN_setOutputValue(pin_handle, D7, 0);
|
||||
CPUdelay(10);
|
||||
PIN_setOutputValue(pin_handle, LOAD0, 0);
|
||||
PIN_setOutputValue(pin_handle, LOAD1, 0);
|
||||
PIN_setOutputValue(pin_handle, LOAD2, 0);
|
||||
|
||||
remove_elite_pin();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
+145
-52
@@ -62,32 +62,70 @@ static void ADC_read(uint8_t *ADCdata){
|
||||
|
||||
static void ADCGainControl(uint8_t ADCLevel){
|
||||
if(ADCLevel == 0){
|
||||
// ADC gain level = 0, using 200K resister
|
||||
PIN_setOutputValue(pin_handle, Turnon10K, 0);
|
||||
PIN_setOutputValue(pin_handle, Turnon200R, 0);
|
||||
// ADC gain level = 0, using 3M resister
|
||||
PIN15_setOutputValue(Turnon_I_LARGE, 0);
|
||||
PIN15_setOutputValue(Turnon_I_MID, 0);
|
||||
PIN15_setOutputValue(Turnon_I_SMALL, 0);
|
||||
}
|
||||
else if(ADCLevel == 1){
|
||||
// ADC gain level = 1, using 10K resister
|
||||
PIN_setOutputValue(pin_handle, Turnon10K, 1);
|
||||
PIN_setOutputValue(pin_handle, Turnon200R, 0);
|
||||
// ADC gain level = 1, using 100K resister
|
||||
PIN15_setOutputValue(Turnon_I_LARGE, 0);
|
||||
PIN15_setOutputValue(Turnon_I_MID, 0);
|
||||
PIN15_setOutputValue(Turnon_I_SMALL, 1);
|
||||
}
|
||||
else if(ADCLevel == 2){
|
||||
// ADC gain level = 2, using 200R resister
|
||||
PIN_setOutputValue(pin_handle, Turnon10K, 0);
|
||||
PIN_setOutputValue(pin_handle, Turnon200R, 1);
|
||||
// ADC gain level = 2, using 3K resister
|
||||
PIN15_setOutputValue(Turnon_I_LARGE, 0);
|
||||
PIN15_setOutputValue(Turnon_I_MID, 1);
|
||||
PIN15_setOutputValue(Turnon_I_SMALL, 0);
|
||||
}
|
||||
else if(ADCLevel == 3){
|
||||
// ADC gain level = 0, auto gain (using 200R resister)
|
||||
PIN_setOutputValue(pin_handle, Turnon10K, 0);
|
||||
PIN_setOutputValue(pin_handle, Turnon200R, 1);
|
||||
// ADC gain level = 3, using 100R resistor
|
||||
PIN15_setOutputValue(Turnon_I_LARGE, 1);
|
||||
PIN15_setOutputValue(Turnon_I_MID, 0);
|
||||
PIN15_setOutputValue(Turnon_I_SMALL, 0);
|
||||
}
|
||||
else if(ADCLevel == 4){
|
||||
// ADC gain level = 3, auto gain (using 100R resister)
|
||||
PIN15_setOutputValue(Turnon_I_LARGE, 1);
|
||||
PIN15_setOutputValue(Turnon_I_MID, 0);
|
||||
PIN15_setOutputValue(Turnon_I_SMALL, 0);
|
||||
}
|
||||
else{
|
||||
// default using 200R resister
|
||||
PIN_setOutputValue(pin_handle, Turnon10K, 0);
|
||||
PIN_setOutputValue(pin_handle, Turnon200R, 1);
|
||||
// default using 100R resister
|
||||
PIN15_setOutputValue(Turnon_I_LARGE, 1);
|
||||
PIN15_setOutputValue(Turnon_I_MID, 0);
|
||||
PIN15_setOutputValue(Turnon_I_SMALL, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static void VinADCGainControl(uint8_t VinADCLevel){
|
||||
if(VinADCLevel == 0){
|
||||
// Vin ADC gain level = 0, using 1M resister
|
||||
PIN15_setOutputValue(Turnon_V_SMALL, 0);
|
||||
PIN15_setOutputValue(Turnon_V_MID, 0);
|
||||
}
|
||||
else if(VinADCLevel == 1){
|
||||
// Vin ADC gain level = 1, using 30K resister
|
||||
PIN15_setOutputValue(Turnon_V_SMALL, 0);
|
||||
PIN15_setOutputValue(Turnon_V_MID, 1);
|
||||
}
|
||||
else if(VinADCLevel == 2){
|
||||
// Vin ADC gain level = 2, using 1K resister
|
||||
PIN15_setOutputValue(Turnon_V_SMALL, 1);
|
||||
PIN15_setOutputValue(Turnon_V_MID, 0);
|
||||
}
|
||||
else if(VinADCLevel == 3){
|
||||
// Vin ADC gain level = 3, auto gain (using 1K resister)
|
||||
PIN15_setOutputValue(Turnon_V_SMALL, 1);
|
||||
PIN15_setOutputValue(Turnon_V_MID, 0);
|
||||
}
|
||||
else{
|
||||
// default using 1K resister
|
||||
PIN15_setOutputValue(Turnon_V_SMALL, 1);
|
||||
PIN15_setOutputValue(Turnon_V_MID, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static void ADCChannelSelect(uint8_t ADCChannel){
|
||||
// set ADC parameter
|
||||
@@ -128,111 +166,166 @@ static void ADCChannelSelect(uint8_t ADCChannel){
|
||||
|
||||
static void ReadVolt(uint8_t *buf){
|
||||
// Read data twice since the first data we get is previous data
|
||||
VinADCGainControl(INSTRUCTION.VinADCGainLevel);
|
||||
ADCChannelSelect(ADC_CH_VOLT);
|
||||
CPUdelay(10);
|
||||
ADC_read(buf);
|
||||
|
||||
ADCChannelSelect(ADC_CH_VOLT);
|
||||
CPUdelay(10);
|
||||
ADC_read(buf);
|
||||
}
|
||||
|
||||
static void ReadVoutVolt(uint8_t *buf){
|
||||
// Read data twice since the first data we get is previous data
|
||||
ADCChannelSelect(ADC_CH_DAC);
|
||||
CPUdelay(10);
|
||||
ADC_read(buf);
|
||||
|
||||
ADCChannelSelect(ADC_CH_DAC);
|
||||
CPUdelay(10);
|
||||
ADC_read(buf);
|
||||
}
|
||||
|
||||
static void ReadCurrent(uint8_t *buf){
|
||||
INSTRUCTION.ADCGainLevel = 0;
|
||||
// Read data twice since the first data we get is previous data
|
||||
ADCGainControl(INSTRUCTION.ADCGainLevel);
|
||||
ADCChannelSelect(ADC_CH_CURRENT);
|
||||
CPUdelay(10);
|
||||
ADC_read(buf);
|
||||
|
||||
ADCChannelSelect(ADC_CH_CURRENT);
|
||||
ADC_read(buf);
|
||||
}
|
||||
|
||||
static void ReadBatVolt(uint8_t *buf){
|
||||
// Read data twice since the first data we get is previous data
|
||||
ADCChannelSelect(ADC_CH_BAT);
|
||||
CPUdelay(10);
|
||||
ADC_read(buf);
|
||||
|
||||
ADCChannelSelect(ADC_CH_BAT);
|
||||
CPUdelay(10);
|
||||
ADC_read(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
|
||||
|
||||
// Elite1.5 3M, 100K, 3K, 100R
|
||||
// theoretical boundary <2.67, 1.89~80, 63~2600, >1900 (uA)
|
||||
#define GAIN_SMALL_BOUNDARY 2670 // 2.67 uA = 2,670,000 pA
|
||||
#define GAIN_MID1_BOUNDARY1 1890 // 1.89 uA = 1,890,000 pA
|
||||
#define GAIN_MID1_BOUNDARY2 80000 // 80 uA = 80,000,000 pA
|
||||
#define GAIN_MID2_BOUNDARY1 63000 // 63 uA = 63,000,000 pA
|
||||
#define GAIN_MID2_BOUNDARY2 2600000 // 2600 uA = 2,600,000,000 pA
|
||||
#define GAIN_LARGE_BOUNDARY 1900000 // 1900 uA = 1,900,000,000 pA
|
||||
|
||||
static int32_t AutoGainReadCurrent(uint8_t *buf){
|
||||
int32_t Real_Current = 0;
|
||||
|
||||
if(INSTRUCTION.ADCGainLevel == GAIN_AUTO){
|
||||
INSTRUCTION.ADCGainLevel = GAIN_200R;
|
||||
if(INSTRUCTION.ADCGainLevel == I_GAIN_AUTO){
|
||||
INSTRUCTION.ADCGainLevel = I_GAIN_100R;
|
||||
}
|
||||
|
||||
if(INSTRUCTION.ADCGainLevel == GAIN_200R){
|
||||
if(INSTRUCTION.ADCGainLevel == I_GAIN_100R){
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
Real_Current = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
|
||||
// switch to mid range current
|
||||
if(Real_Current < GAIN_LARGE_BOUNDARY && Real_Current > -1*GAIN_LARGE_BOUNDARY){
|
||||
INSTRUCTION.ADCGainLevel = GAIN_10K;
|
||||
INSTRUCTION.ADCGainLevel = I_GAIN_3K;
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
Real_Current = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
// LED_color(DARKLED, 0x00, 0xFF, 0x00);
|
||||
|
||||
// // switch to small range current
|
||||
// if (Real_Current < GAIN_MID_BOUNDARY1 && Real_Current > -1*GAIN_MID_BOUNDARY1){
|
||||
// INSTRUCTION.ADCGainLevel = GAIN_200K;
|
||||
// ReadCurrent(spi_ADC_rxbuf);
|
||||
// Real_Current = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
// LED_color(DARKLED, 0xFF, 0x00, 0x00);
|
||||
// }
|
||||
if (Real_Current < GAIN_MID2_BOUNDARY1 && Real_Current > -1*GAIN_MID2_BOUNDARY1){
|
||||
INSTRUCTION.ADCGainLevel = I_GAIN_100K;
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
Real_Current = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
|
||||
if(Real_Current < GAIN_MID1_BOUNDARY1 && Real_Current > -1*GAIN_MID1_BOUNDARY1){
|
||||
INSTRUCTION.ADCGainLevel = I_GAIN_3M;
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
Real_Current = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(INSTRUCTION.ADCGainLevel == GAIN_10K){
|
||||
else if(INSTRUCTION.ADCGainLevel == I_GAIN_3K){
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
Real_Current = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
|
||||
// switch to large range current
|
||||
if(Real_Current > GAIN_MID_BOUNDARY2 || Real_Current < -1*GAIN_MID_BOUNDARY2){
|
||||
INSTRUCTION.ADCGainLevel = GAIN_200R;
|
||||
if(Real_Current > GAIN_MID2_BOUNDARY2 || Real_Current < -1*GAIN_MID2_BOUNDARY2){
|
||||
INSTRUCTION.ADCGainLevel = I_GAIN_100R;
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
Real_Current = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
}
|
||||
|
||||
// switch to small range current
|
||||
else if (Real_Current < GAIN_MID_BOUNDARY1 && Real_Current > -1*GAIN_MID_BOUNDARY1){
|
||||
INSTRUCTION.ADCGainLevel = GAIN_200K;
|
||||
else if (Real_Current < GAIN_MID2_BOUNDARY1 && Real_Current > -1*GAIN_MID2_BOUNDARY1){
|
||||
INSTRUCTION.ADCGainLevel = I_GAIN_100K;
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
Real_Current = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
|
||||
if (Real_Current < GAIN_MID1_BOUNDARY1 && Real_Current > -1*GAIN_MID1_BOUNDARY1){
|
||||
INSTRUCTION.ADCGainLevel = I_GAIN_3M;
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
Real_Current = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(INSTRUCTION.ADCGainLevel == I_GAIN_100K){
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
Real_Current = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
|
||||
// switch to large range current
|
||||
if(Real_Current > GAIN_MID1_BOUNDARY2 || Real_Current < -1*GAIN_MID1_BOUNDARY2){
|
||||
INSTRUCTION.ADCGainLevel = I_GAIN_3K;
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
Real_Current = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
|
||||
if(Real_Current > GAIN_MID2_BOUNDARY2 || Real_Current < -1*GAIN_MID2_BOUNDARY2){
|
||||
INSTRUCTION.ADCGainLevel = I_GAIN_100R;
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
Real_Current = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
}
|
||||
}
|
||||
|
||||
// switch to small range current
|
||||
else if (Real_Current < GAIN_MID1_BOUNDARY1 && Real_Current > -1*GAIN_MID1_BOUNDARY1){
|
||||
INSTRUCTION.ADCGainLevel = I_GAIN_3M;
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
Real_Current = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
}
|
||||
}
|
||||
else if(INSTRUCTION.ADCGainLevel == GAIN_200K){
|
||||
else if(INSTRUCTION.ADCGainLevel == I_GAIN_3M){
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
Real_Current = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
|
||||
// switch to mid range current
|
||||
// switch to mid1 range current
|
||||
if(Real_Current > GAIN_SMALL_BOUNDARY || Real_Current < -1*GAIN_SMALL_BOUNDARY){
|
||||
INSTRUCTION.ADCGainLevel = GAIN_10K;
|
||||
INSTRUCTION.ADCGainLevel = I_GAIN_100K;
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
Real_Current = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
// switch to large range current
|
||||
// if(Real_Current > GAIN_MID_BOUNDARY2 || Real_Current < -1*GAIN_MID_BOUNDARY2){
|
||||
// INSTRUCTION.ADCGainLevel = GAIN_200R;
|
||||
// ReadCurrent(spi_ADC_rxbuf);
|
||||
// Real_Current = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
// }
|
||||
}
|
||||
|
||||
// switch to mid2 range current
|
||||
if(Real_Current > GAIN_MID1_BOUNDARY2 || Real_Current < -1*GAIN_MID1_BOUNDARY2){
|
||||
INSTRUCTION.ADCGainLevel = I_GAIN_3K;
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
Real_Current = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
|
||||
// switch to large range current
|
||||
if(Real_Current > GAIN_MID2_BOUNDARY2 || Real_Current < -1*GAIN_MID2_BOUNDARY2){
|
||||
INSTRUCTION.ADCGainLevel = I_GAIN_100R;
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
Real_Current = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return Real_Current;
|
||||
}
|
||||
|
||||
+13
-4
@@ -46,10 +46,19 @@ static int32_t CCModeReadCurrent(CCMode *CC){
|
||||
else{
|
||||
VoltCurrentSwitch = 0;
|
||||
}
|
||||
NotifyVolt[0] = (uint8_t) (CC->BatteryV >> 24);
|
||||
NotifyVolt[1] = (uint8_t) ((CC->BatteryV & 0x00FF0000) >> 16);
|
||||
NotifyVolt[2] = (uint8_t) ((CC->BatteryV & 0x0000FF00) >> 8);
|
||||
NotifyVolt[3] = (uint8_t) (CC->BatteryV & 0x000000FF);
|
||||
|
||||
if(INSTRUCTION.VoVi_Switch == 2){
|
||||
int32_t Vscan = ((INSTRUCTION.VoltConstant - 25000) * 1000 / 5) - CC->BatteryV;
|
||||
NotifyVolt[0] = (uint8_t) (Vscan >> 24);
|
||||
NotifyVolt[1] = (uint8_t) ((Vscan & 0x00FF0000) >> 16);
|
||||
NotifyVolt[2] = (uint8_t) ((Vscan & 0x0000FF00) >> 8);
|
||||
NotifyVolt[3] = (uint8_t) (Vscan & 0x000000FF);
|
||||
}else{
|
||||
NotifyVolt[0] = (uint8_t) (CC->BatteryV >> 24);
|
||||
NotifyVolt[1] = (uint8_t) ((CC->BatteryV & 0x00FF0000) >> 16);
|
||||
NotifyVolt[2] = (uint8_t) ((CC->BatteryV & 0x0000FF00) >> 8);
|
||||
NotifyVolt[3] = (uint8_t) (CC->BatteryV & 0x000000FF);
|
||||
}
|
||||
return CC->_MeasureData;
|
||||
}
|
||||
|
||||
|
||||
+222
@@ -0,0 +1,222 @@
|
||||
|
||||
#ifndef ELITECV3
|
||||
#define ELITECV3
|
||||
|
||||
static uint16_t CV3Curve(CV3Mode *CV3){
|
||||
static uint16_t DACOutCode;
|
||||
static bool direction_up; // direction_up = true, if InitDirection=1
|
||||
static bool current_direction_up; // current_direction_up = true, Vstep => positive. vice versa
|
||||
static uint16_t VminCounter;
|
||||
static uint16_t VmaxCounter;
|
||||
static uint16_t Vset;
|
||||
static uint16_t NotifyCount;
|
||||
uint16_t Vscan;
|
||||
uint16_t error;
|
||||
uint16_t Vin_to_Usercode;
|
||||
static uint16_t PreviousVoltConstant;
|
||||
|
||||
if(!CV3ModeDACEnable){
|
||||
// DAC should not work now
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
if (DACReset) {
|
||||
VminCounter = 0;
|
||||
VmaxCounter = 0;
|
||||
Vset = CV3->VInit;
|
||||
NotifyCount = 1;
|
||||
NotifyEnable = 1;
|
||||
|
||||
if(CV3->InitDirection){
|
||||
direction_up = true;
|
||||
current_direction_up = true;
|
||||
}else{
|
||||
direction_up = false;
|
||||
current_direction_up = false;
|
||||
}
|
||||
Vin_to_Usercode = (uint16_t)(25000 + (CV3->MeasureVolt / 1000 * 5));//uV => Usercode
|
||||
INSTRUCTION.VoltConstant = Vset + Vin_to_Usercode - 25000;
|
||||
|
||||
// if(Vset > Vscan){
|
||||
// error = Vset - Vscan;
|
||||
// INSTRUCTION.VoltConstant = INSTRUCTION.VoltConstant + error * 9 / 10;
|
||||
// }else if(Vset < Vscan){
|
||||
// error = Vset - Vscan;
|
||||
// INSTRUCTION.VoltConstant = INSTRUCTION.VoltConstant - error * 9 / 10;
|
||||
// }
|
||||
DACOutCode = Usercode_Correction_to_DAC(INSTRUCTION.VoltConstant);
|
||||
DAC_outputV(DACOutCode); // output VOLT_ORIGIN
|
||||
PreviousVoltConstant = INSTRUCTION.VoltConstant;
|
||||
DACReset = false;
|
||||
|
||||
int32_t RealVout;
|
||||
RealVout = (int32_t)(INSTRUCTION.VoltConstant - 25000)*1000/5;
|
||||
InputNotify(NOTIFY_IMPEDANCE, RealVout);
|
||||
|
||||
int32_t RealV;
|
||||
RealV = ((int32_t)(INSTRUCTION.VoltConstant) - (int32_t)(Vin_to_Usercode)) * 1000 / 5;
|
||||
InputNotify(NOTIFY_VOLT, RealV);
|
||||
return DACOutCode;
|
||||
}
|
||||
|
||||
if (CT.StepTimeCounter == CV3->StepTime) {
|
||||
|
||||
if(NotifyCount == INSTRUCTION.NotifyRate){
|
||||
NotifyEnable = 1;
|
||||
NotifyCount = 1;
|
||||
}else{
|
||||
NotifyCount++;
|
||||
}
|
||||
|
||||
if (Vset >= CV3->VMax){
|
||||
current_direction_up = false;
|
||||
}else if (Vset <= CV3->VMin){
|
||||
current_direction_up = true;
|
||||
}
|
||||
|
||||
if (current_direction_up) {
|
||||
Vset = Vset + 1;
|
||||
}else{
|
||||
Vset = Vset - 1;
|
||||
}
|
||||
Vin_to_Usercode = (uint16_t)(25000 + (CV3->MeasureVolt / 1000 * 5));//uV => Usercode
|
||||
INSTRUCTION.VoltConstant = (Vset + Vin_to_Usercode) - DAC_ZERO; // 25000 is DAC_ZERO
|
||||
DACOutCode = Usercode_Correction_to_DAC(INSTRUCTION.VoltConstant);
|
||||
DAC_outputV(DACOutCode);
|
||||
PreviousVoltConstant = INSTRUCTION.VoltConstant;
|
||||
/*stop condition*/
|
||||
if(Vset == CV3->VMax){
|
||||
VmaxCounter++;
|
||||
}else if(Vset == CV3->VMin){
|
||||
VminCounter++;
|
||||
}
|
||||
|
||||
if(VmaxCounter == VminCounter){ //calculate cycle number
|
||||
if(Vset == CV3->VInit){
|
||||
CV3->CycleNumber--;
|
||||
if(CV3->CycleNumber == 0){
|
||||
PeriodicEvent = false;
|
||||
DACReset = true;
|
||||
CV3ModeDACEnable = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// NotifyImpedance[0] = 0x00;
|
||||
// NotifyImpedance[1] = 0x00;
|
||||
// NotifyImpedance[2] = (uint8_t) ((INSTRUCTION.VoltConstant & 0xFF00) >> 8);
|
||||
// NotifyImpedance[3] = (uint8_t) (INSTRUCTION.VoltConstant & 0x00FF);
|
||||
}else{
|
||||
Vin_to_Usercode = (uint16_t)(25000 + (CV3->MeasureVolt / 1000 * 5));//uV => Usercode
|
||||
if(PreviousVoltConstant != ((Vset + Vin_to_Usercode) - DAC_ZERO)){
|
||||
INSTRUCTION.VoltConstant = (Vset + Vin_to_Usercode) - DAC_ZERO; // 25000 is DAC_ZERO
|
||||
// if(Vset > Vscan){
|
||||
// error = Vset - Vscan;
|
||||
// INSTRUCTION.VoltConstant = INSTRUCTION.VoltConstant + error * 9 / 10;
|
||||
// }else if(Vset < Vscan){
|
||||
// error = Vset - Vscan;
|
||||
// INSTRUCTION.VoltConstant = INSTRUCTION.VoltConstant - error * 9 / 10;
|
||||
// }
|
||||
DACOutCode = Usercode_Correction_to_DAC(INSTRUCTION.VoltConstant);
|
||||
DAC_outputV(DACOutCode);
|
||||
PreviousVoltConstant = INSTRUCTION.VoltConstant;
|
||||
}
|
||||
}
|
||||
int32_t RealVout;
|
||||
RealVout = (int32_t)(INSTRUCTION.VoltConstant - 25000)*1000/5;
|
||||
InputNotify(NOTIFY_IMPEDANCE, RealVout);
|
||||
|
||||
int32_t RealV;
|
||||
RealV = ((int32_t)(INSTRUCTION.VoltConstant) - (int32_t)(Vin_to_Usercode)) * 1000 / 5;
|
||||
InputNotify(NOTIFY_VOLT, RealV);
|
||||
|
||||
return DACOutCode;
|
||||
}
|
||||
|
||||
|
||||
static void CV3_Plot(CV3Mode *CV3){
|
||||
static uint8_t PreviousGain = I_GAIN_100R;
|
||||
static uint8_t VoltCurrentSwitch = 0;
|
||||
uint16_t ADC_measure = 0;
|
||||
|
||||
if(VoltCurrentSwitch == 0){
|
||||
// read current
|
||||
if(INSTRUCTION.AutoGainEnable){
|
||||
CV3->_MeasureData = AutoGainReadCurrent(spi_ADC_rxbuf);
|
||||
}
|
||||
else{
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
CV3->_MeasureData = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
}
|
||||
|
||||
if(!DACReset){
|
||||
InputNotify(NOTIFY_CURRENT, CV3->_MeasureData);
|
||||
}else{
|
||||
InputNotify(NOTIFY_CURRENT, 0x00000000); //because first Iin is wrong data
|
||||
}
|
||||
|
||||
|
||||
// read Volt
|
||||
if(CV3->_VoVi_Switch == 0x01){
|
||||
// read vin volt
|
||||
ReadVolt(spi_ADC_rxbuf);
|
||||
}else if(CV3->_VoVi_Switch == 0x00){
|
||||
// read vout volt
|
||||
ReadVoutVolt(spi_ADC_rxbuf);
|
||||
}
|
||||
|
||||
VoltCurrentSwitch++;
|
||||
}
|
||||
else if(VoltCurrentSwitch == 1){
|
||||
// read Volt
|
||||
if(CV3->_VoVi_Switch == 0x01){
|
||||
// read vin volt
|
||||
ReadVolt(spi_ADC_rxbuf);
|
||||
}else if(CV3->_VoVi_Switch == 0x00){
|
||||
// read vout volt
|
||||
ReadVoutVolt(spi_ADC_rxbuf);
|
||||
}
|
||||
|
||||
VoltCurrentSwitch++;
|
||||
}
|
||||
else if(VoltCurrentSwitch == 2){
|
||||
if(CV3->_VoVi_Switch == 0x01){
|
||||
// read vin volt
|
||||
ReadVolt(spi_ADC_rxbuf);
|
||||
ADC_measure = (uint16_t) (spi_ADC_rxbuf[0] << 8) | (uint16_t) (spi_ADC_rxbuf[1]);
|
||||
CV3->MeasureVolt = DecodeADCVolt(ADC_measure);
|
||||
}else if(CV3->_VoVi_Switch == 0x00){
|
||||
// read vout volt
|
||||
ReadVoutVolt(spi_ADC_rxbuf);
|
||||
ADC_measure = (uint16_t) (spi_ADC_rxbuf[0] << 8) | (uint16_t) (spi_ADC_rxbuf[1]);
|
||||
CV3->MeasureVolt = DecodeADCVoutVolt(ADC_measure);
|
||||
}
|
||||
|
||||
// read current
|
||||
|
||||
if(INSTRUCTION.AutoGainEnable){
|
||||
CV3->_MeasureData = AutoGainReadCurrent(spi_ADC_rxbuf);
|
||||
}
|
||||
else{
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
CV3->_MeasureData = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
}
|
||||
|
||||
VoltCurrentSwitch++;
|
||||
}
|
||||
else if(VoltCurrentSwitch == 3){
|
||||
if(INSTRUCTION.AutoGainEnable){
|
||||
CV3->_MeasureData = AutoGainReadCurrent(spi_ADC_rxbuf);
|
||||
}
|
||||
else{
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
CV3->_MeasureData = DecodeADCValue(INSTRUCTION.ADCGainLevel, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
}
|
||||
VoltCurrentSwitch = 0;
|
||||
CV3ModeDACEnable = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
+239
-65
@@ -136,10 +136,10 @@ static uint16_t CVCurve(CVMode *CV) {
|
||||
static uint16_t DACOutCode;
|
||||
static bool direction_up; // direction_up = true, if Vfinal > Vorigin
|
||||
static bool current_direction_up; // current_direction_up = true, Vstep => positive. vice versa
|
||||
|
||||
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,64 +148,157 @@ 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;
|
||||
return DACOutCode;
|
||||
}
|
||||
|
||||
if (CT.StepTimeCounter == CV->_StepTime) {
|
||||
|
||||
// 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!!!!!!
|
||||
} else if (CV->MeasureVolt <= ((int32_t)(CV->_VOrigin) - DAC_ZERO)/5) {
|
||||
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 (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!!!!!!
|
||||
} else if (CV->MeasureVolt >= ((int32_t)(CV->_VOrigin) - DAC_ZERO)/5){
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
// if (current_direction_up == true){
|
||||
@@ -220,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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -275,66 +395,99 @@ 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 (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 (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;
|
||||
// DACUserCode overflow ?
|
||||
if (INSTRUCTION.VoltConstant + CV->_Step < INSTRUCTION.VoltConstant) {
|
||||
INSTRUCTION.VoltConstant = CV->_VOrigin;
|
||||
}
|
||||
else if (CV->MeasureVolt + ((int32_t)(CV->_Step) - DAC_ZERO)/5 > ((int32_t)(CV->_VOrigin) - DAC_ZERO)/5) {
|
||||
DACUserCode = CV->_VOrigin;
|
||||
// ex:command 3->1V ,when 1 to 3V, 2.99+0.1 > 3V
|
||||
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 (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(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;
|
||||
}
|
||||
|
||||
static void CV_Plot(CVMode *CV){
|
||||
static uint8_t PreviousGain = GAIN_200R;
|
||||
static uint8_t PreviousGain = I_GAIN_100R;
|
||||
|
||||
static uint8_t VoltCurrentSwitch = 0;
|
||||
uint16_t ADC_measure = 0;
|
||||
@@ -380,7 +533,7 @@ static void CV_Plot(CVMode *CV){
|
||||
// }
|
||||
else if(VoltCurrentSwitch < 9){
|
||||
if(CV->_VoVi_Switch == 0x01){
|
||||
// read volt
|
||||
// read vin volt
|
||||
ReadVolt(spi_ADC_rxbuf);
|
||||
}else if(CV->_VoVi_Switch == 0x00){
|
||||
// read vout volt
|
||||
@@ -390,19 +543,31 @@ static void CV_Plot(CVMode *CV){
|
||||
}
|
||||
else if(VoltCurrentSwitch == 9){
|
||||
if(CV->_VoVi_Switch == 0x01){
|
||||
/** read battery voltage **/
|
||||
// read vin volt
|
||||
ReadVolt(spi_ADC_rxbuf);
|
||||
ADC_measure = (uint16_t) (spi_ADC_rxbuf[0] << 8) | (uint16_t) (spi_ADC_rxbuf[1]);
|
||||
//CV->MeasureVolt = 20000;
|
||||
CV->MeasureVolt = DecodeADCVolt(ADC_measure);
|
||||
}else if(CV->_VoVi_Switch == 0x00){
|
||||
/** read vout voltage **/
|
||||
// read vout volt
|
||||
ReadVoutVolt(spi_ADC_rxbuf);
|
||||
ADC_measure = (uint16_t) (spi_ADC_rxbuf[0] << 8) | (uint16_t) (spi_ADC_rxbuf[1]);
|
||||
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{
|
||||
VoltCurrentSwitch = 0;
|
||||
}
|
||||
@@ -413,11 +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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
+34
@@ -43,6 +43,10 @@ static uint16_t DAC_outputV(uint16_t voltLV) {
|
||||
// 0x02 = clear
|
||||
// 0x31 = output voltage
|
||||
|
||||
// if (!HighZMode) {
|
||||
// High_Z_switch(1);
|
||||
// }
|
||||
|
||||
uint8_t v1, v2 = 0;
|
||||
v1 = (uint8_t) ((voltLV & 0xFF00) >> 8);
|
||||
v2 = (uint8_t) (voltLV & 0x00FF);
|
||||
@@ -55,6 +59,25 @@ static uint16_t DAC_outputV(uint16_t voltLV) {
|
||||
return voltLV;
|
||||
}
|
||||
|
||||
static void VoutGainControl(uint8_t VOUTLevel){
|
||||
if(VOUTLevel == 0){
|
||||
// VOUT gain level = 0, using 240K resister
|
||||
PIN15_setOutputValue(Turon_VOUT_SMALL, 0);
|
||||
}
|
||||
else if(VOUTLevel == 1){
|
||||
// VOUT gain level = 1, using 15K resister
|
||||
PIN15_setOutputValue(Turon_VOUT_SMALL, 1);
|
||||
}
|
||||
else if(VOUTLevel == 2){
|
||||
// VOUT gain level = 2, auto gain (using 15K resister)
|
||||
PIN15_setOutputValue(Turon_VOUT_SMALL, 1);
|
||||
}
|
||||
else{
|
||||
// default using 15K resister
|
||||
PIN15_setOutputValue(Turon_VOUT_SMALL, 1);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
static int32_t User2Real(uint16_t UserCode){
|
||||
@@ -62,4 +85,15 @@ static int32_t User2Real(uint16_t UserCode){
|
||||
return (int32_t) ((UserCode - 25000)*2)/10;
|
||||
}
|
||||
|
||||
static void High_Z_switch(bool on_off) {
|
||||
if(on_off) {
|
||||
PIN15_setOutputValue(HIGH_Z_MODE, 0); // turn on high impedance mode
|
||||
HighZMode = true;
|
||||
} else{
|
||||
PIN15_setOutputValue(HIGH_Z_MODE, 1); // turn off high impedance mode
|
||||
HighZMode = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
+687
-53
@@ -29,7 +29,7 @@
|
||||
*/
|
||||
|
||||
|
||||
#define BOARD_KUMA
|
||||
#define BOARD_ANGUS
|
||||
|
||||
typedef struct _formula{
|
||||
|
||||
@@ -107,23 +107,23 @@ struct _correction{
|
||||
|
||||
#ifdef BORAD_CHAO_I
|
||||
{
|
||||
.ADC_volt.coeff = (-6278082),
|
||||
.ADC_volt.offset = 151228681410,
|
||||
.ADC_volt.coeff = (-6279506),
|
||||
.ADC_volt.offset = 97874469007,
|
||||
|
||||
.ADC_current[0].coeff = 30908391,
|
||||
.ADC_current[0].offset = (-741477595514),
|
||||
.ADC_current[0].coeff = 31438899,
|
||||
.ADC_current[0].offset = (-468105555431),
|
||||
|
||||
.ADC_current[1].coeff = 661271310,
|
||||
.ADC_current[1].offset = (-15864495597969),
|
||||
.ADC_current[1].coeff = 658993934,
|
||||
.ADC_current[1].offset = (-9821645588913),
|
||||
|
||||
.ADC_current[2].coeff = 31183513,
|
||||
.ADC_current[2].offset = (-748178468530),
|
||||
.ADC_current[2].coeff = 31523469648,
|
||||
.ADC_current[2].offset = (-469042958805657),
|
||||
|
||||
.DAC2RealV.coeff = (-18975108),
|
||||
.DAC2RealV.offset = 644442607989,
|
||||
|
||||
.Usercode2DAC.coeff = (-10540121),
|
||||
.Usercode2DAC.offset = 603128277368,
|
||||
.Usercode2DAC.coeff = (-10568089),
|
||||
.Usercode2DAC.offset = 550078936780,
|
||||
|
||||
.Gain0Boundary[0] = 0x5D96,
|
||||
.Gain0Boundary[1] = 0x5DD9,
|
||||
@@ -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 = 31169316,
|
||||
.ADC_current[0].offset = (-507589234000),
|
||||
|
||||
.ADC_current[1].coeff = 654824495,
|
||||
.ADC_current[1].offset = (-10660542778914),
|
||||
.ADC_current[1].coeff = 657889599,
|
||||
.ADC_current[1].offset = (-10712745285212),
|
||||
|
||||
.ADC_current[2].coeff = 31376265,
|
||||
.ADC_current[2].offset = (-510797752348),
|
||||
.ADC_current[2].coeff = 31568312650,
|
||||
.ADC_current[2].offset = (-514058403190859),
|
||||
|
||||
.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,
|
||||
@@ -792,8 +792,8 @@ struct _correction{
|
||||
.ADC_volt.coeff = (-6242774),
|
||||
.ADC_volt.offset = 101201319007,
|
||||
|
||||
.ADC_current[0].coeff = 31322380,
|
||||
.ADC_current[0].offset = -507484324313,
|
||||
.ADC_current[0].coeff = 31462554,
|
||||
.ADC_current[0].offset = -509881330352,
|
||||
|
||||
.ADC_current[1].coeff = 659514123,
|
||||
.ADC_current[1].offset = -10687831492393,
|
||||
@@ -815,14 +815,632 @@ struct _correction{
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef BOARD_ANGUS
|
||||
{
|
||||
.ADC_volt.coeff = (-6243800),
|
||||
.ADC_volt.offset = 101198174953,
|
||||
|
||||
.ADC_current[0].coeff = 31174733,
|
||||
.ADC_current[0].offset = -505246715963,
|
||||
|
||||
.ADC_current[1].coeff = 655540713,
|
||||
.ADC_current[1].offset = -10622652066340,
|
||||
|
||||
.ADC_current[2].coeff = 31416986708,
|
||||
.ADC_current[2].offset = -509094727775962,
|
||||
|
||||
.DAC2RealV.coeff = (-19007867),
|
||||
.DAC2RealV.offset = 646316924837,
|
||||
|
||||
.Usercode2DAC.coeff = (-10556932),
|
||||
.Usercode2DAC.offset = 561269201380,
|
||||
|
||||
.Gain0Boundary[0] = 0x5ECD,
|
||||
.Gain0Boundary[1] = 0x5F0D,
|
||||
|
||||
.Gain1Boundary[0] = 0x5900,
|
||||
.Gain1Boundary[1] = 0x64DD
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef BOARD_C5F3
|
||||
{
|
||||
.ADC_volt.coeff = (-6249801),
|
||||
.ADC_volt.offset = 101577560497,
|
||||
|
||||
.ADC_current[0].coeff = 31333145,
|
||||
.ADC_current[0].offset = -509202021996,
|
||||
|
||||
.ADC_current[1].coeff = 655056917,
|
||||
.ADC_current[1].offset = -10647726030826,
|
||||
|
||||
.ADC_current[2].coeff = 31407894492,
|
||||
.ADC_current[2].offset = -510516121023653,
|
||||
|
||||
.DAC2RealV.coeff = (-19007867),
|
||||
.DAC2RealV.offset = 646316924837,
|
||||
|
||||
.Usercode2DAC.coeff = (-10489696),
|
||||
.Usercode2DAC.offset = 559743808452,
|
||||
|
||||
.Gain0Boundary[0] = 0x5ECD,
|
||||
.Gain0Boundary[1] = 0x5F0D,
|
||||
|
||||
.Gain1Boundary[0] = 0x5900,
|
||||
.Gain1Boundary[1] = 0x64DD
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef BOARD_C7A7
|
||||
{
|
||||
.ADC_volt.coeff = (-6260414),
|
||||
.ADC_volt.offset = 101368153805,
|
||||
|
||||
.ADC_current[0].coeff = 31152640,
|
||||
.ADC_current[0].offset = -506323045036,
|
||||
|
||||
.ADC_current[1].coeff = 653922673,
|
||||
.ADC_current[1].offset = -10628474486965,
|
||||
|
||||
.ADC_current[2].coeff = 31393868429,
|
||||
.ADC_current[2].offset = -510314295937946,
|
||||
|
||||
.DAC2RealV.coeff = (-19007867),
|
||||
.DAC2RealV.offset = 646316924837,
|
||||
|
||||
.Usercode2DAC.coeff = (-10547274),
|
||||
.Usercode2DAC.offset = 561050097141,
|
||||
|
||||
.Gain0Boundary[0] = 0x5ECD,
|
||||
.Gain0Boundary[1] = 0x5F0D,
|
||||
|
||||
.Gain1Boundary[0] = 0x5900,
|
||||
.Gain1Boundary[1] = 0x64DD
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef BOARD_POCA
|
||||
{
|
||||
.ADC_volt.coeff = (-6241861),
|
||||
.ADC_volt.offset = 101629864562,
|
||||
|
||||
.ADC_current[0].coeff = 31256579,
|
||||
.ADC_current[0].offset = -508530535142,
|
||||
|
||||
.ADC_current[1].coeff = 658820355,
|
||||
.ADC_current[1].offset = -10720633637013,
|
||||
|
||||
.ADC_current[2].coeff = 31445401561,
|
||||
.ADC_current[2].offset = -511730149870324,
|
||||
|
||||
.DAC2RealV.coeff = (-19007867),
|
||||
.DAC2RealV.offset = 646316924837,
|
||||
|
||||
.Usercode2DAC.coeff = (-10572079),
|
||||
.Usercode2DAC.offset = 564222895808,
|
||||
|
||||
.Gain0Boundary[0] = 0x5ECD,
|
||||
.Gain0Boundary[1] = 0x5F0D,
|
||||
|
||||
.Gain1Boundary[0] = 0x5900,
|
||||
.Gain1Boundary[1] = 0x64DD
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef BOARD_D429
|
||||
{
|
||||
.ADC_volt.coeff = (-6238779),
|
||||
.ADC_volt.offset = 101605334434,
|
||||
|
||||
.ADC_current[0].coeff = 31071846,
|
||||
.ADC_current[0].offset = -505811219439,
|
||||
|
||||
.ADC_current[1].coeff = 656609367,
|
||||
.ADC_current[1].offset = -10692060258062,
|
||||
|
||||
.ADC_current[2].coeff = 31524582021,
|
||||
.ADC_current[2].offset = -513367397453127,
|
||||
|
||||
.DAC2RealV.coeff = (-19007867),
|
||||
.DAC2RealV.offset = 646316924837,
|
||||
|
||||
.Usercode2DAC.coeff = (-10507806),
|
||||
.Usercode2DAC.offset = 562068643815,
|
||||
|
||||
.Gain0Boundary[0] = 0x5ECD,
|
||||
.Gain0Boundary[1] = 0x5F0D,
|
||||
|
||||
.Gain1Boundary[0] = 0x5900,
|
||||
.Gain1Boundary[1] = 0x64DD
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef BOARD_C60D
|
||||
{
|
||||
.ADC_volt.coeff = (-6257164),
|
||||
.ADC_volt.offset = 102239515470,
|
||||
|
||||
.ADC_current[0].coeff = 31270905,
|
||||
.ADC_current[0].offset = -510840730706,
|
||||
|
||||
.ADC_current[1].coeff = 654407812,
|
||||
.ADC_current[1].offset = -10691708695136,
|
||||
|
||||
.ADC_current[2].coeff = 31370764564,
|
||||
.ADC_current[2].offset = -512563422208737,
|
||||
|
||||
.DAC2RealV.coeff = (-19007867),
|
||||
.DAC2RealV.offset = 646316924837,
|
||||
|
||||
.Usercode2DAC.coeff = (-10505677),
|
||||
.Usercode2DAC.offset = 561896606772,
|
||||
|
||||
.Gain0Boundary[0] = 0x5ECD,
|
||||
.Gain0Boundary[1] = 0x5F0D,
|
||||
|
||||
.Gain1Boundary[0] = 0x5900,
|
||||
.Gain1Boundary[1] = 0x64DD
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef BOARD_MILKY
|
||||
{
|
||||
.ADC_volt.coeff = (-6245296),
|
||||
.ADC_volt.offset = 101930135585,
|
||||
|
||||
.ADC_current[0].coeff = 31234538,
|
||||
.ADC_current[0].offset = -510079528824,
|
||||
|
||||
.ADC_current[1].coeff = 655637591,
|
||||
.ADC_current[1].offset = -10704987805680,
|
||||
|
||||
.ADC_current[2].coeff = 31674775010,
|
||||
.ADC_current[2].offset = -517270192436237,
|
||||
|
||||
.DAC2RealV.coeff = (-19007867),
|
||||
.DAC2RealV.offset = 646316924837,
|
||||
|
||||
.Usercode2DAC.coeff = (-10537872),
|
||||
.Usercode2DAC.offset = 562523723374,
|
||||
|
||||
.Gain0Boundary[0] = 0x5ECD,
|
||||
.Gain0Boundary[1] = 0x5F0D,
|
||||
|
||||
.Gain1Boundary[0] = 0x5900,
|
||||
.Gain1Boundary[1] = 0x64DD
|
||||
};
|
||||
#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);
|
||||
}
|
||||
@@ -837,6 +1455,16 @@ static int32_t DecodeADCVoutVolt(uint16_t ADC_measure){
|
||||
return (int32_t) (ADCVoutVolt);
|
||||
}
|
||||
|
||||
// this function turn ADC measure value (0xXXXX) into Battery voltage
|
||||
// unit should be mV
|
||||
static int32_t DecodeADCBatVolt(uint16_t ADC_measure){
|
||||
long long ADCBatVolt = 0;
|
||||
|
||||
ADCBatVolt = (12571991860 * ADC_measure + 3314058604700);
|
||||
ADCBatVolt = ADCBatVolt / 1e11;
|
||||
return (int32_t) (ADCBatVolt);
|
||||
}
|
||||
|
||||
// this function turn ADC measure value (0xXXXX) into real current
|
||||
// unit should be pA
|
||||
static int32_t DecodeADCCurrent(uint8_t ADCGain, uint16_t ADC_measure){
|
||||
@@ -845,7 +1473,7 @@ static int32_t DecodeADCCurrent(uint8_t ADCGain, uint16_t ADC_measure){
|
||||
ADCRealCurrent = (Correction.ADC_current[ADCGain].coeff * ADC_measure + Correction.ADC_current[ADCGain].offset)/1e7;
|
||||
|
||||
// Current unit is pA;
|
||||
// If ADCGain is GAIN_200R unit is nA
|
||||
// If ADCGain is I_GAIN_100R unit is nA
|
||||
return (int32_t) (ADCRealCurrent);
|
||||
}
|
||||
|
||||
@@ -893,7 +1521,7 @@ static int32_t DecodeResister(uint8_t ADCGainLevel, uint16_t CurrentMeasure, uin
|
||||
static int32_t DecodeADCValue(uint8_t ADCGain, uint8_t ADCChannel, uint8_t *ADC_raw){
|
||||
|
||||
uint16_t ADC_measure = (uint16_t) (ADC_raw[0] << 8) | (uint16_t) (ADC_raw[1]);
|
||||
int32_t ADCRealVolt = 0, ret = 0, ADCRealCurrent = 0, ADCVoutVolt = 0;;
|
||||
int32_t ADCRealVolt = 0, ret = 0, ADCRealCurrent = 0, ADCVoutVolt = 0, ADCBatVolt = 0;
|
||||
|
||||
|
||||
// return real volt to controller
|
||||
@@ -905,19 +1533,25 @@ static int32_t DecodeADCValue(uint8_t ADCGain, uint8_t ADCChannel, uint8_t *ADC_
|
||||
// return real current to controller
|
||||
else if(ADCChannel == ADC_CH_CURRENT){
|
||||
ADCRealCurrent = DecodeADCCurrent(ADCGain, ADC_measure);
|
||||
NotifyCurrent[0] = (uint8_t) (ADCRealCurrent >> 24);
|
||||
NotifyCurrent[1] = (uint8_t) ((ADCRealCurrent & 0x00FF0000) >> 16);
|
||||
NotifyCurrent[2] = (uint8_t) ((ADCRealCurrent & 0x0000FF00) >> 8);
|
||||
NotifyCurrent[3] = (uint8_t) (ADCRealCurrent & 0x000000FF);
|
||||
// NotifyCurrent[0] = (uint8_t) (ADCRealCurrent >> 24);
|
||||
// NotifyCurrent[1] = (uint8_t) ((ADCRealCurrent & 0x00FF0000) >> 16);
|
||||
// NotifyCurrent[2] = (uint8_t) ((ADCRealCurrent & 0x0000FF00) >> 8);
|
||||
// NotifyCurrent[3] = (uint8_t) (ADCRealCurrent & 0x000000FF);
|
||||
ret = ADCRealCurrent;
|
||||
}
|
||||
|
||||
// return real TestVolt to controller
|
||||
// return real VoutVolt to controller
|
||||
else if(ADCChannel == ADC_CH_DAC){
|
||||
ADCVoutVolt = DecodeADCVoutVolt(ADC_measure);
|
||||
ret = ADCVoutVolt;
|
||||
}
|
||||
|
||||
// return real Battery Volt to controller
|
||||
else if(ADCChannel == ADC_CH_BAT){
|
||||
ADCBatVolt = DecodeADCBatVolt(ADC_measure);
|
||||
ret = ADCBatVolt;
|
||||
}
|
||||
|
||||
|
||||
// if ( (INSTRUCTION.eliteFxn == IV_CURVE) || (INSTRUCTION.eliteFxn == CV_CURVE)) {
|
||||
// if ( (INSTRUCTION.eliteFxn == CV_CURVE)) {
|
||||
@@ -981,7 +1615,7 @@ static void ADC_overflow(uint8_t gain, uint8_t *rawdata){
|
||||
uint16_t U16Rawdata = 0;
|
||||
U16Rawdata = (((uint16_t) (rawdata[0]))<<8) | ((uint16_t) (rawdata[1]));
|
||||
|
||||
if(gain == GAIN_200K){
|
||||
if(gain == I_GAIN_3M){
|
||||
if( U16Rawdata <= Correction.Gain0Boundary[0]){
|
||||
rawdata[0] = Correction.Gain0Boundary[0] >> 4;
|
||||
rawdata[1] = (uint8_t) (Correction.Gain0Boundary[0] & 0x00FF);
|
||||
@@ -991,7 +1625,7 @@ static void ADC_overflow(uint8_t gain, uint8_t *rawdata){
|
||||
rawdata[1] = (uint8_t) (Correction.Gain0Boundary[1] & 0x00FF);
|
||||
}
|
||||
}
|
||||
else if(gain == GAIN_10K){
|
||||
else if(gain == I_GAIN_100K){
|
||||
if( U16Rawdata <= Correction.Gain1Boundary[0]){
|
||||
rawdata[0] = Correction.Gain1Boundary[0] >> 4;
|
||||
rawdata[1] = (uint8_t) (Correction.Gain1Boundary[0] & 0x00FF);
|
||||
@@ -1026,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;
|
||||
}
|
||||
|
||||
|
||||
+1
@@ -15,6 +15,7 @@ static void InitFlag(){
|
||||
DACReset = true;
|
||||
CCModeDACEnable = 0; // to make sure DAC work after ADC
|
||||
Free_Work_Mode = true; // Free(WorkModeData)
|
||||
HighZMode = true;
|
||||
// NotifyReady = false;
|
||||
// DiscardIVFirstData = 0;
|
||||
}
|
||||
|
||||
+1
-1
@@ -45,7 +45,7 @@ static int32_t IT_Plot(WorkMode *WorkModeData) {
|
||||
|
||||
// read ADC current
|
||||
int32_t RealCurrent = 0, RealVolt = 0;
|
||||
static uint8_t PreviousGain = GAIN_200R;
|
||||
static uint8_t PreviousGain = I_GAIN_100R;
|
||||
|
||||
if(INSTRUCTION.AutoGainEnable){
|
||||
RealCurrent = AutoGainReadCurrent(spi_ADC_rxbuf);
|
||||
|
||||
+76
-31
@@ -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);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -105,14 +120,14 @@ static uint16_t OneWayVoltScan(IVMode *IV) {
|
||||
|
||||
static void IV_Plot(IVMode *IV) {
|
||||
static uint8_t VoltCurrentSwitch = 0;
|
||||
static uint8_t PreviousGain = GAIN_200R;
|
||||
static uint8_t PreviousGain = I_GAIN_100R;
|
||||
uint16_t ADC_measure = 0;
|
||||
|
||||
if(VoltCurrentSwitch < 5){
|
||||
if(VoltCurrentSwitch < 2){
|
||||
ReadCurrent(spi_ADC_rxbuf);
|
||||
VoltCurrentSwitch ++;
|
||||
}
|
||||
else if(VoltCurrentSwitch == 5){
|
||||
else if(VoltCurrentSwitch == 2){
|
||||
// read current
|
||||
|
||||
if(INSTRUCTION.AutoGainEnable){
|
||||
@@ -146,9 +161,9 @@ static void IV_Plot(IVMode *IV) {
|
||||
// IV->MeasureVolt = DecodeADCVolt(ADC_measure);
|
||||
// VoltCurrentSwitch++;
|
||||
// }
|
||||
else if(VoltCurrentSwitch < 9){
|
||||
else if(VoltCurrentSwitch < 5){
|
||||
if(IV->_VoVi_Switch == 0x01){
|
||||
// read volt
|
||||
// read vin volt
|
||||
ReadVolt(spi_ADC_rxbuf);
|
||||
}else if(IV->_VoVi_Switch == 0x00){
|
||||
// read vout volt
|
||||
@@ -156,20 +171,32 @@ static void IV_Plot(IVMode *IV) {
|
||||
}
|
||||
VoltCurrentSwitch++;
|
||||
}
|
||||
else if(VoltCurrentSwitch == 9){
|
||||
else if(VoltCurrentSwitch == 5){
|
||||
if(IV->_VoVi_Switch == 0x01){
|
||||
/** read battery voltage **/
|
||||
// read vin volt
|
||||
ReadVolt(spi_ADC_rxbuf);
|
||||
ADC_measure = (uint16_t) (spi_ADC_rxbuf[0] << 8) | (uint16_t) (spi_ADC_rxbuf[1]);
|
||||
IV->MeasureVolt = DecodeADCVolt(ADC_measure);
|
||||
}else if(IV->_VoVi_Switch == 0x00){
|
||||
/** read vout voltage **/
|
||||
// read vout volt
|
||||
ReadVoutVolt(spi_ADC_rxbuf);
|
||||
ADC_measure = (uint16_t) (spi_ADC_rxbuf[0] << 8) | (uint16_t) (spi_ADC_rxbuf[1]);
|
||||
IV->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]);
|
||||
// IV->_MeasureBatvolt = DecodeADCBatVolt(ADC_measure);
|
||||
// IV->_MeasureBatvolt = IV->_MeasureBatvolt/10 - 250; // (5.00V) 5000->250 usercode
|
||||
// VoltCurrentSwitch ++;
|
||||
// }
|
||||
else{
|
||||
VoltCurrentSwitch = 0;
|
||||
}
|
||||
@@ -186,20 +213,38 @@ static void IV_Plot(IVMode *IV) {
|
||||
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->_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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
+44
-7
@@ -2,11 +2,29 @@
|
||||
#ifndef ELITEINSTRUCTION
|
||||
#define ELITEINSTRUCTION
|
||||
|
||||
/** ADC gain level **/
|
||||
#define GAIN_200K 0x00 // largest gain
|
||||
#define GAIN_10K 0x01
|
||||
#define GAIN_200R 0x02 // the least gain
|
||||
#define GAIN_AUTO 0x03
|
||||
/** Iin, Vin, Vout, HighZ **/
|
||||
#define IIN_ADC 0x00
|
||||
#define VIN_ADC 0x01
|
||||
#define VOUT_DAC 0x02
|
||||
#define HIGH_Z 0x03
|
||||
|
||||
/** ADC Iin gain level **/
|
||||
#define I_GAIN_3M 0x00 // largest gain
|
||||
#define I_GAIN_100K 0x01
|
||||
#define I_GAIN_3K 0x02
|
||||
#define I_GAIN_100R 0x03 // the least gain
|
||||
#define I_GAIN_AUTO 0x04
|
||||
|
||||
/** ADC Vin gain level **/
|
||||
#define VIN_GAIN_1M 0x00 // largest gain
|
||||
#define VIN_GAIN_30K 0x01
|
||||
#define VIN_GAIN_1K 0x02 // the least gain
|
||||
#define VIN_GAIN_AUTO 0x03
|
||||
|
||||
/** Vout gain level **/
|
||||
#define VOUT_GAIN_240K 0x00 // output -6V ~ +6V
|
||||
#define VOUT_GAIN_15K 0x01 // output -0.3V ~ +0.3V
|
||||
#define VOUT_GAIN_AUTO 0x02
|
||||
|
||||
/** Resister meter **/
|
||||
#define RESISTER_METER_SMALL 0x00
|
||||
@@ -53,9 +71,12 @@ struct HEADSTAGE_INSTRUCTION {
|
||||
// which is used in CC mode as VMax and VMin
|
||||
uint16_t VoltConstant;
|
||||
|
||||
// voltage output gain
|
||||
uint16_t VoutGainLevel;
|
||||
|
||||
/** ADC parameter **/
|
||||
uint8_t ADCGainLevel;
|
||||
|
||||
uint8_t VinADCGainLevel;
|
||||
uint8_t AutoGainEnable;
|
||||
|
||||
/** Notify parameter **/
|
||||
@@ -77,6 +98,16 @@ struct HEADSTAGE_INSTRUCTION {
|
||||
|
||||
uint8_t VoVi_Switch;
|
||||
|
||||
uint16_t InitVolt;
|
||||
|
||||
uint16_t MaxVolt;
|
||||
|
||||
uint16_t MinVolt;
|
||||
|
||||
uint16_t InitDirection;
|
||||
|
||||
uint32_t MaxCurrent;
|
||||
|
||||
} INSTRUCTION = {0};
|
||||
|
||||
/*********************************************************************
|
||||
@@ -97,7 +128,9 @@ static void InitEliteInstruction(){
|
||||
INSTRUCTION.Step = 0x0005; // 0x0005 = 1mV
|
||||
INSTRUCTION.StepTime = STEPTIME_ONE_SEC; // about 0.5 sec
|
||||
INSTRUCTION.VoltConstant = DAC_ZERO; // is about 0V
|
||||
INSTRUCTION.ADCGainLevel = GAIN_AUTO;
|
||||
INSTRUCTION.VoutGainLevel = VOUT_GAIN_AUTO;
|
||||
INSTRUCTION.ADCGainLevel = I_GAIN_AUTO;
|
||||
INSTRUCTION.VinADCGainLevel = VIN_GAIN_AUTO;
|
||||
INSTRUCTION.AutoGainEnable = 1;
|
||||
INSTRUCTION.NotifyRate = STEPTIME_ONE_SEC/10;
|
||||
INSTRUCTION.ResisterMeter = RESISTER_METER_LARGE;
|
||||
@@ -107,6 +140,10 @@ static void InitEliteInstruction(){
|
||||
INSTRUCTION.eliteFxn = 0; // default is a null event
|
||||
INSTRUCTION.CycleNumber = 0;
|
||||
INSTRUCTION.VoVi_Switch = 0x01; //VoVi_Switch == 0 => user see Vo / VoVi_Switch == 1 => user see Vi
|
||||
INSTRUCTION.InitVolt = DAC_ZERO;
|
||||
INSTRUCTION.MaxVolt = DAC_ZERO;
|
||||
INSTRUCTION.MinVolt = DAC_ZERO;
|
||||
INSTRUCTION.InitDirection = 1; //0:reverse 1:forward
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
|
||||
+4
-4
@@ -10,7 +10,7 @@ static bool TurnOnElite(uint8_t key) {
|
||||
if (key == 0) {
|
||||
// press 1 sec, power on LED
|
||||
if (TurnOnCounter >= CLOCK_ONE_SECOND) {
|
||||
PIN_setOutputValue(pin_handle, enable_5v, 1); // enable 5V
|
||||
PIN15_setOutputValue(enable_5v, 1); // enable 5V
|
||||
TurnOn10V();
|
||||
LEDPowerON();
|
||||
return true;
|
||||
@@ -20,7 +20,7 @@ static bool TurnOnElite(uint8_t key) {
|
||||
}
|
||||
} else {
|
||||
TurnOnCounter = 0;
|
||||
PIN_setOutputValue(pin_handle, enable_5v, 0); // enable 5V
|
||||
PIN15_setOutputValue(enable_5v, 0); // enable 5V
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -40,7 +40,7 @@ static void EliteKeyPress(uint8_t key) {
|
||||
// press 3~4 sec, shutdown 2650
|
||||
else if (ShutDownCounter > (CLOCK_ONE_SECOND*3) ) {
|
||||
LED_color(DARKLED, 0xFF, 0xFF, 0x00);
|
||||
PIN_setOutputValue(pin_handle, enable_5v, 0); // disable 5V
|
||||
PIN15_setOutputValue(enable_5v, 0); // disable 5V
|
||||
}
|
||||
ShutDownCounter ++;
|
||||
} else {
|
||||
@@ -63,7 +63,7 @@ static void EliteKeyPress(uint8_t key) {
|
||||
|
||||
static void TurnOn10V() {
|
||||
If10Von = true;
|
||||
PIN_setOutputValue(pin_handle, enable_10v, 1);
|
||||
PIN15_setOutputValue(enable_10v, 1);
|
||||
CPUdelay(8000);
|
||||
}
|
||||
|
||||
|
||||
+5
-1
@@ -69,10 +69,14 @@ static void WorkModeLED() {
|
||||
WORKLED();
|
||||
break;
|
||||
}
|
||||
case READ_VOUT_VALUE: {
|
||||
case CYCLIC_VOLTAMMETRY: {
|
||||
WORKLED();
|
||||
break;
|
||||
}
|
||||
// case READ_VOUT_VALUE: {
|
||||
// WORKLED();
|
||||
// break;
|
||||
// }
|
||||
|
||||
default: {
|
||||
LEDPowerON();
|
||||
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
|
||||
#ifndef ELITE_LATCH_INIT
|
||||
#define ELITE_LATCH_INIT
|
||||
|
||||
static void InitLH() {
|
||||
for (int i=0; i<LATCH_BUFF_SIZE; i++) {
|
||||
LH.LATCH0[i] = 0;
|
||||
LH.LATCH1[i] = 0;
|
||||
LH.LATCH2[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
+44
@@ -13,6 +13,11 @@
|
||||
|
||||
#define NOT_BUF_OFFSET_INIT 8
|
||||
|
||||
/*notify's input type*/
|
||||
#define NOTIFY_CURRENT 0
|
||||
#define NOTIFY_VOLT 1
|
||||
#define NOTIFY_IMPEDANCE 2
|
||||
|
||||
/**
|
||||
* the index where to start insert data into buffer.
|
||||
* start from 6.
|
||||
@@ -24,11 +29,13 @@ static uint32_t not_time_stamp;
|
||||
static uint8_t NotifyCurrent[4] = {0};
|
||||
static uint8_t NotifyVolt[4] = {0};
|
||||
static uint8_t NotifyImpedance[4] = {0};
|
||||
static uint8_t NotifyBatVolt = 0;
|
||||
|
||||
/**
|
||||
* counter of notify send.
|
||||
*/
|
||||
static uint32_t notify_counter = 0;
|
||||
static bool NotifyEnable = 0;
|
||||
|
||||
// ****************** New Notify Format ******************************** //
|
||||
/*
|
||||
@@ -106,6 +113,9 @@ static void SendNotify() {
|
||||
// cyclic voltametry cycle number
|
||||
not_buf[17] = INSTRUCTION.CycleNumber;
|
||||
|
||||
//battery volt
|
||||
not_buf[18] = NotifyBatVolt;
|
||||
|
||||
SimpleProfile_SetParameter(BLE_DAT_BUFF_CHAR, BLE_DAT_BUFF_SIZE, not_buf);
|
||||
}
|
||||
|
||||
@@ -116,8 +126,13 @@ static void FlushNotify(){
|
||||
not_buf[i + 1] = 0;
|
||||
not_buf[i + 5] = 0;
|
||||
not_buf[i + 9] = 0;
|
||||
NotifyCurrent[i] = 0;
|
||||
NotifyVolt[i] = 0;
|
||||
NotifyImpedance[i] = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 1 Timestamp = 32 usec; 31 Timestamp ~= 1 msec
|
||||
not_time_stamp = 0; // msec
|
||||
|
||||
@@ -129,7 +144,36 @@ static void FlushNotify(){
|
||||
// cyclic voltametry cycle number
|
||||
not_buf[17] = 0x00;
|
||||
|
||||
//battery volt
|
||||
not_buf[18] = 0x00;
|
||||
|
||||
SimpleProfile_SetParameter(BLE_DAT_BUFF_CHAR, BLE_DAT_BUFF_SIZE, not_buf);
|
||||
}
|
||||
|
||||
static void InputNotify(int NotifyType, int32_t Data){
|
||||
|
||||
switch (NotifyType) {
|
||||
case NOTIFY_CURRENT:
|
||||
NotifyCurrent[0] = (uint8_t)((Data & 0xFF000000) >> 24);
|
||||
NotifyCurrent[1] = (uint8_t)((Data & 0x00FF0000) >> 16);
|
||||
NotifyCurrent[2] = (uint8_t)((Data & 0x0000FF00) >> 8);
|
||||
NotifyCurrent[3] = (uint8_t)(Data & 0x000000FF);
|
||||
break;
|
||||
|
||||
case NOTIFY_IMPEDANCE:
|
||||
NotifyImpedance[0] = (uint8_t)((Data & 0xFF000000) >> 24);
|
||||
NotifyImpedance[1] = (uint8_t)((Data & 0x00FF0000) >> 16);
|
||||
NotifyImpedance[2] = (uint8_t)((Data & 0x0000FF00) >> 8);
|
||||
NotifyImpedance[3] = (uint8_t)(Data & 0x000000FF);
|
||||
break;
|
||||
|
||||
case NOTIFY_VOLT :
|
||||
NotifyVolt[0] = (uint8_t)((Data & 0xFF000000) >> 24);
|
||||
NotifyVolt[1] = (uint8_t)((Data & 0x00FF0000) >> 16);
|
||||
NotifyVolt[2] = (uint8_t)((Data & 0x0000FF00) >> 8);
|
||||
NotifyVolt[3] = (uint8_t)(Data & 0x000000FF);
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
|
||||
static void RVout_Plot(RVoutMode *RVout) {
|
||||
// ADC gain is don't care when measuring voltage
|
||||
INSTRUCTION.ADCGainLevel = GAIN_200R;
|
||||
INSTRUCTION.ADCGainLevel = I_GAIN_100R;
|
||||
ADCGainControl(INSTRUCTION.ADCGainLevel);
|
||||
|
||||
// read ADC VoutVolt
|
||||
|
||||
+12
-7
@@ -43,20 +43,24 @@ static void reset() {
|
||||
not_buf[i] = 0;
|
||||
}
|
||||
|
||||
PIN_setOutputValue(pin_handle, ADC_CS, 1); // ADC_CS HIGH
|
||||
PIN_setOutputValue(pin_handle, DAC_CS, 1); // DAC_CS HIGH
|
||||
PIN15_setOutputValue(ADC_CS, 1); // ADC_CS HIGH
|
||||
PIN15_setOutputValue(DAC_CS, 1); // DAC_CS HIGH
|
||||
PIN15_setOutputValue(MEM_CS, 1); // MEM_CS HIGH
|
||||
CPUdelay(1600);
|
||||
}
|
||||
|
||||
static void Eliteinterrupt() {
|
||||
InitFlag();
|
||||
InitCT();
|
||||
InitLH();
|
||||
|
||||
// IV/CV mode reset
|
||||
DiscardIVFirstData = 0;
|
||||
avg_number = 0;
|
||||
ADCRealCurrent_long = 0;
|
||||
ADCGainControl(GAIN_AUTO);
|
||||
ADCGainControl(I_GAIN_AUTO);
|
||||
VinADCGainControl(VIN_GAIN_AUTO);
|
||||
VoutGainControl(VOUT_GAIN_15K);
|
||||
DAC_outputV(Usercode_Correction_to_DAC(INSTRUCTION.VoltConstant));
|
||||
|
||||
LEDPowerON();
|
||||
@@ -83,8 +87,8 @@ static void Eliteinterrupt() {
|
||||
not_buf[i] = 0;
|
||||
}
|
||||
|
||||
PIN_setOutputValue(pin_handle, ADC_CS, 1); // ADC_CS HIGH
|
||||
PIN_setOutputValue(pin_handle, DAC_CS, 1); // DAC_CS HIGH
|
||||
PIN15_setOutputValue(ADC_CS, 1); // ADC_CS HIGH
|
||||
PIN15_setOutputValue(DAC_CS, 1); // DAC_CS HIGH
|
||||
CPUdelay(8000);
|
||||
}
|
||||
|
||||
@@ -115,8 +119,9 @@ static void CleanBuffer() {
|
||||
not_buf[i] = 0;
|
||||
}
|
||||
|
||||
PIN_setOutputValue(pin_handle, ADC_CS, 1); // ADC_CS HIGH
|
||||
PIN_setOutputValue(pin_handle, DAC_CS, 1); // DAC_CS HIGH
|
||||
PIN15_setOutputValue(ADC_CS, 1); // ADC_CS HIGH
|
||||
PIN15_setOutputValue(DAC_CS, 1); // DAC_CS HIGH
|
||||
PIN15_setOutputValue(MEM_CS, 1); // MEM_CS HIGH
|
||||
CPUdelay(8000);
|
||||
}
|
||||
|
||||
|
||||
+43
-10
@@ -36,6 +36,8 @@ static SPI_Params spiParams1;
|
||||
static SPI_Transaction LED_transaction;
|
||||
static SPI_Transaction ADC_DAC_transaction;
|
||||
|
||||
static void ELITE15_SPI_HOLD();
|
||||
static void ELITE15_SPI_CLOSE();
|
||||
|
||||
static void Elite_SPI_init(){
|
||||
SPI_init();
|
||||
@@ -55,34 +57,65 @@ static void Elite_SPI_init(){
|
||||
}
|
||||
|
||||
static void LED_SPI(uint8_t length, uint16_t *spi_txbuf, uint16_t *spi_rxbuf) {
|
||||
ELITE15_SPI_HOLD(); // open latch and init SPI
|
||||
|
||||
LED_transaction.count = length;
|
||||
LED_transaction.txBuf = spi_txbuf;
|
||||
LED_transaction.rxBuf = spi_rxbuf;
|
||||
|
||||
SPI_transfer(spiHandle0, &LED_transaction);
|
||||
|
||||
ELITE15_SPI_CLOSE(); // turn off latch and close SPI
|
||||
}
|
||||
|
||||
static void ADC_SPI(uint8_t length, uint8_t *spi_txbuf, uint8_t *spi_rxbuf) {
|
||||
ELITE15_SPI_HOLD(); // open latch and init SPI
|
||||
PIN_setOutputValue(pin_handle, D6, 0); // CS_ADC
|
||||
|
||||
ADC_DAC_transaction.count = length;
|
||||
ADC_DAC_transaction.txBuf = spi_txbuf;
|
||||
ADC_DAC_transaction.rxBuf = spi_rxbuf;
|
||||
|
||||
PIN_setOutputValue(pin_handle, DAC_CS, 1); // DAC_CS HIGH
|
||||
PIN_setOutputValue(pin_handle, ADC_CS, 0); // ADC_CS LOW
|
||||
SPI_transfer(spiHandle1, &ADC_DAC_transaction);
|
||||
PIN_setOutputValue(pin_handle, ADC_CS, 1); // ADC_CS HIGH
|
||||
|
||||
PIN_setOutputValue(pin_handle, D6, 1); // CS_ADC
|
||||
ELITE15_SPI_CLOSE(); // turn off latch and close SPI
|
||||
}
|
||||
|
||||
static void DAC_SPI(uint8_t length, uint8_t *spi_txbuf, uint8_t *spi_rxbuf) {
|
||||
ADC_DAC_transaction.count = length;
|
||||
ADC_DAC_transaction.txBuf = spi_txbuf;
|
||||
ADC_DAC_transaction.rxBuf = spi_rxbuf;
|
||||
ELITE15_SPI_HOLD(); // open latch and init SPI
|
||||
PIN_setOutputValue(pin_handle, D7, 0); // CD_DAC
|
||||
|
||||
PIN_setOutputValue(pin_handle, ADC_CS, 1); // ADC_CS HIGH
|
||||
PIN_setOutputValue(pin_handle, DAC_CS, 0); // DAC_CS LOW
|
||||
SPI_transfer(spiHandle1, &ADC_DAC_transaction);
|
||||
PIN_setOutputValue(pin_handle, DAC_CS, 1); // DAC_CS HIGH
|
||||
ADC_DAC_transaction.count = length;
|
||||
ADC_DAC_transaction.txBuf = spi_txbuf;
|
||||
ADC_DAC_transaction.rxBuf = spi_rxbuf;
|
||||
|
||||
SPI_transfer(spiHandle1, &ADC_DAC_transaction);
|
||||
|
||||
PIN_setOutputValue(pin_handle, D7, 1); // CD_DAC
|
||||
ELITE15_SPI_CLOSE(); // turn ogg latch and close SPI
|
||||
}
|
||||
|
||||
static void ELITE15_SPI_HOLD() {
|
||||
PIN_setOutputValue(pin_handle, LOAD0, 1);
|
||||
PIN_setOutputValue(pin_handle, LOAD1, 0);
|
||||
PIN_setOutputValue(pin_handle, LOAD2, 0);
|
||||
PIN_setOutputValue(pin_handle, D4, 1); // HOLD_MEM
|
||||
PIN_setOutputValue(pin_handle, D5, 1); // CS_MEM
|
||||
PIN_setOutputValue(pin_handle, D6, 1); // CS_ADC
|
||||
PIN_setOutputValue(pin_handle, D7, 1); // CD_DAC
|
||||
Elite_SPI_init();
|
||||
}
|
||||
static void ELITE15_SPI_CLOSE() {
|
||||
PIN_setOutputValue(pin_handle, D4, 1); // HOLD_MEM
|
||||
PIN_setOutputValue(pin_handle, D5, 1); // CS_MEM
|
||||
PIN_setOutputValue(pin_handle, D6, 1); // CS_ADC
|
||||
PIN_setOutputValue(pin_handle, D7, 1); // CD_DAC
|
||||
PIN_setOutputValue(pin_handle, LOAD0, 0);
|
||||
PIN_setOutputValue(pin_handle, LOAD1, 0);
|
||||
PIN_setOutputValue(pin_handle, LOAD2, 0);
|
||||
SPI_close(spiHandle0);
|
||||
SPI_close(spiHandle1);
|
||||
}
|
||||
|
||||
#endif // ELITE_SPI
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
|
||||
static void VT_Plot(VTMode *VT) {
|
||||
// ADC gain is don't care when measuring voltage
|
||||
INSTRUCTION.ADCGainLevel = GAIN_200R;
|
||||
INSTRUCTION.ADCGainLevel = I_GAIN_100R;
|
||||
ADCGainControl(INSTRUCTION.ADCGainLevel);
|
||||
|
||||
// read ADC volt
|
||||
|
||||
+68
-12
@@ -46,12 +46,12 @@
|
||||
#define VT_CURVE 0b01010000
|
||||
#define IT_CURVE 0b01100000
|
||||
#define SET_SAMPLE_RATE 0b01110000
|
||||
#define SET_ADC_GAIN 0b10000000
|
||||
#define SET_VIN_ADC_GAIN 0b10010000
|
||||
#define DIFFERENTIAL_PULSE_VOLTAMMETRY 0b10100000
|
||||
#define SQUARE_WAVE_VOLTAMMETRY 0b10110000
|
||||
#define POTENTIAL_STATE 0b11000000
|
||||
#define CYCLIC_VOLTAMMETRY 0b11000000
|
||||
#define CONSTANT_CURRENT 0b11010000
|
||||
#define READ_VOUT_VALUE 0b11100000
|
||||
//#define READ_VOUT_VALUE 0b11100000
|
||||
|
||||
static bool Free_Work_Mode = false;
|
||||
typedef void (*InitWorkData) ();
|
||||
@@ -119,6 +119,19 @@ typedef void (*InitWorkData) ();
|
||||
void (*SetLimitValue) (struct Limit *, uint32_t); \
|
||||
uint32_t (*GetLimitValue) (struct Limit*)
|
||||
|
||||
#define CV3_PARA \
|
||||
MEASURE; \
|
||||
int32_t MeasureVolt; \
|
||||
uint16_t VInit; \
|
||||
uint16_t VMax; \
|
||||
uint16_t VMin; \
|
||||
uint16_t VOrigin; \
|
||||
uint16_t VStop; \
|
||||
uint16_t InitDirection; \
|
||||
uint16_t Step; \
|
||||
uint16_t StepTime; \
|
||||
uint16_t CycleNumber
|
||||
|
||||
struct Measure{
|
||||
MEASURE;
|
||||
};
|
||||
@@ -134,6 +147,10 @@ struct Limit{
|
||||
struct CCModePara{
|
||||
CC_PARA;
|
||||
};
|
||||
|
||||
struct CV3ModePara{
|
||||
CV3_PARA;
|
||||
};
|
||||
/***** End of Measure and VoltOut parameter *****/
|
||||
|
||||
|
||||
@@ -195,7 +212,7 @@ typedef struct _RVoutMode{
|
||||
MEASURE;
|
||||
}RVoutMode;
|
||||
|
||||
RVoutMode * InitTVMode(){
|
||||
RVoutMode * InitRVoutMode(){
|
||||
RVoutMode *ret = malloc(sizeof(RVoutMode));
|
||||
ret->_MeasureData = 0;
|
||||
// ret->SetMeasureData = &_SetMeasureData;
|
||||
@@ -295,6 +312,7 @@ typedef struct _IVMode{
|
||||
int32_t MeasureVolt;
|
||||
VOUT_PARA;
|
||||
LIMIT;
|
||||
int32_t _MeasureBatvolt;
|
||||
}IVMode;
|
||||
|
||||
IVMode *InitIVMode(){
|
||||
@@ -309,7 +327,8 @@ IVMode *InitIVMode(){
|
||||
ret->_Step = INSTRUCTION.Step;
|
||||
ret->_StepTime = INSTRUCTION.StepTime;
|
||||
ret->_CycleNumber = 1;
|
||||
|
||||
ret->_MeasureBatvolt = 0;
|
||||
|
||||
|
||||
// ret->SetVoltOut = &_SetVoltOut;
|
||||
// ret->GetVoltOut = &_GetVoltOut;
|
||||
@@ -372,6 +391,7 @@ typedef struct _CVMode{
|
||||
MEASURE;
|
||||
int32_t MeasureVolt;
|
||||
VOUT_PARA;
|
||||
int32_t _MeasureBatvolt;
|
||||
}CVMode;
|
||||
|
||||
CVMode * InitCVMode(){
|
||||
@@ -388,7 +408,7 @@ CVMode * InitCVMode(){
|
||||
ret->_StepTime = INSTRUCTION.StepTime; // STEPTIME_ONE_SEC
|
||||
ret->_CycleNumber = INSTRUCTION.CycleNumber;
|
||||
ret->_VoVi_Switch = INSTRUCTION.VoVi_Switch;
|
||||
|
||||
ret->_MeasureBatvolt = 0;
|
||||
// ret->SetVoltOut = &_SetVoltOut;
|
||||
// ret->GetVoltOut = &_GetVoltOut;
|
||||
// ret->SetVOrigin = &_SetVOrigin;
|
||||
@@ -405,6 +425,31 @@ CVMode * InitCVMode(){
|
||||
}
|
||||
/*End of CV Mode*/
|
||||
|
||||
/* CV3 Mode(CYCLIC_VOLTAMMETRY)*/
|
||||
typedef struct _CV3Mode{
|
||||
CV3_PARA;
|
||||
}CV3Mode;
|
||||
|
||||
CV3Mode * InitCV3Mode(){
|
||||
CV3Mode *ret = malloc(sizeof(CV3Mode));
|
||||
ret->_MeasureData = 0;
|
||||
ret->MeasureVolt = 0;
|
||||
ret->VInit = INSTRUCTION.InitVolt;
|
||||
ret->VMax = INSTRUCTION.MaxVolt;
|
||||
ret->VMin = INSTRUCTION.MinVolt;
|
||||
ret->VOrigin = INSTRUCTION.MinVolt;
|
||||
ret->VStop = INSTRUCTION.MaxVolt;
|
||||
ret->InitDirection = INSTRUCTION.InitDirection;
|
||||
ret->Step = INSTRUCTION.Step;
|
||||
ret->StepTime = INSTRUCTION.StepTime;
|
||||
ret->CycleNumber = INSTRUCTION.CycleNumber;
|
||||
ret->_VoVi_Switch = INSTRUCTION.VoVi_Switch;
|
||||
|
||||
|
||||
return ret;
|
||||
}
|
||||
/*End of CV3 Mode*/
|
||||
|
||||
/* Const Current Mode */
|
||||
#define CC_ZERO_POINT 0
|
||||
#define MAX_DAC_UC 50000
|
||||
@@ -536,7 +581,9 @@ typedef union _WorkMode{
|
||||
CCMode *CC;
|
||||
// CCCMode *CCC;
|
||||
PSMode *PS;
|
||||
CV3Mode *CV3;
|
||||
|
||||
//test mode
|
||||
RVoutMode *RVout;
|
||||
}WorkMode;
|
||||
|
||||
@@ -571,9 +618,12 @@ void InitWorkMode(WorkMode *WM){
|
||||
// case CYCLE_CONSTANT_CURRENT:
|
||||
// WM->CCC = InitCCCMode();
|
||||
// break;
|
||||
case READ_VOUT_VALUE:
|
||||
WM->RVout = InitTVMode();
|
||||
case CYCLIC_VOLTAMMETRY:
|
||||
WM->CV3 = InitCV3Mode();
|
||||
break;
|
||||
// case READ_VOUT_VALUE:
|
||||
// WM->RVout = InitRVoutMode();
|
||||
// break;
|
||||
default:
|
||||
WM->VT = InitVTMode();
|
||||
break;
|
||||
@@ -624,12 +674,18 @@ void FreeWorkMode(WorkMode *WM){
|
||||
WM->CC = NULL;
|
||||
}
|
||||
break;
|
||||
case READ_VOUT_VALUE:
|
||||
if(WM->RVout != NULL){
|
||||
free(WM->RVout);
|
||||
WM->RVout = NULL;
|
||||
case CYCLIC_VOLTAMMETRY:
|
||||
if(WM->CV3 != NULL){
|
||||
free(WM->CV3);
|
||||
WM->CV3 = NULL;
|
||||
}
|
||||
break;
|
||||
// case READ_VOUT_VALUE:
|
||||
// if(WM->RVout != NULL){
|
||||
// free(WM->RVout);
|
||||
// WM->RVout = NULL;
|
||||
// }
|
||||
// break;
|
||||
|
||||
|
||||
// case CYCLE_CONSTANT_CURRENT:
|
||||
|
||||
+10
-2
@@ -28,12 +28,13 @@ static void ZT_Plot(RTMode *RT) {
|
||||
}
|
||||
|
||||
|
||||
volt_32 = User2Real(INSTRUCTION.VoltConstant)*1e4;
|
||||
volt_32 = User2Real(INSTRUCTION.VoltConstant)*1e6;
|
||||
// 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 / 1e3; //uV
|
||||
|
||||
|
||||
NotifyVolt[0] = (uint8_t) (volt_32 >> 24);
|
||||
NotifyVolt[1] = (uint8_t) ((volt_32 & 0x00FF0000) >> 16);
|
||||
@@ -50,6 +51,13 @@ static void ZT_Plot(RTMode *RT) {
|
||||
NotifyImpedance[2] = (uint8_t) ((resister_32 & 0x0000FF00) >> 8);
|
||||
NotifyImpedance[3] = (uint8_t) (resister_32 & 0x000000FF);
|
||||
|
||||
/* Elite 100 = 100R
|
||||
Elite 1000 = 1KR
|
||||
Elite 10000 = 10KR
|
||||
Elite 100000 = 100KR
|
||||
Elite 1000000 = 1MR
|
||||
*/
|
||||
|
||||
// set ADC GAIN
|
||||
// if(INSTRUCTION.ResisterMeter == RESISTER_METER_LARGE){
|
||||
// INSTRUCTION.ADCGainLevel = GAIN_200R;
|
||||
|
||||
+73
-24
@@ -8,50 +8,99 @@
|
||||
|
||||
/* SPI Board */
|
||||
#define Board_SPI0_MISO PIN_UNASSIGNED
|
||||
#define Board_SPI0_MOSI IOID_1
|
||||
#define Board_SPI0_CLK IOID_0
|
||||
#define Board_SPI0_MOSI D1
|
||||
#define Board_SPI0_CLK D0
|
||||
#define Board_SPI0_CS PIN_UNASSIGNED
|
||||
|
||||
#define Board_SPI1_MISO IOID_3
|
||||
#define Board_SPI1_MOSI IOID_2
|
||||
#define Board_SPI1_CLK IOID_4
|
||||
#define Board_SPI1_MISO IOID_1
|
||||
#define Board_SPI1_MOSI D3
|
||||
#define Board_SPI1_CLK D2
|
||||
#define Board_SPI1_CS PIN_UNASSIGNED
|
||||
|
||||
#define ADC_CS IOID_8
|
||||
#define DAC_CS IOID_9
|
||||
#define D0 IOID_3
|
||||
#define D1 IOID_4
|
||||
#define D2 IOID_5
|
||||
#define D3 IOID_6
|
||||
#define D4 IOID_7
|
||||
#define D5 IOID_8
|
||||
#define D6 IOID_9
|
||||
#define D7 IOID_10
|
||||
|
||||
#define Turnon200R IOID_5
|
||||
#define Turnon10K IOID_6
|
||||
#define LOAD0 IOID_13
|
||||
#define LOAD1 IOID_12
|
||||
#define LOAD2 IOID_11
|
||||
|
||||
#define ADC_CS LOAD0, D6
|
||||
#define DAC_CS LOAD0, D7
|
||||
#define ADC_DAC_SPI_MOSI LOAD0, D3
|
||||
#define ADC_DAC_SPI_CLK LOAD0, D2
|
||||
#define LED_MOSI LOAD0, D1
|
||||
#define LED_CLK LOAD0, D0
|
||||
#define MEM_HOLD LOAD0, D4
|
||||
#define MEM_CS LOAD0, D5
|
||||
|
||||
#define Turnon_I_MID LOAD2, D0
|
||||
#define Turnon_I_SMALL LOAD2, D4
|
||||
#define Turnon_I_LARGE LOAD2, D1
|
||||
#define Turnon_V_SMALL LOAD2, D2
|
||||
#define Turnon_V_MID LOAD2, D3
|
||||
#define Turon_VOUT_SMALL LOAD2, D7
|
||||
|
||||
//#define Turnon10K Turnon_I_MID
|
||||
//#define Turnon200R Turnon_I_LARGE
|
||||
|
||||
/* I2C */
|
||||
#ifdef ELITE_VERSION_1_4
|
||||
#define Board_I2C0_SCL0 IOID_7
|
||||
#define Board_I2C0_SDA0 IOID_1
|
||||
#define Board_I2C0_SCL0 PIN_UNASSIGNED
|
||||
#define Board_I2C0_SDA0 PIN_UNASSIGNED
|
||||
#endif
|
||||
|
||||
#define shutdown_6994 IOID_10
|
||||
#define switch_on IOID_11
|
||||
#define enable_10v IOID_12
|
||||
#define enable_5v IOID_13
|
||||
#define shutdown_6994 LOAD2, D6
|
||||
#define switch_on IOID_14
|
||||
#define HIGH_Z_MODE LOAD2, D5
|
||||
#define enable_10v LOAD1, D5
|
||||
#define enable_5v LOAD1, D6
|
||||
|
||||
PIN_Handle pin_handle;
|
||||
static PIN_State ZM_rst;
|
||||
|
||||
const PIN_Config BLE_IO[] = {
|
||||
//
|
||||
ADC_CS | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX, // ADC_CS
|
||||
DAC_CS | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX, // DAC_CS
|
||||
// D0 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
// D1 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
// D2 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
// D3 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
D4 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
D5 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
D6 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
D7 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
|
||||
enable_10v | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX, // 10V_enable
|
||||
enable_5v | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX, // 5V_enable
|
||||
shutdown_6994 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX, // turn off power
|
||||
Turnon200R | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
|
||||
Turnon10K | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
|
||||
switch_on | PIN_INPUT_EN | PIN_PULLDOWN,
|
||||
LOAD0 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
LOAD1 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
LOAD2 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL,
|
||||
|
||||
switch_on | PIN_INPUT_EN | PIN_PULLDOWN, // to sense switch
|
||||
|
||||
PIN_TERMINATE
|
||||
};
|
||||
|
||||
static void add_elite_pin() {
|
||||
// PIN_add for Elite1.5
|
||||
PIN_add(pin_handle,
|
||||
D0 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL);
|
||||
PIN_add(pin_handle,
|
||||
D1 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL);
|
||||
PIN_add(pin_handle,
|
||||
D2 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL);
|
||||
PIN_add(pin_handle,
|
||||
D3 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL);
|
||||
|
||||
}
|
||||
|
||||
static void remove_elite_pin() {
|
||||
PIN_close(pin_handle);
|
||||
pin_handle = PIN_open(&ZM_rst, BLE_IO);
|
||||
}
|
||||
|
||||
/*!
|
||||
* @def BOOSTXL_CC2650MA_SPIName
|
||||
* @brief Enum of SPI names on the CC2650 Booster Pack
|
||||
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
|
||||
#ifndef VERSION_DATE
|
||||
#define VERSION_DATE
|
||||
|
||||
#define VERSION_DATE_YEAR 20
|
||||
#define VERSION_DATE_MONTH 4
|
||||
#define VERSION_DATE_DAY 30
|
||||
#define VERSION_DATE_HOUR 17
|
||||
#define VERSION_DATE_MINUTE 33
|
||||
|
||||
// this is NOT the version hash !!
|
||||
// it's the last version hash
|
||||
#define VERSION_HASH 8808490caa465cc94d14896de28763a5e5c4672b
|
||||
#define VERSION_GIT_BRANCH Elite_OBJ_0.2mv
|
||||
#endif
|
||||
+232
-61
@@ -374,12 +374,13 @@ characteristic change event
|
||||
#define HEADSTAGE_H
|
||||
|
||||
// product information
|
||||
#define DEVICE_NAME "Elite-ZM-v1.4-re"
|
||||
#define DEVICE_NAME "Elite-ZM-v1.5"
|
||||
#define MAJOR_PRODUCT_NUMBER 0
|
||||
#define MINOR_PRODUCT_NUMBER 2
|
||||
#define MAJOR_VERSION_NUMBER 1
|
||||
#define MINOR_VERSION_NUMBER 2
|
||||
|
||||
|
||||
#define ELITE_VERSION_1_4
|
||||
//#define ELITE_VERSION_1_3
|
||||
|
||||
@@ -432,6 +433,7 @@ static Clock_Struct periodicClock;
|
||||
|
||||
static bool PeriodicEvent = false;
|
||||
static bool InitPeriodicEvent = true;
|
||||
static bool HighZMode = false;
|
||||
static ICall_Semaphore semaphore;
|
||||
static uint16_t events;
|
||||
|
||||
@@ -492,6 +494,19 @@ 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};
|
||||
|
||||
/**
|
||||
* Latch initialize
|
||||
*/
|
||||
#define LATCH_BUFF_SIZE 8
|
||||
struct _LH{
|
||||
bool LATCH0[LATCH_BUFF_SIZE];
|
||||
bool LATCH1[LATCH_BUFF_SIZE];
|
||||
bool LATCH2[LATCH_BUFF_SIZE];
|
||||
} LH= {0};
|
||||
static void InitLH();
|
||||
static void Init_Elite15_PIN();
|
||||
|
||||
/*=====================================
|
||||
==== headstage function prototype ====
|
||||
@@ -534,6 +549,7 @@ static void ADC_read(uint8_t *ADCdata);
|
||||
static void ADC_test_read(uint8_t *ADCdata); // for auto shifting
|
||||
|
||||
static void ADCGainControl(uint8_t ADCLevel);
|
||||
static void VinADCGainControl(uint8_t VinADCLevel);
|
||||
static void ADCChannelSelect(uint8_t ADCChannel);
|
||||
static int32_t DecodeADCVolt(uint16_t ADC_measure);
|
||||
static int32_t DecodeADCVoutVolt(uint16_t ADC_measure);
|
||||
@@ -544,6 +560,7 @@ static void ADC_overflow(uint8_t gain, uint8_t *rawdata);
|
||||
|
||||
// DAC function
|
||||
static uint16_t Usercode_Correction_to_DAC(uint16_t usercode);
|
||||
static void VoutGainControl(uint8_t VOUTLevel);
|
||||
|
||||
// Elite key detection & turn on/ shutdown function
|
||||
static void EliteKeyPress(uint8_t key);
|
||||
@@ -578,6 +595,9 @@ 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
|
||||
#define VIS_CC_ZERO 0b01000000
|
||||
|
||||
// real instruction
|
||||
#define IV_CURVE 0b00010000
|
||||
@@ -587,15 +607,16 @@ static void set_update_instruction_callback(update_instruction_callback_type cal
|
||||
#define VT_CURVE 0b01010000
|
||||
#define IT_CURVE 0b01100000
|
||||
#define SET_SAMPLE_RATE 0b01110000
|
||||
#define SET_ADC_GAIN 0b10000000
|
||||
#define SET_ADC_DAC_GAIN 0b10000000
|
||||
#define DIFFERENTIAL_PULSE_VOLTAMMETRY 0b10100000
|
||||
#define SQUARE_WAVE_VOLTAMMETRY 0b10110000
|
||||
#define POTENTIAL_STATE 0b11000000
|
||||
#define CYCLIC_VOLTAMMETRY 0b11000000
|
||||
#define CONSTANT_CURRENT 0b11010000
|
||||
#define READ_VOUT_VALUE 0b11100000
|
||||
//#define READ_VOUT_VALUE 0b11100000
|
||||
#define CYCLE_CONSTANT_CURRENT 0b11110000
|
||||
|
||||
// CIS instruction
|
||||
#define CIS_VERSION 0x40
|
||||
|
||||
// test instruction
|
||||
#define ADC_TEST 0b10010000
|
||||
@@ -626,6 +647,9 @@ static uint16_t PulseWidth_16;
|
||||
static uint8_t PulsePeriod;
|
||||
static uint16_t PulsePeriod_16;
|
||||
|
||||
// CV3 Mode function
|
||||
static uint8_t CV3ModeDACEnable = 0;
|
||||
|
||||
// counter
|
||||
struct _CT{
|
||||
uint32_t SampleRate_counter;
|
||||
@@ -633,10 +657,10 @@ struct _CT{
|
||||
uint16_t NotifyCounter;
|
||||
uint32_t StandByCounter;
|
||||
}CT = {0};
|
||||
static void InitCT();
|
||||
|
||||
//static bool NotifyReady = false;
|
||||
static void InitFlag();
|
||||
static void InitCT();
|
||||
|
||||
#include "EliteWorkData.h"
|
||||
// real instruction fxn
|
||||
@@ -646,8 +670,9 @@ static void DACCode2Real2Notify(uint16_t DACcode); // send notify voltage a
|
||||
//static void VOLT_OUTPUT();
|
||||
static void ZT_Plot(RTMode *RT);
|
||||
static void VT_Plot(VTMode *VT);
|
||||
static int32_t IT_PlotIT_Plot(WorkMode *WorkModeData);
|
||||
static int32_t IT_Plot(WorkMode *WorkModeData);
|
||||
static void RVout_Plot(RVoutMode *RVout);
|
||||
static void CV3_Plot(CV3Mode *CV3);
|
||||
|
||||
// the following fxn do the same thing
|
||||
// IVCurve_T is called if Vorigin > Vfinal, vice versa
|
||||
@@ -662,6 +687,9 @@ static void ramp_test();
|
||||
static uint16_t DPVCurve(WorkMode *WorkModeData);
|
||||
static uint16_t CVCurve(CVMode *CV);
|
||||
static uint16_t SWVCurve(WorkMode *WorkModeData);
|
||||
static uint16_t CV3Curve(CV3Mode *CV3);
|
||||
|
||||
static void PIN15_setOutputValue (uint32_t latch_num, uint32_t pin_num, bool highlow);
|
||||
|
||||
static void reset();
|
||||
static void Eliteinterrupt();
|
||||
@@ -671,13 +699,14 @@ static void SendNotify();
|
||||
|
||||
static bool If10Von = false;
|
||||
static void TurnOn10V();
|
||||
|
||||
static void High_Z_switch(bool on_off);
|
||||
|
||||
#include "EliteInstruction.h"
|
||||
#include "EliteADC.h"
|
||||
#include "EliteDAC.h"
|
||||
#include "EliteSPI.h"
|
||||
#include "Elite_PIN.h"
|
||||
#include "Elite15_PIN.h"
|
||||
|
||||
#ifdef ELITE_VERSION_1_4
|
||||
#include "EliteI2C.h"
|
||||
@@ -686,6 +715,7 @@ static void TurnOn10V();
|
||||
#include "EliteDeviceCorrection.h"
|
||||
#include "EliteNotify.h"
|
||||
#include "EliteFlagCTInit.h"
|
||||
#include "EliteLatchInit.h"
|
||||
#include "EliteReset.h"
|
||||
#include "EliteLED.h"
|
||||
#include "EliteKeyDetect.h"
|
||||
@@ -698,6 +728,8 @@ static void TurnOn10V();
|
||||
#include "EliteCCCMode.h"
|
||||
#include "impedance_meter.h"
|
||||
#include "EliteReadVout.h"
|
||||
#include "Elite_version.h"
|
||||
#include "EliteCV3Mode.h"
|
||||
|
||||
// update instruction for Z meter
|
||||
static void update_ZM_instruction(uint8 *ins) {
|
||||
@@ -733,6 +765,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]) {
|
||||
@@ -741,7 +775,7 @@ static void update_ZM_instruction(uint8 *ins) {
|
||||
// }
|
||||
// if(ins[10]) {
|
||||
//INSTRUCTION.VoVi_Switch = ins[10];
|
||||
INSTRUCTION.VoVi_Switch = 0x00;
|
||||
INSTRUCTION.VoVi_Switch = 0x01;
|
||||
// }
|
||||
break;
|
||||
}
|
||||
@@ -822,7 +856,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]);
|
||||
@@ -846,7 +880,7 @@ static void update_ZM_instruction(uint8 *ins) {
|
||||
}
|
||||
// if(ins[11]) {
|
||||
//INSTRUCTION.VoVi_Switch = ins[11];
|
||||
INSTRUCTION.VoVi_Switch = 0x00;
|
||||
INSTRUCTION.VoVi_Switch = 0x01;
|
||||
// }
|
||||
|
||||
break;
|
||||
@@ -886,22 +920,12 @@ static void update_ZM_instruction(uint8 *ins) {
|
||||
CT.SampleRate_counter = 1;
|
||||
break;
|
||||
}
|
||||
case POTENTIAL_STATE: {
|
||||
INSTRUCTION.eliteFxn = POTENTIAL_STATE;
|
||||
|
||||
// test
|
||||
not_buf[0] = ins[3];
|
||||
not_buf[1] = ins[4];
|
||||
not_buf[2] = ins[5];
|
||||
not_buf[3] = ins[6];
|
||||
// SimpleProfile_SetParameter(BLE_DAT_BUFF_CHAR, BLE_DAT_BUFF_SIZE, not_buf);
|
||||
break;
|
||||
}
|
||||
|
||||
case CONSTANT_CURRENT:{
|
||||
INSTRUCTION.eliteFxn = CONSTANT_CURRENT;
|
||||
INSTRUCTION.SampleRate = 2;
|
||||
INSTRUCTION.Charge = ins[3];
|
||||
INSTRUCTION.Charge = ins[3]; //0:discharge 1:charge
|
||||
INSTRUCTION.VoltLimit = ((uint16_t) ins[4] << 8) | ((uint16_t) ins[5]);
|
||||
INSTRUCTION.ConstantCurrent = ( (uint32_t) (ins[6])<<24 | (uint32_t) (ins[7])<<16 | (uint32_t) (ins[8])<<8 | (uint32_t) (ins[9]) );
|
||||
INSTRUCTION.NotifyRate = 1000;
|
||||
@@ -918,45 +942,154 @@ static void update_ZM_instruction(uint8 *ins) {
|
||||
|
||||
break;
|
||||
}
|
||||
case SET_ADC_GAIN: {
|
||||
INSTRUCTION.ADCGainLevel = ins[3];
|
||||
if(INSTRUCTION.ADCGainLevel != GAIN_AUTO){
|
||||
INSTRUCTION.AutoGainEnable = 0;
|
||||
case SET_ADC_DAC_GAIN: {
|
||||
switch(ins[3]){ // ins[3] to choose Iin, Vin or Vout
|
||||
case IIN_ADC :{ // ins[4] to set gain level
|
||||
INSTRUCTION.ADCGainLevel = ins[4];
|
||||
if(INSTRUCTION.ADCGainLevel != I_GAIN_AUTO){
|
||||
INSTRUCTION.AutoGainEnable = 0;
|
||||
}
|
||||
else{
|
||||
INSTRUCTION.AutoGainEnable = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case VIN_ADC :{
|
||||
INSTRUCTION.VinADCGainLevel = ins[4];
|
||||
if(INSTRUCTION.ADCGainLevel != VIN_GAIN_AUTO){
|
||||
INSTRUCTION.AutoGainEnable = 0;
|
||||
}
|
||||
else{
|
||||
INSTRUCTION.AutoGainEnable = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case VOUT_DAC :{
|
||||
INSTRUCTION.VoutGainLevel = ins[4];
|
||||
if(INSTRUCTION.ADCGainLevel != VOUT_GAIN_AUTO){
|
||||
INSTRUCTION.AutoGainEnable = 0;
|
||||
}
|
||||
else{
|
||||
INSTRUCTION.AutoGainEnable = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default :{
|
||||
break;
|
||||
}
|
||||
}
|
||||
else{
|
||||
INSTRUCTION.AutoGainEnable = 1;
|
||||
}
|
||||
// if(INSTRUCTION.ADCGainLevel == GAIN_200R){
|
||||
// LED_color(DARKLED, 0x0F, 0x00, 0x00);
|
||||
// }
|
||||
// else if(INSTRUCTION.ADCGainLevel == GAIN_10K){
|
||||
// LED_color(DARKLED, 0x0F, 0x00, 0x0F);
|
||||
// }
|
||||
// else if(INSTRUCTION.ADCGainLevel == GAIN_200K){
|
||||
// LED_color(DARKLED, 0x0F, 0x02, 0xFF);
|
||||
// }
|
||||
|
||||
// INSTRUCTION.ADCGainLevel = ins[3];
|
||||
// if(INSTRUCTION.ADCGainLevel != I_GAIN_AUTO){
|
||||
// INSTRUCTION.AutoGainEnable = 0;
|
||||
// }
|
||||
// else{
|
||||
// INSTRUCTION.AutoGainEnable = 1;
|
||||
// }
|
||||
break;
|
||||
}
|
||||
|
||||
case READ_VOUT_VALUE:{
|
||||
// INSTRUCTION.ResisterMeter = ins[3];
|
||||
INSTRUCTION.eliteFxn = READ_VOUT_VALUE;
|
||||
/*uint8_t ReadVoutBuf[2] = {0};
|
||||
//CV3: 0xC0
|
||||
case CYCLIC_VOLTAMMETRY: {
|
||||
INSTRUCTION.eliteFxn = CYCLIC_VOLTAMMETRY;
|
||||
DACReset = true;
|
||||
INSTRUCTION.SampleRate = 15;
|
||||
// INSTRUCTION.NotifyRate = 100;
|
||||
|
||||
ADC_write(0xA4);
|
||||
ADC_read(ReadVoutBuf);
|
||||
SimpleProfile_SetParameter(BLE_DAT_BUFF_CHAR, 2, ReadVoutBuf);*/
|
||||
INSTRUCTION.InitVolt = ((uint16_t)(ins[3]) << 8) | (uint16_t)(ins[4]);
|
||||
|
||||
uint16_t E1 = ((uint16_t)(ins[5]) << 8) | (uint16_t)(ins[6]);
|
||||
uint16_t E2 = ((uint16_t)(ins[7]) << 8) | (uint16_t)(ins[8]);
|
||||
if(E1 >= E2){
|
||||
INSTRUCTION.MaxVolt = E1;
|
||||
INSTRUCTION.MinVolt = E2;
|
||||
}else if(E1 < E2){
|
||||
INSTRUCTION.MaxVolt = E2;
|
||||
INSTRUCTION.MinVolt = E1;
|
||||
}
|
||||
|
||||
if(INSTRUCTION.InitVolt > E1){
|
||||
INSTRUCTION.InitDirection = 0;//0:reverse 1:forward
|
||||
}else if(INSTRUCTION.InitVolt <= E1){
|
||||
INSTRUCTION.InitDirection = 1;
|
||||
}
|
||||
// INSTRUCTION.MaxVolt = ((uint16_t)(ins[5]) << 8) | (uint16_t)(ins[6]);
|
||||
//
|
||||
// INSTRUCTION.MinVolt = ((uint16_t)(ins[7]) << 8) | (uint16_t)(ins[8]);
|
||||
|
||||
INSTRUCTION.VoltOrigin = INSTRUCTION.MinVolt;
|
||||
|
||||
INSTRUCTION.VoltFinal = INSTRUCTION.MaxVolt;
|
||||
|
||||
// INSTRUCTION.InitDirection = ins[9];
|
||||
|
||||
if (ins[9] | ins[10]) {
|
||||
INSTRUCTION.Step = ((uint16_t)(ins[9]) << 8) | (uint16_t)(ins[10]);
|
||||
INSTRUCTION.StepTime = 200 * 100 / INSTRUCTION.Step;
|
||||
INSTRUCTION.Step = StepCode2DACcode(INSTRUCTION.Step);
|
||||
}
|
||||
|
||||
INSTRUCTION.NotifyRate = ((uint16_t)(ins[11]) << 8) | (uint16_t)(ins[12]);
|
||||
INSTRUCTION.NotifyRate = INSTRUCTION.NotifyRate / 2;
|
||||
|
||||
INSTRUCTION.MaxCurrent = ( (uint32_t) (ins[13])<<24 | (uint32_t) (ins[14])<<16 | (uint32_t) (ins[15])<<8 | (uint32_t) (ins[16]) );
|
||||
INSTRUCTION.CycleNumber = ins[17];
|
||||
INSTRUCTION.VoVi_Switch = 0x01;
|
||||
break;
|
||||
}
|
||||
|
||||
// case READ_VOUT_VALUE:{
|
||||
// INSTRUCTION.eliteFxn = READ_VOUT_VALUE;
|
||||
// /*uint8_t ReadVoutBuf[2] = {0};
|
||||
//
|
||||
// ADC_write(0xA4);
|
||||
// ADC_read(ReadVoutBuf);
|
||||
// SimpleProfile_SetParameter(BLE_DAT_BUFF_CHAR, 2, ReadVoutBuf);*/
|
||||
// break;
|
||||
// }
|
||||
|
||||
case ADC_TEST: {
|
||||
INSTRUCTION.eliteFxn = ADC_TEST;
|
||||
int32_t ADCRealValue = 0;
|
||||
uint8_t CIS_buf[9] = {0};
|
||||
|
||||
// ins[3] to choose Iin, Vin, Vout or HighZ
|
||||
// ins[4] to set gain level
|
||||
switch(ins[3]) {
|
||||
case IIN_ADC :{ // 0x00
|
||||
ADCGainControl(ins[4]);
|
||||
break;
|
||||
}
|
||||
case VIN_ADC :{ // 0x01
|
||||
VinADCGainControl(ins[4]);
|
||||
break;
|
||||
}
|
||||
case VOUT_DAC :{ // 0x02
|
||||
VoutGainControl(ins[4]);
|
||||
break;
|
||||
}
|
||||
case HIGH_Z :{ // 0x03
|
||||
switch(ins[4]) {
|
||||
case 0x00 :{
|
||||
High_Z_switch(0);
|
||||
break;
|
||||
}
|
||||
case 0x01 :{
|
||||
High_Z_switch(1);
|
||||
break;
|
||||
}
|
||||
default :{
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
default :{
|
||||
break;
|
||||
}
|
||||
}
|
||||
// for(int i=0 ; i<10 ; i++){
|
||||
ADCGainControl(ins[3]);
|
||||
ADCChannelSelect(ins[4]);
|
||||
ADCChannelSelect(ins[3]);
|
||||
CPUdelay(10);
|
||||
ADC_read(spi_ADC_rxbuf);
|
||||
// CPUdelay(10);
|
||||
@@ -977,16 +1110,16 @@ static void update_ZM_instruction(uint8 *ins) {
|
||||
// CIS_buf[4] = spi_ADC_rxbuf[3];
|
||||
|
||||
// decode ADC measure value
|
||||
ADCRealValue = DecodeADCValue(ins[3], ins[4], spi_ADC_rxbuf);
|
||||
ADCRealValue = DecodeADCValue(ins[4], ins[3], spi_ADC_rxbuf);
|
||||
|
||||
// test ADC output through CIS
|
||||
if (ins[4] == ADC_CH_VOLT) {
|
||||
if (ins[3] == ADC_CH_VOLT) {
|
||||
// return ADC volt measure
|
||||
CIS_buf[5] = (uint8_t)(ADCRealValue >> 24);
|
||||
CIS_buf[6] = (uint8_t)((ADCRealValue & 0x00FF0000) >> 16);
|
||||
CIS_buf[7] = (uint8_t)((ADCRealValue & 0x0000FF00) >> 8);
|
||||
CIS_buf[8] = (uint8_t)(ADCRealValue & 0x000000FF);
|
||||
} else if (ins[4] == ADC_CH_CURRENT) {
|
||||
} else if (ins[3] == ADC_CH_CURRENT) {
|
||||
// return ADC current measure
|
||||
CIS_buf[5] = (uint8_t)(ADCRealValue >> 24);
|
||||
CIS_buf[6] = (uint8_t)((ADCRealValue & 0x00FF0000) >> 16);
|
||||
@@ -1019,6 +1152,8 @@ static void update_ZM_instruction(uint8 *ins) {
|
||||
case VIS_RST: {
|
||||
INSTRUCTION.eliteFxn = VIS_RST;
|
||||
reset();
|
||||
CV3ModeDACEnable = 0;
|
||||
NotifyEnable = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1035,6 +1170,7 @@ static void update_ZM_instruction(uint8 *ins) {
|
||||
}
|
||||
|
||||
case VIS_STI: {
|
||||
|
||||
for(int i=0 ; i<12 ; i++){
|
||||
FlushNotify();
|
||||
}
|
||||
@@ -1052,27 +1188,49 @@ static void update_ZM_instruction(uint8 *ins) {
|
||||
for(int i=0 ; i<12 ; i++){
|
||||
FlushNotify();
|
||||
}
|
||||
CV3ModeDACEnable = 0;
|
||||
NotifyEnable = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
case VIS_SHIFT_200K: {
|
||||
PIN_setOutputValue(pin_handle, Turnon10K, 0);
|
||||
PIN_setOutputValue(pin_handle, Turnon200R, 0);
|
||||
LED_color(DARKLED, 0xFF, 0xB4, 0x00);
|
||||
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_SHIFT_10K: {
|
||||
PIN_setOutputValue(pin_handle, Turnon10K, 1);
|
||||
PIN_setOutputValue(pin_handle, Turnon200R, 0);
|
||||
LED_color(DARKLED, 0x14, 0xC8, 0xFF);
|
||||
case VIS_SHINY_DIS:{
|
||||
if(PeriodicEvent){
|
||||
WORKLED();
|
||||
}else if(!PeriodicEvent){
|
||||
LEDPowerON();
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case VIS_SHIFT_200R: {
|
||||
PIN_setOutputValue(pin_handle, Turnon10K, 0);
|
||||
PIN_setOutputValue(pin_handle, Turnon200R, 1);
|
||||
LED_color(DARKLED, 0xFF, 0xFF, 0xFF);
|
||||
case VIS_CC_ZERO:{
|
||||
INSTRUCTION.eliteFxn = CONSTANT_CURRENT;
|
||||
INSTRUCTION.SampleRate = 2;
|
||||
INSTRUCTION.Charge = 0x00;
|
||||
INSTRUCTION.VoltLimit = 0x61A8;
|
||||
INSTRUCTION.ConstantCurrent = 0x00;
|
||||
INSTRUCTION.NotifyRate = 1000;
|
||||
INSTRUCTION.VoVi_Switch = 0x02;
|
||||
|
||||
// uint8 *ins;
|
||||
// ins[0] = 0xC0;
|
||||
// ins[1] = 0xC0;
|
||||
// update_ZM_instruction(ins);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1089,6 +1247,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;
|
||||
}
|
||||
|
||||
+37
-18
@@ -41,18 +41,21 @@ static void ZM_update_instruction_callback(uint8_t ins_type, uint8_t chip_ID, ui
|
||||
|
||||
static void ZM_init() {
|
||||
set_update_instruction_callback(ZM_update_instruction_callback);
|
||||
|
||||
// initialize
|
||||
pin_handle = PIN_open(&ZM_rst, BLE_IO);
|
||||
Init_Elite15_PIN(); // Elite1.5 latch initialize
|
||||
|
||||
PIN_setOutputValue(pin_handle, shutdown_6994, 1); // OFF = 1 => turn off 6994
|
||||
PIN_setOutputValue(pin_handle, enable_10v, 0); // enable 10V
|
||||
PIN15_setOutputValue(shutdown_6994, 1); // OFF = 1 => turn off 6994
|
||||
PIN15_setOutputValue(enable_10v, 0); // enable 10V
|
||||
|
||||
PIN_setOutputValue(pin_handle, ADC_CS, 1); // ADC_CS HIGH
|
||||
PIN_setOutputValue(pin_handle, DAC_CS, 1); // DAC_CS HIGH
|
||||
PIN15_setOutputValue(ADC_CS, 1); // ADC_CS HIGH
|
||||
PIN15_setOutputValue(DAC_CS, 1); // DAC_CS HIGH
|
||||
PIN15_setOutputValue(MEM_CS, 1); // MEM_CS HIGH
|
||||
|
||||
InitEliteInstruction();
|
||||
ADCGainControl(GAIN_AUTO);
|
||||
ADCGainControl(I_GAIN_AUTO);
|
||||
VinADCGainControl(VIN_GAIN_AUTO);
|
||||
VoutGainControl(VOUT_GAIN_15K);
|
||||
elite_gptimer_open();
|
||||
|
||||
// PIN_registerIntCb(pin_handle, switch_on_callback);
|
||||
@@ -79,7 +82,7 @@ static void DACCode2Real2Notify(uint16_t DACcode) {
|
||||
(INSTRUCTION.eliteFxn == VT_CURVE) || \
|
||||
(INSTRUCTION.eliteFxn == ZT_CURVE) || \
|
||||
(INSTRUCTION.eliteFxn == CONSTANT_CURRENT) || \
|
||||
(INSTRUCTION.eliteFxn == READ_VOUT_VALUE) \
|
||||
(INSTRUCTION.eliteFxn == CYCLIC_VOLTAMMETRY) \
|
||||
)
|
||||
|
||||
/*********************************************************************
|
||||
@@ -130,6 +133,10 @@ static void SimpleBLEPeripheral_performPeriodicTask(WorkMode *WorkModeData) {
|
||||
// Control ADC to sample rate
|
||||
EliteADCControl(WorkModeData);
|
||||
|
||||
if (INSTRUCTION.eliteFxn == CYCLIC_VOLTAMMETRY){
|
||||
CV3Curve(WorkModeData->CV3);
|
||||
}
|
||||
|
||||
// Notify control, check if we need to send notify
|
||||
EliteNotifyControl();
|
||||
|
||||
@@ -139,8 +146,8 @@ static void SimpleBLEPeripheral_performPeriodicTask(WorkMode *WorkModeData) {
|
||||
// assign WorkModeData->VO = INSTRUCTION.VoltConstant
|
||||
WorkModeData->VO->_VoltOut = INSTRUCTION.VoltConstant;
|
||||
// UserCode -> DAC code -> DAC out
|
||||
DAC_outputV(Usercode_Correction_to_DAC(WorkModeData->VO->_VoltOut));
|
||||
// DAC_outputV(WorkModeData->VO->_VoltOut); // for voltage output calibration
|
||||
// DAC_outputV(Usercode_Correction_to_DAC(WorkModeData->VO->_VoltOut));
|
||||
DAC_outputV(WorkModeData->VO->_VoltOut); // for voltage output calibration
|
||||
FreeWorkMode(WorkModeData);
|
||||
PeriodicEvent = false;
|
||||
InitPeriodicEvent = true;
|
||||
@@ -236,16 +243,18 @@ static void EliteADCControl(WorkMode *WorkModeData) {
|
||||
// CCModeReverseCurrent(WorkModeData->CC);
|
||||
break;
|
||||
}
|
||||
case READ_VOUT_VALUE:{
|
||||
RVout_Plot(WorkModeData->RVout);
|
||||
|
||||
/*uint8_t ReadVoutBuf[2] = {0};
|
||||
|
||||
ADC_write(0xA4);
|
||||
ADC_read(ReadVoutBuf);
|
||||
SimpleProfile_SetParameter(BLE_DAT_BUFF_CHAR, 2, ReadVoutBuf);*/
|
||||
case CYCLIC_VOLTAMMETRY:{
|
||||
if (INSTRUCTION.VoltOrigin == INSTRUCTION.VoltFinal) {
|
||||
PeriodicEvent = false;
|
||||
}
|
||||
CV3_Plot(WorkModeData->CV3);
|
||||
break;
|
||||
}
|
||||
|
||||
// case READ_VOUT_VALUE:{
|
||||
// RVout_Plot(WorkModeData->RVout);
|
||||
// break;
|
||||
// }
|
||||
default:{
|
||||
IT_Plot(WorkModeData);
|
||||
// NotifyReady = true;
|
||||
@@ -270,6 +279,16 @@ static void EliteNotifyControl() {
|
||||
SendNotify();
|
||||
}
|
||||
}
|
||||
else if (INSTRUCTION.eliteFxn == CYCLIC_VOLTAMMETRY) {
|
||||
// output the last notify, and reset Elite
|
||||
if (!PeriodicEvent) {
|
||||
SendNotify();
|
||||
reset();
|
||||
} else if (NotifyEnable) {
|
||||
SendNotify();
|
||||
NotifyEnable = 0;
|
||||
}
|
||||
}
|
||||
else if (CT.SampleRate_counter == INSTRUCTION.SampleRate) {
|
||||
SendNotify();
|
||||
}
|
||||
@@ -277,7 +296,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) {
|
||||
|
||||
+8
-3
@@ -548,9 +548,8 @@ static void SimpleBLEPeripheral_taskFxn(UArg a0, UArg a1) {
|
||||
// Initialize application
|
||||
SimpleBLEPeripheral_init();
|
||||
headstage_init_device_info();
|
||||
|
||||
ZM_init();
|
||||
Elite_SPI_init();
|
||||
// Elite_SPI_init();
|
||||
WorkMode *WorkModeData = CreateWorkMode();
|
||||
|
||||
uint8_t key = 0;
|
||||
@@ -617,7 +616,7 @@ static void SimpleBLEPeripheral_taskFxn(UArg a0, UArg a1) {
|
||||
if (counter6994 < CLOCK_ONE_SECOND/2) { // counter6994 enable a IC after 35 counts
|
||||
counter6994++;
|
||||
} else if (counter6994 == CLOCK_ONE_SECOND/2) {
|
||||
PIN_setOutputValue(pin_handle, shutdown_6994, 1); // OFF = 1 => turn off 6994
|
||||
PIN15_setOutputValue(shutdown_6994, 1); // OFF = 1 => turn off 6994
|
||||
// #ifdef ELITE_VERSION_1_4
|
||||
// SPI_close(spiHandle0);
|
||||
// I2Cinit();
|
||||
@@ -632,6 +631,7 @@ static void SimpleBLEPeripheral_taskFxn(UArg a0, UArg a1) {
|
||||
InitEliteInstruction();
|
||||
ADCGainControl(INSTRUCTION.ADCGainLevel);
|
||||
DAC_outputV(Usercode_Correction_to_DAC(INSTRUCTION.VoltConstant));
|
||||
High_Z_switch(1); // turn on high impedance mode
|
||||
Free_Work_Mode = false;
|
||||
}
|
||||
} else {
|
||||
@@ -648,8 +648,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
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -681,6 +685,7 @@ static void SimpleBLEPeripheral_taskFxn(UArg a0, UArg a1) {
|
||||
}
|
||||
#endif // FEATURE_OAD
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
#!/bin/bash
|
||||
|
||||
#input="./Elite_test.txt"
|
||||
input="D:/Elite/Calibration_data/$1.txt"
|
||||
output="./simplelink/ble_sdk_2_02_02_25/src/examples/simple_peripheral/cc26xx/app/headstage/EliteDeviceCorrection.h"
|
||||
|
||||
#variable
|
||||
declare -i current_line=79
|
||||
declare -i col_index=0
|
||||
declare -i row_index=0
|
||||
#declare -i coeff=1
|
||||
#declare -i offset=0
|
||||
|
||||
declare -i current_gain=0
|
||||
#declare -i vin_gain=0
|
||||
#declare -i vout_gain=0
|
||||
MAC="MAC"
|
||||
|
||||
#constant
|
||||
declare -i ADC_CURRENT_GAIN_NUMBER=3
|
||||
declare -i ADC_VOLTAGE_GAIN_NUMBER=1
|
||||
declare -i DAC_GAIN_NUMBER=1
|
||||
|
||||
while read -r line; do
|
||||
for word in $line; do
|
||||
# get device MAC
|
||||
if [ $row_index -eq 0 ] && [ $col_index -eq 1 ];then
|
||||
MAC=$word
|
||||
sed -i "${current_line} i {" "$output"
|
||||
sed -i "${current_line} i \\\n#ifdef BOARD_${MAC}" "$output"
|
||||
sed -i 's/:/_/g' "$output"
|
||||
current_line=$current_line+3
|
||||
fi
|
||||
|
||||
#get ADC current cali data
|
||||
declare -i Iin_range=2+$ADC_CURRENT_GAIN_NUMBER
|
||||
if [ $row_index -gt 1 ] && [ $row_index -lt $Iin_range ];then
|
||||
|
||||
if [ $col_index -eq 1 ];then
|
||||
sed -i "${current_line} i \\\t.ADC_current[${current_gain}].coeff = ($word)," "$output"
|
||||
current_line=$current_line+1
|
||||
|
||||
elif [ $col_index -eq 2 ];then
|
||||
sed -i "${current_line} i \\\t.ADC_current[${current_gain}].offset = ($word)," "$output"
|
||||
current_line=$current_line+1
|
||||
|
||||
if [ $current_gain -lt 2 ];then
|
||||
current_gain=$current_gain+1
|
||||
else
|
||||
current_gain=0
|
||||
fi
|
||||
fi
|
||||
|
||||
#get DAC Vout cali data
|
||||
declare -i Vout_range=$Iin_range+$DAC_GAIN_NUMBER
|
||||
elif [ $row_index -gt 1 ] && [ $row_index -lt $Vout_range ];then
|
||||
if [ $col_index -eq 1 ];then
|
||||
sed -i "${current_line} i \\\t.Usercode2DAC.coeff = ($word)," "$output"
|
||||
current_line=$current_line+1
|
||||
|
||||
elif [ $col_index -eq 2 ];then
|
||||
sed -i "${current_line} i \\\t.Usercode2DAC.offset = ($word)," "$output"
|
||||
current_line=$current_line+1
|
||||
fi
|
||||
|
||||
#get ADC Vin cali data
|
||||
declare -i Vin_range=$Vout_range+$ADC_VOLTAGE_GAIN_NUMBER
|
||||
elif [ $row_index -gt 1 ] && [ $row_index -lt $Vin_range ];then
|
||||
if [ $col_index -eq 1 ];then
|
||||
sed -i "${current_line} i \\\t.ADC_volt.coeff = ($word)," "$output"
|
||||
current_line=$current_line+1
|
||||
|
||||
elif [ $col_index -eq 2 ];then
|
||||
sed -i "${current_line} i \\\t.ADC_volt.offset = ($word)," "$output"
|
||||
current_line=$current_line+1
|
||||
fi
|
||||
fi
|
||||
|
||||
#update index
|
||||
if [ $col_index -lt 2 ];then
|
||||
col_index=$col_index+1
|
||||
else
|
||||
col_index=0
|
||||
row_index=$row_index+1
|
||||
fi
|
||||
done
|
||||
done < $input
|
||||
|
||||
sed -i "${current_line} i };" "$output"
|
||||
current_line=$current_line+1
|
||||
sed -i "${current_line} i #endif" "$output"
|
||||
Reference in New Issue
Block a user