From 63d038ee6377f76af0799abeb5780ada7fbdb2fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9=20=D0=94=D1=91?= =?UTF-8?q?=D0=BC=D0=B8=D0=BD?= Date: Wed, 22 Oct 2025 20:40:25 +0300 Subject: [PATCH] Initial commit --- .editorconfig | 17 + .gitea/workflows/actions.md | 4 + .gitea/workflows/push-branch.yaml | 56 + .gitea/workflows/push-release-tag.yaml | 73 + .gitignore | 12 + .vscode/c_cpp_properties.json | 41 + .vscode/extensions.json | 18 + .vscode/launch.json | 106 + .vscode/settings.json | 114 + .vscode/tasks.json | 125 + Makefile | 237 + README.md | 3 + libs/Buffer.h | 73 + libs/Can.h | 288 + libs/CanFwInterface.cpp | 99 + libs/CanFwInterface.h | 291 + libs/CanSources.cpp | 56 + libs/CommonTypes.h | 335 + libs/IO.h | 329 + libs/LinBus.h | 212 + libs/LinFrame.h | 81 + libs/ModelName.h | 9 + libs/Periodic.h | 166 + libs/Settings.cpp | 67 + libs/Settings.h | 267 + libs/SettingsTable.h | 687 + libs/SysTimer.h | 83 + libs/Utils.h | 73 + libs/WeakFunc.cpp | 40 + src/CAN_FW.h | 17 + src/CAN_Inputs.h | 22 + src/CAN_Outputs.h | 5 + src/SettingsCANTable.h | 98 + src/immo/Immo.h | 16 + src/immo/immo.cpp | 30 + src/immo/immo.md | 1 + src/source/SourcePath.h | 11 + sys/M1_CAN_FW.ld | 147 + sys/M3_CAN_FW.ld | 147 + sys/STM32F107.svd | 42416 +++++++++++++++++ sys/STM32F446.svd | 56913 +++++++++++++++++++++++ sys/allowed_signers.sh | 70 + sys/changelog.sh | 38 + sys/export.bat | 4 + sys/export.ps1 | 3 + sys/export.sh | 17 + sys/export.zsh | 4 + sys/hex2fw.sh | 184 + sys/info/JLink_drivers_install.png | Bin 0 -> 6191 bytes sys/info/install.md | 108 + sys/install.sh | 103 + sys/srecord/libgcrypt-20.dll | Bin 0 -> 1294922 bytes sys/srecord/libgpg-error-0.dll | Bin 0 -> 207210 bytes sys/srecord/srec_cat.exe | Bin 0 -> 1539098 bytes sys/version.sh | 53 + sys/zdotdir/.gitignore | 3 + sys/zdotdir/.zshrc | 6 + 57 files changed, 104378 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitea/workflows/actions.md create mode 100644 .gitea/workflows/push-branch.yaml create mode 100644 .gitea/workflows/push-release-tag.yaml create mode 100644 .gitignore create mode 100644 .vscode/c_cpp_properties.json create mode 100644 .vscode/extensions.json create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json create mode 100644 Makefile create mode 100644 README.md create mode 100644 libs/Buffer.h create mode 100644 libs/Can.h create mode 100644 libs/CanFwInterface.cpp create mode 100644 libs/CanFwInterface.h create mode 100644 libs/CanSources.cpp create mode 100644 libs/CommonTypes.h create mode 100644 libs/IO.h create mode 100644 libs/LinBus.h create mode 100644 libs/LinFrame.h create mode 100644 libs/ModelName.h create mode 100644 libs/Periodic.h create mode 100644 libs/Settings.cpp create mode 100644 libs/Settings.h create mode 100644 libs/SettingsTable.h create mode 100644 libs/SysTimer.h create mode 100644 libs/Utils.h create mode 100644 libs/WeakFunc.cpp create mode 100644 src/CAN_FW.h create mode 100644 src/CAN_Inputs.h create mode 100644 src/CAN_Outputs.h create mode 100644 src/SettingsCANTable.h create mode 100644 src/immo/Immo.h create mode 100644 src/immo/immo.cpp create mode 100644 src/immo/immo.md create mode 100644 src/source/SourcePath.h create mode 100644 sys/M1_CAN_FW.ld create mode 100644 sys/M3_CAN_FW.ld create mode 100644 sys/STM32F107.svd create mode 100644 sys/STM32F446.svd create mode 100755 sys/allowed_signers.sh create mode 100755 sys/changelog.sh create mode 100644 sys/export.bat create mode 100644 sys/export.ps1 create mode 100644 sys/export.sh create mode 100644 sys/export.zsh create mode 100755 sys/hex2fw.sh create mode 100644 sys/info/JLink_drivers_install.png create mode 100644 sys/info/install.md create mode 100755 sys/install.sh create mode 100644 sys/srecord/libgcrypt-20.dll create mode 100644 sys/srecord/libgpg-error-0.dll create mode 100644 sys/srecord/srec_cat.exe create mode 100755 sys/version.sh create mode 100644 sys/zdotdir/.gitignore create mode 100644 sys/zdotdir/.zshrc diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..aad9ed4 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,17 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = false + +[*.{h,cpp,json,sh,bat,ps1,ld}] +indent_style = tab +indent_size = 4 + +[*.py] +indent_style = space +indent_size = 2 diff --git a/.gitea/workflows/actions.md b/.gitea/workflows/actions.md new file mode 100644 index 0000000..bc1719c --- /dev/null +++ b/.gitea/workflows/actions.md @@ -0,0 +1,4 @@ +## Actions + +* `push-branch.yaml` - Тестовая сборка при пуше веток. +* `push-release-tag.yaml` - Сборка релиза и загрузка черновика со всеми файлами при пуше тэга релиза. diff --git a/.gitea/workflows/push-branch.yaml b/.gitea/workflows/push-branch.yaml new file mode 100644 index 0000000..94505b5 --- /dev/null +++ b/.gitea/workflows/push-branch.yaml @@ -0,0 +1,56 @@ +# https://docs.gitea.com/usage/actions/overview +# https://github.com/marketplace?type=actions +# https://gitea.com/actions +# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions +name: Push Branch +on: + push: + branches: + - '**' + +jobs: + Build_Test: + name: Build Test + runs-on: ubuntu-latest + steps: + + # https://github.com/actions/checkout + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + fetch-tags: true + + - name: Dev Tools Cache + uses: actions/cache@v3 + with: + path: | + ~/.xpack-dev-tools + /usr/bin/xxd + /usr/bin/srec_cat + /lib/x86_64-linux-gnu/libsrecord.so.0.0.0 + /lib/x86_64-linux-gnu/libsrecord.so.0 + key: ${{ runner.os }}-xpack-dev-tools-xxd-srecord + + - name: Dev Tools install + run: sys/install.sh + + - name: Build M2 Debug + if: success() || failure() + run: . sys/export.sh; make -e MODEL=M2 debug + + - name: Build M2 Release + if: success() || failure() + run: . sys/export.sh; make -e MODEL=M2 release + + - name: Build M3 Debug + if: success() || failure() + run: . sys/export.sh; make -e MODEL=M3 debug + + - name: Build M3 Release + if: success() || failure() + run: . sys/export.sh; make -e MODEL=M3 release + + - name: Changelog + if: success() || failure() + run: sys/changelog.sh; cat CHANGELOG.md diff --git a/.gitea/workflows/push-release-tag.yaml b/.gitea/workflows/push-release-tag.yaml new file mode 100644 index 0000000..abfeb47 --- /dev/null +++ b/.gitea/workflows/push-release-tag.yaml @@ -0,0 +1,73 @@ +# https://docs.gitea.com/usage/actions/overview +# https://github.com/marketplace?type=actions +# https://gitea.com/actions +# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions +name: Push Release Tag +on: + push: + tags: + - 'v*' + - '*_v*' + +jobs: + Build_and_draft_Release_tag: + name: Build Release and Draft + runs-on: ubuntu-latest + steps: + + # https://github.com/actions/checkout + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + fetch-tags: true + + - name: Dev Tools Cache + uses: actions/cache@v3 + with: + path: | + ~/.xpack-dev-tools + /usr/bin/xxd + /usr/bin/srec_cat + /lib/x86_64-linux-gnu/libsrecord.so.0.0.0 + /lib/x86_64-linux-gnu/libsrecord.so.0 + key: ${{ runner.os }}-xpack-dev-tools-xxd-srecord + + - name: Dev Tools install + run: sys/install.sh + + - name: Build M2 Release + id: M2 + if: success() || failure() + run: . sys/export.sh; make -e MODEL=M2 release + + - name: Build M3 Release + id: M3 + if: success() || failure() + run: . sys/export.sh; make -e MODEL=M3 release + + - name: Changelog + if: success() || failure() + run: sys/changelog.sh; cat CHANGELOG.md + + # https://github.com/actions/setup-node + - name: Node setup + # https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/accessing-contextual-information-about-workflow-runs#steps-context + if: ( ${{ success() }} || ${{ failure() }} ) && ( ${{ steps.M2.outcome }} == 'success' || ${{ steps.M3.outcome }} == 'success' ) + uses: actions/setup-node@v4 + with: + node-version: 18 + + # https://github.com/akkuman/gitea-release-action + - name: Upload Draft Release + if: ( ${{ success() }} || ${{ failure() }} ) && ( ${{ steps.M2.outcome }} == 'success' || ${{ steps.M3.outcome }} == 'success' ) + uses: akkuman/gitea-release-action@v1 + with: + token: '${{secrets.ACTION_TOKEN}}' + body: 'Описание релиза' + body_path: 'CHANGELOG.md' + draft: true + prerelease: true + files: |- + build/M2_Release/*.fw + build/M3_Release/*.fw diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b42d278 --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +/build +/CHANGELOG.md +/libs/Version.h + +/.vscode/* +!/.vscode/c_cpp_properties.json +!/.vscode/extensions.json +!/.vscode/launch.json +!/.vscode/settings.json +!/.vscode/tasks.json + +sys/__pycache__/ \ No newline at end of file diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..d0a53a3 --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,41 @@ +{ + "configurations": [ + { + "name": "M2", + "intelliSenseMode": "gcc-arm", + "cStandard": "c17", + "cppStandard": "c++17", + "includePath": [ + "libs", + "src" + ], + "defines": [ + "DEBUG", + "STM32F10X_CL", + "HSE_VALUE=16000000", + "CAN_FIRMWARE=1", + "MOBICAR_1_2=1" + ], + "compilerPath": "${userHome}/.xpack-dev-tools/xpack-arm-none-eabi-gcc-12.3.1-1.2/bin/arm-none-eabi-gcc" + }, + { + "name": "M3", + "intelliSenseMode": "gcc-arm", + "cStandard": "c17", + "cppStandard": "c++17", + "includePath": [ + "libs", + "src" + ], + "defines": [ + "DEBUG", + "STM32F10X_CL", + "HSE_VALUE=16000000", + "CAN_FIRMWARE=1", + "MOBICAR_3=1" + ], + "compilerPath": "${userHome}/.xpack-dev-tools/xpack-arm-none-eabi-gcc-12.3.1-1.2/bin/arm-none-eabi-gcc" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..f061133 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,18 @@ +{ + "recommendations": [ + /* mandatory extensions */ + "ms-vscode.cpptools", // C/C++ support + "marus25.cortex-debug", // Cortex-Debug + /* handy extensions (optional) */ + "spencerwmiles.vscode-task-buttons",// Run tasks using statusbar buttons + "mhutchie.git-graph", // Git Graph + "pkief.material-icon-theme", // Icons + "ZixuanWang.linkerscript", // Linker Script files syntax + "trond-snekvik.gnu-mapfiles", // Linker Map files syntax + "keroc.hex-fmt", // Intel Hex files syntax + "ms-vscode.hexeditor", // Hex editor for binary files + "dan-c-underwood.arm", // ARM Assembly files syntax + "EditorConfig.EditorConfig", // editorconfig + "YuTengjing.open-in-external-app", // Open files in external app + ] +} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..75a48bd --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,106 @@ +{ + "configurations": [ + { + "name": "Debug M2", + "request": "launch", + "preLaunchTask": "Build M2 Debug", + "executable": "./build/M2_Debug/CAN_FW.elf", + "cwd": "${workspaceRoot}", + "showDevDebugOutput": "parsed", + "type": "cortex-debug", + // J-Link config // + "servertype": "jlink", + "serverArgs": ["-speed", "4000"], + "windows": { + "serverpath": "C:/Program Files/SEGGER/JLink/JLinkGDBServerCL.exe" + }, + "osx": { + "serverpath": "/Applications/SEGGER/JLink/JLinkGDBServer" + }, + "device": "STM32F105VC", + "svdFile": "sys/STM32F107.svd", + "swoConfig": + { + "enabled": true, + "cpuFrequency": 36000000, + "swoFrequency": 12000000, + "source": "probe", + "decoders": + [ + { + "label": "ITM", + "type": "console", + "port": 0, + "showOnStartup": true, + "encoding": "ascii", + } + ] + }, + // "rttConfig": { + // "enabled": true, + // "address": "auto", + // "decoders": [ + // { + // "label": "RTT Log", + // "port": 0, + // "type": "console", + // "noprompt": true, + // } + // ] + // }, + // Other // + "internalConsoleOptions": "neverOpen" + }, + { + "name": "Debug M3", + "request": "launch", + "preLaunchTask": "Build M3 Debug", + "executable": "./build/M3_Debug/CAN_FW.elf", + "cwd": "${workspaceRoot}", + "showDevDebugOutput": "parsed", + "type": "cortex-debug", + // J-Link config // + "servertype": "jlink", + "serverArgs": ["-speed", "4000"], + "windows": { + "serverpath": "C:/Program Files/SEGGER/JLink/JLinkGDBServerCL.exe" + }, + "osx": { + "serverpath": "/Applications/SEGGER/JLink/JLinkGDBServer" + }, + "device": "STM32F446ZE", + "svdFile": "sys/STM32F446.svd", + "swoConfig": + { + "enabled": true, + "cpuFrequency": 36000000, + "swoFrequency": 12000000, + "source": "probe", + "decoders": + [ + { + "label": "ITM", + "type": "console", + "port": 0, + "showOnStartup": true, + "encoding": "ascii" + } + ] + }, + // "rttConfig": { + // "enabled": true, + // "address": "auto", + // "decoders": [ + // { + // "label": "RTT Log", + // "port": 0, + // "type": "console", + // "noprompt": true, + // } + // ] + // }, + // Other // + "internalConsoleOptions": "neverOpen" + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..c840ab6 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,114 @@ +{ + // Terminal profiles: + "terminal.integrated.profiles.windows": { + "Git Bash": { + "source": "Git Bash", + // "icon": "tools", + "color": "terminal.ansiGreen", + "overrideName": false, + "env": {}, + "args": ["--init-file", "sys/export.sh"] + }, + "Command Prompt": { + "path": "C:/Windows/System32/cmd.exe", + // "icon": "tools", + "color": "terminal.ansiGreen", + "overrideName": false, + "env": {}, + "args": ["/k call sys/export.bat"] + }, + "PowerShell": { + "source": "PowerShell", + // "icon": "tools", + "color": "terminal.ansiGreen", + "overrideName": false, + "env": {}, + "args": ["-noexit", "-file", "sys/export.ps1"] + } + }, + + "terminal.integrated.defaultProfile.linux": "Build bash", + "terminal.integrated.profiles.linux": { + "Build bash": { + "path": "bash", + "icon": "terminal-bash", + "color": "terminal.ansiGreen", + "overrideName": true, + "env": {}, + "args": ["--init-file", "sys/export.sh"] + }, + "Build zsh": { + "path": "zsh", + "icon": "terminal", + "color": "terminal.ansiGreen", + "overrideName": true, + "env": {"ZDOTDIR": "sys/zdotdir"}, + "args": [] + } + }, + + "terminal.integrated.defaultProfile.osx": "Build zsh", + "terminal.integrated.profiles.osx": { + "Build bash": { + "path": "bash", + "icon": "terminal-bash", + "color": "terminal.ansiGreen", + "overrideName": true, + "env": {}, + "args": ["--init-file", "sys/export.sh"] + }, + "Build zsh": { + "path": "zsh", + "icon": "terminal", + "color": "terminal.ansiGreen", + "overrideName": true, + "env": {"ZDOTDIR": "sys/zdotdir"}, + "args": [] + } + }, + + // Cortex-Debug + "cortex-debug.armToolchainPath": "${userHome}/.xpack-dev-tools/xpack-arm-none-eabi-gcc-12.3.1-1.2/bin", + + // C/C++ + "C_Cpp.autoAddFileAssociations": false, + + // Task Buttons extention + "VsCodeTaskButtons.showCounter": false, + "VsCodeTaskButtons.tasks": [ + { + "label": "$(tools) M2 Release", + "alignment": "left", + "task": "Build M2 Release" + }, + { + "label": "$(tools) M3 Release", + "alignment": "left", + "task": "Build M3 Release" + }, + { + "label": "$(tools) M2 Debug", + "alignment": "left", + "task": "Build M2 Debug" + }, + { + "label": "$(tools) M3 Debug", + "alignment": "left", + "task": "Build M3 Debug" + }, + { + "label": "$(tools) Clean", + "alignment": "left", + "task": "Clean" + }, + ], + "workbench.editorAssociations": { + "*.o": "hexEditor.hexedit", + "*.elf": "hexEditor.hexedit", + "*.bin": "hexEditor.hexedit", + "*.fw": "hexEditor.hexedit" + }, + "search.exclude": { + "build/**": true + } +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..8f8d456 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,125 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Build M2 Release", + "type": "process", + "command": "bash", + "args": ["-c", ". sys/export.sh && make -e MODEL=M2 release"], + "windows": { + "command": "C:/Windows/System32/cmd.exe", + "args": ["/c call sys/export.bat && make -e MODEL=M2 release"] + }, + "osx": { + "type": "shell" + }, + "icon": {"id": "tools", "color": "terminal.ansiGreen"}, + "options": { + "cwd": "${workspaceRoot}" + }, + "group": { + "kind": "build", + "isDefault": true + }, + "problemMatcher": [ + "$gcc" + ] + }, + { + "label": "Build M3 Release", + "type": "process", + "command": "bash", + "args": ["-c", ". sys/export.sh && make -e MODEL=M3 release"], + "windows": { + "command": "C:/Windows/System32/cmd.exe", + "args": ["/c call sys/export.bat && make -e MODEL=M3 release"] + }, + "osx": { + "type": "shell" + }, + "icon": {"id": "tools", "color": "terminal.ansiGreen"}, + "options": { + "cwd": "${workspaceRoot}" + }, + "group": { + "kind": "build", + "isDefault": true + }, + "problemMatcher": [ + "$gcc" + ] + }, + { + "label": "Build M2 Debug", + "type": "process", + "command": "bash", + "args": ["-c", ". sys/export.sh && make -e MODEL=M2 debug"], + "windows": { + "command": "C:/Windows/System32/cmd.exe", + "args": ["/c call sys/export.bat && make -e MODEL=M2 debug"] + }, + "osx": { + "type": "shell" + }, + "icon": {"id": "tools", "color": "terminal.ansiGreen"}, + "options": { + "cwd": "${workspaceRoot}" + }, + "group": { + "kind": "build", + "isDefault": true + }, + "problemMatcher": [ + "$gcc" + ] + }, + { + "label": "Build M3 Debug", + "type": "process", + "command": "bash", + "args": ["-c", ". sys/export.sh && make -e MODEL=M3 debug"], + "windows": { + "command": "C:/Windows/System32/cmd.exe", + "args": ["/c call sys/export.bat && make -e MODEL=M3 debug"] + }, + "osx": { + "type": "shell" + }, + "icon": {"id": "tools", "color": "terminal.ansiGreen"}, + "options": { + "cwd": "${workspaceRoot}" + }, + "group": { + "kind": "build", + "isDefault": true + }, + "problemMatcher": [ + "$gcc" + ] + }, + { + "label": "Clean", + "type": "process", + "command": "bash", + "args": ["-c", ". sys/export.sh && rm -rf build"], + "windows": { + "command": "C:/Windows/System32/cmd.exe", + "args": ["/c call sys/export.bat && rm -rf build"] + }, + "osx": { + "type": "shell" + }, + "icon": {"id": "tools", "color": "terminal.ansiGreen"}, + "options": { + "cwd": "${workspaceRoot}" + }, + "group": { + "kind": "build", + "isDefault": true + }, + "problemMatcher": [ + "$gcc" + ] + } + ] +} \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..8b84b1b --- /dev/null +++ b/Makefile @@ -0,0 +1,237 @@ +# Use install.sh for Build Tools installation +# Use . export.sh for PATH settings + +# https://stackoverflow.com/questions/1612278/pre-build-step-in-makefile + +TARGET = CAN_FW + +DEBUG = 1 + +OPT = -Og + +ifeq ($(DEBUG), 1) +BUILD_DIR = build/$(MODEL)_Debug +else +BUILD_DIR = build/$(MODEL)_Release +endif + +####################################### +# SOURCES +####################################### + +C_SOURCES = \ + + +CPP_SOURCES = \ +$(wildcard libs/*.cpp) \ +$(wildcard src/*.cpp) \ +$(wildcard src/immo/*.cpp) + + +ASM_SOURCES = \ + + +####################################### +# INCLUES +####################################### + +# AS includes +AS_INCLUDES = + +# C includes +C_INCLUDES = \ +-Ilibs \ +-Isrc + +####################################### +# OTHER MAKE VARIABLES +####################################### + +CXX = arm-none-eabi-g++ +CC = arm-none-eabi-gcc +AS = arm-none-eabi-gcc -x assembler-with-cpp +CP = arm-none-eabi-objcopy +SZ = arm-none-eabi-size +HEX = $(CP) -O ihex +BIN = $(CP) -O binary -S + +# mcu +MCU = -mcpu=cortex-m3 -mthumb + +# AS defines +AS_DEFS = + +# C defines +C_DEFS = -DSTM32F10X_CL -DHSE_VALUE=16000000 -DCAN_FIRMWARE=1 + +# CXX defines +CXX_DEFS = -DSTM32F10X_CL -DHSE_VALUE=16000000 -DCAN_FIRMWARE=1 + +ifeq ($(MODEL),M2) +C_DEFS += -DMOBICAR_1_2=1 +CXX_DEFS += -DMOBICAR_1_2=1 +endif + +ifeq ($(MODEL),M3) +C_DEFS += -DMOBICAR_3=1 +CXX_DEFS += -DMOBICAR_3=1 +endif + +# compile gcc flags +ASFLAGS = $(MCU) $(AS_DEFS) $(AS_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections +CFLAGS = $(MCU) $(C_DEFS) $(C_INCLUDES) $(OPT) -Wall -fdata-sections -ffunction-sections + +CXXFLAGS = $(MCU) $(CXX_DEFS) $(C_INCLUDES) $(OPT) +CXXFLAGS += -Wall# All warnings +CXXFLAGS += -fmessage-length=0# Number of lines for error messages +CXXFLAGS += -fsigned-char# Default char is signed +CXXFLAGS += -fdata-sections -ffunction-sections# Place each function or data item into its own section (use garbage collector --gc-sections in linker) +CXXFLAGS += -ffreestanding# Freestanding environment (without standard library) +CXXFLAGS += -Wuninitialized# Uninitialized variables warning +CXXFLAGS += -Wpointer-arith# Warning for arithmetic operations with 'void *' +CXXFLAGS += -Wshadow# Warning if a local var shadows another one +CXXFLAGS += -Wlogical-op# Warn about suspicious uses of logical operators in expressions +CXXFLAGS += -Waggregate-return# Warn if any functions that return structures or unions are defined or called +CXXFLAGS += -Wfloat-equal# Warn if floating-point values are used in equality comparisons +CXXFLAGS += -std=gnu++11# C++ standart +CXXFLAGS += -fabi-version=0# Fix ABI version +CXXFLAGS += -fno-exceptions# Disable the generation of code needed to support C++ exceptions +CXXFLAGS += -fno-rtti# Disable C++ runtime +CXXFLAGS += -fno-use-cxa-atexit# Do not use standard library for calling destructors +CXXFLAGS += -fno-threadsafe-statics# Do not emit the extra code to use the routines specified in the C++ ABI for thread-safe initialization of local statics + + +ifeq ($(DEBUG), 1) +CFLAGS += -g -gdwarf -ggdb +CXXFLAGS += -g -gdwarf -ggdb +C_DEFS += -DDEBUG +CXX_DEFS += -DDEBUG +endif + +# Generate dependency information +CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" +CXXFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" + +####################################### +# LDFLAGS +####################################### +# link script +ifeq ($(MODEL),M2) +LDSCRIPT = sys/M1_CAN_FW.ld +endif +ifeq ($(MODEL),M3) +LDSCRIPT = sys/M3_CAN_FW.ld +endif + +LDFLAGS = $(MCU) +LDFLAGS += -Wl,--gc-sections# Dead code removal (linker garbage collector) +LDFLAGS += -Wl,--print-memory-usage# Print FLASH/RAM memory table +LDFLAGS += -T$(LDSCRIPT)# Linker script +# LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(TARGET).map# MAP file +LDFLAGS += -nostartfiles# Do not use startup code before the main() +LDFLAGS += -nodefaultlibs# Do not use default libs +LDFLAGS += -nostdlib# Do not use std lib +LDFLAGS += -Wl,--no-warn-rwx-segment# Remove RWX warning + + +####################################### +# build the application +####################################### +# list of cpp program objects +OBJECTS = $(addprefix $(BUILD_DIR)/, $(CPP_SOURCES:.cpp=.cpp.o)) + +# list of C objects +OBJECTS += $(addprefix $(BUILD_DIR)/, $(C_SOURCES:.c=.c.o)) + +# list of ASM program objects +UPPER_CASE_ASM_SOURCES = $(filter %.S, $(ASM_SOURCES)) +LOWER_CASE_ASM_SOURCES = $(filter %.s, $(ASM_SOURCES)) + +OBJECTS += $(addprefix $(BUILD_DIR)/, $(UPPER_CASE_ASM_SOURCES:.S=.S.o)) +OBJECTS += $(addprefix $(BUILD_DIR)/, $(LOWER_CASE_ASM_SOURCES:.s=.s.o)) + +# default action +.DEFAULT_GOAL := all +all: + @echo Use MODEL variable with debug/release target: + @echo make -e MODEL=M2 debug + @echo make -e MODEL=M2 release + @echo make -e MODEL=M3 debug + @echo make -e MODEL=M3 release + +# Colors +NC =\e[0m +RED =\e[0;31m +GREEN =\e[0;32m +BLUE =\e[0;36m + +.SECONDEXPANSION: + +ERROR_HANDLER = && printf "$(GREEN)OK$(NC)\n" || (printf "$(RED)ERROR$(NC)\n"; exit 1) + +$(BUILD_DIR)/%.cpp.o: %.cpp Makefile | $$(@D)/ + @printf "compile $(BLUE)$<$(NC) " + @$(CXX) -E -c $(CXXFLAGS) $< -o $@ || (printf "$(RED)ERROR$(NC)\n"; exit 1) + @iconv -f UTF-8 -t CP1251 $@ > $@.i + @$(CXX) -c $(CXXFLAGS) $@.i -o $@ $(ERROR_HANDLER) + +$(BUILD_DIR)/%.c.o: %.c Makefile | $$(@D)/ + @printf "compile $(BLUE)$<$(NC) " + @$(CC) -c $(CFLAGS) $< -o $@ $(ERROR_HANDLER) + +$(BUILD_DIR)/%.s.o: %.s Makefile | $$(@D)/ + @printf "compile $(BLUE)$<$(NC) " + @$(AS) -c $(CFLAGS) $< -o $@ $(ERROR_HANDLER) + +$(BUILD_DIR)/%.S.o: %.S Makefile | $$(@D)/ + @printf "compile $(BLUE)$<$(NC) " + @$(AS) -c $(CFLAGS) $< -o $@ $(ERROR_HANDLER) + +$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile + @printf "linking $(BLUE)$@$(NC)\n" + @$(CXX) $(OBJECTS) $(LDFLAGS) -o $@ || (printf "$(RED)linker ERROR$(NC)\n"; exit 1) +# $(SZ) $@ + +# https://www.cmcrossroads.com/article/making-directories-gnu-make +%/: + @mkdir -p $@ + +$(BUILD_DIR)/%.hex: $(BUILD_DIR)/%.elf + @printf "generate $(BLUE)$@$(NC) " + @$(HEX) $< $@ $(ERROR_HANDLER) + @sys/hex2fw.sh $@ || exit 1 + +ifeq ($(DEBUG), 1) +STARTMSG = Building $(MODEL) Debug +else +STARTMSG = Building $(MODEL) Release +endif + +build_app: + @printf "$(GREEN)-----------------------$(NC)\n" + @printf "$(GREEN) $(STARTMSG)$(NC)\n" + @printf "$(GREEN)-----------------------$(NC)\n" + @sys/version.sh; +# @sys/changelog.sh; + @make -j --no-print-directory --output-sync $(BUILD_DIR)/$(TARGET).hex + @printf "$(GREEN)-----------------------$(NC)\n" + +clean: + @rm -rf $(BUILD_DIR) + +debug: + @make clean --no-print-directory + @make build_app --no-print-directory + +release: + @make clean --no-print-directory -e DEBUG=0 + @make build_app --no-print-directory -e OPT=-Os DEBUG=0 + +printvars: + @echo "MODEL: $(MODEL)" + @echo "C_DEFS: $(C_DEFS)" + @echo "CXX_DEFS: $(CXX_DEFS)" + +-include $(OBJECTS:.o=.d) + +# *** EOF *** \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..ad84c6a --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +## Шаблон проекта CAN-прошивки + +[Подготовка к работе](sys/info/install.md) \ No newline at end of file diff --git a/libs/Buffer.h b/libs/Buffer.h new file mode 100644 index 0000000..a8cb9c2 --- /dev/null +++ b/libs/Buffer.h @@ -0,0 +1,73 @@ +/* + * Buffer.h + * + * Created on: 03 апр. 2015 г. + * Author: esaulenko + */ + +#ifndef _BUFFER_H_ +#define _BUFFER_H_ + +#include + + +// простейший кольцевой буфер. +// проверки при добавлении/извлечении данных отсутствуют, надо проверять отдельно!! + +template +class CircularBuffer +{ +private: + Type buff[Size]; + volatile uint32_t putIdx; + volatile uint32_t getIdx; + +public: + CircularBuffer() + { + Flush (); + } + + void Put (const Type & data) + { + buff[putIdx] = data; + putIdx = (putIdx + 1) % Size; + } + + Type Get () + { + Type data = buff[getIdx]; + getIdx = (getIdx + 1) % Size; + return data; + } + + Type & View () + { + return buff[getIdx]; + } + + uint32_t Avail () const + { + int32_t avail = putIdx - getIdx; + if (avail < 0) avail += Size; + return avail; + } + + uint32_t Free () const + { + int32_t free = getIdx - putIdx - 1; + if (free < 0) free += Size; + return free; + } + + void Flush () + { + putIdx = getIdx = 0; + } + + +}; + + + +#endif /* _BUFFER_H_ */ diff --git a/libs/Can.h b/libs/Can.h new file mode 100644 index 0000000..7eef4d8 --- /dev/null +++ b/libs/Can.h @@ -0,0 +1,288 @@ +/* + * Can.h + * + * Created on: 01 июня 2015 г. + * Author: esaulenko + */ + +#ifndef DRIVERS_CAN_CAN_H_ +#define DRIVERS_CAN_CAN_H_ + + +#include +#include "CommonTypes.h" +#ifndef CAN_FIRMWARE + #include "SysTimer.h" + #include "Buffer.h" + #include "scmRTOS.h" +#endif + + + + +struct TCanPkt +{ + uint32_t id; + uint8_t data[8]; + uint8_t data_len; + + TCanPkt() { } + + TCanPkt (uint32_t pkt_id): + id(pkt_id) { } + + // принимает строку, заполняет данные пакета. Неуказанные данные заполняются нулями + template + inline void SetData (const char (&data_str)[N]) + { + int data_size = (N <= 8) ? (N - 1) : 8; + for (int i = 0; i < data_size; i++) + data[i] = data_str[i]; + for (int i = data_size; i < 8; i++) + data[i] = 0x00; + } + + inline void SetData (uint8_t A) + { data_len = 1; + data[0] = A; data[1] = 0; data[2] = 0; data[3] = 0; + data[4] = 0; data[5] = 0; data[6] = 0; data[7] = 0; + } + inline void SetData (uint8_t A, uint8_t B) + { data_len = 2; + data[0] = A; data[1] = B; data[2] = 0; data[3] = 0; + data[4] = 0; data[5] = 0; data[6] = 0; data[7] = 0; + } + inline void SetData (uint8_t A, uint8_t B, uint8_t C) + { data_len = 3; + data[0] = A; data[1] = B; data[2] = C; data[3] = 0; + data[4] = 0; data[5] = 0; data[6] = 0; data[7] = 0; + } + inline void SetData (uint8_t A, uint8_t B, uint8_t C, uint8_t D) + { data_len = 4; + data[0] = A; data[1] = B; data[2] = C; data[3] = D; + data[4] = 0; data[5] = 0; data[6] = 0; data[7] = 0; + } + inline void SetData (uint8_t A, uint8_t B, uint8_t C, uint8_t D, uint8_t E) + { data_len = 5; + data[0] = A; data[1] = B; data[2] = C; data[3] = D; + data[4] = E; data[5] = 0; data[6] = 0; data[7] = 0; + } + inline void SetData (uint8_t A, uint8_t B, uint8_t C, uint8_t D, uint8_t E, uint8_t F) + { data_len = 6; + data[0] = A; data[1] = B; data[2] = C; data[3] = D; + data[4] = E; data[5] = F; data[6] = 0; data[7] = 0; + } + inline void SetData (uint8_t A, uint8_t B, uint8_t C, uint8_t D, uint8_t E, uint8_t F, uint8_t G) + { data_len = 7; + data[0] = A; data[1] = B; data[2] = C; data[3] = D; + data[4] = E; data[5] = F; data[6] = G; data[7] = 0; + } + inline void SetData (uint8_t A, uint8_t B, uint8_t C, uint8_t D, uint8_t E, uint8_t F, uint8_t G, uint8_t H) + { data_len = 8; + data[0] = A; data[1] = B; data[2] = C; data[3] = D; + data[4] = E; data[5] = F; data[6] = G; data[7] = H; + } + +}; + + +struct TCanInit +{ + uint32_t baudrate; // "сырое" значение регистра BTR, см. TCanBaudrate + uint8_t mode; // в наст. момент не используется. TODO Должно быть RO / RW + uint64_t filters[27]; // массив со значениями для пар регистров; заполняется Filters::xxx +}; + + + +class CCan +{ +public: + + enum TCanState : uint8_t + { + CanActive, + CanRxOnly, // внешний драйвер выключен + CanSleep, // внешний драйвер выключен, модуль в спящем режиме + + CanInitError = 0xFE, + CanBusOff = 0xFF, + }; + +/* TIME QUANTUM FREQUENCY: + Ftq = Ntq * Fbaud + where 8 <= Ntq <= 25, and Ntq - is integer! + + BAUD RATE PRESCALER: + BRP = (Fcan/Ftq)–1 + + INDIVIDUAL BIT TIME SEGMENTS: + (Bit Time) = (Sync Segment) + (Time Segment 1) + (Time Segment 2) + where + (Sync Segment) = 1*Tq (constant) + (Time Segment 2) ~= 30% of Nominal Bit Time = Ntq/3 + (Time Segment 2) > 1*Tq + (Time Segment 1) > 3*Tq + (Time Segment 1) > (Time Segment 2) + (Time Segment 1) <= (Time Segment 2)+8 + (Synchronous Jump Width) <= (Time Segment 2) + +Table of Parameters: +--------+-----------------------------------------------------+ +BRP@Fcan| Ntq | + 9MHz |25|24|23|22|21|20|19|18|17|16|15|14|13|12|11|10| 9| 8| +--------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +500.000 | | | | | | | | 0| | | | | | | | | 1| | +250.000 | | | | | | | | 1| | | | | | 2| | | 3| | +125.000 | | 2| | | | | | 3| | | | | | 5| | | 7| 8| +100.000 | | | | | | | | 4| | | 5| | | | | 8| 9| | + 83.333 | | | | | | | | 5| | | | | | 8| | |11| | + 50.000 | | | | | | 8| | 9| | |11| | |14| |17|19| | + 33.333 | | | | | | | |14| | |17| | | | |26|29| | + 20.000 |17| | | | | | |24| | |29| | | | |44|49| | + 15.000 |23|24| | | |29| | | | |39| | |49| |59| |74| + 10.000 |35| | | | |44| |49| | |59| | |74| |89|99| | +--------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +*/ +#define CAN_BTR(BRP,TSEG1,TSEG2,SJW) (((((((SJW)&0x03)<<4)|((TSEG2)&0x07))<<4)|((TSEG1)&0x0F))<<16)|((BRP)&0x3FF) + + // значения регистра BTR + enum TCanBaudrate { + CanBaudrate500 = CAN_BTR(0,10,5,3), + + CanBaudrate250 = CAN_BTR(1,10,5,3), + +// CanBaudrate125 = CAN_BTR(2,14,7,3), + CanBaudrate125 = CAN_BTR(3,10,5,3), + + CanBaudrate100 = CAN_BTR(4,10,5,3), + + CanBaudrate83 = CAN_BTR(5,10,5,3), + +// CanBaudrate50 = CAN_BTR(8,11,6,3), + CanBaudrate50 = CAN_BTR(9,10,5,3), + + CanBaudrate33 = CAN_BTR(14,10,5,3), + + CanBaudrate20 = CAN_BTR(17,15,7,3), +// CanBaudrate20 = CAN_BTR(24,10,5,3), + + CanBaudrate15 = CAN_BTR(23,15,7,3), +// CanBaudrate15 = CAN_BTR(24,14,7,3), +// CanBaudrate15 = CAN_BTR(29,11,6,3), + + CanBaudrate10 = CAN_BTR(35,15,7,3), +// CanBaudrate10 = CAN_BTR(44,11,6,3), +// CanBaudrate10 = CAN_BTR(49,10,5,3), + + }; + +#ifndef CAN_FIRMWARE + CCan (); + + uint32_t Init (TCanChannel aCh, const TCanInit * apInit); + + uint32_t Send (TCanChannel aCh, TCanPkt * apPkt, uint32_t aTimeout); + + void ReceivedIsr (TCanChannel aCh, TCanPkt * apPkt); + + uint32_t ProcessQueue (); + + uint32_t GetRcv (TCanChannel aCh, TCanPkt * apPkt); + + uint32_t GetRcvTimeout (TCanChannel aCh) + { return _rx_tmr[aCh].Value(); } + +#endif // CAN_FIRMWARE + + // объявление фильтров при инициализации + struct Filter { + // добавить пару идентификаторов для точного соответствия + static constexpr uint64_t List11 (uint16_t id1, uint16_t id2) + { + return ((uint64_t) (IdStd (id1) | 0x01) << 32) | + (uint64_t) (IdStd (id2) | 0x01); + } + static constexpr uint64_t List29 (uint32_t id1, uint32_t id2) + { + return ((uint64_t) (IdExt (id1) | 0x01) << 32) | + (uint64_t) (IdExt (id2) | 0x01); + } + + // добавить один идентификатор + static constexpr uint64_t List11 (uint16_t id1) + { + return ((uint64_t) (IdStd (id1) | 0x01) << 32) | + (uint64_t) (IdStd (id1) | 0x01); + } + static constexpr uint64_t List29 (uint32_t id1) + { + return ((uint64_t) (IdExt (id1) | 0x01) << 32) | + (uint64_t) (IdExt (id1) | 0x01); + } + + + // добавить один идентификатор с маской + static constexpr uint64_t Mask11 (uint16_t id, uint16_t mask) + { + return ((uint64_t) (IdStd (id)) << 32) | + (uint64_t) (IdStd (mask) | 0x01); + } + static constexpr uint64_t Mask29 (uint32_t id, uint32_t mask) + { + return ((uint64_t) (IdExt (id)) << 32) | + (uint64_t) (IdExt (mask) | 0x01); + } + + private: + // формирование ID для фильтров + static constexpr uint32_t IdStd (uint16_t id) + { return (id & 0x7FFul) << 21; } + static constexpr uint32_t IdExt (uint32_t id) + { return ((id & 0x1FFFFFFFul) << 3) | 0x04; } + }; + + + +#ifndef CAN_FIRMWARE +private: + + uint8_t sleep_en; + bool IsSleepEn (TCanChannel aCh) + { return sleep_en & aCh; } + + + // очередь пакетов на отправку - тот же TCanPkt, но с таймером + struct TCanPktTxInt: public TCanPkt { + uint32_t timeout; + TimerMs tmr; + }; + + typedef CircularBuffer TRxBuf; + typedef CircularBuffer TTxBuf; + + TRxBuf _rx_buf[2]; + TTxBuf _tx_buf[2]; + + uint32_t TxByTimeout (TCanChannel aCh); + + bool IsTxQueueEmpty (TCanChannel aCh); + + TCanState _state[2]; + + // Send() и обработка очереди вызываются из разных потоков, нужна защита + OS::TMutex can_mutex; + + // сбрасывается по приёму любого пакета + TimerMs _rx_tmr[2]; + +#endif // CAN_FIRMWARE +}; + + + +extern CCan gCan; + + + +#endif /* DRIVERS_CAN_CAN_H_ */ diff --git a/libs/CanFwInterface.cpp b/libs/CanFwInterface.cpp new file mode 100644 index 0000000..3bc1322 --- /dev/null +++ b/libs/CanFwInterface.cpp @@ -0,0 +1,99 @@ +/* + * CanFwInterface.cpp + * + * Created on: 13 мая 2015 г. + * Author: esaulenko + */ + +#include "ModelName.h" +#include "source/SourcePath.h" +#include SRC_HEADER +#include "CanFwInterface.h" +#include "Utils.h" +#include "Settings.h" +#include "Version.h" +#include + + + + +// заглушка для неиспользуемых функций +//void Empty (__attribute__((unused)) void * apCanFwMem) {}; +void Empty () {}; + + + + +// контрольная сумма, располагается линкером в самом конце прошивки +__attribute__ ((section(".CheckSum"))) +static const uint32_t CanChksum = CHKSUM_DEBUG; + + +// описание прошивки +const TCanFwInfo gCanFwInfo = +{ + (CAN_FW_VERSION << 24) | BUILD_DATE, // Version - Версия ПО + GIT_BUILD, // Хеш коммита в репозитории git + &CanChksum, // *pCRC32 - Адрес, где расположена CRC32 + 0, // reserved2 + M_NAME CAN_FW_DESCRIPTION "_" GIT_VERSION // TextInfo[64] - Текстовая информация +}; + + + +// структура с функциями CAN, которые вызываются из ядра +__attribute__ ((section(".entrance_vector"))) +TCanFunctions CanFuctTable = +{ + &gCanFwInfo, // pCanFwInfo + (uint8_t *) & CSettings::CanSettingsTable, // pSettingsTable + CSettings::CanSettingsName, // pSettingsNames + + Init, + PeriodicProcess, + + SettingChanged, + Empty, // Reserved6 + + InputChanged, + OutputChanged, + GuardEvent, + + Can1Received, + Can2Received, + + SequenceStart, + SequenceStop, + + Command, + + Lin1Received, + Lin2Received, + Lin1Transmitted, + Lin2Transmitted, +#if defined MOBICAR_1_2 + Empty, // Reserved19 + Empty, // Reserved20 +#elif defined MOBICAR_3 + Lin3Received, + Lin3Transmitted, +#endif + + Empty, // Reserved21 + Empty, // Reserved22 + Empty, // Reserved23 + Empty, // Reserved24 + Empty, // Reserved25 + Empty, // Reserved26 + Empty, // Reserved27 + Empty, // Reserved28 + Empty, // Reserved29 + Empty, // Reserved30 + Empty, // Reserved31 +}; + + +// проверка, что переменные влезают в соотв.область +static_assert (sizeof(TCanFwMem) <= gCanFwMemSize, "Превышен максимальный размер TCanFwMem"); + + diff --git a/libs/CanFwInterface.h b/libs/CanFwInterface.h new file mode 100644 index 0000000..205ca9b --- /dev/null +++ b/libs/CanFwInterface.h @@ -0,0 +1,291 @@ +/* + * CanFwInterface.h + * + * Created on: 13 мая 2015 г. + * Author: esaulenko + */ + +#ifndef CANFWINTERFACE_H_ +#define CANFWINTERFACE_H_ + +#include "CommonTypes.h" + +// размер области памяти под переменные CAN-прошивки +enum { gCanFwMemSize = 2048 }; + +// объявляем структуры заранее, чтобы не было взаимных ссылок +struct TCanPkt; + +union TLinInit; +struct TLinFrame; + +#if CAN_FIRMWARE + struct TCanFwMem; +#else // Core + typedef char TCanFwMem[gCanFwMemSize]; +#endif + +// команды ядра, которые может вызывать CAN-прошивка +enum TCoreCommands : uint8_t { + CoreCmdDisarm = 1, // команда снятия с охраны Параметр: b00CHASFL + // бит 0(L) - отпирать замки; + // бит 1(F) - мигать поворотниками; + // бит 2(S) - гудеть сиреной; + // бит 3(A) - если команда подана в режиме тревоги, прекратить ее, не снимая с охраны; + // бит 4(H) - режим Handsfree, позволяет сниматься с Охраны в любой момент начала Автозапуска и блокирует Перепостановку; + // бит 5(C) - выдавать сигналы управления функциями Комфорта. + CoreCmdArm = 2, // команда постановки на охрану Параметр: b00C00SFL + // бит 0(L) - запирать замки; + // бит 1(F) - мигать поворотниками; + // бит 2(S) - гудеть сиреной; + // бит 5(C) - выдавать сигналы управления функциями Комфорта. + CoreCmdTrunkOpened = 3, // команда оповещения Системы о том, что багажник открыт: b00000SF0 + //CoreCmdAlarm = 6, // не реализовано + CoreCmdDisableShockSens = 7, // Отключить реакцию на датчик Удара в течении <Параметр> времени в мсек + CoreCmdDisableDoorSens = 8, // Задержать реакцию на концевики дверей в течении <Параметр> времени в мсек + CoreCmdLauncherOn = 9, // команда оповещения Системы о включении внешнего запуска: <Параметр> - время ожидания запуска в сек + CoreCmdLauncherOff = 10, // команда оповещения Системы о выключении внешнего запуска: <Параметр> - время ожидания глушения или перезапуска в сек + CoreCmdDisableTrunkSens = 11, // Задержать реакцию на концевики багажника в течении <Параметр> времени в мсек + CoreCmdImmoLearnRes = 12, // Результат обучения иммобилайзера: 0 - успех, нужно запомнить VIN, 0x80 - успех, VIN не нужен, другое - ошибка + CoreCmdImmoLearnContinue = 13, // Управление обучением иммо: 1 - перезапуск таймаута; 2 - необходимо выключить зажигание; 3 - подать сигнал антенным модулем + CoreCmdStartStop = 14, // Управление запуском со штатного брелока (например, трехкратным нажатием на кнопку закрыть) + CoreCmdMenuResult = 15, // Результат выполнения команды из меню антенны: 0 - успех, 1 - ошибка +}; + +// Список команд предназначеных/определенных/известных CAN прошивке +enum TCanFwCommands : uint8_t { + ccNone = 0, // нет команды/не команда, либо команда неизвестна/неопределена... + ccLockDoors = 1, // Запереть все двери + ccUnLockDoors = 2, // Отпереть все двери + ccUnLockDoorDrv = 3, // Отпереть дверь водителя + ccLockTrunk = 4, // Запереть багажник + ccUnLockTrunk = 5, // Отпереть багажник + ccLockHood = 6, // Запереть капот + ccUnLockHood = 7, // Отпереть капот + ccCloseWindows = 8, // Закрыть окна + ccOpenWindows = 9, // Открыть окна + ccService = 10, // включение режима Автосервис + ccDisarm = 11, // выключение режима Охраны + //reserved = 12, + ccArm = 13, // включение режима Охраны + //reserved = 14, + //reserved = 15, + ccAlarmOff = 16, // выключить Тревогу + ccAlarmOn = 17, // включить Тревогу + ccPanicOff = 18, // выключение режима Паника + ccPanicOn = 19, // включение режима Паника + ccImmobilizerOff = 20, // выключить Иммобилайзер + ccImmobilizerOn = 21, // включить Иммобилайзер + ccIgnSupportOff = 22, // выключение поддержки зажигания + ccIgnSupportOn = 23, // включение поддержки зажигания + ccBlockageOff = 24, // выключить блокировку + ccBlockageOn = 25, // включить блокировку + ccEngineStart = 26, // запуск двигателя (по ошибке, стало событием) + ccEngineStop = 27, // глушение двигателя (по ошибке, стало событием) + ccTestMode = 28, // включение Тест-режима + ccFoldMirrors = 29, // сложить зеркала + ccUnFoldMirrors = 30, // разложить зеркала + ccCloseSunroof = 31, // закрыть люк + ccHeatedSeatsOn = 32, // включить подогрев сидений + ccHeatedSeatsOff = 33, // выключить подогрев сидений + ccPreHeaterOff = 34, // выключить предпусковой подогреватель + ccPreHeaterOn = 35, // включить предпусковой подогреватель + ccAutoStartOff = 36, // выключение запуска + ccAutoStartOn = 37, // включение запуска + ccAutoStartDone = 38, // успешный запуск + ccKillEngine = 39, // заглушить двигатель! + ccImmoBypass = 40, // обходчик иммобилайзера: бит 0 - включить; бит 1 - режим обучения + ccUpdateVin = 41, // обновить VIN-код + ccSendObdReq = 42, // запрос OBD-диагностики + ccValetMenuCmd = 43, // команда из меню антенны + ccHeatedWindowsOn = 44, // включить подогрев окон + ccHeatedWindowsOff = 45, // выключить подогрев окон +}; + +// Параметры команд для CAN прошивки, битовая маска (всего 24 бита) +enum TCanFwCommandParam : uint32_t { + mccReserved = (1 << 0), // резерв + mccSilent = (1 << 1), // беззвучное исполнение команды + mccPriority = (1 << 2), // приоритетное открытие двери водителя (ccDisarm) + mccDriveBuiltinSystem = (1 << 3), // разрешено управлять штатной охранной системой (ccLockTrunk/ccUnLockTrunk) +}; + +// данные, которые CAN-прошивка может передать в ядро +enum TCanFwData : uint8_t { + + CanData_RPM = 0, // обороты, об/мин + CanData_Speed = 1, // скорость, км/ч + CanData_Odometer = 2, // пробег, 1 ед = 100 метров + + CanData_Accelerator = 3, // положение педали газа, проценты + CanData_BrakeForce = 4, // положение педали тормоза, проценты + CanData_WheelAngle = 5, // положение руля + + CanData_FuelLevel = 6, // уровень топлива, проценты + CanData_FuelConsumption = 7, // мгновенный расход, миллилитры + + CanData_CoolantTemp = 8, // температура двигателя, со смещением 40 градусов + + CanData_VIN = 9, // VIN-код + + CanData_FuelLevelRaw = 10, // уровень топлива, без калибровки 0..255 + + CanData_COUNT, // количество возможных полей с данными + CanData_Invalid = 0x80, +}; + +// описание CAN-прошивки +extern const TCanFwInfo gCanFwInfo; + +// структура с функциями CAN, которые вызываются из ядра +struct TCanFunctions +{ + TCanFwInfo const * pCanFwInfo; + uint8_t const * pSettingsTable; + char const * const * pSettingsNames; + + void (*Init)(TCanFwMem * vars); + + void (*Periodic)(TCanFwMem * vars); + + void (*SettingChanged)(TCanFwMem * vars, uint16_t id); + void (*Reserved6)(); + + void (*InputChanged)(TCanFwMem * vars, uint32_t aInput, bool aSwitchedOn); + void (*OutputChanged)(TCanFwMem * vars, uint32_t aOutput, bool aSwitchedOn); + void (*GuardEvent)(TCanFwMem * vars, TGuardEvents aEvent); + + void (*Can1Received)(TCanFwMem * vars, TCanPkt *apPkt); + void (*Can2Received)(TCanFwMem * vars, TCanPkt *apPkt); + + void (*SequenceStart)(TCanFwMem * vars, uint32_t aOutputNum); + void (*SequenceStop)(TCanFwMem * vars, uint32_t aOutputNum); + + void (*Command)(TCanFwMem * vars, TCanFwCommands aCmd, uint32_t aCmdParam); + + void (*Lin1Received)(TCanFwMem* vars, TLinFrame* apFrame); + void (*Lin2Received)(TCanFwMem* vars, TLinFrame* apFrame); + void (*Lin1Transmitted)(TCanFwMem* vars, uint8_t aFrameId); + void (*Lin2Transmitted)(TCanFwMem* vars, uint8_t aFrameId); +#if defined MOBICAR_1_2 + void (*Reserved19)(); + void (*Reserved20)(); +#elif defined MOBICAR_3 || defined MAGICAR_X + void (*Lin3Received)(TCanFwMem * vars, TLinFrame *apFrame); + void (*Lin3Transmitted)(TCanFwMem * vars, uint8_t aFrameId); +#endif + + void (*Reserved21)(); + void (*Reserved22)(); + void (*Reserved23)(); + void (*Reserved24)(); + void (*Reserved25)(); + void (*Reserved26)(); + void (*Reserved27)(); + void (*Reserved28)(); + void (*Reserved29)(); + void (*Reserved30)(); + void (*Reserved31)(); +}; +static_assert (sizeof(TCanFunctions) == 4*32, "В таблице должно быть 32 поля"); + +// структура с функциями ядра, которые вызываются из CAN-прошивки +struct TCoreFunctions +{ + const TCoreInfo* pCoreInfo; + + uint32_t (*GetTickMs) (); + + uint32_t (*CanInit) (TCanChannel aCh, const TCanInit* apInit); + uint32_t (*CanSend) (TCanChannel aCh, TCanPkt* apPkt, uint32_t timeout); + + uint64_t (*GetInputs) (); + uint64_t (*GetOutputs) (); +#if defined MOBICAR_3 && 1 // Только для отладки (работает только с отладочной или спец. прошивками) + typedef struct { + uint8_t BlinkOff; // [50ms] + uint8_t BlinkOn; // [50ms] + uint8_t BeepTime; // [50ms] + uint8_t BeepTone; + } TDebugIndicate; + void (*DebugIndicate)(TDebugIndicate const & aIndicate, const uint8_t nBlink); +#else + void (*Reserved6)(); +#endif + + uint32_t (*Command) (TCoreCommands aCmd, uint32_t aParam); + uint32_t (*RunSequence) (uint32_t aOutput, uint32_t aSequenceNum); + + uint32_t (*SetPeriod) (uint32_t aPeriod); + + uint32_t (*SetOutput) (uint32_t aOutput, bool On); + + uint32_t (*InputState) (uint32_t aInput, bool On); + uint32_t (*DataValue) (uint32_t aDataIdx, int32_t aValue); + + uint32_t (*CanGetRxTimeout) (TCanChannel aCh); + + uint32_t (*LinInit) (TLinChannel aCh, const TLinInit* apInit); + uint32_t (*LinSend) (TLinChannel aCh, const TLinFrame* apFrame); + uint32_t (*LinSleep) (TLinChannel aCh, bool aSleep); + void (*Reserved17)(); + + uint32_t (*DataValueArr) (uint32_t aDataIdx, const void * data); + bool (*CheckVinValid) (); + bool (*SaveSetting) (uint16_t id, const void * apData, uint16_t aDataSize); + const void *(*GetSetting) (uint16_t id); + + bool (*SaveImmoLearn) (const void *data, uint32_t dataSize); + + void (*Reserved23)(); + void (*Reserved24)(); + void (*Reserved25)(); + void (*Reserved26)(); + void (*Reserved27)(); + void (*Reserved28)(); + void (*Reserved29)(); + void (*Reserved30)(); + + void (*DebugConsole)(const char *, ...); +}; +static_assert (sizeof(TCoreFunctions) == 4*32, "В таблице должно быть 32 поля"); + +// таблица с доступными функциями ядра + #define CoreFunc ((TCoreFunctions*) ((uint32_t) &FW_AREAS->Core + 512) ) // 16K + 512 + +#if defined CAN_FIRMWARE +// объявление функций CAN-прошивки + +void Init (TCanFwMem * vars); +void SettingChanged (TCanFwMem * vars, uint16_t id); + +void Can1Received (TCanFwMem * vars, TCanPkt *apPkt); +void Can2Received (TCanFwMem * vars, TCanPkt *apPkt); + +void InputChanged (TCanFwMem * vars, uint32_t aInputNum, bool aSwitchedOn); +void OutputChanged (TCanFwMem * vars, uint32_t aOutputNum, bool aSwitchedOn); +void GuardEvent (TCanFwMem * vars, TGuardEvents aEvent); + +void SequenceStart (TCanFwMem * vars, uint32_t aEvent); +void SequenceStop (TCanFwMem * vars, uint32_t aEvent); + +void Command (TCanFwMem * vars, TCanFwCommands aCmd, uint32_t aCmdParam); + +void PeriodicProcess (TCanFwMem * vars); + +void Lin1Received (TCanFwMem * vars, TLinFrame *apFrame); +void Lin2Received (TCanFwMem * vars, TLinFrame *apFrame); +void Lin3Received (TCanFwMem * vars, TLinFrame *apFrame); + +void Lin1Transmitted (TCanFwMem * vars, uint8_t aFrameId); +void Lin2Transmitted (TCanFwMem * vars, uint8_t aFrameId); +void Lin3Transmitted (TCanFwMem * vars, uint8_t aFrameId); + +#else // core + +// таблица с доступными функциями CAN-прошивки, лежит в её начале + #define CanFwFunc ((TCanFunctions*) &FW_AREAS->CanFw) + +#endif + +#endif /* CANFWINTERFACE_H_ */ diff --git a/libs/CanSources.cpp b/libs/CanSources.cpp new file mode 100644 index 0000000..10c6186 --- /dev/null +++ b/libs/CanSources.cpp @@ -0,0 +1,56 @@ +/* + * CanSources.cpp + * + * Created on: 01 дек. 2015 г. + * Author: esaulenko + */ + + + +#include "source/SourcePath.h" + +#ifdef SRC_HEADER +#include SRC_HEADER +#endif + +#ifdef SRC_FILE1 +#include SRC_FILE1 +#endif + +#ifdef SRC_FILE2 +#include SRC_FILE2 +#endif + +#ifdef SRC_FILE3 +#include SRC_FILE3 +#endif + +#ifdef SRC_FILE4 +#include SRC_FILE4 +#endif + +#ifdef SRC_FILE5 +#include SRC_FILE5 +#endif + +#ifdef SRC_FILE6 +#include SRC_FILE6 +#endif + +#ifdef SRC_FILE7 +#include SRC_FILE7 +#endif + +#ifdef SRC_FILE8 +#include SRC_FILE8 +#endif + +#ifdef SRC_FILE9 +#include SRC_FILE9 +#endif + +#ifdef SRC_FILE10 +#include SRC_FILE10 +#endif + + diff --git a/libs/CommonTypes.h b/libs/CommonTypes.h new file mode 100644 index 0000000..4a855f6 --- /dev/null +++ b/libs/CommonTypes.h @@ -0,0 +1,335 @@ +/* + * CommonTypes.h + * + * Created on: 16 апр. 2015 г. + * Author: esaulenko + */ + +#ifndef COMMON_COMMONTYPES_H_ +#define COMMON_COMMONTYPES_H_ + +#include + +#define member_size(type, member) sizeof(((type*)nullptr)->member) + +//typedef uint8_t byte; +//typedef uint16_t word; +typedef unsigned int uint; +typedef unsigned long ulong; + +//#define bbRAM(Var,Bit) ((uint*)(((uint)&Var + 0x22000000/32)*32))[Bit] +#define bbRAM(Var,Bit) ((volatile uint*)(((uint)&Var + SRAM_BB_BASE/32)*32))[Bit] +// !!! Начиная с компилятора версии 7, что-то в оптимизаторе изменилось.. и теперь, без volatile +// программа компилируется неверно. Поэтому добавляем признак volatile !!! + +#define KByte *1024 + +union TSysStateRecord +{ + uint16_t Record; + struct { + uint8_t Value; // Значение состояния Системы + uint8_t Check; // Проверка данных + } __attribute__((packed)); +} __attribute__((packed)); + +typedef TSysStateRecord TSysState[2 KByte / sizeof(TSysStateRecord)]; + +struct TFwRegions +{ +#if defined MOBICAR_1_2 +// страницы по 2 кбайта + const uint8_t Boot[16 KByte]; + const uint8_t Core[96 KByte]; + const uint8_t CanFw[16 KByte]; + const uint8_t Upload[96 KByte]; + const uint8_t Settings1[4 KByte]; + const uint8_t Settings2[4 KByte]; + const uint8_t Reserved[20 KByte]; + const uint8_t ImmoLearn[2 KByte]; + const TSysState SysState; +#elif defined MOBICAR_3 + const uint8_t Boot[16 KByte]; // sector 0 + const uint8_t Settings1[16 KByte]; // sector 1 + const uint8_t Settings2[16 KByte]; // sector 2 + const uint8_t CanFw[16 KByte]; // sector 3 + struct { + const uint8_t UploadAux[64 KByte - sizeof(TSysState)]; // sector 4 + const TSysState SysState; + } __attribute__((packed)); + union { + const uint8_t Upload[128 KByte]; // sector 5 + const uint8_t ImmoLearn[2 KByte]; + } __attribute__((packed)); + const uint8_t Core[2 * 128 KByte]; // sector 6, 7 +#endif +}; +#define FW_AREAS ((TFwRegions const *)0x08000000) + +// специальное значение для контрольной суммы - используется только в отладочной прошивке +#define CHKSUM_DEBUG 0xDebac0ab + +// битовая настройка, используется в модуле настроек. Для простоты реализации занимает в ОЗУ 1 байт. +typedef uint8_t bit_t; + +// ********** +// * Версия * +// ********** +union TVersion +{ + uint32_t Value; + struct { + uint8_t Day; + uint8_t Month; + uint8_t Year; + uint8_t Version; + } __attribute__((packed)); +} __attribute__((packed)); + +struct TBootInfo { + TVersion Version; // Версия загрузчика + uint16_t Build; // Номер билда загрузчика + uint8_t HwVer; // Версия железа + uint8_t Model; // Модель устройства. Mobicar1 = 0 (!), Mobicar2 = 2 + uint32_t SerialNumber; // Серийный номер устройства + uint32_t reserved2; + + uint8_t FirmwareKey[32]; // Ключ дешифрования прошивки + uint8_t ServerRegKey[12]; // ключ регистрации на сервере + uint8_t ServerExchKey[16]; // ключ установки соединения с сервером + uint32_t BluetoothPairingCode; // статический код для подшивания BLE устройств + + uint32_t reserved[120]; +} __attribute__((packed, aligned(4))); +#define TBootInfoSize __builtin_offsetof (TBootInfo, FirmwareKey) +static_assert (TBootInfoSize == 16, "TBootInfo changed!"); + +struct TCoreInfo { + TVersion Version; // Версия ПО + uint16_t Build; // Номер билда ядра + uint16_t reserved1; + uint32_t const * pCRC32; // Адрес, где расположена CRC32 в прошивке Ядра + uint32_t reserved2; + char TextInfo[64]; // Текстовая информация о прошивке Ядра +} __attribute__((packed, aligned(4))); +static_assert (sizeof(TCoreInfo) == 80, "TCoreInfo changed!"); + +// Структура массива информации о CAN-прошивке +struct TCanFwInfo { + TVersion Version; // Версия ПО + uint32_t Build; // Хеш коммита в репозитории git + uint32_t const * pCRC32; // Адрес, где расположена CRC32 + uint32_t reserved2; + uint8_t TextInfo[64]; // Текстовая информация +} __attribute__((packed, aligned(4))); +static_assert (sizeof(TCanFwInfo) == 80, "TCanFwInfo changed!"); + +// ******************** +// * НАСТРОЙКА ВХОДОВ * +// ******************** +struct TInputPinSettings { + uint16_t T1:14; // период активного импульса + uint16_t P1:2; // Подтяжка: [xy]: непрограммируемая(x=0)/программируемая(x=1)/pulldown(y=0)/pullup(y=1). + uint16_t T2:14; // период пассивного импульса + uint16_t P2:2; // Подтяжка: [xy]: непрограммируемая(x=0)/программируемая(x=1)/pulldown(y=0)/pullup(y=1). +// Таблица истинности: +// T1 P1 T2 P2 Debounce +// 0 p 0 x tick статика, без антидребезга +// >0 p 0 x T1 статика с периодом антидребезга равного T1 +// 0 p >0 p tick динамика, P1 включается на TICK, затем P2 включается на T2, без антидребезга. +// >0 p >0 p T1 динамика, P1 включается на T1*2, затем P2 включается на T2, антидребезг T1. +} __attribute__((packed)); + +struct TInputSettings { + uint8_t Input:7; // номер физического входа + uint8_t Invert:1; // Инвертировать состояние + + bool operator== (const TInputSettings &other) + { return *((uint8_t*)this) == *((uint8_t*)(&other)); } + bool operator!= (const TInputSettings &other) + { return ! (*this == other); } +} __attribute__((packed)); + +enum { + SequenceLength = 16, + maxSequences = 32, // кол-во импульсных последовательностей одновременно запущенных +}; + +// последовательности управления выходами +union TSequence { + uint8_t Byte[SequenceLength]; + union { + uint8_t Value; + struct { + uint8_t Mantissa:5; + uint8_t Power:3; + }; + } Step; +} __attribute__((packed)); + +typedef uint8_t TKeyAES[16]; // ключ шифрования радио + +typedef uint8_t TVehicleID[17]; // VIN-код + +//typedef uint8_t TImmoKey[124]; // ключ обходчика иммобилайзера +typedef uint8_t TImmoKey[32]; // ключ обходчика иммобилайзера + + +// настройка таймера запуска +struct TStartTimerSetting { + uint16_t Time; // количество минут с начала суток. У выключенного таймера биты инвертированы + uint8_t DayMask; // Биты дней недели, когда разрешён запуск - 0..6. Для "старого" механизма устанавливается 0xFF +} __attribute__((packed)); + +// CAN data forward declarations +struct TCanInit; +struct TCanPkt; + +enum TCanChannel { + CANch1 = 0, + CANch2 = 1, +}; + +enum TLinChannel { + LINch1 = 0, + LINch2 = 1, +#if defined MOBICAR_3 + LINch3 = 2, +#endif +}; + +enum TGuardEvents { + geSetSysMode = 0, // события о смене режима Системы + geRESET = 0, // событие сброс по Питанию + geTEST = 1, // включился режим Теста + geSERVICE = 2, // включился режим Автосервис + geDISARM = 3, // включился режим Вне Охраны + geHIJACK = 4, // включился режим Антизахват + geARM = 5, // включился режим Охрана + geGM6 = 6, // резерв + geGM7 = 7, // резерв + aseSetMode = 8, // события о смене режима Автозапуска + aseIDLE = 8, // Дежурный режим + aseREADY = 9, // Включение поддержки зажигания + asePRESTART_WaitForIgnOn = 10, // Подготовка к запуску двигателя: Ожидание включения Зажигания + asePRESTART_WaitForIgnOff = 11, // Подготовка к запуску двигателя: Ожидание выключения Зажигания + aseCRANK = 12, // Запуск двигателя (стартер) + asePRESUPPORT = 13, // + aseSUPPORT = 14, // Поддержка зажигания после запуска + asePITSTOP = 15, // Режим PITSTOP + aseSTOP = 16, // Режим STOP + aseISOFF = 17, // Режим ISOFF + aseDoorWag = 18, // Махание дверью + aseStopDoorWag = 19, // Остановка процесса махания дверью + aseSetIDLE = 20, // Переход в дежурный режим + aseSetREADY = 21, // Переход в режим поддержки зажигания + aseSetPITSTOP = 22, // Переход в режим PITSTOP + aseSetPRESTART = 23, // Переход в режим подготовки к запуску двигателя + aseSetSUPPORT = 24, // Переход в режим поддержки зажигания + aseSetSTOP = 25, // Остановка двигателя + aseSetISOFF = 26, // Выключение поддержки зажигания + aseLauncher = 27, // Мотор запущен внешним запуском + asePreHeater = 28, // Предпусковой подогреватель включен + aseASM21 = 29, // резерв + aseReloadTimer = 30, // продление/перезагрузка времени режима + aseCommandError = 31, // ошибка выполнения команды или не возможность выполнить команду +// Общие события + geLocked = 32, // ЦЗ закрыт + geUnLocked = 33, // ЦЗ открыт + geBlockageOff = 34, // Блокировка выключена + geBlockageOn = 35, // Блокировка включена + geReservationOff = 36, // Резервирование выключено + geReservationOn = 37, // Резервирование включено + geEngineStopped = 38, // Двигатель остановился + geEngineRuns = 39, // Двигатель завелся + geTurboTimerEnd = 40, // Турботаймер завершился + geTurboTimerStart = 41, // Турботаймер запустился + gePanicOff = 42, // выключился режим Паника + gePanicOn = 43, // включился режим Паника + geArmDefeatZone = 44, // оповещение об открытых зонах во время постановки в Охрану + geAlarmOff = 45, // выключился режим Тревоги + geAlarmOn = 46, // включить тревогу снова + geDoorsAlarm = 47, // включилась Тревога по дверям (салону) + geTrunkAlarm = 48, // включилась Тревога по багажнику + geHoodAlarm = 49, // включилась Тревога по капоту + geIgnAlarm = 50, // включилась Тревога по зажиганию + geShockAlarm = 51, // включилась Тревога по датчику Удара + geResetAlarm = 52, // включилась Тревога по сбросу Питания + geDoorsDefeated = 53, // отключилась охранная зона по двери + geTrunkDefeated = 54, // отключилась охранная зона по багажнику + geHoodDefeated = 55, // отключилась охранная зона по капоту + geIgnDefeated = 56, // отключилась охранная зона по зажиганию + geShockDefeated = 57, // отключилась охранная зона по датчику Удара + geTrunkOpened = 58, // багажник открыт + geTrunkClosed = 59, // багажник закрыт + geShockNotify = 60, // предупреждение по датчику Удара + geShockArmOff = 61, // оперативное отключение зоны датчика Удара + geCarOwnerCall = 62, // вызов владельца автомобиля + geTiltAlarm = 63, // включилась Тревога по датчику Наклона + geTiltDefeated = 64, // отключилась охранная зона по датчику Наклона + geValetArm = 65, // событие поставить в Охрану в режиме Автосервис + geValetDisarm = 66, // событие снять с Охраны в режиме Автосервис + geAlarmEnd = 67, // событие прекращения тревоги + geTrunkUnLock = 68, // багажник отпирается или отперт + geTrunkLock = 69, // багажник запирается или заперт + geImHereOff = 70, // выключился механизм поиска Автомобиля на стоянке + geImHereOn = 71, // включился механизм поиска Автомобиля на стоянке + geMotionAlarm = 72, // включилась Тревога по датчику Перемещений + geMotionDefeated = 73, // отключилась охранная зона по датчику Перемещений + geArmed = 74, // Система встала под Охрану + geArmReturnOff = 75, // Перепостановка отключена + geArmReturnOn = 76, // Активирован режим перепостановки + geAux1Off = 77, // Доп.канал #1 выключен + geAux1On = 78, // Доп.канал #1 включен + geAux2Off = 79, // Доп.канал #2 выключен + geAux2On = 80, // Доп.канал #2 включен + geAux3Off = 81, // Доп.канал #3 выключен + geAux3On = 82, // Доп.канал #3 включен + geSensorAlarm = 83, // тревога по внешнему Сенсору + geSensorDefeated = 84, // отключилась охранная зона по входу от внешнего Сенсора + geHandsfreeDisabled = 85, // сообщение о временном запрете Автопостановки/Автоснятия + geHandsfreeEnabled = 86, // сообщение о разрешении Автопостановки/Автоснятия + geValetDisabledByImm = 87, // включение режима Автосервис заблокировано по причине активированного Иммобилайзера + geDisarmDisabledByTag = 88, // снятие с Охраны заблокировано по причине отсутствия Метки + geUnTrunkDisabledByTag = 89, // отпирание багажника заблокировано по причине отсутствия Метки + geImmoIndicationStart = 90, // индикация включенного иммобилайзера + geSensorNotify = 91, // предупреждение по внешнему Сенсору + geDrivingEnabled = 92, // поездка разрешена (иммобилайзер был отключен ПИН кодом) + geTripFinish = 93, // Поездка закончилась + geTripStart = 94, // Поездка началась + geTripPaused = 95, // Поездка приостановилась + +// Команды Брелока (176+) + bcSendState = 0xB0, // Выслать текущий режим Системы (она же ресинхронизация) + bcChangeSoundMode, // Изменение режима выдачи звуков + bcChangeShockMode, // Изменение режима работы датчика Удара + bcChangeAutomatics, // Изменения в режимах работы Автоматических запусков + bcChangeInternetOption, // Изменения в режиме работы INTERNET опции + bcProgMenuEnter, // Перевести брелок в меню программирования + bcProgMenuExit, // Выход из меню программирования Брелока + vmShowPinCode, // Показать на индикаторе текущее значение ПИН-кода + bcProgMenu2, // Переход к меню 2 + bcBleMenuEnter, // Переход к меню спаривания BLE + bcHandsfreeModeChange, // Изменение режима работы "Свободных рук" + + geDEBUG = 0xFE, + geNONE = 0xFF // нет события, т.е. его не нужно никуда отправлять +}; + +union TDiagnosticTroubleCode { + uint16_t B1B0; + uint8_t Byte[2]; + struct { + uint8_t B0; + uint8_t B1; + } __attribute__((packed)); + struct { + uint16_t X:4; + uint16_t N:2; + uint16_t K:2; + uint16_t Z:4; + uint16_t Y:4; + } __attribute__((packed)); +} __attribute__((packed)); + +#endif /* COMMON_COMMONTYPES_H_ */ diff --git a/libs/IO.h b/libs/IO.h new file mode 100644 index 0000000..5127696 --- /dev/null +++ b/libs/IO.h @@ -0,0 +1,329 @@ +/* + * IO.h + * + * Created on: 11 июня 2015 г. + * Author: esaulenko + */ + +#ifndef DRIVERS_IO_H_ +#define DRIVERS_IO_H_ + +#include +#include "CommonTypes.h" +#include "Settings.h" +#include "Utils.h" + +#if not defined CAN_FIRMWARE +#include "SysTimer.h" +#endif + + +typedef uint64_t TInpMask; // битовая маска логических входов +typedef uint64_t TOutMask; // битовая маска логических выходов + +// макросы для более простого обращения к битовым маскам +#define oBIT(x) BIT64(CIO::x) +#define iBIT(x) BIT64(CIO::x) + + +class CIO +{ + #define iPIN(x) (CSettings::x-CSettings::ipOFFSET) + #define oNAME(x) (CSettings::x-CSettings::oOFFSET) + #define iNAME(x) (CSettings::x-CSettings::iOFFSET) + +public: + +// Эта таблица источников для логических входов (функций) +#if defined MOBICAR_1_2 + + enum TInPins { + iRedBlack = iPIN(iRedBlack), // Pin_Door_I + iGreyBlack = iPIN(iGreyBlack), // Pin_Trunk_I + iBrownBlack = iPIN(iBrownBlack), // Pin_Hood_I + iGreen = iPIN(iGreen), // Pin_Ignition + iLBlueBlack = iPIN(iLBlueBlack), // Pin_Parking_I + iBlackWhite = iPIN(iBlackWhite), // Pin_Foot_I + iBlackPink = iPIN(iBlackPink), // Pin_RPM_I + iYellowBlue = iPIN(iYellowBlue), // Pin_OutRes2 + iYellowWhite = iPIN(iYellowWhite), // Pin_OutRes1 + + ipCOUNT = CSettings::ipCOUNT, // Общее кол-во физических источников + + iCAN = 0x7E, // берется из CAN шины + iNone = 0x7F // никуда не подключен + }; + + enum TOutPins { + oBrownGreen, // Pin_Ign_O + oBrownViolet, // Pin_Ign1_O + oBrownYellow, // Pin_Start_O + oBrownWhite, // Pin_Acc_O + oGreen, // Pin_LockRelay Relay3 + oYellow, // Pin_UnlockRelay Relay4 + oVioletYellow, // Pin_Light1Relay Relay1 + oVioletBrown, // Pin_Light2Relay Relay2 + oPink, // Pin_Relay5 Relay5 + oBlue, // Pin_Immo_O + oBrown, // Pin_SirenOut + oYellowBlue, // Pin_OutRes2_O + oYellowWhite, // Pin_OutRes1_O + oOrange, // Kline1 + oOrangeBlack, // KLine2 + opCOUNT, // Общее кол-во физических выходов + oCAN = 31, + }; + +#elif defined MOBICAR_3 || defined MAGICAR_X + + enum TInPins { + iRedBlack = iPIN(iRedBlack), + iGreyBlack = iPIN(iGreyBlack), + iBrownBlack = iPIN(iBrownBlack), + iGreen = iPIN(iGreen), + iLBlueBlack = iPIN(iLBlueBlack), + iBlackWhite = iPIN(iBlackWhite), + iBlackPink = iPIN(iBlackPink), + iYellowBlue = iPIN(iYellowBlue), + iYellowWhite = iPIN(iYellowWhite), + + ipCOUNT = CSettings::ipCOUNT, // Общее кол-во физических источников + + iCAN = 0x7E, // берется из CAN шины + iNone = 0x7F // никуда не подключен + }; + + enum TOutPins { + oGreenRelay, + oVioletRelay, + oYellowRelay, + oWhiteRelay, + oBrownGreen, + oBrownYellow, + oBrownViolet, + oBrownWhite, + oOrangeBreak, // разрыв Lin1 + oBlue, + oBrown, + oYellowBlue, // вход/выход +/- + oYellowWhite, // вход/выход +/- + oGreen, // вход/выход + oBlackWhite, // вход/выход + oPinkBreak, // разрыв Lin2 + oOrange, // Lin1 + oPink, // Lin2 + oPinkWhite, // Lin3 + + opCOUNT, // Общее кол-во физических выходов + oCAN = 31 // Выход на CAN-прошивку + }; + +#else + #error IO pins: unknown model! +#endif + + enum TInputs { + iDoorDrv = iNAME(iDoorDrv), + iDoorFP = iNAME(iDoorFP), + iDoorRL = iNAME(iDoorRL), + iDoorRR = iNAME(iDoorRR), + iTrunk = iNAME(iTrunk), + iHood = iNAME(iHood), + iIgn = iNAME(iIgn), + iHBrake = iNAME(iHBrake), + iLamp = iNAME(iLamp), + iPark = iNAME(iPark), + iBrake = iNAME(iBrake), + iLeftTurnLight = iNAME(iLeftTurnLight), + iRightTurnLight = iNAME(iRightTurnLight), + iArm = iNAME(iArm), + iSensorAlarm = iNAME(iSensorAlarm), + iSensorNotify = iNAME(iSensorNotify), + iEngine = iNAME(iEngine), + iLock = iNAME(iLock), + iPreHeater = iNAME(iPreHeater), + iLowFuelLevel = iNAME(iLowFuelLevel), + iACC = iNAME(iACC), + iKeyIn = iNAME(iKeyIn), + iSpark = iNAME(iSpark), + iDoorsLamp = iNAME(iDoorsLamp), + iTrunkLamp = iNAME(iTrunkLamp), + iTrunkWindow = iNAME(iTrunkWindow), + iStartStop = iNAME(iStartStop), + iNeutral = iNAME(iNeutral), + iLauncher = iNAME(iLauncher), + iDisarm = iNAME(iDisarm), + iUnTrunk = iNAME(iUnTrunk), + iUnLock = iNAME(iUnLock), + + iDevice1 = iNAME(iDevice1), + iDevice2 = iNAME(iDevice2), + iDevice3 = iNAME(iDevice3), + iDevice4 = iNAME(iDevice4), + iDevice5 = iNAME(iDevice5), + iDevice6 = iNAME(iDevice6), + iDevice7 = iNAME(iDevice7), + iDevice8 = iNAME(iDevice8), + + iCOUNT = CSettings::iCOUNT, + + iStateAtMt = 63 // особый вход: "трансмиссия автомат" + }; + +// Виртуальные выходы на исполнительные устройства или +// выход на устройство выполняющее определенную функцию + enum TOutputs { + // Неопределенные устройства + oDevice1 = oNAME(oDevice1), // 0 + oDevice2 = oNAME(oDevice2), // 1 + oDevice3 = oNAME(oDevice3), // 2 + oDevice4 = oNAME(oDevice4), // 3 + oDevice5 = oNAME(oDevice5), // 4 + oDevice6 = oNAME(oDevice6), // 5 + oDevice7 = oNAME(oDevice7), // 6 + oDevice8 = oNAME(oDevice8), // 7 + // Базовые устройства Охранной системы + oSiren = oNAME(oSiren), // 08 Сирена + oHorn = oNAME(oHorn), // 09 Клаксон + oLights = oNAME(oLights), // 10 Поворотники + oLamp = oNAME(oLamp), // 11 Головное освещение + oPassiveBlockage = oNAME(oPassiveBlockage), // 12 Пассивная блокировка (когда выключена, цепь разомкнута, блокировка включена) + oActiveBlockage = oNAME(oActiveBlockage), // 13 Активная блокировка (когда выключена, цепь замкнута, блокировка выключена) + oLockDoors = oNAME(oLockDoors), // 14 Запереть все двери + oUnlockDoors = oNAME(oUnlockDoors), // 15 Отпереть все двери + oUnlockDoorDrv = oNAME(oUnlockDoorDrv), // 16 Отпереть дверь водителя + oLockTrunk = oNAME(oLockTrunk), // 17 Запереть багажник + oUnlockTrunk = oNAME(oUnlockTrunk), // 18 Отпереть багажник + oLockHood = oNAME(oLockHood), // 19 Запереть Капот + oUnLockHood = oNAME(oUnLockHood), // 20 Отпереть капот + oCloseWindows = oNAME(oCloseWindows), // 21 Закрыть окна + oPreHeaterOn = oNAME(oPreHeaterOn), // 22 Включение предпускового подогревателя + oPreHeaterOff = oNAME(oPreHeaterOff), // 23 Выключение предпускового подогревателя + oImmOn = oNAME(oImmOn), // 24 Устройство включающее Иммобилайзер + oImmOff = oNAME(oImmOff), // 25 Устройство выключающее Иммобилайзер + oService = oNAME(oService), // 26 Устройство переводящее автомобиль в Сервисный режим + oDisarm = oNAME(oDisarm), // 27 Устройство осуществляющее снятие с Охраны (можно использовать как выход статической блокировки) + oArm = oNAME(oArm), // 28 Устройство осуществляющее постановку под Охрану (можно использовать как выход статической блокировки) + oAlarm = oNAME(oAlarm), // 29 Устройство осуществляющее включение тревоги (можно использовать как выход статической блокировки) + oAutoStart = oNAME(oAutoStart), // 30 Состояние Автозапуска + // Базовые устройства АвтоЗапуска (подменяют или имитируют присутствие водителя в автомобиле) + oDoorWag = oNAME(oDoorWag), // 31 Устройство махающее дверью + oIgn = oNAME(oIgn), // 32 Включение зажигания + oBrake = oNAME(oBrake), // 33 Педаль тормоза + oKeyIn = oNAME(oKeyIn), // 34 Ключ в замке + oAcc = oNAME(oAcc), // 35 Аксессуары +// oBrakeControl = oNAME(oBrakeControl), // 36 Отключение контроля педали тормоза + oAuxBrake = oNAME(oAuxBrake), // 37 Дополнительная линия педали тормоза + oAuxIgn = oNAME(oAuxIgn), // 38 Дополнительная линия зажигания + oSSButton = oNAME(oSSButton), // 39 Кнопка Старт/Стоп + oImmBypass = oNAME(oImmBypass), // 40 Обходчик встроенного иммобилайзера + oCrank = oNAME(oCrank), // 41 Стартер + oCrankDisable = oNAME(oCrankDisable), // 42 Блокировка Стартера + // Дополнительные + oLockIgn = oNAME(oLockIgn), // 43 Блокировка зажигания (когда включена, зажигание заблокировано) + oUnLockIgn = oNAME(oUnLockIgn), // 44 Разблокировка зажигания (когда включена, зажигание разблокировано) + oKLine1Relay = oNAME(oKLine1Relay), // 45 Устройство коммутирующее KLine интерфейс + oAux1 = oNAME(oAux1), // 46 Доп.канал #1 + oAux2 = oNAME(oAux2), // 47 Доп.канал #2 + oAux3 = oNAME(oAux3), // 48 Доп.канал #3 + oEmergencyBraking=oNAME(oEmergencyBraking), // 49 Выход сигнала экстренного торможения + oIllumination = oNAME(oIllumination), // 50 Выход сигнала вежливой подсветки + oFoldMirrors = oNAME(oFoldMirrors), // 51 Сложить зеркала + oUnfoldMirrors = oNAME(oUnfoldMirrors), // 52 Разложить зеркала + oCloseSunroof = oNAME(oCloseSunroof), // 53 Закрыть люк + oMoveSunroof = oNAME(oMoveSunroof), // 54 Сдвинуть люк + oHeatedSeats = oNAME(oHeatedSeats), // 55 Обогрев сидений + oTriggerDoors = oNAME(oTriggerDoors), // 56 Триггерная кнопка ЦЗ + oIgnSupport = oNAME(oIgnSupport), // 57 Состояние поддержки зажигания + oArmWithoutTag = oNAME(oArmWithoutTag), // 58 Состояние "Охрана без метки" + oHeatedWindows = oNAME(oHeatedWindows), // 59 Обогрев окон + oKLine2Relay = oNAME(oKLine2Relay), // 60 m34x46: Коммутация Lin2 + oDVR = oNAME(oDVR), // 61 m34x46: Выход на видеорегистратор + // Общее кол-во виртуальных устройств + oCOUNT = CSettings::oCOUNT, + }; + +// режимы входов + enum TInputActiveState { + ActiveGND = 1 // Активное состояние, когда на входе GND + }; + +// режимы подтяжек входов + enum TInputPullupMode { + PullNone = 0, + PullDown = 2, + PullUp = 3, + }; + + #undef iPIN + #undef oNAME + #undef iNAME + +#ifndef CAN_FIRMWARE + + void Init(void); + void UpdateSettings(const uint idSettings); + +// проверка, что вход (физический) используется + static bool IsInputMapped(TInPins aPhInput); + +// чтение и обработка мгновенных состояний входов для получения устойчивых физических состояний + uint32_t ReadInputPins(void); +// Конвертирование переданных физический состояний (REMAP) в соответствующие логические состояния + TInpMask RemapInputs(uint32_t iPins); + +// установка физических выходов + void SetOutPhys(const TOutPins pin, const bool state); + +// Установка логических выходов. +// Возвращает: + enum TSetOutputResult : uint { + soNone = 0, // нет такого выхода или он никуда не назначен + soExist = 1, // Выход назначен, но состояние не изменилось + soChanged = 2 // выход назначен и состояние было изменено + }; + TSetOutputResult SetOutput(const TOutputs aOutput, const bool state); +// Запрос текущего состояния логического выхода + inline bool GetOutput(const TOutputs Output) const {return bbRAM(oStates,Output);}; + +// Вернуть состояние логических выходов (функций выходов) + inline TOutMask GetOutputs(void) const {return oStates;} +// Вернуть состояние логических входов (функций входов) + inline TInpMask GetInputs(void) const {return iStates;} +// Вернуть состояние физических выходов + inline uint32_t GetOutPhys(void) const {return opStates;} + inline bool GetOutPhys(const TOutPins pin) const + { return GetOutPhys() & BIT(pin); } + +// петля "тип коробки" + static bool StateAtMt(void); + +private: + TOutMask oStates; // сохраненные состояния логических выходов (всех функций выходов) + TInpMask iStates; // сохраненные состояния логических входов (всех функций входов) + uint32_t ipStates, ipTemp; // физические состояния входов, очищенные от дребезга... + uint32_t opStates; // физические состояния выходов + + struct TInputPin { + TimerMs Timer; + uint16_t TimeOut; + uint8_t Stage; + }; + TInputPin iPin[ipCOUNT]; + +// получение мгновенных состояний со входов + static uint32_t GetInputPins(void); + +// управляет состояниями подтяжек на входах + static void SetPullInput(TInPins Input, TInputPullupMode Mode); + + inline void ClrOutputState(TOutputs Output) {bbRAM(oStates,Output) = 0;}; + inline void SetOutputState(TOutputs Output) {bbRAM(oStates,Output) = 1;}; + +#endif // ! CAN_FIRMWARE +}; + +// глобальный объект портов ввода-вывода +extern CIO gIO; + +#endif /* DRIVERS_IO_H_ */ diff --git a/libs/LinBus.h b/libs/LinBus.h new file mode 100644 index 0000000..08369ef --- /dev/null +++ b/libs/LinBus.h @@ -0,0 +1,212 @@ +/* + * LinBus.h + * + * Created on: 17 дек. 2015 г. + * Author: esaulenko + */ + +#ifndef DRIVERS_LINBUS_H_ +#define DRIVERS_LINBUS_H_ + +#ifndef CAN_FIRMWARE + +#include "KLineDrv.h" +#include "ImoDrv.h" +#include "Buffer.h" +#include "SysTimer.h" +#include "scmRTOS/scmRTOS.h" + +extern CLin LinBus1; +extern CLin LinBus2; +extern CLin LinBus3; + +union TLinInit; + +#endif // CAN_FIRMWARE + +#include "LinFrame.h" + +class CLin +{ +public: + + enum TLinMode { + Mode_RawNoParity, // без стандарта, принимает-передаёт любые пакеты (без чётности) + Mode_Master, // LIN-мастер + Mode_Slave, // LIN-слейв + Mode_RawEvenParity, // без стандарта, байты с проверкой на чётность + Mode_RawOddParity, // без стандарта, байты с проверкой на нечётность + Mode_Raw9bit, // без стандарта, в байте 9 бит данных без чётности + Mode_RawIgnoreError, // без стандарта, принимаются байты без чётности, стоп-бита и т.д. + Mode_RawStop2bit, // без стандарта, 2 стоп-бита + Mode_ImoImi, // протокол Toyota (старый), 48.8 бит/сек, 16 бит данных + Mode_ImoRenault, // протокол Renault, 81,4 бит/с + Mode_ImoImi2, // протокол Toyota (новый), 195.3 бит/сек, 32 бита данных + Mode_FordDstTx, // протокол Ford DST80 (ШИМ, 1 бит = 1 мс / 0,5 мс) + Mode_FordUartRx, // протокол Ford (UART 15625 бит/с, 384 мкс между байтами) + Mode_Haval, // протокол с импульсами подтверждения (фильтрация/генерация) + Mode_FordDstInversion, // протокол Ford DST80 (ШИМ, 1 бит = 1 мс / 0,5 мс, ИНВЕРСНЫЙ сигнал) + }; + +#ifndef CAN_FIRMWARE + + CLin(const KLineHw & cfg) : _drv(cfg, this), _imoDrv(this, cfg) + {} + + uint32_t Init(const TLinInit & init); + + // Для режима Haval + void InitEXTI(void); + void DeinitEXTI(void); + void EdgeRcv(const bool newVal); + + void CheckTimeout(void); + + int32_t GetFrame(TLinFrame & aFrame); + + uint32_t SendFrame(const TLinFrame & aFrame); + + void Sleep(const bool sleepEnable); + +// вызывается из обработчиков прерываний: +// приём/передача UART + void IrqUart(void) + { _drv.IrqProcess(); } +// передача UART по таймеру + uint32_t IrqTimerSend(void) + { return _drv.IrqTimerSend(); } +// фронт в режиме IMO/IMI + void IrqImoEdge(const bool val) + { + Sleep(false); + if (_mode == Mode_Haval) + EdgeRcv(val); + else + _imoDrv.rx.EdgeRcv(val); + } +// таймер передачи в режиме IMO/IMI (только для LIN1) + void IrqImoSend(void) + { _imoDrv.tx.IrqSetNextBit(); } + +// управление выходом напрямую, как GPIO + void SetOutput(const bool setZero); + +private: + CKLineDrv _drv; + CImoDrv _imoDrv; + +// вызывается из прерывания по приёму + void DataRcvd(uint16_t data); + void BreakRcvd(void); + void ErrorRcvd(void); + +// вызывается из прерываний IMO/IMI + void DataImiRcvd(const uint8_t * data, uint32_t data_len); + +// вызывается из прерывания по передаче + bool IsTxData(void) + { return _tx_buf.Avail() > 0; } + uint16_t GetTxData(void) + { return _tx_buf.Get(); } + void TxComplete(void); + + friend CKLineDrv; + friend CImoDrv; + + TLinMode _mode; + + union { + bool _mode9bit = false; + bool _InverseSignal; // инверсия входного сигнала + }; + + // не-UART протоколы на таймере + bool isCustomMode(void) const + { + return _mode == Mode_ImoImi || + _mode == Mode_ImoImi2 || + _mode == Mode_ImoRenault || + _mode == Mode_FordDstTx || + _mode == Mode_FordDstInversion; + } + + enum { + State_NoInit, + State_BusOff, + State_Idle, + State_WaitSync, + State_WaitId, + State_WaitData, + State_SlaveTxData, + } _state = State_NoInit; + + TLinFrame _rx_frame; + TimerMs _rx_tmr; + uint32_t _rx_timeout; + + TimerMs _sleep_tmr; + uint32_t _sleep_timeout; + + uint8_t _bytecnt; // счетчик байт для Mode_Haval + uint8_t _bytes_noack; // кол-во байт без подтверждения для Mode_Haval + uint8_t _bytes_ack; // кол-во байт c подтверждением для Mode_Haval +// TimerUs _ack_tmr; // таймер для генерации импульов Mode_Haval + uint8_t _bit_length_us; + uint16_t _ack_pause_us; + + bool FrameToRxQueue(void); + CircularBuffer _rx_queue; + + CircularBuffer _tx_buf; // буфер на передачу + + TLinFrame _tx_fr_buf[16]; // кадры для передачи slave'ом + TLinFrame*_tx_fr_cur = _tx_fr_buf; // текущий передающийся кадр + bool StartSlaveTx(uint8_t id); // функция отправки этого кадра + + TLinFrame * getTxFrame(void) // забрать фрейм из буфера (для imo_drv) + { + for (auto & it: _tx_fr_buf) + if (it.data_len > 0) + return ⁢ + return nullptr; + } + +// возвращает номер канала + inline TLinChannel Instance(void) const + { +#ifdef MOBICAR_3 + if (this == &LinBus3) + return LINch3; +#endif + if (this == &LinBus2) + return LINch2; + return LINch1; + } + +#endif // not CAN_FIRMWARE + +}; + +union TLinInit +{ + struct TLin + { + uint16_t baudrate; + CLin::TLinMode mode; + uint32_t rxTimeout; + uint32_t sleepTimeout; + }Lin; + + struct THaval + { + uint16_t baudrate; + CLin::TLinMode mode; + uint16_t rxTimeout; + uint32_t sleepTimeout; + uint8_t bytes_noack; // кол-во байт без подтверждения + uint8_t bytes_ack; // кол-во байт c подтверждением + uint16_t ack_pause_us; // пауза в us перед ack в режиме генерации (0-режим фильтрации) + }Haval; +}; + +#endif /* DRIVERS_LINBUS_H_ */ diff --git a/libs/LinFrame.h b/libs/LinFrame.h new file mode 100644 index 0000000..4725b98 --- /dev/null +++ b/libs/LinFrame.h @@ -0,0 +1,81 @@ +/* + * LinFrame.h + * + * Created on: 26 дек. 2015 г. + * Author: esaulenko + */ + +#ifndef DRIVERS_LIN_LINFRAME_H_ +#define DRIVERS_LIN_LINFRAME_H_ + + +#include +#include "Utils.h" + + +class TLinFrame +{ +private: + enum { MaxDataLen = 16, }; + +public: + TLinFrame(): + data_len(-1) // изначально буфер пустой + {} + + uint8_t id; + int8_t data_len; // знак используется при приёме + uint16_t data[MaxDataLen + 1]; // data + chksum + + // посчитать контрольную сумму по стандарту 1.1 (без ID) или по стандарту 2.0 (c ID) + uint8_t CalcChksum (bool new_mode) + { + data_len = MIN (data_len, MaxDataLen); + uint32_t chksum = new_mode ? id : 0; + + for (int i = 0; i < data_len; i++) + { + chksum += data[i]; + if (chksum > 0xFF) + chksum -= 0xFF; + } + return ~ chksum; + } + + // добавить контрольную сумму в пакет + void AddChksum (bool new_mode) + { data[data_len] = CalcChksum (new_mode); } + + // проверить контрольную сумму пакета + bool IsChksumCorrect (bool new_mode) + { return data[data_len] == CalcChksum (new_mode); } + + // посчитать контрольные (старшие) биты в идентификаторе + void CalcIdChksum (uint8_t aId) + { + // byte = p7 p6 b5..b0 + // P6 = b0 ^ b1 ^ b2 ^ b4 + // P7 = ~ (b1 ^ b3 ^ b4 ^ b5) + + uint8_t P6 = (aId >> 0) ^ (aId >> 1) ^ (aId >> 2) ^ (aId >> 4); + uint8_t P7 = (aId >> 1) ^ (aId >> 3) ^ (aId >> 4) ^ (aId >> 5); + P6 = ( P6 & 0x01) << 6; + P7 = ((~P7) & 0x01) << 7; + + id = P7 | P6 | (aId & 0x3F); + } + + + // скопировать данные в кадр (до 8 байт) + template + inline void SetData (const char (&data_str)[N]) + { + data_len = MIN (N - 1, MaxDataLen); + for (int i = 0; i < data_len; i++) + data[i] = (uint8_t)data_str[i]; + } +}; + + + +#endif /* DRIVERS_LIN_LINFRAME_H_ */ diff --git a/libs/ModelName.h b/libs/ModelName.h new file mode 100644 index 0000000..7066afe --- /dev/null +++ b/libs/ModelName.h @@ -0,0 +1,9 @@ +#pragma once + + +#if defined MOBICAR_1_2 + #define M_NAME "M2_" +#elif defined MOBICAR_3 + #define M_NAME "M3_" +#endif + diff --git a/libs/Periodic.h b/libs/Periodic.h new file mode 100644 index 0000000..2112d32 --- /dev/null +++ b/libs/Periodic.h @@ -0,0 +1,166 @@ +/* + * Periodic.h + * + * Создан: 09 окт. 2015 г. + * Автор: esaulenko + * + * Изменен: 21 ноя. 2019 г. + * Автор: gavrilov + */ + +#ifndef PERIODIC_H_ +#define PERIODIC_H_ + +#include +#include +#include "SysTimer.h" +#include "Utils.h" + +template +class CPeriodic +{ +private: + typedef void (* TPeriodicTask) (TCanFwMem * apMem); + +public: +// добавить новую функцию для периодического вызова. Обычно выполняется один раз. + void AddTask(const uint iTask, TPeriodicTask TaskHandler = nullptr, const uint32_t msTime = 0) + { + if (iTask < nTasks) + { + Tasks[iTask].Handler = TaskHandler; + SetTimeout(iTask, msTime); + } + } + +// Установить время, через которое надо будет вызвать периодическую функцию + void SetTimeout(const uint iTask, uint32_t msTime = 0) + { + if (iTask < nTasks) + {// индекс не превышает размер массива +// Если вызов происходит из , то местный таймер уже был сброшен.. и, соответственно, нужно только обновить +// значение периода.. а пересчет минимального времени, также произойдет при выходе из .. +// При вызове же вне , ни местный таймер не сбрасывается, ни пересчет периода не происходит.. + if (!Mutex) + {// При вызове вне : + // 1. Нужно обязательно вызывать метод , т.к. следующий период может как удлиниться, так и укоротиться. + // 2. А для того, чтобы метод правильно выставил время следующего вызова , + // требуется пересчитать все текущие периоды с учетом набега времени. + // 3. А раз нам требуется пересчитать все текущие периоды, то значит мы должны пересбросить местный + // таймер отсчета времени. + // 4. Однако, т.к. отсюда нельзя вызывать обработчики, то тем периодам, что окончились здесь, + // приходится ставить минимальное значение =1, чтобы обеспечить как можно скорее вызов обработчика . + // + auto elapsed = Timer.Restart(); + if (elapsed) + for (auto & Task: Tasks) + // Пройдемся по всем задачам.. + if (Task.Timeout) + { + // task enabled + if (Task.Timeout > elapsed) + Task.Timeout -= elapsed; + else + // Отсюда мы не можем вызвать обработчик, поэтому просто ставим минимальное время.. + Task.Timeout = 1; + } + } + if (Tasks[iTask].Handler == nullptr) + // Если обработчик неопределен.. остановить задачу.. + msTime = 0; + // Установить время.. + Tasks[iTask].Timeout = msTime; + // Всегда сбрасывать признак выполненной задачи, т.к. только-что для нее был выставлен новый период.. + // ..следовательно, предыдущий период уже стал неактуальным.. + Tasks[iTask].Done = false; + // Пересчитать интервалы.. + if (!Mutex) + // ..здесь только для вызывов извне .. + SetNextCall(); + } + } + +// остановить задачу + void Stop(const uint iTask) + { + if (iTask < nTasks) + { + Tasks[iTask].Timeout = 0; + Tasks[iTask].Done = false; + } + } + +// проверить, что задача запущена + bool isActive(const uint iTask) const + { + if (iTask < nTasks) + if (Tasks[iTask].Handler != nullptr) + if (Tasks[iTask].Timeout) + return true; + return false; + } + +private: + struct { + TPeriodicTask Handler = nullptr; + uint32_t Timeout = 0; + bool Done = false; + } Tasks[nTasks]; + + TimerMs Timer; + volatile bool Mutex = false; + +// Обработчик, вызывается из PeriodicProcess() + void Process(TCanFwMem * apCanMemory) + { + auto elapsed = Timer.Restart(); + if (elapsed) + { + // Сначала нужно обновить периоды всех периодических функций.. + for (auto & Task: Tasks) + // Пройдемся по всем задачам.. + if (Task.Timeout) + { + // task enabled + if (Task.Timeout > elapsed) + Task.Timeout -= elapsed; + else + { + Task.Done = true; + Task.Timeout = 0; + } + } + // Затем запустить все сработавшие задачи.. + Mutex = true; // выставить признак того, что метод будет вызван из метода + for (auto & Task: Tasks) + // Пройдемся по всем задачам.. + if (Task.Done) + {// Если задача сработала.. + Task.Done = false; + if (Task.Handler != nullptr) + // task exist + Task.Handler(apCanMemory); // ..запустить ее + } + Mutex = false; + // Запустить перерасчет и установку минимального интревала времени для вызова следующей периодической функции + SetNextCall(); + } + } + friend void PeriodicProcess(TCanFwMem * vars); + +// Расчитать минимальное значение интервала времени для вызова следующей периодической функции + void SetNextCall(void) + { + uint32_t minTime = UINT32_MAX; + for (const auto & Task: Tasks) + if (Task.Timeout) + if (Task.Timeout < minTime) + minTime = Task.Timeout; + + if (minTime == UINT32_MAX) + minTime = 0; // Остановить вызов + CoreFunc->SetPeriod(minTime); + } +}; + +#endif /* PERIODIC_H_ */ diff --git a/libs/Settings.cpp b/libs/Settings.cpp new file mode 100644 index 0000000..3673007 --- /dev/null +++ b/libs/Settings.cpp @@ -0,0 +1,67 @@ +/* + * Settings.cpp + * + * Created on: 12 мая 2015 г. + * Author: esaulenko + */ + +#include "Settings.h" +#include "IO.h" +#include "Utils.h" +#include "CanFwInterface.h" + + +// строки с названиями настроек +#define SETTING(...) +#define SETTING_CAN(...) +#define SETTING_RSRV(...) +#define SETTING_NAME(name, string) \ + __attribute__ ((section(".SettingsVarName"))) \ + static const char name ## String[] = string; +#include SRC_SETTINGS + +#undef SETTING +#undef SETTING_RSRV +#undef SETTING_ALIAS +#undef SETTING_CAN +#undef SETTING_NAME + + +// таблица с настройками CAN-прошивки +__attribute__ ((section(".SettingsTable"))) +const CSettings::TCANSettingsTable CSettings::CanSettingsTable = { + #define SETTING(name, attr, type, def_val...) \ + name, kind_ ## type, attr, sizeof(THeader)+sizeof(type), def_val, + #define SETTING_CAN(name, attr, type, def_val, description) \ + name, kind_ ## type, attr, sizeof(THeader)+sizeof(type), def_val, + #define SETTING_RSRV(...) // не используется + #define SETTING_NAME(name, string) \ + name, 0x1F, NotFixed, sizeof(THeader)+sizeof(char*), name ## String, + + #include SRC_SETTINGS + +// 0xffff //LastVal + CSettings::LastVal +}; +#undef SETTING +#undef SETTING_RSRV +#undef SETTING_ALIAS +#undef SETTING_CAN +#undef SETTING_NAME + + +__attribute__ ((section(".SettingsCanName"))) +const char * const CSettings::CanSettingsName[] = { + #define SETTING(...) // names not used + #define SETTING_CAN(name, attr, type, def_val, description) description, + #define SETTING_RSRV(...) // не используется + #define SETTING_NAME(...) // не используется + + #include SRC_SETTINGS +}; +#undef SETTING +#undef SETTING_RSRV +#undef SETTING_ALIAS +#undef SETTING_CAN +#undef SETTING_NAME + diff --git a/libs/Settings.h b/libs/Settings.h new file mode 100644 index 0000000..c6e3f8f --- /dev/null +++ b/libs/Settings.h @@ -0,0 +1,267 @@ +/* + * Settings.h + * + * Created on: 12 мая 2015 г. + * Author: esaulenko + */ + +#ifndef COMMON_SETTINGS_H_ +#define COMMON_SETTINGS_H_ + +#include "CommonTypes.h" +#include "source/SourcePath.h" + +#ifdef SRC_TYPES +#include SRC_TYPES +#endif + +class CSettings +{ +public: +// глобальная структура с настройками + struct TSettings + { + #define SETTING(...) // не используется + #define SETTING_CAN(name, attrib, type, ...) type name; + #define SETTING_RSRV(...) // не используется + #define SETTING_NAME(...) // не используется + #include SRC_SETTINGS + } __attribute__((packed)); + #undef SETTING + #undef SETTING_RSRV + #undef SETTING_ALIAS + #undef SETTING_CAN + #undef SETTING_NAME + +// объявляем номера настроек. этот enum может расти только вниз! + enum TSettingsID : uint16_t + { + #define SETTING(name, ...) name, + #define SETTING_RSRV(name) name, + #define SETTING_ALIAS(name) name, + #include "SettingsTable.h" // настройки ядра + + CanSettingsStart = 0x600, // отсюда начинаются настройки CAN-прошивки (ПРИЧЕМ, самой 0x600 не может быть!!! т.к. это enum) + + #define SETTING(name, ...) // не используется + #define SETTING_RSRV(name) name, + #define SETTING_CAN(name,...) name, + #define SETTING_NAME(...) // не используется + #include SRC_SETTINGS // собственные настройки CAN-прошивки + + LastVal = 0x7FF // последний параметр + }; + #undef SETTING + #undef SETTING_RSRV + #undef SETTING_ALIAS + #undef SETTING_CAN + #undef SETTING_NAME + + +// значения по умолчанию + enum DefaultValues { + minTimeZone = -9, // значение <-9> из-за ограничения при ручной установке пояса с брелока + defTimeZone = 0, + maxTimeZone = 12, + defClockSyncMode = 2, + maxClockSyncMode = 2, + defTimeZoneSyncMode = 2, + maxTimeZoneSyncMode = 2, + + defLightsAutoStartMode = 2, + maxLightsAutoStartMode = 2, + defIlluminationMode = 0, + maxIlluminationMode = 3, + + defLockByDriveMode = 0, + maxLockByDriveMode = 3, + defUnlockByParkMode = 0, + maxUnlockByParkMode = 2, + + defArmReturnTimeIndex = 0, + minPlafondAlarmDelay = 1, + defPlafondAlarmDelay = 20,//60, + maxPlafondAlarmDelay = 120, + minDoorsLampDeciseconds = 0, + defDoorsLampDeciseconds = 30, + maxDoorsLampDeciseconds = 100, + minTrunkLampDeciseconds = 0, + defTrunkLampDeciseconds = 30, + maxTrunkLampDeciseconds = 100, + + minAlarmDoorsDeciseconds = 0, + defAlarmDoorsDeciseconds = 5, // 0.5сек по умолчанию + maxAlarmDoorsDeciseconds = 50, // 5сек максимум + minAlarmTrunkDeciseconds = 0, + defAlarmTrunkDeciseconds = 5, // 0.5сек по умолчанию + maxAlarmTrunkDeciseconds = 100, // 10сек максимум + minKillEngineDeciseconds = 10, // 1.0сек минимум + defKillEngineDeciseconds = 0x80, // по умолчанию, выключено + maxKillEngineDeciseconds = 127, // 12.7сек максимум + + defTurboTimerIndex = 0, + minReadyMinutes = 1, + defReadyMinutes = 2, + maxReadyMinutes = 8, + minSupportMinutes = 10, + defSupportMinutes = 20, + maxSupportMinutes = 60, + defPitStopTimeIndex = 1, + minPreHeaterMinutes = 1, + defPreHeaterMinutes = 10, + maxPreHeaterMinutes = 60, + defSetReadyMode = 0, + maxSetReadyMode = 2, + minManualAttempts = 1, + defManualAttempts = 1, + maxManualAttempts = 3, + defClrReadyMode = 0, + maxClrReadyMode = 1, + defPrestartSSB = 0, + maxPrestartSSB = 3, + defStopSSB = 0, + maxStopSSB = 3, + minCrankDelaySeconds = 1, + defCrankDelaySeconds = 3, + maxCrankDelaySeconds = 20, + minAutoStartBatteryLevel = 108, + defAutoStartBatteryLevel = 110|0x80, // выключено по-умолчанию + maxAutoStartBatteryLevel = 126, + minAutoStartTemperature = -30, + defAutoStartTemperature = 0-128, // выключена по-умолчанию + maxAutoStartTemperature = 60, + defDailyRunCountIndex = 0, + defAutomaticsPeriodIndex = 0, + defAutomaticsLimitIndex = 0, + minEngineStartPercent = 40/2, + defEngineStartPercent = 70/2, + maxEngineStartPercent = 100/2, + minEngineRunPercent = 30/2, + defEngineRunPercent = 60/2, + maxEngineRunPercent = 80/2, + minTurboTimerPercent = 150/2, + defTurboTimerPercent = 300/2, + maxTurboTimerPercent = 350/2, + + minExternalHeatersTemperature = -20, + defExternalHeatersTemperature = 0-128, // выключена по-умолчанию + maxExternalHeatersTemperature = 20, + + maxExternalTemperatureSensorType = 1, + + defEmergencyBraking = 2, + maxEmergencyBraking = 2, + + maxShockSensTable = 1, + + minWaitAnswerTimeout = 5, + defWaitAnswerTimeout = 20, + maxWaitAnswerTimeout = 60, + minCallEndTimeout = 5, + defCallEndTimeout = 10, + maxCallEndTimeout = 60, + minTripEndTimeout = 5, + defTripEndTimeout = 15, + maxTripEndTimeout = 60, + minLowBatteryVoltage = 110, + defLowBatteryVoltage = 118, + maxLowBatteryVoltage = 125, + }; + +private: + +// заголовок таблицы настроек + struct THeader + { + uint16_t ID :11; // идентификатор. Erase=0x000; Core=[0x001..0x5FF]; CanFw=[0x601..0x7FE]; LastVal=0x7FF + uint16_t Kind : 5; // тип данных, см. SettingKind + uint8_t Fixed : 1; + uint8_t Len : 7; // длина с учётом заголовка +// uint8_t Data[0]; + + bool operator == (const THeader & Header) const // fixed не проверяется! +// { return (ID == Header.ID) && (Kind == Header.Kind) && (Len == Header.Len); } +// { return (*(uint16_t*)this == *(uint16_t*)&Header) && (Len == Header.Len); } + { return (*(uint16_t*)this == *(uint16_t*)&Header); } // и длина не проверяется! + } __attribute__ ((packed)); // sizeof() = 3 + + enum { + minRecordSize = sizeof(THeader)+1, + maxRecordSize = sizeof(THeader)+124 // 127 = 3+124 - самый максимум, т.к. Len = 7 бит. + }; + + // список допустимых типов данных. + // важно! при добавлении новых необходимо расширять список! + enum SettingKind // 0..31 + { + kind_bit_t, + kind_uint8_t, + kind_uint16_t, + kind_uint32_t, + kind_int8_t, + kind_int16_t, + kind_int32_t, + kind_array_t, + kind_TInputPinSettings = kind_array_t, + kind_TInputSettings = kind_array_t, + kind_TSequence = kind_array_t, + kind_TCanOutMask = kind_array_t, + kind_uint64_t = kind_array_t, + kind_TKeyAES = kind_array_t, + kind_TVehicleID = kind_array_t, + kind_TStartTimerSetting = kind_array_t, + kind_TImmoKey = kind_array_t, + kind_TPhoneNumber = kind_array_t, + kind_TModemAPN = kind_array_t, + kind_TModemLogin = kind_array_t, + kind_TModemPassword = kind_array_t, + kind_TTagRSSI = kind_array_t, + + kind_SettingName = 0x1F // спецзначение - указатель на описание настройки в CAN-прошивке + }; + + enum SettingAttr + { + NotFixed = 0, + Fixed = 1, + }; + +// Подбор ближайшего множителя к указанным милисекундам: MUL = ((2^p - 1)*2^5) + m*2^p = 2^(p+5) - 2^5 + m*2^p = (m + 2^5)*2^p - 2^5 + static constexpr uint8_t qMS(int ms, int p = 0) + { return ms < ((127<>(p+1)) : p < 7 ? qMS(ms, p+1) : 0xFF; } + + +public: + + // таблица с настройками CAN-прошивки + struct TCANSettingsTable + { + #define SETTING(name, attr, type, ...) \ + THeader hdr_ ## name; type name; + #define SETTING_CAN(name, attr, type, ...) \ + THeader hdr_ ## name; type name; + + #define SETTING_RSRV(...) // не используется + #define SETTING_NAME(name,string) \ + THeader hdr_ ## name ## Str; const char * p ## name ## Str; + + #include SRC_SETTINGS + + #undef SETTING + #undef SETTING_RSRV + #undef SETTING_ALIAS + #undef SETTING_CAN + #undef SETTING_NAME + + uint16_t last_val; + } __attribute__ ((packed)); + +// таблица с настройками CAN-прошивки + static const TCANSettingsTable CanSettingsTable; + +// таблица с названиями полей CAN-прошивки + static const char * const CanSettingsName[]; + +}; + +#endif // COMMON_SETTINGS_H_ diff --git a/libs/SettingsTable.h b/libs/SettingsTable.h new file mode 100644 index 0000000..82df05d --- /dev/null +++ b/libs/SettingsTable.h @@ -0,0 +1,687 @@ + +// таблица с используемыми настройками + +// выше должно быть определение того, какие поля используются +//#define SETTING(name, attrib, type, def_val) + +// при добавлении новых типов данных необходимо расширить enum SettingKind + +// SETTING_RSRV позволяет сделать "дырки" в номерах настроек +// если не определена, значит, она не используется +#ifndef SETTING_RSRV +#define SETTING_RSRV(name) +#endif + +// SETTING_ALIAS позволяет задавать альтернативные имена для настроек +#ifndef SETTING_ALIAS +#define SETTING_ALIAS(alt_name) +#endif + +SETTING_RSRV(Erased = 0) // нулевая настройка используется при удалении какого-либо идентификатора. + +// настройки физических входов: 1..9 + 1 резерв +SETTING (iRedBlack, NotFixed, TInputPinSettings, {50, 3, 0}) +SETTING (iGreyBlack, NotFixed, TInputPinSettings, {50, 3, 0}) +SETTING (iBrownBlack, NotFixed, TInputPinSettings, {50, 3, 0}) +SETTING (iGreen, NotFixed, TInputPinSettings, {50, 0, 0}) +SETTING (iLBlueBlack, NotFixed, TInputPinSettings, {50, 1, 0}) +SETTING (iBlackWhite, NotFixed, TInputPinSettings, {50, 0, 0}) +SETTING (iBlackPink, NotFixed, TInputPinSettings, {50, 1, 0}) +SETTING (iYellowBlue, NotFixed, TInputPinSettings, {50, 1, 0}) +SETTING (iYellowWhite, NotFixed, TInputPinSettings, {50, 1, 0}) +#ifndef ipFIRST +#define ipFIRST iRedBlack +#endif +SETTING_ALIAS(ipLAST) + +SETTING_ALIAS(ipOFFSET = ipFIRST) +SETTING_ALIAS(ipCOUNT = (ipLAST-ipFIRST)) + +SETTING_RSRV(ReservedPins = 10) + +/* Значения по-умолчанию: +Connector input wires table for FW rev 198: + Red-black wire Doors input (active low) + Grey-black wire Trunk input (active low) + Brown-black wire Hood input (active low) + Green wire Ignition input (active high) + Blue-black wire Handbrake/parking input (active low) + Black-white wire Brake input (active high) + Black-pink wire Tachometer input +*/ +// настройки логических входов - 11..74 +// Состояние неопределенных устройств (объектов) +SETTING (iDevice1, NotFixed, TInputSettings, {CIO::iNone, 0}) +SETTING (iDevice2, NotFixed, TInputSettings, {CIO::iNone, 0}) +SETTING (iDevice3, NotFixed, TInputSettings, {CIO::iNone, 0}) +SETTING (iDevice4, NotFixed, TInputSettings, {CIO::iNone, 0}) +SETTING (iDevice5, NotFixed, TInputSettings, {CIO::iNone, 0}) +SETTING (iDevice6, NotFixed, TInputSettings, {CIO::iNone, 0}) +SETTING (iDevice7, NotFixed, TInputSettings, {CIO::iNone, 0}) +SETTING (iDevice8, NotFixed, TInputSettings, {CIO::iNone, 0}) +SETTING (iDoorDrv, NotFixed, TInputSettings, {CIO::iRedBlack, CIO::ActiveGND}) // дверь водитель +SETTING (iDoorFP, NotFixed, TInputSettings, {CIO::iRedBlack, CIO::ActiveGND}) // дверь переднего пассажира +SETTING (iDoorRL, NotFixed, TInputSettings, {CIO::iRedBlack, CIO::ActiveGND}) // дверь задняя левая +SETTING (iDoorRR, NotFixed, TInputSettings, {CIO::iRedBlack, CIO::ActiveGND}) // дверь задняя правая +SETTING (iTrunk, NotFixed, TInputSettings, {CIO::iGreyBlack, CIO::ActiveGND}) // багажник +SETTING (iHood, NotFixed, TInputSettings, {CIO::iBrownBlack, CIO::ActiveGND}) // капот +SETTING (iIgn, NotFixed, TInputSettings, {CIO::iGreen, 0}) // Зажигание +SETTING (iHBrake, NotFixed, TInputSettings, {CIO::iLBlueBlack, CIO::ActiveGND}) // ручник +SETTING (iLamp, NotFixed, TInputSettings, {CIO::iNone, 0}) // Головное освещение (фары) +SETTING (iPark, NotFixed, TInputSettings, {CIO::iLBlueBlack, CIO::ActiveGND}) // положение ПАРК +SETTING (iBrake, NotFixed, TInputSettings, {CIO::iBlackWhite, 0}) // педаль тормоза +SETTING (iLeftTurnLight, NotFixed, TInputSettings, {CIO::iNone, 0}) // Включен левый сигнал поворота +SETTING (iRightTurnLight, NotFixed, TInputSettings, {CIO::iNone, 0}) // Включен правый сигнал поворота +SETTING (iArm, NotFixed, TInputSettings, {CIO::iNone, 0}) // для подключения внешнего GSM модуля, например +SETTING (iSensorAlarm, NotFixed, TInputSettings, {CIO::iNone, 0}) // зона тревоги с внешнего Сенсора (MWS или SHOCK) +SETTING (iSensorNotify, NotFixed, TInputSettings, {CIO::iNone, 0}) // зона предупреждения с внешнего Сенсора (MWS или SHOCK) +SETTING (iEngine, NotFixed, TInputSettings, {CIO::iNone, 0}) // двигатель работает +SETTING (iLock, NotFixed, TInputSettings, {CIO::iNone, 0}) // ЦЗ заперт +SETTING (iPreHeater, NotFixed, TInputSettings, {CIO::iNone, 0}) // подогреватель +SETTING (iLowFuelLevel, NotFixed, TInputSettings, {CIO::iNone, 0}) // Датчик низкого уровня топлива +SETTING (iACC, NotFixed, TInputSettings, {CIO::iNone, 0}) // аксессуары +SETTING (iKeyIn, NotFixed, TInputSettings, {CIO::iNone, 0}) // ключ в замке (не нужен!?) +SETTING (iSpark, NotFixed, TInputSettings, {CIO::iNone, 0}) // свечи накаливания дизеля +SETTING (iDoorsLamp, NotFixed, TInputSettings, {CIO::iNone, 0}) // Плафон освещения салона +SETTING (iTrunkLamp, NotFixed, TInputSettings, {CIO::iNone, 0}) // Плафон освещения багажника +SETTING (iTrunkWindow, NotFixed, TInputSettings, {CIO::iNone, 0}) // Концевик окна багажника +SETTING (iStartStop, NotFixed, TInputSettings, {CIO::iNone, 0}) // Вход Старт/Стоп от GSM модуля, например +SETTING (iNeutral, NotFixed, TInputSettings, {CIO::iNone, 0}) // Состояние нейтрали (для РКПП) +SETTING (iLauncher, NotFixed, TInputSettings, {CIO::iNone, 0}) // Состояние внешнего/стороннего модуля Запуска +SETTING (iDisarm, NotFixed, TInputSettings, {CIO::iNone, 0}) // для подключения внешнего GSM модуля, например +SETTING (iUnTrunk, NotFixed, TInputSettings, {CIO::iNone, 0}) // уведомление об отпирании багажника +SETTING (iUnLock, NotFixed, TInputSettings, {CIO::iNone, 0}) // ЦЗ отперт + +#ifndef iFIRST +#define iFIRST iDevice1 +#endif +SETTING_ALIAS(iLAST) +SETTING_ALIAS(iOFFSET = iFIRST) +SETTING_ALIAS(iCOUNT = (iLAST-iFIRST)) + +// дырка 75..93 +SETTING_RSRV(ReservedInp = 93) +#if defined MOBICAR_3 || defined MAGICAR_X + +SETTING (oWirePolarity, NotFixed, uint32_t, 0) // битовая маска: положительная полярность выходных проводов +SETTING (iTaho, NotFixed, TInputSettings, {CIO::iBlackPink, 0}) // мультиплексор для сигнала тахометра + +#else + +SETTING_RSRV(oWirePolarity) +SETTING (iTaho, NotFixed, TInputSettings, {CIO::iNone, 0}) // мультиплексор для сигнала тахометра + +#endif + +// настройки выходов - 96..159 +// Неопределенные устройства +SETTING (oDevice1, NotFixed, uint32_t, 0) +SETTING (oDevice2, NotFixed, uint32_t, 0) +SETTING (oDevice3, NotFixed, uint32_t, 0) +SETTING (oDevice4, NotFixed, uint32_t, 0) +SETTING (oDevice5, NotFixed, uint32_t, 0) +SETTING (oDevice6, NotFixed, uint32_t, 0) +SETTING (oDevice7, NotFixed, uint32_t, 0) +SETTING (oDevice8, NotFixed, uint32_t, 0) + +#if defined MOBICAR_1_2 + +// Базовые устройства Охранной системы +SETTING (oSiren, NotFixed, uint32_t, oBIT(oBrown)) // Сирена +SETTING (oHorn, NotFixed, uint32_t, 0) // Клаксон +SETTING (oLights, NotFixed, uint32_t, oBIT(oVioletYellow)|oBIT(oVioletBrown))// Поворотники +SETTING (oLamp, NotFixed, uint32_t, 0) // Головное освещение или габариты +SETTING (oPassiveBlockage, NotFixed, uint32_t, 0) // Пассивная блокировка (когда выключена, цепь разомкнута, блокировка включена) +SETTING (oActiveBlockage, NotFixed, uint32_t, oBIT(oBlue)) // Активная блокировка (когда выключена, цепь замкнута, блокировка выключена) +SETTING (oLockDoors, NotFixed, uint32_t, oBIT(oGreen)) // Запереть все двери +SETTING (oUnlockDoors, NotFixed, uint32_t, oBIT(oYellow)) // Отпереть все двери +SETTING (oUnlockDoorDrv, NotFixed, uint32_t, 0) // Отпереть дверь водителя +SETTING (oLockTrunk, NotFixed, uint32_t, 0) // Запереть багажник +SETTING (oUnlockTrunk, NotFixed, uint32_t, 0) // Отпереть багажник +SETTING (oLockHood, NotFixed, uint32_t, 0) // Запереть Капот +SETTING (oUnLockHood, NotFixed, uint32_t, 0) // Отпереть капот +SETTING (oCloseWindows, NotFixed, uint32_t, 0) // Закрыть окна +SETTING (oPreHeaterOn, NotFixed, uint32_t, 0) // Включение предпускового подогревателя +SETTING (oPreHeaterOff, NotFixed, uint32_t, 0) // Выключение предпускового подогревателя +SETTING (oImmOn, NotFixed, uint32_t, 0) // Устройство включающее Иммобилайзер +SETTING (oImmOff, NotFixed, uint32_t, 0) // Устройство выключающее Иммобилайзер +SETTING (oService, NotFixed, uint32_t, 0) // Устройство переводящее автомобиль в Сервисный режим +SETTING (oDisarm, NotFixed, uint32_t, 0) // Устройство осуществляющее снятие с Охраны (можно использовать как выход статической блокировки) +SETTING (oArm, NotFixed, uint32_t, 0) // Устройство осуществляющее постановку под Охрану (можно использовать как выход статической блокировки) +SETTING (oAlarm, NotFixed, uint32_t, 0) // Устройство осуществляющее включение тревоги (можно использовать как выход статической блокировки) +SETTING (oAutoStart, NotFixed, uint32_t, 0) // Состояние Автозапуска +// Базовые устройства АвтоЗапуска (подменяют или имитируют присутствие водителя в автомобиле) +SETTING (oDoorWag, NotFixed, uint32_t, 0) // Устройство махающее дверью +SETTING (oIgn, NotFixed, uint32_t, oBIT(oBrownGreen)) // Включение зажигания +SETTING (oBrake, NotFixed, uint32_t, 0) // Педаль тормоза +SETTING (oKeyIn, NotFixed, uint32_t, 0) // Ключ в замке +SETTING (oAcc, NotFixed, uint32_t, oBIT(oBrownWhite)) // Аксессуары +SETTING (oBrakeControl, Fixed, uint32_t, 0) // не используется. Делать "дырку" нельзя, ломается индексация массива +SETTING (oAuxBrake, NotFixed, uint32_t, 0) // Дополнительная линия педали тормоза +SETTING (oAuxIgn, NotFixed, uint32_t, oBIT(oBrownViolet)) // Дополнительная линия зажигания +SETTING (oSSButton, NotFixed, uint32_t, 0) // Кнопка Старт/Стоп +SETTING (oImmBypass, NotFixed, uint32_t, 0) // Обходчик встроенного иммобилайзера +SETTING (oCrank, NotFixed, uint32_t, oBIT(oBrownYellow)) // Стартер +SETTING (oCrankDisable, NotFixed, uint32_t, 0) // Блокировка Стартера + +// Дополнительные +SETTING (oLockIgn, NotFixed, uint32_t, 0) // Блокировка зажигания (когда включена, зажигание заблокировано) +SETTING (oUnLockIgn, NotFixed, uint32_t, 0) // Разблокировка зажигания (когда включена, зажигание разблокировано) +SETTING (oKLine1Relay, NotFixed, uint32_t, 0) // Устройство коммутирующее KLine интерфейс +SETTING (oAux1, NotFixed, uint32_t, 0) // Доп.канал #1 +SETTING (oAux2, NotFixed, uint32_t, 0) // Доп.канал #2 +SETTING (oAux3, NotFixed, uint32_t, 0) // Доп.канал #3 +SETTING (oEmergencyBraking, NotFixed, uint32_t, 0) // Выход сигнала Экстренного торможения +SETTING (oIllumination, NotFixed, uint32_t, 0) // Выход для сигналов вежливой подсветки +SETTING (oFoldMirrors, NotFixed, uint32_t, 0) // Сложить зеркала +SETTING (oUnfoldMirrors, NotFixed, uint32_t, 0) // Разложить зеркала +SETTING (oCloseSunroof, NotFixed, uint32_t, 0) // Закрыть люк +SETTING (oMoveSunroof, NotFixed, uint32_t, 0) // Сдвинуть люк +SETTING (oHeatedSeats, NotFixed, uint32_t, 0) // Обогрев сидений +SETTING (oTriggerDoors, NotFixed, uint32_t, 0) // Триггерное управление замками дверей +SETTING (oIgnSupport, NotFixed, uint32_t, 0) // Состояние поддержки зажигания +SETTING (oArmWithoutTag, NotFixed, uint32_t, 0) // Состояние "Охрана без метки" +SETTING (oHeatedWindows, NotFixed, uint32_t, 0) // Обогрев окон +SETTING (oKLine2Relay, Fixed, uint32_t, 0) // Mobicar3: Устройство коммутирующее KLine интерфейс +SETTING (oDVR, NotFixed, uint32_t, 0) // Выход на видеорегистратор + +#elif defined MOBICAR_3 || defined MAGICAR_X + +// Базовые устройства Охранной системы +SETTING (oSiren, NotFixed, uint32_t, oBIT(oBrown)) // Сирена +SETTING (oHorn, NotFixed, uint32_t, 0) // Клаксон +SETTING (oLights, NotFixed, uint32_t, oBIT(oBrownViolet)|oBIT(oBrownWhite))// Поворотники +SETTING (oLamp, NotFixed, uint32_t, 0) // Головное освещение или габариты +SETTING (oPassiveBlockage, NotFixed, uint32_t, 0) // Пассивная блокировка (когда выключена, цепь разомкнута, блокировка включена) +SETTING (oActiveBlockage, NotFixed, uint32_t, oBIT(oBlue)) // Активная блокировка (когда выключена, цепь замкнута, блокировка выключена) +SETTING (oLockDoors, NotFixed, uint32_t, oBIT(oBrownGreen)) // Запереть все двери +SETTING (oUnlockDoors, NotFixed, uint32_t, oBIT(oBrownYellow)) // Отпереть все двери +SETTING (oUnlockDoorDrv, NotFixed, uint32_t, 0) // Отпереть дверь водителя +SETTING (oLockTrunk, NotFixed, uint32_t, 0) // Запереть багажник +SETTING (oUnlockTrunk, NotFixed, uint32_t, 0) // Отпереть багажник +SETTING (oLockHood, NotFixed, uint32_t, 0) // Запереть Капот +SETTING (oUnLockHood, NotFixed, uint32_t, 0) // Отпереть капот +SETTING (oCloseWindows, NotFixed, uint32_t, 0) // Закрыть окна +SETTING (oPreHeaterOn, NotFixed, uint32_t, 0) // Включение предпускового подогревателя +SETTING (oPreHeaterOff, NotFixed, uint32_t, 0) // Выключение предпускового подогревателя +SETTING (oImmOn, NotFixed, uint32_t, 0) // Устройство включающее Иммобилайзер +SETTING (oImmOff, NotFixed, uint32_t, 0) // Устройство выключающее Иммобилайзер +SETTING (oService, NotFixed, uint32_t, 0) // Устройство переводящее автомобиль в Сервисный режим +SETTING (oDisarm, NotFixed, uint32_t, 0) // Устройство осуществляющее снятие с Охраны (можно использовать как выход статической блокировки) +SETTING (oArm, NotFixed, uint32_t, 0) // Устройство осуществляющее постановку под Охрану (можно использовать как выход статической блокировки) +SETTING (oAlarm, NotFixed, uint32_t, 0) // Устройство осуществляющее включение тревоги (можно использовать как выход статической блокировки) +SETTING (oAutoStart, NotFixed, uint32_t, 0) // Состояние Автозапуска +// Базовые устройства АвтоЗапуска (подменяют или имитируют присутствие водителя в автомобиле) +SETTING (oDoorWag, NotFixed, uint32_t, 0) // Устройство махающее дверью +SETTING (oIgn, NotFixed, uint32_t, oBIT(oGreenRelay)) // Включение зажигания +SETTING (oBrake, NotFixed, uint32_t, 0) // Педаль тормоза +SETTING (oKeyIn, NotFixed, uint32_t, 0) // Ключ в замке +SETTING (oAcc, NotFixed, uint32_t, oBIT(oWhiteRelay)) // Аксессуары +SETTING (oBrakeControl, Fixed, uint32_t, 0) // не используется. Выкидывать нельзя, ломается адресация выходов как массива +SETTING (oAuxBrake, NotFixed, uint32_t, 0) // Дополнительная линия педали тормоза +SETTING (oAuxIgn, NotFixed, uint32_t, 0) // Дополнительная линия зажигания +SETTING (oSSButton, NotFixed, uint32_t, 0) // Кнопка Старт/Стоп +SETTING (oImmBypass, NotFixed, uint32_t, 0) // Обходчик встроенного иммобилайзера +SETTING (oCrank, NotFixed, uint32_t, oBIT(oYellowRelay)) // Стартер +SETTING (oCrankDisable, NotFixed, uint32_t, 0) // Блокировка Стартера + +// Дополнительные +SETTING (oLockIgn, NotFixed, uint32_t, 0) // Блокировка зажигания (когда включена, зажигание заблокировано) +SETTING (oUnLockIgn, NotFixed, uint32_t, 0) // Разблокировка зажигания (когда включена, зажигание разблокировано) +SETTING (oKLine1Relay, NotFixed, uint32_t, oBIT(oOrangeBreak)) // Устройство коммутирующее KLine интерфейс +SETTING (oAux1, NotFixed, uint32_t, 0) // Доп.канал #1 +SETTING (oAux2, NotFixed, uint32_t, 0) // Доп.канал #2 +SETTING (oAux3, NotFixed, uint32_t, 0) // Доп.канал #3 +SETTING (oEmergencyBraking, NotFixed, uint32_t, 0) // Выход сигнала Экстренного торможения +SETTING (oIllumination, NotFixed, uint32_t, 0) // Выход для сигналов вежливой подсветки +SETTING (oFoldMirrors, NotFixed, uint32_t, 0) // Сложить зеркала +SETTING (oUnfoldMirrors, NotFixed, uint32_t, 0) // Разложить зеркала +SETTING (oCloseSunroof, NotFixed, uint32_t, 0) // Закрыть люк +SETTING (oMoveSunroof, NotFixed, uint32_t, 0) // Сдвинуть люк +SETTING (oHeatedSeats, NotFixed, uint32_t, 0) // Обогрев сидений +SETTING (oTriggerDoors, NotFixed, uint32_t, 0) // Триггерное управление замками дверей +SETTING (oIgnSupport, NotFixed, uint32_t, 0) // Состояние поддержки зажигания +SETTING (oArmWithoutTag, NotFixed, uint32_t, 0) // Состояние "Охрана без метки" +SETTING (oHeatedWindows, NotFixed, uint32_t, 0) // Обогрев окон +SETTING (oKLine2Relay, NotFixed, uint32_t, oBIT(oPinkBreak)) // Mobicar3: Устройство коммутирующее KLine интерфейс +SETTING (oDVR, NotFixed, uint32_t, 0) // Выход на видеорегистратор + +//SETTING (oTriggerLights, NotFixed, uint32_t, 0) // Выход на триггерную кнопку включения аварийки + +#endif // outputs + +#ifndef oFIRST +#define oFIRST oDevice1 +#endif +SETTING_ALIAS(oLAST) +SETTING_ALIAS(oOFFSET = oFIRST) +SETTING_ALIAS(oCOUNT = (oLAST-oFIRST)) + +SETTING_RSRV(ReservedOutput = 159) + +// Общий принцип настройки последовательностей: +// Если выход один, либо существует возможность соединить два выхода параллельно, то +// активное значение последовательности должно быть немного (на 10-50мс) задержано по времени +// по отношению к моменту включения пассивного состояния на противоположенной последовательности. +// Например, если у последовательности выключения выхода пассивное состояние наступает через 100мс, +// то активное состояние у последовательности включения должно быть задержано на 110-150мс от начала. + +// Еще одно замечание. +// Существуют устройства, которые сами могут отключаться, например, "Замки"/"Зеркала"/"Люк"/"Багажник", +// соответственно их можно только закрыть или открыть. +// А существуют устройства, которые включаются/выключаются по команде.. такие устройства, как правило, +// с бесконечным временем работы, например, "Подогрев сидений"/"Аварийка"/"Фары" и т.п., соответственно их +// можно включить или выключить. +// Соответственно, для устройств, которые могут быть включены/выключены, используются двойные/комплементарные +// импульсные последовательности. + +// настройки последовательностей: 160..299 +SETTING (seqSirenArm, NotFixed, TSequence, {qMS( 10),5}) // Сирена: Постановка под Охрану +SETTING (seqSirenDisarm, NotFixed, TSequence, {qMS( 10),5,10,5}) // Сирена: Снятие с Охраны +SETTING (seqSirenAlarm, NotFixed, TSequence, {qMS(100),0xF0}) // Сирена: Тревога +SETTING (seqSirenWarning, NotFixed, TSequence, {qMS( 10),0xF2,10,5,10,5,10,5}) // Сирена: Внимание! +SETTING (seqSirenCaution, NotFixed, TSequence, {qMS( 10),5,5,5}) // Сирена: Предупреждение +SETTING (seqSirenNotify, NotFixed, TSequence, {qMS( 10),5}) // Сирена: Извещение +SETTING (seqSirenShockNotify, NotFixed, TSequence, {qMS( 10),0xF2,5,5,5,5,5,5}) // Сирена: Предупреждение по датчику Удара +SETTING (seqSirenService, NotFixed, TSequence, {qMS( 10),0xF2,10,5,10,5,10,5}) // Сирена: Сервисный режим +SETTING (seqSirenDisarmAfterAlarm, NotFixed, TSequence, {qMS( 10),0xF2,10,5,10,5,10,5,10,5})// Сирена: Снятие с Охраны после тревоги +SETTING (seqSirenImHere, NotFixed, TSequence, {qMS( 50),0xF2,4,4,4,4,4,4,4,4,128,0xF3})// Сирена: Поиск автомобиля на парковке +SETTING (seqSirenReserved2, NotFixed, TSequence, {qMS( 0)}) // Сирена: Резерв + +SETTING (seqHornArm, NotFixed, TSequence, {qMS( 10),3}) // Клаксон: Постановка под Охрану +SETTING (seqHornDisarm, NotFixed, TSequence, {qMS( 10),3,10,3}) // Клаксон: Снятие с Охраны +SETTING (seqHornAlarm, NotFixed, TSequence, {qMS( 10),5,10,0xF1}) // Клаксон: Тревога +SETTING (seqHornWarning, NotFixed, TSequence, {qMS( 10),0xF2,10,3,10,3,10,3}) // Клаксон: Внимание! +SETTING (seqHornCaution, NotFixed, TSequence, {qMS( 10),3,5,3}) // Клаксон: Предупреждение +SETTING (seqHornNotify, NotFixed, TSequence, {qMS( 10),3}) // Клаксон: Извещение +SETTING (seqHornShockNotify, NotFixed, TSequence, {qMS( 10),0xF2,5,3,5,3,5,3}) // Клаксон: Предупреждение по датчику Удара +SETTING (seqHornService, NotFixed, TSequence, {qMS( 10),0xF2,10,3,10,3,10,3}) // Клаксон: Сервисный режим +SETTING (seqHornDisarmAfterAlarm, NotFixed, TSequence, {qMS( 10),0xF2,10,5,10,5,10,5,10,5})// Клаксон: Снятие с Охраны после тревоги +SETTING (seqHornImHere, NotFixed, TSequence, {qMS( 50),0xF2,4,1,4,1,4,1,4,1,128,0xF3})// Клаксон: Поиск автомобиля на парковке +SETTING (seqHornReserved2, NotFixed, TSequence, {qMS( 0)}) // Клаксон: Резерв + +SETTING (seqLightsArm, NotFixed, TSequence, {qMS(100),5}) // Поворотники: Постановка под Охрану +SETTING (seqLightsDisarm, NotFixed, TSequence, {qMS(100),5,5,5}) // Поворотники: Снятие с Охраны +SETTING (seqLightsAlarm, NotFixed, TSequence, {qMS(100),5,5,0xF1}) // Поворотники: Тревога +SETTING (seqLightsWarning, NotFixed, TSequence, {qMS(100),0xF2,2,5,5,5,5,5}) // Поворотники: Внимание! +SETTING (seqLightsCaution, NotFixed, TSequence, {qMS(100),2,2,2}) // Поворотники: Предупреждение +SETTING (seqLightsNotify, NotFixed, TSequence, {qMS(100),2}) // Поворотники: Извещение +SETTING (seqLightsShockNotify, NotFixed, TSequence, {qMS(100),3}) // Поворотники: Предупреждение по датчику Удара +SETTING (seqLightsService, NotFixed, TSequence, {qMS(100),0xF2,2,5,5,5,5,5}) // Поворотники: Сервисный режим +SETTING (seqLightsDisarmAfterAlarm, NotFixed, TSequence, {qMS(100),0xF2,2,5,5,5,5,5,5,5})// Поворотники: Снятие с Охраны после тревоги +SETTING (seqLightsImHere, NotFixed, TSequence, {qMS(100),0xF2,2,5,5,0xF3}) // Поворотники: Поиск автомобиля на парковке +SETTING (seqLightsAutoStartMode, NotFixed, TSequence, {qMS(100),0xF2,10,5,30,0xF3}) // Поворотники: Режим AutoStart +SETTING (seqLightsAutoStartOnOff, NotFixed, TSequence, {qMS(100),14}) // Поворотники: Включение/выключение режима AutoStart + +SETTING (seqLampArm, NotFixed, TSequence, {qMS(100),5}) // Фары/габариты: Постановка под Охрану +SETTING (seqLampDisarm, NotFixed, TSequence, {qMS(100),5,5,5}) // Фары/габариты: Снятие с Охраны +SETTING (seqLampAlarm, NotFixed, TSequence, {qMS(100),5,5,0xF1}) // Фары/габариты: Тревога +SETTING (seqLampWarning, NotFixed, TSequence, {qMS(100),0xF2,2,5,5,5,5,5}) // Фары/габариты: Внимание! +SETTING (seqLampCaution, NotFixed, TSequence, {qMS(100),2,2,2}) // Фары/габариты: Предупреждение +SETTING (seqLampNotify, NotFixed, TSequence, {qMS(100),2}) // Фары/габариты: Извещение +SETTING (seqLampShockNotify, NotFixed, TSequence, {qMS(100),3}) // Фары/габариты: Предупреждение по датчику Удара +SETTING (seqLampService, NotFixed, TSequence, {qMS(100),0xF2,2,5,5,5,5,5}) // Фары/габариты: Сервисный режим +SETTING (seqLampDisarmAfterAlarm, NotFixed, TSequence, {qMS(100),0xF2,2,5,5,5,5,5,5,5})// Фары/габариты: Снятие с Охраны после тревоги +SETTING (seqLampImHere, NotFixed, TSequence, {qMS(100),0xF2,2,5,5,0xF3}) // Фары/габариты: Поиск автомобиля на парковке +SETTING (seqLampAutoStartMode, NotFixed, TSequence, {qMS(100),0xF2,10,5,30,0xF3}) // Фары/габариты: Режим AutoStart +SETTING (seqLampAutoStartOnOff, NotFixed, TSequence, {qMS(100),14}) // Фары/габариты: Включение/выключение режима AutoStart + +SETTING (seqActiveBlockageOn, NotFixed, TSequence, {qMS( 10),0xF2,1,0xF0}) // Включить активную блокировку +SETTING (seqActiveBlockageOff, NotFixed, TSequence, {qMS( 10),0}) // Выключить активную блокировку +SETTING (seqPassiveBlockageOn, NotFixed, TSequence, {qMS( 10),0}) // Включить пассивную блокировку +SETTING (seqPassiveBlockageOff, NotFixed, TSequence, {qMS( 10),0xF2,1,0xF0}) // Выключить пассивную блокировку + +SETTING (seqLockDoors, NotFixed, TSequence, {qMS( 10),0xF2,1,50}) // Запереть центральный замок (периметр/двери) +SETTING (seqUnlockDoors, NotFixed, TSequence, {qMS( 10),0xF2,1,50}) // Отпереть центральный замок +SETTING (seqUnlockDoorDrv, NotFixed, TSequence, {qMS( 10),0xF2,1,50}) // Отпереть только дверь водителя + +SETTING (seqLockHood, NotFixed, TSequence, {qMS( 10),0xF2,1,80}) // Запереть капот +SETTING (seqUnlockHood, NotFixed, TSequence, {qMS( 10),0xF2,1,80}) // Отпереть капот +SETTING (seqUnlockHoodService, NotFixed, TSequence, {qMS(100),0xF2,25,8}) // Отпереть капот в режиме Автосервис + +SETTING (seqLockTrunk, NotFixed, TSequence, {qMS( 10),0xF2,1,50}) // Запереть багажник +SETTING (seqUnlockTrunk, NotFixed, TSequence, {qMS( 10),0xF2,1,50}) // Отпереть багажник + +SETTING (seqCloseWindows, NotFixed, TSequence, {qMS(100),200}) // Закрыть окна + +SETTING (seqPreHeaterOn, NotFixed, TSequence, {qMS(100),0xF2,1,0xF0}) // Включить предпусковой подогреватель +SETTING (seqPreHeaterOff, NotFixed, TSequence, {qMS(100),0xF2,1,10}) // Выключить предпусковой подогреватель + +SETTING (seqUnused1, NotFixed, TSequence, {qMS( 0)}) // Неиспользуется +SETTING (seqUnused2, NotFixed, TSequence, {qMS( 0)}) // Неиспользуется +SETTING (seqUnused3, NotFixed, TSequence, {qMS( 0)}) // Неиспользуется +SETTING (seqUnused4, NotFixed, TSequence, {qMS( 0)}) // Неиспользуется + +SETTING (seqImmOn, NotFixed, TSequence, {qMS( 10),0xF2,1,0xF0}) // Включить Иммобилайзер +SETTING (seqImmOff, NotFixed, TSequence, {qMS( 10),0xF2,1,0xF0}) // Выключить Иммобилайзер + +SETTING (seqServiceOn, NotFixed, TSequence, {qMS( 10),0xF2,1,0xF0}) // Включение +SETTING (seqServiceOff, NotFixed, TSequence, {qMS( 10),0}) // Выключение +SETTING (seqDisarmOn, NotFixed, TSequence, {qMS( 10),0xF2,1,0xF0}) // Включение +SETTING (seqDisarmOff, NotFixed, TSequence, {qMS( 10),0}) // Выключение +SETTING (seqArmOn, NotFixed, TSequence, {qMS( 10),0xF2,1,0xF0}) // Включение Охраны +SETTING (seqArmOff, NotFixed, TSequence, {qMS( 10),0}) // Выключение Охраны +SETTING (seqAlarmOn, NotFixed, TSequence, {qMS( 10),0xF2,1,0xF0}) // Включение Тревоги +SETTING (seqAlarmOff, NotFixed, TSequence, {qMS( 10),0}) // Выключение Тревоги + +SETTING (seqAutoStartOn, NotFixed, TSequence, {qMS(100),0}) // Включение Автозапуска +SETTING (seqAutoStartDone, NotFixed, TSequence, {qMS(100),0}) // Успешный пуск Автозапуска +SETTING (seqAutoStartOff, NotFixed, TSequence, {qMS(100),0}) // Выключение Автозапуска + +SETTING (seqLockIgnOn, NotFixed, TSequence, {qMS( 10),0xF2,1,0xF0}) // Включить блокировку зажигания +SETTING (seqLockIgnOff, NotFixed, TSequence, {qMS( 10),0}) // Выключить блокировку зажигания +SETTING (seqUnLockIgnOn, NotFixed, TSequence, {qMS( 10),0xF2,1,0xF0}) // Включить разблокировку зажигания +SETTING (seqUnLockIgnOff, NotFixed, TSequence, {qMS( 10),0}) // Выключить разблокировку зажигания + +SETTING (seqAux1, NotFixed, TSequence, {qMS(100),5}) // Сигнал включения Доп.канала #1 +SETTING (seqAux2, NotFixed, TSequence, {qMS(100),5}) // Сигнал включения Доп.канала #2 +SETTING (seqAux3, NotFixed, TSequence, {qMS(100),5}) // Сигнал включения Доп.канала #3 + +// Последовательности для модуля Запуска +SETTING (seqDoorWag, NotFixed, TSequence, {qMS(100),0xF2,5,5,5}) // Махнуть дверью: пауза для некоторых тормозных НИССАНов (Демин/Семибратов просили добавить) +SETTING (seqImmByOff, NotFixed, TSequence, {qMS(100),6}) // Обходчик иммобилайзера: выключить +SETTING (seqImmByOn, NotFixed, TSequence, {qMS(100),0xF2,1,0xF0}) // Обходчик иммобилайзера: включить +SETTING (seqKeyInOff, NotFixed, TSequence, {qMS(100),5}) // Ключ в замке: выключить +SETTING (seqKeyInOn, NotFixed, TSequence, {qMS(100),0xF2,2,0xF0}) // Ключ в замке: включить +SETTING (seqAccOff, NotFixed, TSequence, {qMS(100),4}) // Аксессуары: выключить +SETTING (seqAccOn, NotFixed, TSequence, {qMS(100),0xF2,3,0xF0}) // Аксессуары: включить +SETTING (seqIgnOff, NotFixed, TSequence, {qMS(100),3}) // Зажигание 1: выключить +SETTING (seqIgnOn, NotFixed, TSequence, {qMS(100),0xF2,5,0xF0}) // Зажигание 1: включить +SETTING (seqBrakeOff, NotFixed, TSequence, {qMS(100),2}) // Педаль тормоза: выключить +SETTING (seqBrakeOn, NotFixed, TSequence, {qMS(100),0xF2,5,0xF0}) // Педаль тормоза: включить +SETTING (seqCrankOn, NotFixed, TSequence, {qMS(100),0xF2,10,30}) // Стартер: включить +SETTING (seqCrankDisableOff, NotFixed, TSequence, {qMS(100),7}) // Блокировка стартера: выключить +SETTING (seqCrankDisableOn, NotFixed, TSequence, {qMS(100),0xF0}) // Блокировка стартера: включить +SETTING (seqAuxIgnOff, NotFixed, TSequence, {qMS(100),3}) // Зажигание 2: выключить +SETTING (seqAuxIgnOn, NotFixed, TSequence, {qMS(100),0xF2,5,0xF0}) // Зажигание 2: включить +SETTING (seqAuxBrakeOff, NotFixed, TSequence, {qMS(100),1}) // Педаль тормоза 2: выключить +SETTING (seqAuxBrakeOn, NotFixed, TSequence, {qMS(100),0xF2,6,0xF0}) // Педаль тормоза 2: включить +SETTING (seqPrestartSSB, NotFixed, TSequence, {qMS(100),0xF2,10,6}) // Первое нажатие на SSB в SetPRESTART +SETTING (seqCrankSSB, NotFixed, TSequence, {qMS(100),0xF2,10,30}) // Нажатие на SSB во время CRANK +SETTING (seqStopSSB, NotFixed, TSequence, {qMS(100),0xF2,21,6}) // Первое нажатие на SSB в SetSTOP, при неавтоматическом подборе нажатий! (пауза в начале для учета параллельных процессов связанных с окончанием, например, включение/выключение обходчика и др.) +SETTING (seqPressSSB, NotFixed, TSequence, {qMS(100),0xF2,10,6}) // Сигнал дополнительных/повторных нажатий на SSB (PRESTART/STOP) + +SETTING (seqEmergencyBraking, NotFixed, TSequence, {qMS(100),0xF2,5,5,0xF2}) // Сигнал экстренного торможения +SETTING (seqIllumination, NotFixed, TSequence, {qMS(100),20,0xF3,10,0xF5,20,0xF7,20,0xF9,20,0xFB,20,0xFD,20,0xFF,20})// Сигнал вежливой подсветки +SETTING (seqFoldMirrors, NotFixed, TSequence, {qMS(100),0}) // Сложить зеркала +SETTING (seqUnfoldMirrors, NotFixed, TSequence, {qMS(100),0}) // Разложить зеркала +SETTING (seqCloseSunroof, NotFixed, TSequence, {qMS(100),0}) // Закрыть люк +SETTING (seqMoveSunroof, NotFixed, TSequence, {qMS(100),0}) // Сдвинуть люк + +SETTING (seqShockAlarmTestMode, NotFixed, TSequence, {qMS( 10),0xF2,5,50}) // Сигнал тревоги по датчику удара в режиме настройки +SETTING (seqHeatedSeatsOn, NotFixed, TSequence, {qMS(100),0}) // Включение подогрева сидений +SETTING (seqHeatedSeatsOff, NotFixed, TSequence, {qMS(100),0}) // Выключение подогрева сидений + +SETTING (seqIgnSupportOn, NotFixed, TSequence, {qMS(100),0xF0}) // Статус включение поддержки зажигания +SETTING (seqIgnSupportOff, NotFixed, TSequence, {qMS(100),0}) // Статус выключение поддержки зажигания + +SETTING (seqArmWithoutTagOn, NotFixed, TSequence, {qMS(100),0xF2,10,0xF0}) // Включение состояния "Охрана без метки" +SETTING (seqArmWithoutTagOff, NotFixed, TSequence, {qMS(100),0}) // Выключение состояния "Охрана без метки" + +SETTING (seqHeatedWindowsOn, NotFixed, TSequence, {qMS(100),0}) // Включение подогрева окон +SETTING (seqHeatedWindowsOff, NotFixed, TSequence, {qMS(100),0}) // Выключение подогрева окон + +//SETTING (seqTriggerStart, NotFixed, TSequence, {qMS(100),30}) // Сигнал первого нажатия на триггерную кнопку +//SETTING (seqTriggerNext, NotFixed, TSequence, {qMS( 10),10,10}) // Сигнал всех последующих нажатий на триггерную кнопку + +#ifndef seqFIRST // последовательности ядра +#define seqFIRST seqSirenArm +#endif +SETTING_ALIAS(seqHOLE) + +SETTING_RSRV(seqProgs = 283) +// Шаблоны CAN прошивки (обезличиненные, приобретают смысл в CAN прошивке) +// В Universe, доп. импульсные последовательности используются максимум 4ре штуки... +// Поэтому, при нехватке последователльностей, можно "откусывать" от программируемых. +SETTING (seqProg16, NotFixed, TSequence, {qMS( 0)}) +SETTING (seqProg15, NotFixed, TSequence, {qMS( 0)}) +SETTING (seqProg14, NotFixed, TSequence, {qMS( 0)}) +SETTING (seqProg13, NotFixed, TSequence, {qMS( 0)}) +SETTING (seqProg12, NotFixed, TSequence, {qMS( 0)}) +SETTING (seqProg11, NotFixed, TSequence, {qMS( 0)}) +SETTING (seqProg10, NotFixed, TSequence, {qMS( 0)}) +SETTING (seqProg9, NotFixed, TSequence, {qMS( 0)}) +SETTING (seqProg8, NotFixed, TSequence, {qMS( 0)}) +SETTING (seqProg7, NotFixed, TSequence, {qMS( 0)}) +SETTING (seqProg6, NotFixed, TSequence, {qMS( 0)}) +SETTING (seqProg5, NotFixed, TSequence, {qMS( 0)}) +SETTING (seqProg4, NotFixed, TSequence, {qMS( 0)}) +SETTING (seqProg3, NotFixed, TSequence, {qMS( 0)}) +SETTING (seqProg2, NotFixed, TSequence, {qMS( 0)}) +SETTING (seqProg1, NotFixed, TSequence, {qMS( 0)}) + +SETTING_ALIAS(seqOFFSET = seqFIRST) +SETTING_ALIAS(seqCOUNT = (seqProg1+1-seqFIRST)) +SETTING_RSRV(seqLAST = 299) + +// прочие системные настройки: 300 +SETTING (KeyAES, NotFixed, TKeyAES, {0}) // ключ шифрования +SETTING (Kxx, NotFixed, uint16_t, 37) // ~690RPM // Калибровочный коэф. холостого хода +SETTING (VIN, NotFixed, TVehicleID, {0}) // VIN-код авто +SETTING (ImmoKeyArr, NotFixed, TImmoKey, {0}) // Ключ обходчика иммобилайзера +SETTING_RSRV(BrelokCount) // Количество подшитых брелков X1/X2 +SETTING (ImmoKeyAuxArr, NotFixed, TImmoKey, {0}) // Расширение ключа обходчика иммобилайзера (дополнительное поле) + +SETTING_RSRV(LastSystemSettings = 0x013F) // 319 + +// настройки индикации светом: 0x0140 (320) +SETTING (LightsArm, NotFixed, bit_t, 1) // при включении охраны +SETTING (LightsDisarm, NotFixed, bit_t, 1) // при выключении охраны +SETTING (LightsAlarm, NotFixed, bit_t, 1) // при тревоге +SETTING (LightsTrunkLock, NotFixed, bit_t, 0) // при запирании багажника +SETTING (LightsAutoStartMode, NotFixed, uint8_t, defLightsAutoStartMode) // режим работы световой индикации при автозапуске: 0=OFF; 1=при вкл/выкл Автозапуска; 2=..и во время Автозапуска +SETTING_RSRV(AutoStartLightsAlwaysOn) // при работе автозапуска +SETTING_RSRV(LightsAutoStartOff) // при выключении автозапуска +SETTING_RSRV(LightsAuxChannelOn) // при включении дополнительного канала +SETTING (IlluminationMode, NotFixed, uint8_t, defIlluminationMode) // режим включения вежливой подсветки: 0=OFF; 1=Arm; 2=Disarm; 3=Arm+Disarm. +SETTING_RSRV(IndLightIllumDuration) // вежливая подсветка, длительность +SETTING (LightsShockNotify, NotFixed, bit_t, 1) // при срабатывании предупреждения датчика удара +SETTING_RSRV(LightsSelfArming) // предупреждение об автопостановке +SETTING_RSRV(_EmergencyBraking) // выдавать сигнал об экстренном торможении +SETTING_RSRV(LightsHiJackOff) // при выходе из хайджека +SETTING_RSRV(LightsImmoOff) // при выходе из иммобилайзера +SETTING_RSRV(LightsNoReservation) // не выполнена подготовка к автозапуску +SETTING_RSRV(LightsHeadLampOn) // не выключены фары + +SETTING_RSRV(IndLightReserved = 0x015F) + +// настройки индикации сиреной: 0x0160 (352) +SETTING (SoundArm, NotFixed, bit_t, 1) // при включении охраны +SETTING (SoundDisarm, NotFixed, bit_t, 1) // при выключении охраны +SETTING (SoundsDisable, NotFixed, bit_t, 0) // отключение всех звуков: тревога/подтверждения +SETTING_RSRV(SoundAutoStartOn) // при включении автозапуска +SETTING_RSRV(SoundAutoStartMode) // при остатке времени автозапуска 2 минуты +SETTING_RSRV(SoundAutoStartOff) // при выключении автозапуска +SETTING_RSRV(SoundAuxChannelOn) // при включении дополнительного канала +SETTING_RSRV(SoundShockNotify) // при срабатывании предупреждения датчика удара +SETTING_RSRV(SoundHeadLampOn) // не выключены фары +SETTING_RSRV(SoundSelfArming) // предупреждение об автопостановке +SETTING_RSRV(SoundHiJackOff) // при выходе из режима хайджек +SETTING_RSRV(SoundServiceNotify) // напоминание о необходимости выйти из режима Автосервис +SETTING_RSRV(SoundImmoOff) // при выходе из режима иммобилайзера +SETTING_RSRV(SoundNoReservation) // не выполнена подготовка к автозапуску +SETTING (SoundsNoticesDisable, NotFixed, bit_t, 0) // Отключить все звуки уведомлений + +SETTING_RSRV(SoundsReserved = 0x017F) + +// настройки центрального замка: 0x0180 (384) +SETTING_RSRV(LockOnAutoArm) // запирание при автопостановке +SETTING_RSRV(LockOnArmReturn) // запирание при возврате в охрану +SETTING (LockByDriveMode, NotFixed, uint8_t, defLockByDriveMode) // режим запирания ЦЗ: нет / по педали тормоза / по началу движения / по включению зажигания +SETTING (LockOnAutostartBegin, NotFixed, bit_t, 0) // запирание при начале автозапуска +SETTING (LockOnAutostartEnd, NotFixed, bit_t, 0) // запирание по окончанию автозапуска +SETTING (LockOnAlarmEnd, NotFixed, bit_t, 0) // запирание при выходе из тревоги +SETTING (LockOnTrunkClose, NotFixed, bit_t, 0) // запирание по завершению процедуры открытия багажника в Охране +SETTING (UnlockByParkMode, NotFixed, uint8_t, defUnlockByParkMode)// отпирание при выключении зажигания +SETTING_RSRV(UnlockByEmergencyBraking) // отпирание при экстренном торможении +SETTING (UnlockPriority, NotFixed, bit_t, 0) // приоритетное отпирание замков +SETTING (DriveDoorsAutostart, NotFixed, bit_t, 0) // Управлять замками дверей по SlaveArm/SlaveDisarm в режиме Автозапуска + +SETTING_RSRV(LockReserved = 0x019F) + +// настройки режимов "охрана", "снято с охраны": 0x01A0 (416) +SETTING_RSRV(ArmAuto) // автопостановка при закрытии дверей, нет / по закрытию дверей / по отсутствию метки +SETTING_RSRV(ArmAutoTimeout) // таймаут автопостановки +SETTING (Comfort, NotFixed, uint8_t, 1) // управление функциями "комфорта": зеркала, стекла, люк +SETTING (ArmReturnTimeIndex, NotFixed, uint8_t, defArmReturnTimeIndex) // индекс массива времен автоматической перепостановки +SETTING (PlafondAlarmDelay, NotFixed, uint8_t, defPlafondAlarmDelay) // время блокировки тревог от сигналов освещения багажника и салона +SETTING (DoorsLampDeciseconds, NotFixed, uint8_t, defDoorsLampDeciseconds)// таймер отсрочки выключенного состояния плафона освещения салона +SETTING (TrunkLampDeciseconds, NotFixed, uint8_t, defTrunkLampDeciseconds)// таймер отсрочки выключенного состояния плафона освещения багажника +SETTING (HandsfreeMode, NotFixed, uint8_t, 0) // постановка/снятие при появлении телефона-метки: бит 0 - автопостановка, бит 1 - автоснятие +SETTING (DisarmWithTagOnly, NotFixed, bit_t, 0) // снятие с охраны только при наличии телефона-метки, прерывание тревоги не запрещает +SETTING (DriveBuiltinSystem, NotFixed, bit_t, 1) // управлять штатной системой авто +SETTING (SlaveModeEnable, NotFixed, bit_t, 0) // управление от штатной системы +SETTING (SlaveComfort, NotFixed, bit_t, 0) // управлять комфортом при постановке в Охрану по SLAVE. +SETTING (DisarmEmergPinVal, NotFixed, uint16_t, 1111) // ПИН-код для аварийного снятия с охраны +SETTING_RSRV(ArmAutoReadyNote) // предупреждение о готовности к автопостановке +SETTING (SlaveDisarmWithTagOnly,NotFixed, bit_t, 0) // снятие с охраны по SLAVE-входу только при наличии телефона-метки, прерывание тревоги не запрещает + +SETTING_RSRV(ArmReserved = 0x01BF) + +// настройки режима "тревога": 0x01C0 (448) +SETTING (AlarmDoorsDeciseconds, NotFixed, uint8_t, defAlarmDoorsDeciseconds) // Задержка тревоги по входам дверей (*100мс) +SETTING (AlarmTrunkDeciseconds, NotFixed, uint8_t, defAlarmTrunkDeciseconds) // Задержка тревоги по входам багажника (*100мс) +SETTING (KillEngineDeciseconds, Fixed, uint8_t, defKillEngineDeciseconds) // Период выдачи команды : 0:Single; >127:OFF.. + +SETTING_RSRV(AlarmReserved = 0x01DF) + +// настройки режима "хайджек" и работы с Меткой: 0x01E0 (480) +SETTING_RSRV(TagsRSSI) // Значения уровней RSSI метки для Автопостановки/Автоснятия + +SETTING_RSRV(HijackReserved = 0x01FF) + +// настройки режима "иммобилайзер": 0x0200 (512) +SETTING (Immobilizer, NotFixed, bit_t, 0) // функция иммобилайзер + +SETTING_RSRV(ImmoReserved = 0x021F) + +// настройки режима "автосервис": 0x0220 (544) +// не используются + +SETTING_RSRV(ServiceReserved = 0x023F) + +// настройки автозапуска: 0x0240 (576) +SETTING (TurboTimerIndex, NotFixed, uint8_t, defTurboTimerIndex) // индекс массива настроек турботаймера: 0=Off, 1=On, 2=Auto +SETTING (ReadyMinutes, NotFixed, uint8_t, defReadyMinutes) // длительность режима READY, в минутах +SETTING (SupportMinutes, NotFixed, uint8_t, defSupportMinutes) // длительность режима SUPPORT, в минутах +SETTING (PitStopTimeIndex, NotFixed, uint8_t, defPitStopTimeIndex)// индекс массива длительностей режима PITSTOP +SETTING (PreHeaterMinutes, NotFixed, uint8_t, defPreHeaterMinutes)// длительность работы PreHeater, в минутах +SETTING (SSB, NotFixed, bit_t, 0) // StartStopButton +SETTING_RSRV(WakeUpBySSB)//, NotFixed, bit_t, 0) // Будить автомобиль нажатием на кнопку SSB +SETTING (SetReadyMode, NotFixed, uint8_t, defSetReadyMode) // режим включения поддержки зажигания +SETTING (SkipPreStartMode, Fixed, bit_t, 0) // сразу же (без проверки статусов автомобиля) запустить двигатель - только для SSB! +SETTING (PowerStart, NotFixed, bit_t, 0) // запуск автомобиля с SSB по силе - только для SSB! +SETTING (ManualAttempts, NotFixed, uint8_t, defManualAttempts) // кол-во попыток запуска по команде с Брелока +SETTING (ReadyDisableImmBypass, NotFixed, bit_t, 1) // запрет включения обходчика при включении поддержки +SETTING (CrankAuxIgnOff, NotFixed, bit_t, 1) // выключать выход во время работы +SETTING (SupportImmBypassOff, NotFixed, bit_t, 1) // выключать обходчик после успешного пуска двигателя +SETTING (StopByDisarm, NotFixed, bit_t, 0) // глушить при снятии с охраны +SETTING (ClrReadyMode, NotFixed, uint8_t, defClrReadyMode) // режим выключения поддержки зажигания +SETTING (AutostartShockEnable, NotFixed, bit_t, 0) // разрешение тревоги по датчику удара в режимах Автозапуска +SETTING (PrestartSSB, NotFixed, uint8_t, defPrestartSSB) // Максимальное кол-во нажатий на SSB в PRESTART: 0-по умолчанию +SETTING (StopSSB, NotFixed, uint8_t, defStopSSB) // Максимальное кол-во нажатий на SSB в STOP: 0-по умолчанию +SETTING (CrankDelaySeconds, NotFixed, uint8_t, defCrankDelaySeconds) // Задержка перед включением стартера, в секундах +SETTING (AutostartBatteryLevel, NotFixed, uint8_t, defAutoStartBatteryLevel) // автозапуск при разряде аккумулятора (десятые доли вольта) +SETTING (AutostartTemperature, NotFixed, int8_t, defAutoStartTemperature) // автозапуск по температуре салона +SETTING_RSRV(MorningRun) // утренний запуск +SETTING_RSRV(EveningRun) // вечерний запуск +SETTING (DailyRunCountIndex, NotFixed, uint8_t, defDailyRunCountIndex) // индекс массива настроек кол-ва суток действия таймерных запусков: бесконечность<0, отключить все таймерные запуски=0. +SETTING (AutomaticsPeriodIndex, NotFixed, uint8_t, defAutomaticsPeriodIndex) // индекс массива настроек таймеров блокировки автоматических запусков +SETTING (AutomaticsLimitIndex, NotFixed, uint8_t, defAutomaticsLimitIndex) // индекс массива настроек ограничителей автоматических запусков за сессию Охраны +SETTING (EngineStartPercent, NotFixed, uint8_t, defEngineStartPercent) // процент от ХХ*2 для детектора состояния запущенного двигателя +SETTING (EngineRunPercent, NotFixed, uint8_t, defEngineRunPercent) // процент от ХХ*2 для детектора состояния работающего двигателя +SETTING (TurboTimerPercent, NotFixed, uint8_t, defTurboTimerPercent) // процент от ХХ*2 для детектора состояния работающего двигателя +SETTING (TimerRun0, NotFixed, TStartTimerSetting, {0x8000, 0}) // таймерный запуск +SETTING (TimerRun1, NotFixed, TStartTimerSetting, {0x8000, 0}) +SETTING (TimerRun2, NotFixed, TStartTimerSetting, {0x8000, 0}) +SETTING (TimerRun3, NotFixed, TStartTimerSetting, {0x8000, 0}) +SETTING (TimerRun4, NotFixed, TStartTimerSetting, {0x8000, 0}) +SETTING (TimerRun5, NotFixed, TStartTimerSetting, {0x8000, 0}) +SETTING (TimerRun6, NotFixed, TStartTimerSetting, {0x8000, 0}) +SETTING (TimerRun7, NotFixed, TStartTimerSetting, {0x8000, 0}) +SETTING (TimerRun8, NotFixed, TStartTimerSetting, {0x8000, 0}) +SETTING (TimerRun9, NotFixed, TStartTimerSetting, {0x8000, 0}) +SETTING (TimerRun10, NotFixed, TStartTimerSetting, {0x8000, 0}) +SETTING (TimerRun11, NotFixed, TStartTimerSetting, {0x8000, 0}) +SETTING (TimerRun12, NotFixed, TStartTimerSetting, {0x8000, 0}) +SETTING (TimerRun13, NotFixed, TStartTimerSetting, {0x8000, 0}) +SETTING (SlaveStartStop, NotFixed, bit_t, 1) // Запуск/Останов двигателя по SLAVE команде со штатного брелока +SETTING (ExternalHeatersEnable, NotFixed, bit_t, 1) // разрешение управлять внешними нагревателями +SETTING (ExternalHeatersTemperature,NotFixed, int8_t, defExternalHeatersTemperature) // пороговая температура включения нагревателя +SETTING (ExternalTemperatureSensorType,NotFixed,uint8_t, 0) // Тип внешнего датчика температуры (0=SEMITEC 103AT-2; 1=MF52A103J3950) + +SETTING_RSRV(AutoStartReserved = 0x027F) + +// настройки обработчика Акселерометра: 0x0280 (640) +SETTING (ShockNotify, NotFixed, uint8_t, 6) // чувствительность предупреждения по датчику Удара [2..9] +SETTING (ShockAlarm, NotFixed, uint8_t, 5) // чувствительность тревоги по датчику Удара [1..8] +SETTING (TiltAlarm, NotFixed, uint8_t, 5) // чувствительность тревоги по датчику Наклона [1..9] +SETTING (MotionAlarm, NotFixed, uint8_t, 5) // чувствительность тревоги по датчику Передвижения/Перемещения [1..9] +SETTING (EmergencyBraking, NotFixed, uint8_t, defEmergencyBraking) // 0-ничего не делать; 1-только моргать; 2-моргать и отпиреть ЦЗ; +// Формат вышеуказанных полей состоит в том, что старший бит - это флажок Disable. +// Т.е. если он стоит, то датчик с указанным уровнем чувствительности выключен. +SETTING (ShockSensTable, NotFixed, uint8_t, 0) // Индекс таблицы чувствительностей (варианты шкал чувствительностей) +//SETTING_ALIAS(AccelSTART = ShockNotify) +SETTING_RSRV(AccelLAST = 0x029F) + +#ifdef MOBICAR_3 + +// настройки Абонентских оповещений: 0x02A0 (672) +SETTING_RSRV(PhoneNumber1) // телефонный номер 1го абонента +SETTING_RSRV(PhoneNumber2) // телефонный номер 2го абонента +SETTING_RSRV(PhoneNumber3) // телефонный номер 3го абонента +SETTING_RSRV(PhoneNumber4) // телефонный номер 4го абонента + +SETTING_RSRV(SMS1) // SMS оповещения 1го абонента +SETTING_RSRV(SMS2) // SMS оповещения 2го абонента +SETTING_RSRV(SMS3) // SMS оповещения 3го абонента +SETTING_RSRV(SMS4) // SMS оповещения 4го абонента + +SETTING_RSRV(Call1) // Голосовые оповещения 1го абонента +SETTING_RSRV(Call2) // Голосовые оповещения 2го абонента +SETTING_RSRV(Call3) // Голосовые оповещения 3го абонента +SETTING_RSRV(Call4) // Голосовые оповещения 4го абонента + +SETTING_RSRV(SubscriberNotifications = 0x02AF) + +// настройки Модема: 0x02B0 (688) +SETTING_RSRV(USSD) // USSD запрос +SETTING_RSRV(VoiceRoamEnable) // разрешены голосовые оповещения в роуминге +SETTING_RSRV(DataRoamEnable) // разрешена передача данных по GPRS в роуминге +SETTING_RSRV(SMSRoamEnable) // разрешена отправка SMS в роуминге +SETTING_RSRV(WaitAnswerTimeout) // время ожидания ответа абонента при оповещении, сек +SETTING_RSRV(CallEndTimeout) // таймаут окончания звонка при бездействии абонента, сек +SETTING_RSRV(TripEndTimeout) // таймаут окончания поездки при выключении зажигания, сек +SETTING_RSRV(LowBatteryVoltage) // уровень входного напряжения генерации оповещения (десятые доли вольта) + +SETTING_RSRV(ModemBaseOptions = 0x02BF) + +// настройки Модема расширенные: 0x02C0 (704) +SETTING_RSRV(ParkingLocRequest) // определять место парковки по БС +SETTING_RSRV(TripLocTimeout) // интервал запроса информации по БС во время поездки, *10сек (=0 не определять) +SETTING_RSRV(EvacLocTimeout) // интервал запроса информации по БС во время эвакуации, *10сек (=0 не определять) +SETTING_RSRV(SMSLoc) // добавлять координаты в SMS +SETTING_RSRV(TimeZone) // Часовой пояс, в часах +SETTING_RSRV(Internet) // признак версии PRO (соединение по Internet) +SETTING_RSRV(ModemAPN) // Строка APN +SETTING_RSRV(ModemLogin) // Строка Login +SETTING_RSRV(ModemPassword) // Строка Password +SETTING_RSRV(DTCRequestTimeout) // интервал времени после выключения зажигания для запроса DTC, *1сек (=0 не определять) +SETTING_RSRV(ClockSyncMode) // Режим синхронизации Системных часов: 0=OFF, 1=PhoneClock, 2=NetworkClock +SETTING_RSRV(TimeZoneSyncMode) // Режим синхронизации Системной зоны: 0=OFF, 1=PhoneTimeZone, 2=NetworkTimeZone + +#endif + +SETTING_RSRV(ModemExtOptions = 0x02CF) + +SETTING_RSRV(CoreReserved = 0x05EF) + +// настройки 0x5F0 .. 0x5FF - настройки ядра под CAN-прошивку +SETTING (iCanAvail_Mask, Fixed, uint32_t, 0) // входы, доступные в CAN-прошивке, битовая маска +SETTING (oCanAvail_Mask, Fixed, uint64_t, 0) // выходы, доступные в CAN-прошивке, битовая маска +SETTING (valCanAvail_Mask, Fixed, uint32_t, 0) // числовые значения, доступные в CAN-прошивке, битовая маска +SETTING (valCanEn_Mask, NotFixed, uint32_t, 0) // используемые числовые значения из CAN-прошивки, битовая маска + +#undef SETTING +#undef SETTING_RSRV +#undef SETTING_ALIAS diff --git a/libs/SysTimer.h b/libs/SysTimer.h new file mode 100644 index 0000000..f87cc34 --- /dev/null +++ b/libs/SysTimer.h @@ -0,0 +1,83 @@ +#ifndef SYSTIMER_H +#define SYSTIMER_H + +#include +#include "CanFwInterface.h" + +// миллисекундный таймер. Макс. таймаут - 2**32 мс. + +class TimerMs { +public: + typedef uint32_t T_Timer; + + TimerMs() + { Restart(); } + virtual ~TimerMs() + { } + + virtual inline T_Timer Restart(void) + { + auto prev = _tmr; + _tmr = CntValue(); + return _tmr - prev; + } + + inline T_Timer Value(void) const + { return CntValue() - _tmr; } + + inline T_Timer Rest(const T_Timer timeout) const + { + T_Timer elapsed = Value(); + if (elapsed < timeout) + return timeout - elapsed; + return 0; + } + + inline bool CheckTimeout(const T_Timer timeout) const + { return Value() > timeout; } + +private: + T_Timer _tmr; + + static inline T_Timer CntValue(void) + { return CoreFunc->GetTickMs(); } + +}; + +class TimerMsOnce : public TimerMs +{ +public: + TimerMsOnce() : TimerMs() + { started = true; } + virtual ~TimerMsOnce() + { } + + virtual inline T_Timer Restart(void) + { + auto elapsed = TimerMs::Restart(); + started = true; + return elapsed; + } + + inline bool IsStarted(void) const + { return started; } + + inline void Stop(void) + { started = false; } + + virtual inline bool CheckTimeout(T_Timer timeout) + { + if (started) + { + if (Value() <= timeout) + return false; + Stop(); + } + return true; + } + +private: + bool started; +}; + +#endif // SYSTIMER_H diff --git a/libs/Utils.h b/libs/Utils.h new file mode 100644 index 0000000..57e1dd8 --- /dev/null +++ b/libs/Utils.h @@ -0,0 +1,73 @@ +/* + * Utils.h + * + * Created on: 29 мая 2015 г. + * Author: esaulenko + */ + +#ifndef UTILS_H_ +#define UTILS_H_ + + +#include +#include "IO.h" + + +uint32_t constexpr BIT (uint32_t n) +{ return 1UL << n; } + +uint64_t constexpr BIT64 (uint32_t n) +{ return 1ULL << n; } + +template uint32_t MAX (T1 a, T2 b) +{ + if (a > b) return a; + else return b; +} + +template uint32_t MIN (T1 a, T2 b) +{ + if (a > b) return b; + else return a; +} + + + + +#define countof(array) (sizeof(array)/sizeof(array[0])) + + + +// установка/снятие бита + +template void BSET (T &x, uint32_t bitNo) ///< установить бит +{ x |= BIT64 (bitNo); } + +template void BCLR (T &x, uint32_t bitNo) ///< стереть бит +{ x &= ~BIT64 (bitNo); } + +///< определить (стереть (Value=0) или установить(Value=1)) бит +template void BDEF (T &x, uint32_t bitNo, uint32_t Value) +{ + if (Value) BSET (x, bitNo); + else BCLR (x, bitNo); +} + + + +// возвращает номер старшего бита +constexpr int8_t bitmask2offset (uint32_t val) +{ + return (int8_t) ( (val > 1) ? ( bitmask2offset (val/2) + 1 ) : 0 ); +} + + + +// управление последовательностями +// использовать в CoreFunc->RunSequence() +#define SEQ(x,y) CIO::x, CSettings::y-CSettings::seqOFFSET + + + + +#endif /* UTILS_H_ */ diff --git a/libs/WeakFunc.cpp b/libs/WeakFunc.cpp new file mode 100644 index 0000000..5410835 --- /dev/null +++ b/libs/WeakFunc.cpp @@ -0,0 +1,40 @@ +#include "source/SourcePath.h" +#include SRC_HEADER + +// функции-пустышки + +// инициализирует ОЗУ, вызывается при старте контроллера +__attribute__((weak)) void Init (TCanFwMem * vars) { } + +// Вызывается при изменении настроек (на каждую настройку) +__attribute__((weak)) void SettingChanged (TCanFwMem * vars, uint16_t id) { } + +// принимает и обрабатывает пакет из CAN +__attribute__((weak)) void Can1Received (TCanFwMem * vars, TCanPkt *apPkt) { } +__attribute__((weak)) void Can2Received (TCanFwMem * vars, TCanPkt *apPkt) { } + +// обрабатывает события изменения входов-выходов +__attribute__((weak)) void InputChanged (TCanFwMem * vars, uint32_t aInputNum, bool aSwitchedOn) { } +__attribute__((weak)) void OutputChanged (TCanFwMem * vars, uint32_t aOutputNum, bool aSwitchedOn) { } +__attribute__((weak)) void GuardEvent (TCanFwMem * vars, TGuardEvents aEvent) { } + +// события начала и конца последовательностей +__attribute__((weak)) void SequenceStart (TCanFwMem * vars, uint32_t aEvent) { } +__attribute__((weak)) void SequenceStop (TCanFwMem * vars, uint32_t aEvent) { } + +// команда от ядра +__attribute__((weak)) void Command (TCanFwMem * vars, TCanFwCommands aCmd, uint32_t aCmdParam) { } + +// вызывается по таймауту +__attribute__((weak)) void PeriodicProcess (TCanFwMem * vars) { } + +// LIN +__attribute__((weak)) void Lin1Received (TCanFwMem * vars, TLinFrame *apFrame) { } +__attribute__((weak)) void Lin2Received (TCanFwMem * vars, TLinFrame *apFrame) { } +__attribute__((weak)) void Lin1Transmitted (TCanFwMem * vars, uint8_t aFrameId) { } +__attribute__((weak)) void Lin2Transmitted (TCanFwMem * vars, uint8_t aFrameId) { } +// Mobicar3 LIN +__attribute__((weak)) void Lin3Received (TCanFwMem * vars, TLinFrame *apFrame) { } +__attribute__((weak)) void Lin3Transmitted (TCanFwMem * vars, uint8_t aFrameId) { } + + diff --git a/src/CAN_FW.h b/src/CAN_FW.h new file mode 100644 index 0000000..b83a97b --- /dev/null +++ b/src/CAN_FW.h @@ -0,0 +1,17 @@ +#ifndef CAN_FW_H_ +#define CAN_FW_H_ + +#include "Settings.h" +#include "Buffer.h" +#include "Periodic.h" +#include "Can.h" + +#define CAN_FW_DESCRIPTION "Test" + +// структура с пользовательскими переменными +struct TCanFwMem { + CSettings::TSettings Settings; // структура с настройками - должна быть всегда в начале + +}; + +#endif /* CAN_FW_H_ */ diff --git a/src/CAN_Inputs.h b/src/CAN_Inputs.h new file mode 100644 index 0000000..7755ff4 --- /dev/null +++ b/src/CAN_Inputs.h @@ -0,0 +1,22 @@ +#include "CAN_FW.h" +#include "Can.h" +#include "IO.h" +#include "Utils.h" + + +void Init (TCanFwMem * vars) +{ + CoreFunc->DebugConsole("CAN_FW version: %s\n", (const char*)(gCanFwInfo.TextInfo)); + + static const TCanInit can1_init = + { + CCan::CanBaudrate500, + 1, + { + CCan::Filter::List11 (0x660), + CCan::Filter::Mask11 (0x7E0, 0x7F0), // 0x7E0..0x7EF + } + }; + CoreFunc->CanInit (CANch1, &can1_init); + +} \ No newline at end of file diff --git a/src/CAN_Outputs.h b/src/CAN_Outputs.h new file mode 100644 index 0000000..cce6be2 --- /dev/null +++ b/src/CAN_Outputs.h @@ -0,0 +1,5 @@ +#include "CAN_FW.h" +#include "Can.h" +#include "IO.h" +#include "Utils.h" + diff --git a/src/SettingsCANTable.h b/src/SettingsCANTable.h new file mode 100644 index 0000000..6739ada --- /dev/null +++ b/src/SettingsCANTable.h @@ -0,0 +1,98 @@ +//===================================================================================== + +// SETTING_RSRV позволяет сделать "дырки" в номерах настроек +// если не определена, значит, она не используется +#ifndef SETTING_RSRV +#define SETTING_RSRV(name) +#endif + +//************************** Динамические параметры ***********************************************// + +// числовые значения, доступные в CAN-прошивке, битовая маска +SETTING (valCanAvail_Mask, Fixed, uint32_t, \ + BIT(CanData_RPM) | BIT(CanData_Speed) | BIT(CanData_Odometer) | BIT(CanData_Accelerator) | \ + BIT(CanData_BrakeForce) | BIT(CanData_WheelAngle) | BIT(CanData_FuelLevel) | BIT(CanData_FuelConsumption) | + BIT(CanData_CoolantTemp) ) + +// используемые числовые значения из CAN-прошивки, битовая маска +SETTING (valCanEn_Mask, NotFixed, uint32_t, \ + BIT(CanData_RPM) | BIT(CanData_Speed) | BIT(CanData_Odometer) | BIT(CanData_Accelerator) | \ + BIT(CanData_BrakeForce) | BIT(CanData_WheelAngle) | BIT(CanData_FuelLevel) | BIT(CanData_FuelConsumption) | + BIT(CanData_CoolantTemp) ) + + +//************************** ВХОДЫ ****************************************************************// + SETTING (iDoorDrv, NotFixed, TInputSettings, {CIO::iCAN}) // Дверь водителя + SETTING (iDoorFP, NotFixed, TInputSettings, {CIO::iCAN}) // Дверь пассажира + SETTING (iDoorRL, NotFixed, TInputSettings, {CIO::iCAN}) // Дверь задняя левая + SETTING (iDoorRR, NotFixed, TInputSettings, {CIO::iCAN}) // Дверь задняя правая + SETTING (iTrunk, NotFixed, TInputSettings, {CIO::iCAN}) // Багажник + SETTING (iACC, NotFixed, TInputSettings, {CIO::iCAN}) // + SETTING (iIgn, NotFixed, TInputSettings, {CIO::iCAN}) // Зажигание + SETTING (iBrake, NotFixed, TInputSettings, {CIO::iCAN}) // Педаль тормоза + SETTING (iHBrake, NotFixed, TInputSettings, {CIO::iCAN}) // Стояночный тормоз + SETTING (iPark, NotFixed, TInputSettings, {CIO::iCAN}) // АКПП в положении "Park" + SETTING (iLock, NotFixed, TInputSettings, {CIO::iCAN}) // Замки дверей + SETTING (iLamp, NotFixed, TInputSettings, {CIO::iCAN}) // Габариты / фары + SETTING (iLeftTurnLight, NotFixed, TInputSettings, {CIO::iCAN}) // Левый поворотник + SETTING (iRightTurnLight, NotFixed, TInputSettings, {CIO::iCAN}) // Правый поворотник + SETTING (iTaho, NotFixed, TInputSettings, {CIO::iCAN}) // Тахометр +// SETTING (iEmergency, NotFixed, TInputSettings, {CIO::iCAN}) // Используется как статус + SETTING (Kxx, NotFixed, uint16_t, 37) // Калибровочный коэф. холостого хода + +//************************** ВЫХОДЫ ************************************************************// + + SETTING (oLights, NotFixed, uint32_t, oBIT(oCAN)) +// SETTING (oAutoStart, NotFixed, uint32_t, oBIT(oCAN)) // События автозапуска +// SETTING (oEmergency, NotFixed, uint32_t, oBIT(oBrownViolet)) // Выход на триггерную кнопку. + SETTING (oKLine1Relay, NotFixed, uint32_t, 0) + SETTING (oKLine2Relay, NotFixed, uint32_t, 0) + + SETTING (oLockDoors, NotFixed, uint32_t, oBIT(oCAN)) // Запереть все двери + SETTING (oUnlockDoors, NotFixed, uint32_t, oBIT(oCAN)) // Отпереть все двери + SETTING (oImmBypass, NotFixed, uint32_t, oBIT(oBrownWhite)) + SETTING (oBrake, NotFixed, uint32_t, oBIT(oBrownYellow)) + + SETTING (oIgn, NotFixed, uint32_t, 0) // Включение зажигания + SETTING (oAuxIgn, NotFixed, uint32_t, 0) // Дополнительная линия зажигания + SETTING (oAcc, NotFixed, uint32_t, 0) // Аксессуары + SETTING (oCrank, NotFixed, uint32_t, 0) // Стартер + + + +//--------- Check boxs -----------------------------------------------------------------// + SETTING (SSB, NotFixed, bit_t, 1) + SETTING (DriveBuiltinSystem, NotFixed, bit_t, 1) // управлять штатной системой автомобиля + SETTING (SlaveModeEnable, NotFixed, bit_t, 1) // включить слейв + SETTING (SlaveDisarmWithTagOnly,NotFixed, bit_t, 1) // снятие с охраны по SLAVE-входу только при наличии телефона-метки, прерывание тревоги не запрещает + SETTING (SetReadyMode, NotFixed, uint8_t, 2) // режим включения поддержки зажигания + SETTING (ClrReadyMode, NotFixed, uint8_t, 1) + SETTING (LightsArm, NotFixed, bit_t, 0) // при включении охраны + SETTING (LightsDisarm, NotFixed, bit_t, 0) // при выключении охраны + +//--------- Последовательности -------------------- + SETTING (seqProg6, NotFixed, TSequence, {qMS(100),6}) + SETTING (seqProg8, Fixed, TSequence, {qMS(10),25}) // аварийка: импульс 250 мс + SETTING (seqProg9, Fixed, TSequence, {qMS(10),15}) // аварийка: импульс 150 мс + +//--------- Переименование входов/выходов --------- +// SETTING_NAME (iEmergency, "<Аварийная сигнализация>") +// SETTING_NAME (oEmergency, "<Управление поворотниками через кнопку>") +// SETTING_NAME (oWireLock, "<Запирание дверей при IgnOn>") +// SETTING_NAME (oWireUnlock, "<Отпирание дверей при IgnOn>") + +//************************** Настройки CAN-прошивки ***********************************************// + + SETTING_CAN (SET1, NotFixed, bit_t, 0, "Настройка 1") + SETTING_CAN (SET2, NotFixed, uint8_t, 0, "Настройка 2|Вкл|Выкл") + SETTING_CAN (SET3, NotFixed, uint8_t, 1, "Настройка 3|Вкл|Выкл|He знаю") + +#undef SETTING +#undef SETTING_RSRV +#undef SETTING_ALIAS +#undef SETTING_CAN + +//************************** The End **************************************************************// + + + diff --git a/src/immo/Immo.h b/src/immo/Immo.h new file mode 100644 index 0000000..214708b --- /dev/null +++ b/src/immo/Immo.h @@ -0,0 +1,16 @@ +#ifndef __IMMO_H_ +#define __IMMO_H_ +#include +#include +#include + +void CalcUDS(uint8_t *sec_ask, uint8_t *sec_ans );//функция для расчёта security access +void GetImmoOut(uint8_t *req, uint8_t *ans, uint8_t *key ); +void shortGetImmoOut(uint8_t *state, uint8_t *key); +bool CheckArray(uint8_t *a,uint8_t *b, uint8_t len); +bool CheckKey(uint8_t *req, uint8_t *ans, uint8_t *key ); + + +#endif /* __IMMO_H_ */ + + diff --git a/src/immo/immo.cpp b/src/immo/immo.cpp new file mode 100644 index 0000000..fb31eb2 --- /dev/null +++ b/src/immo/immo.cpp @@ -0,0 +1,30 @@ +#include "Immo.h" +void CalcUDS(uint8_t *sec_ask, uint8_t *sec_ans )//функция для расчёта security access +{ + +} +void GetImmoOut(uint8_t *req, uint8_t *ans, uint8_t *key ) +{//функция для расчёта ответа иммо + +} +void shortGetImmoOut(uint8_t *state, uint8_t *key) +{//функция для расчёта ответа иммо + +} +bool CheckArray(uint8_t *a,uint8_t *b, uint8_t len) +{ + uint8_t count=0; + for(int i=0;i=len-1) + return 1; + return 0; +} +bool CheckKey(uint8_t *req, uint8_t *ans, uint8_t *key ) +{ //функция для проверуи валидности ключа при обучении + unsigned char state[16] = { 0 }; + return CheckArray(state, ans, 8); +} \ No newline at end of file diff --git a/src/immo/immo.md b/src/immo/immo.md new file mode 100644 index 0000000..b7482b9 --- /dev/null +++ b/src/immo/immo.md @@ -0,0 +1 @@ +# Обход штатного иммобилайзера \ No newline at end of file diff --git a/src/source/SourcePath.h b/src/source/SourcePath.h new file mode 100644 index 0000000..ad75096 --- /dev/null +++ b/src/source/SourcePath.h @@ -0,0 +1,11 @@ + +#ifndef SOURCEPATH_H_ +#define SOURCEPATH_H_ +// здесь указываются пути к конкретной прошивке, которую необходимо собрать + +#define SRC_HEADER "CAN_FW.h" +#define SRC_SETTINGS "SettingsCANTable.h" +#define SRC_FILE1 "CAN_Inputs.h" +#define SRC_FILE2 "CAN_Outputs.h" + +#endif /* SOURCEPATH_H_ */ diff --git a/sys/M1_CAN_FW.ld b/sys/M1_CAN_FW.ld new file mode 100644 index 0000000..3c8872a --- /dev/null +++ b/sys/M1_CAN_FW.ld @@ -0,0 +1,147 @@ +/************************************************* +* linker script for STM32F10xCL +************************************************/ + +ENTRY (CanFuctTable) + + +MEMORY +{ + /* оперативку не используем! */ + /* RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 0 */ + + /* используем флеш 112K .. 128K */ + FLASH (rx) : ORIGIN = (0x08000000 + 112K), LENGTH = 16K +} + +/* higher address of the user mode stack */ +PROVIDE ( _estack = ALIGN(ORIGIN(RAM) + LENGTH(RAM) - 8 ,8) ); + +SECTIONS +{ + + .entrance_vector : + { + _stext = .; + + . = ALIGN(4); + KEEP(*(.entrance_vector)) + . = ALIGN(4); + } > FLASH =0xFFFFFFFF + + .text : + { + __ctors_start__ = .; + KEEP(SORT(*)(.init_array)) /* eabi uses .init_array for static constructor lists */ + __ctors_end__ = .; + + __dtors_start__ = .; + __dtors_end__ = .; + + . = ALIGN(4); + *(.text) /* remaining code */ + *(.text.*) + *(.rodata) /* read-only data (constants) */ + *(.rodata*) + + *(.eh_frame_hdr) + *(.eh_frame) + *(.ARM.extab* .gnu.linkonce.armextab.*) + *(.gcc_except_table) + *(.eh_frame_hdr) + *(.eh_frame) + + *(.glue_7) + *(.glue_7t) + . = ALIGN(4); + } > FLASH =0xFFFFFFFF + + /* .ARM.exidx is sorted, so has to go in its own output section. */ + __exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } > FLASH =0xFFFFFFFF + __exidx_end = .; + + .text.align : + { + . = ALIGN(8); + _etext = .; + _sidata = _etext; /* start of initialized data label */ + } > FLASH =0xFFFFFFFF + + /* конец данных во флеш - кладём сюда таблицу с настройками и контрольную сумму */ + .text.SettingsCanName : + { + . = ALIGN(4); + KEEP(*(.SettingsCanName)) + } > FLASH + .text.SettingsVarName : + { + . = ALIGN(4); + KEEP(*(.SettingsVarName)) + } > FLASH + .text.SettingsTable : + { + . = ALIGN(4); + KEEP(*(.SettingsTable)) + } > FLASH + .text.CheckSum : + { + . = ALIGN(4); + KEEP(*(.CheckSum)) + } > FLASH + + +/************************************************************** +* Remove the debugging information from the standard libraries +***************************************************************/ + +/* remove the debugging information from the standard libraries */ +DISCARD : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } + +/* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } +/* + * DWARF debug sections. + * Symbols in the DWARF debugging sections are relative to the beginning + * of the section so we begin them at 0. + */ + +/* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } +/* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } +/* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } +/* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } +/* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + + +} diff --git a/sys/M3_CAN_FW.ld b/sys/M3_CAN_FW.ld new file mode 100644 index 0000000..70a9225 --- /dev/null +++ b/sys/M3_CAN_FW.ld @@ -0,0 +1,147 @@ +/************************************************* +* linker script for STM32F4xx +************************************************/ + +ENTRY (CanFuctTable) + + +MEMORY +{ + /* оперативку не используем! */ + /* RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 0 */ + + /* используем флеш 48K .. 64K */ + FLASH (rx) : ORIGIN = (0x08000000 + 48K), LENGTH = 16K +} + +/* higher address of the user mode stack */ +PROVIDE ( _estack = ALIGN(ORIGIN(RAM) + LENGTH(RAM) - 8 ,8) ); + +SECTIONS +{ + + .entrance_vector : + { + _stext = .; + + . = ALIGN(4); + KEEP(*(.entrance_vector)) + . = ALIGN(4); + } > FLASH =0xFFFFFFFF + + .text : + { + __ctors_start__ = .; + KEEP(SORT(*)(.init_array)) /* eabi uses .init_array for static constructor lists */ + __ctors_end__ = .; + + __dtors_start__ = .; + __dtors_end__ = .; + + . = ALIGN(4); + *(.text) /* remaining code */ + *(.text.*) + *(.rodata) /* read-only data (constants) */ + *(.rodata*) + + *(.eh_frame_hdr) + *(.eh_frame) + *(.ARM.extab* .gnu.linkonce.armextab.*) + *(.gcc_except_table) + *(.eh_frame_hdr) + *(.eh_frame) + + *(.glue_7) + *(.glue_7t) + . = ALIGN(4); + } > FLASH =0xFFFFFFFF + + /* .ARM.exidx is sorted, so has to go in its own output section. */ + __exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } > FLASH =0xFFFFFFFF + __exidx_end = .; + + .text.align : + { + . = ALIGN(8); + _etext = .; + _sidata = _etext; /* start of initialized data label */ + } > FLASH =0xFFFFFFFF + + /* конец данных во флеш - кладём сюда таблицу с настройками и контрольную сумму */ + .text.SettingsCanName : + { + . = ALIGN(4); + KEEP(*(.SettingsCanName)) + } > FLASH + .text.SettingsVarName : + { + . = ALIGN(4); + KEEP(*(.SettingsVarName)) + } > FLASH + .text.SettingsTable : + { + . = ALIGN(4); + KEEP(*(.SettingsTable)) + } > FLASH + .text.CheckSum : + { + . = ALIGN(4); + KEEP(*(.CheckSum)) + } > FLASH + + +/************************************************************** +* Remove the debugging information from the standard libraries +***************************************************************/ + +/* remove the debugging information from the standard libraries */ +DISCARD : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + } + +/* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } +/* + * DWARF debug sections. + * Symbols in the DWARF debugging sections are relative to the beginning + * of the section so we begin them at 0. + */ + +/* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } +/* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } +/* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } +/* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } +/* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + + +} diff --git a/sys/STM32F107.svd b/sys/STM32F107.svd new file mode 100644 index 0000000..c1fd178 --- /dev/null +++ b/sys/STM32F107.svd @@ -0,0 +1,42416 @@ + + + STM32F107 + 1.1 + STM32F107 + + CM3 + r1p1 + little + false + false + 4 + false + + + + 8 + + 32 + + 0x20 + 0x0 + 0xFFFFFFFF + + + PWR + Power control + PWR + 0x40007000 + + 0x0 + 0x400 + registers + + + PVD + PVD through EXTI line detection + interrupt + 1 + + + + CR + CR + Power control register + (PWR_CR) + 0x0 + 0x20 + read-write + 0x00000000 + + + LPDS + Low Power Deep Sleep + 0 + 1 + + + PDDS + Power Down Deep Sleep + 1 + 1 + + + CWUF + Clear Wake-up Flag + 2 + 1 + + + CSBF + Clear STANDBY Flag + 3 + 1 + + + PVDE + Power Voltage Detector + Enable + 4 + 1 + + + PLS + PVD Level Selection + 5 + 3 + + + DBP + Disable Backup Domain write + protection + 8 + 1 + + + + + CSR + CSR + Power control register + (PWR_CR) + 0x4 + 0x20 + 0x00000000 + + + WUF + Wake-Up Flag + 0 + 1 + read-only + + + SBF + STANDBY Flag + 1 + 1 + read-only + + + PVDO + PVD Output + 2 + 1 + read-only + + + EWUP + Enable WKUP pin + 8 + 1 + read-write + + + + + + + RCC + Reset and clock control + RCC + 0x40021000 + + 0x0 + 0x400 + registers + + + RCC + RCC global interrupt + 5 + + + + CR + CR + Clock control register + 0x0 + 0x20 + 0x00000083 + + + HSION + Internal High Speed clock + enable + 0 + 1 + read-write + + + HSIRDY + Internal High Speed clock ready + flag + 1 + 1 + read-only + + + HSITRIM + Internal High Speed clock + trimming + 3 + 5 + read-write + + + HSICAL + Internal High Speed clock + Calibration + 8 + 8 + read-only + + + HSEON + External High Speed clock + enable + 16 + 1 + read-write + + + HSERDY + External High Speed clock ready + flag + 17 + 1 + read-only + + + HSEBYP + External High Speed clock + Bypass + 18 + 1 + read-write + + + CSSON + Clock Security System + enable + 19 + 1 + read-write + + + PLLON + PLL enable + 24 + 1 + read-write + + + PLLRDY + PLL clock ready flag + 25 + 1 + read-only + + + PLL2ON + PLL2 enable + 26 + 1 + read-write + + + PLL2RDY + PLL2 clock ready flag + 27 + 1 + read-only + + + PLL3ON + PLL3 enable + 28 + 1 + read-write + + + PLL3RDY + PLL3 clock ready flag + 29 + 1 + read-only + + + + + CFGR + CFGR + Clock configuration register + (RCC_CFGR) + 0x4 + 0x20 + 0x00000000 + + + SW + System clock Switch + 0 + 2 + read-write + + + SWS + System Clock Switch Status + 2 + 2 + read-only + + + HPRE + AHB prescaler + 4 + 4 + read-write + + + PPRE1 + APB Low speed prescaler + (APB1) + 8 + 3 + read-write + + + PPRE2 + APB High speed prescaler + (APB2) + 11 + 3 + read-write + + + ADCPRE + ADC prescaler + 14 + 2 + read-write + + + PLLSRC + PLL entry clock source + 16 + 1 + read-write + + + PLLXTPRE + HSE divider for PLL entry + 17 + 1 + read-write + + + PLLMUL + PLL Multiplication Factor + 18 + 4 + read-write + + + OTGFSPRE + USB OTG FS prescaler + 22 + 1 + read-write + + + MCO + Microcontroller clock + output + 24 + 4 + read-write + + + + + CIR + CIR + Clock interrupt register + (RCC_CIR) + 0x8 + 0x20 + 0x00000000 + + + LSIRDYF + LSI Ready Interrupt flag + 0 + 1 + read-only + + + LSERDYF + LSE Ready Interrupt flag + 1 + 1 + read-only + + + HSIRDYF + HSI Ready Interrupt flag + 2 + 1 + read-only + + + HSERDYF + HSE Ready Interrupt flag + 3 + 1 + read-only + + + PLLRDYF + PLL Ready Interrupt flag + 4 + 1 + read-only + + + PLL2RDYF + PLL2 Ready Interrupt flag + 5 + 1 + read-only + + + PLL3RDYF + PLL3 Ready Interrupt flag + 6 + 1 + read-only + + + CSSF + Clock Security System Interrupt + flag + 7 + 1 + read-only + + + LSIRDYIE + LSI Ready Interrupt Enable + 8 + 1 + read-write + + + LSERDYIE + LSE Ready Interrupt Enable + 9 + 1 + read-write + + + HSIRDYIE + HSI Ready Interrupt Enable + 10 + 1 + read-write + + + HSERDYIE + HSE Ready Interrupt Enable + 11 + 1 + read-write + + + PLLRDYIE + PLL Ready Interrupt Enable + 12 + 1 + read-write + + + PLL2RDYIE + PLL2 Ready Interrupt + Enable + 13 + 1 + read-write + + + PLL3RDYIE + PLL3 Ready Interrupt + Enable + 14 + 1 + read-write + + + LSIRDYC + LSI Ready Interrupt Clear + 16 + 1 + write-only + + + LSERDYC + LSE Ready Interrupt Clear + 17 + 1 + write-only + + + HSIRDYC + HSI Ready Interrupt Clear + 18 + 1 + write-only + + + HSERDYC + HSE Ready Interrupt Clear + 19 + 1 + write-only + + + PLLRDYC + PLL Ready Interrupt Clear + 20 + 1 + write-only + + + PLL2RDYC + PLL2 Ready Interrupt Clear + 21 + 1 + write-only + + + PLL3RDYC + PLL3 Ready Interrupt Clear + 22 + 1 + write-only + + + CSSC + Clock security system interrupt + clear + 23 + 1 + write-only + + + + + APB2RSTR + APB2RSTR + APB2 peripheral reset register + (RCC_APB2RSTR) + 0xC + 0x20 + read-write + 0x000000000 + + + AFIORST + Alternate function I/O + reset + 0 + 1 + + + IOPARST + IO port A reset + 2 + 1 + + + IOPBRST + IO port B reset + 3 + 1 + + + IOPCRST + IO port C reset + 4 + 1 + + + IOPDRST + IO port D reset + 5 + 1 + + + IOPERST + IO port E reset + 6 + 1 + + + ADC1RST + ADC 1 interface reset + 9 + 1 + + + ADC2RST + ADC 2 interface reset + 10 + 1 + + + TIM1RST + TIM1 timer reset + 11 + 1 + + + SPI1RST + SPI 1 reset + 12 + 1 + + + USART1RST + USART1 reset + 14 + 1 + + + + + APB1RSTR + APB1RSTR + APB1 peripheral reset register + (RCC_APB1RSTR) + 0x10 + 0x20 + read-write + 0x00000000 + + + TIM2RST + Timer 2 reset + 0 + 1 + + + TIM3RST + Timer 3 reset + 1 + 1 + + + TIM4RST + Timer 4 reset + 2 + 1 + + + TIM5RST + Timer 5 reset + 3 + 1 + + + TIM6RST + Timer 6 reset + 4 + 1 + + + TIM7RST + Timer 7 reset + 5 + 1 + + + WWDGRST + Window watchdog reset + 11 + 1 + + + SPI2RST + SPI2 reset + 14 + 1 + + + SPI3RST + SPI3 reset + 15 + 1 + + + USART2RST + USART 2 reset + 17 + 1 + + + USART3RST + USART 3 reset + 18 + 1 + + + USART4RST + USART 4 reset + 19 + 1 + + + USART5RST + USART 5 reset + 20 + 1 + + + I2C1RST + I2C1 reset + 21 + 1 + + + I2C2RST + I2C2 reset + 22 + 1 + + + CAN1RST + CAN1 reset + 25 + 1 + + + CAN2RST + CAN2 reset + 26 + 1 + + + BKPRST + Backup interface reset + 27 + 1 + + + PWRRST + Power interface reset + 28 + 1 + + + DACRST + DAC interface reset + 29 + 1 + + + + + AHBENR + AHBENR + AHB Peripheral Clock enable register + (RCC_AHBENR) + 0x14 + 0x20 + read-write + 0x00000014 + + + DMA1EN + DMA1 clock enable + 0 + 1 + + + DMA2EN + DMA2 clock enable + 1 + 1 + + + SRAMEN + SRAM interface clock + enable + 2 + 1 + + + FLITFEN + FLITF clock enable + 4 + 1 + + + CRCEN + CRC clock enable + 6 + 1 + + + OTGFSEN + USB OTG FS clock enable + 12 + 1 + + + ETHMACEN + Ethernet MAC clock enable + 14 + 1 + + + ETHMACTXEN + Ethernet MAC TX clock + enable + 15 + 1 + + + ETHMACRXEN + Ethernet MAC RX clock + enable + 16 + 1 + + + + + APB2ENR + APB2ENR + APB2 peripheral clock enable register + (RCC_APB2ENR) + 0x18 + 0x20 + read-write + 0x00000000 + + + AFIOEN + Alternate function I/O clock + enable + 0 + 1 + + + IOPAEN + I/O port A clock enable + 2 + 1 + + + IOPBEN + I/O port B clock enable + 3 + 1 + + + IOPCEN + I/O port C clock enable + 4 + 1 + + + IOPDEN + I/O port D clock enable + 5 + 1 + + + IOPEEN + I/O port E clock enable + 6 + 1 + + + ADC1EN + ADC 1 interface clock + enable + 9 + 1 + + + ADC2EN + ADC 2 interface clock + enable + 10 + 1 + + + TIM1EN + TIM1 Timer clock enable + 11 + 1 + + + SPI1EN + SPI 1 clock enable + 12 + 1 + + + USART1EN + USART1 clock enable + 14 + 1 + + + + + APB1ENR + APB1ENR + APB1 peripheral clock enable register + (RCC_APB1ENR) + 0x1C + 0x20 + read-write + 0x00000000 + + + TIM2EN + Timer 2 clock enable + 0 + 1 + + + TIM3EN + Timer 3 clock enable + 1 + 1 + + + TIM4EN + Timer 4 clock enable + 2 + 1 + + + TIM5EN + Timer 5 clock enable + 3 + 1 + + + TIM6EN + Timer 6 clock enable + 4 + 1 + + + TIM7EN + Timer 7 clock enable + 5 + 1 + + + WWDGEN + Window watchdog clock + enable + 11 + 1 + + + SPI2EN + SPI 2 clock enable + 14 + 1 + + + SPI3EN + SPI 3 clock enable + 15 + 1 + + + USART2EN + USART 2 clock enable + 17 + 1 + + + USART3EN + USART 3 clock enable + 18 + 1 + + + UART4EN + UART 4 clock enable + 19 + 1 + + + UART5EN + UART 5 clock enable + 20 + 1 + + + I2C1EN + I2C 1 clock enable + 21 + 1 + + + I2C2EN + I2C 2 clock enable + 22 + 1 + + + CAN1EN + CAN1 clock enable + 25 + 1 + + + CAN2EN + CAN2 clock enable + 26 + 1 + + + BKPEN + Backup interface clock + enable + 27 + 1 + + + PWREN + Power interface clock + enable + 28 + 1 + + + DACEN + DAC interface clock enable + 29 + 1 + + + + + BDCR + BDCR + Backup domain control register + (RCC_BDCR) + 0x20 + 0x20 + 0x00000000 + + + LSEON + External Low Speed oscillator + enable + 0 + 1 + read-write + + + LSERDY + External Low Speed oscillator + ready + 1 + 1 + read-only + + + LSEBYP + External Low Speed oscillator + bypass + 2 + 1 + read-write + + + RTCSEL + RTC clock source selection + 8 + 2 + read-write + + + RTCEN + RTC clock enable + 15 + 1 + read-write + + + BDRST + Backup domain software + reset + 16 + 1 + read-write + + + + + CSR + CSR + Control/status register + (RCC_CSR) + 0x24 + 0x20 + 0x0C000000 + + + LSION + Internal low speed oscillator + enable + 0 + 1 + read-write + + + LSIRDY + Internal low speed oscillator + ready + 1 + 1 + read-only + + + RMVF + Remove reset flag + 24 + 1 + read-write + + + PINRSTF + PIN reset flag + 26 + 1 + read-write + + + PORRSTF + POR/PDR reset flag + 27 + 1 + read-write + + + SFTRSTF + Software reset flag + 28 + 1 + read-write + + + IWDGRSTF + Independent watchdog reset + flag + 29 + 1 + read-write + + + WWDGRSTF + Window watchdog reset flag + 30 + 1 + read-write + + + LPWRRSTF + Low-power reset flag + 31 + 1 + read-write + + + + + AHBRSTR + AHBRSTR + AHB peripheral clock reset register + (RCC_AHBRSTR) + 0x28 + 0x20 + read-write + 0x00000000 + + + OTGFSRST + USB OTG FS reset + 12 + 1 + + + ETHMACRST + Ethernet MAC reset + 14 + 1 + + + + + CFGR2 + CFGR2 + Clock configuration register2 + (RCC_CFGR2) + 0x2C + 0x20 + read-write + 0x00000000 + + + PREDIV1 + PREDIV1 division factor + 0 + 4 + + + PREDIV2 + PREDIV2 division factor + 4 + 4 + + + PLL2MUL + PLL2 Multiplication Factor + 8 + 4 + + + PLL3MUL + PLL3 Multiplication Factor + 12 + 4 + + + PREDIV1SRC + PREDIV1 entry clock source + 16 + 1 + + + I2S2SRC + I2S2 clock source + 17 + 1 + + + I2S3SRC + I2S3 clock source + 18 + 1 + + + + + + + GPIOA + General purpose I/O + GPIO + 0x40010800 + + 0x0 + 0x400 + registers + + + + CRL + CRL + Port configuration register low + (GPIOn_CRL) + 0x0 + 0x20 + read-write + 0x44444444 + + + MODE0 + Port n.0 mode bits + 0 + 2 + + + CNF0 + Port n.0 configuration + bits + 2 + 2 + + + MODE1 + Port n.1 mode bits + 4 + 2 + + + CNF1 + Port n.1 configuration + bits + 6 + 2 + + + MODE2 + Port n.2 mode bits + 8 + 2 + + + CNF2 + Port n.2 configuration + bits + 10 + 2 + + + MODE3 + Port n.3 mode bits + 12 + 2 + + + CNF3 + Port n.3 configuration + bits + 14 + 2 + + + MODE4 + Port n.4 mode bits + 16 + 2 + + + CNF4 + Port n.4 configuration + bits + 18 + 2 + + + MODE5 + Port n.5 mode bits + 20 + 2 + + + CNF5 + Port n.5 configuration + bits + 22 + 2 + + + MODE6 + Port n.6 mode bits + 24 + 2 + + + CNF6 + Port n.6 configuration + bits + 26 + 2 + + + MODE7 + Port n.7 mode bits + 28 + 2 + + + CNF7 + Port n.7 configuration + bits + 30 + 2 + + + + + CRH + CRH + Port configuration register high + (GPIOn_CRL) + 0x4 + 0x20 + read-write + 0x44444444 + + + MODE8 + Port n.8 mode bits + 0 + 2 + + + CNF8 + Port n.8 configuration + bits + 2 + 2 + + + MODE9 + Port n.9 mode bits + 4 + 2 + + + CNF9 + Port n.9 configuration + bits + 6 + 2 + + + MODE10 + Port n.10 mode bits + 8 + 2 + + + CNF10 + Port n.10 configuration + bits + 10 + 2 + + + MODE11 + Port n.11 mode bits + 12 + 2 + + + CNF11 + Port n.11 configuration + bits + 14 + 2 + + + MODE12 + Port n.12 mode bits + 16 + 2 + + + CNF12 + Port n.12 configuration + bits + 18 + 2 + + + MODE13 + Port n.13 mode bits + 20 + 2 + + + CNF13 + Port n.13 configuration + bits + 22 + 2 + + + MODE14 + Port n.14 mode bits + 24 + 2 + + + CNF14 + Port n.14 configuration + bits + 26 + 2 + + + MODE15 + Port n.15 mode bits + 28 + 2 + + + CNF15 + Port n.15 configuration + bits + 30 + 2 + + + + + IDR + IDR + Port input data register + (GPIOn_IDR) + 0x8 + 0x20 + read-only + 0x00000000 + + + IDR0 + Port input data + 0 + 1 + + + IDR1 + Port input data + 1 + 1 + + + IDR2 + Port input data + 2 + 1 + + + IDR3 + Port input data + 3 + 1 + + + IDR4 + Port input data + 4 + 1 + + + IDR5 + Port input data + 5 + 1 + + + IDR6 + Port input data + 6 + 1 + + + IDR7 + Port input data + 7 + 1 + + + IDR8 + Port input data + 8 + 1 + + + IDR9 + Port input data + 9 + 1 + + + IDR10 + Port input data + 10 + 1 + + + IDR11 + Port input data + 11 + 1 + + + IDR12 + Port input data + 12 + 1 + + + IDR13 + Port input data + 13 + 1 + + + IDR14 + Port input data + 14 + 1 + + + IDR15 + Port input data + 15 + 1 + + + + + ODR + ODR + Port output data register + (GPIOn_ODR) + 0xC + 0x20 + read-write + 0x00000000 + + + ODR0 + Port output data + 0 + 1 + + + ODR1 + Port output data + 1 + 1 + + + ODR2 + Port output data + 2 + 1 + + + ODR3 + Port output data + 3 + 1 + + + ODR4 + Port output data + 4 + 1 + + + ODR5 + Port output data + 5 + 1 + + + ODR6 + Port output data + 6 + 1 + + + ODR7 + Port output data + 7 + 1 + + + ODR8 + Port output data + 8 + 1 + + + ODR9 + Port output data + 9 + 1 + + + ODR10 + Port output data + 10 + 1 + + + ODR11 + Port output data + 11 + 1 + + + ODR12 + Port output data + 12 + 1 + + + ODR13 + Port output data + 13 + 1 + + + ODR14 + Port output data + 14 + 1 + + + ODR15 + Port output data + 15 + 1 + + + + + BSRR + BSRR + Port bit set/reset register + (GPIOn_BSRR) + 0x10 + 0x20 + write-only + 0x00000000 + + + BS0 + Set bit 0 + 0 + 1 + + + BS1 + Set bit 1 + 1 + 1 + + + BS2 + Set bit 1 + 2 + 1 + + + BS3 + Set bit 3 + 3 + 1 + + + BS4 + Set bit 4 + 4 + 1 + + + BS5 + Set bit 5 + 5 + 1 + + + BS6 + Set bit 6 + 6 + 1 + + + BS7 + Set bit 7 + 7 + 1 + + + BS8 + Set bit 8 + 8 + 1 + + + BS9 + Set bit 9 + 9 + 1 + + + BS10 + Set bit 10 + 10 + 1 + + + BS11 + Set bit 11 + 11 + 1 + + + BS12 + Set bit 12 + 12 + 1 + + + BS13 + Set bit 13 + 13 + 1 + + + BS14 + Set bit 14 + 14 + 1 + + + BS15 + Set bit 15 + 15 + 1 + + + BR0 + Reset bit 0 + 16 + 1 + + + BR1 + Reset bit 1 + 17 + 1 + + + BR2 + Reset bit 2 + 18 + 1 + + + BR3 + Reset bit 3 + 19 + 1 + + + BR4 + Reset bit 4 + 20 + 1 + + + BR5 + Reset bit 5 + 21 + 1 + + + BR6 + Reset bit 6 + 22 + 1 + + + BR7 + Reset bit 7 + 23 + 1 + + + BR8 + Reset bit 8 + 24 + 1 + + + BR9 + Reset bit 9 + 25 + 1 + + + BR10 + Reset bit 10 + 26 + 1 + + + BR11 + Reset bit 11 + 27 + 1 + + + BR12 + Reset bit 12 + 28 + 1 + + + BR13 + Reset bit 13 + 29 + 1 + + + BR14 + Reset bit 14 + 30 + 1 + + + BR15 + Reset bit 15 + 31 + 1 + + + + + BRR + BRR + Port bit reset register + (GPIOn_BRR) + 0x14 + 0x20 + write-only + 0x00000000 + + + BR0 + Reset bit 0 + 0 + 1 + + + BR1 + Reset bit 1 + 1 + 1 + + + BR2 + Reset bit 1 + 2 + 1 + + + BR3 + Reset bit 3 + 3 + 1 + + + BR4 + Reset bit 4 + 4 + 1 + + + BR5 + Reset bit 5 + 5 + 1 + + + BR6 + Reset bit 6 + 6 + 1 + + + BR7 + Reset bit 7 + 7 + 1 + + + BR8 + Reset bit 8 + 8 + 1 + + + BR9 + Reset bit 9 + 9 + 1 + + + BR10 + Reset bit 10 + 10 + 1 + + + BR11 + Reset bit 11 + 11 + 1 + + + BR12 + Reset bit 12 + 12 + 1 + + + BR13 + Reset bit 13 + 13 + 1 + + + BR14 + Reset bit 14 + 14 + 1 + + + BR15 + Reset bit 15 + 15 + 1 + + + + + LCKR + LCKR + Port configuration lock + register + 0x18 + 0x20 + read-write + 0x00000000 + + + LCK0 + Port A Lock bit 0 + 0 + 1 + + + LCK1 + Port A Lock bit 1 + 1 + 1 + + + LCK2 + Port A Lock bit 2 + 2 + 1 + + + LCK3 + Port A Lock bit 3 + 3 + 1 + + + LCK4 + Port A Lock bit 4 + 4 + 1 + + + LCK5 + Port A Lock bit 5 + 5 + 1 + + + LCK6 + Port A Lock bit 6 + 6 + 1 + + + LCK7 + Port A Lock bit 7 + 7 + 1 + + + LCK8 + Port A Lock bit 8 + 8 + 1 + + + LCK9 + Port A Lock bit 9 + 9 + 1 + + + LCK10 + Port A Lock bit 10 + 10 + 1 + + + LCK11 + Port A Lock bit 11 + 11 + 1 + + + LCK12 + Port A Lock bit 12 + 12 + 1 + + + LCK13 + Port A Lock bit 13 + 13 + 1 + + + LCK14 + Port A Lock bit 14 + 14 + 1 + + + LCK15 + Port A Lock bit 15 + 15 + 1 + + + LCKK + Lock key + 16 + 1 + + + + + + + GPIOB + 0x40010C00 + + + GPIOC + 0x40011000 + + + GPIOD + 0x40011400 + + + GPIOE + 0x40011800 + + + GPIOF + 0x40011C00 + + + GPIOG + 0x40012000 + + + AFIO + Alternate function I/O + AFIO + 0x40010000 + + 0x0 + 0x400 + registers + + + + EVCR + EVCR + Event Control Register + (AFIO_EVCR) + 0x0 + 0x20 + read-write + 0x00000000 + + + PIN + Pin selection + 0 + 4 + + + PORT + Port selection + 4 + 3 + + + EVOE + Event Output Enable + 7 + 1 + + + + + MAPR + MAPR + AF remap and debug I/O configuration + register (AFIO_MAPR) + 0x4 + 0x20 + 0x00000000 + + + SPI1_REMAP + SPI1 remapping + 0 + 1 + read-write + + + I2C1_REMAP + I2C1 remapping + 1 + 1 + read-write + + + USART1_REMAP + USART1 remapping + 2 + 1 + read-write + + + USART2_REMAP + USART2 remapping + 3 + 1 + read-write + + + USART3_REMAP + USART3 remapping + 4 + 2 + read-write + + + TIM1_REMAP + TIM1 remapping + 6 + 2 + read-write + + + TIM2_REMAP + TIM2 remapping + 8 + 2 + read-write + + + TIM3_REMAP + TIM3 remapping + 10 + 2 + read-write + + + TIM4_REMAP + TIM4 remapping + 12 + 1 + read-write + + + CAN1_REMAP + CAN1 remapping + 13 + 2 + read-write + + + PD01_REMAP + Port D0/Port D1 mapping on + OSCIN/OSCOUT + 15 + 1 + read-write + + + TIM5CH4_IREMAP + Set and cleared by + software + 16 + 1 + read-write + + + ETH_REMAP + Ethernet MAC I/O remapping + 21 + 1 + read-write + + + CAN2_REMAP + CAN2 I/O remapping + 22 + 1 + read-write + + + MII_RMII_SEL + MII or RMII selection + 23 + 1 + read-write + + + SWJ_CFG + Serial wire JTAG + configuration + 24 + 3 + write-only + + + SPI3_REMAP + SPI3/I2S3 remapping + 28 + 1 + read-write + + + TIM2ITR1_IREMAP + TIM2 internal trigger 1 + remapping + 29 + 1 + read-write + + + PTP_PPS_REMAP + Ethernet PTP PPS remapping + 30 + 1 + read-write + + + + + EXTICR1 + EXTICR1 + External interrupt configuration register 1 + (AFIO_EXTICR1) + 0x8 + 0x20 + read-write + 0x00000000 + + + EXTI0 + EXTI0 configuration + 0 + 4 + + + EXTI1 + EXTI1 configuration + 4 + 4 + + + EXTI2 + EXTI2 configuration + 8 + 4 + + + EXTI3 + EXTI3 configuration + 12 + 4 + + + + + EXTICR2 + EXTICR2 + External interrupt configuration register 2 + (AFIO_EXTICR2) + 0xC + 0x20 + read-write + 0x00000000 + + + EXTI4 + EXTI4 configuration + 0 + 4 + + + EXTI5 + EXTI5 configuration + 4 + 4 + + + EXTI6 + EXTI6 configuration + 8 + 4 + + + EXTI7 + EXTI7 configuration + 12 + 4 + + + + + EXTICR3 + EXTICR3 + External interrupt configuration register 3 + (AFIO_EXTICR3) + 0x10 + 0x20 + read-write + 0x00000000 + + + EXTI8 + EXTI8 configuration + 0 + 4 + + + EXTI9 + EXTI9 configuration + 4 + 4 + + + EXTI10 + EXTI10 configuration + 8 + 4 + + + EXTI11 + EXTI11 configuration + 12 + 4 + + + + + EXTICR4 + EXTICR4 + External interrupt configuration register 4 + (AFIO_EXTICR4) + 0x14 + 0x20 + read-write + 0x00000000 + + + EXTI12 + EXTI12 configuration + 0 + 4 + + + EXTI13 + EXTI13 configuration + 4 + 4 + + + EXTI14 + EXTI14 configuration + 8 + 4 + + + EXTI15 + EXTI15 configuration + 12 + 4 + + + + + MAPR2 + MAPR2 + AF remap and debug I/O configuration + register + 0x1C + 0x20 + read-write + 0x00000000 + + + TIM9_REMAP + TIM9 remapping + 5 + 1 + + + TIM10_REMAP + TIM10 remapping + 6 + 1 + + + TIM11_REMAP + TIM11 remapping + 7 + 1 + + + TIM13_REMAP + TIM13 remapping + 8 + 1 + + + TIM14_REMAP + TIM14 remapping + 9 + 1 + + + FSMC_NADV + NADV connect/disconnect + 10 + 1 + + + + + + + EXTI + EXTI + EXTI + 0x40010400 + + 0x0 + 0x400 + registers + + + TAMPER + Tamper interrupt + 2 + + + EXTI0 + EXTI Line0 interrupt + 6 + + + EXTI1 + EXTI Line1 interrupt + 7 + + + EXTI2 + EXTI Line2 interrupt + 8 + + + EXTI3 + EXTI Line3 interrupt + 9 + + + EXTI4 + EXTI Line4 interrupt + 10 + + + EXTI9_5 + EXTI Line[9:5] interrupts + 23 + + + EXTI15_10 + EXTI Line[15:10] interrupts + 40 + + + + IMR + IMR + Interrupt mask register + (EXTI_IMR) + 0x0 + 0x20 + read-write + 0x00000000 + + + MR0 + Interrupt Mask on line 0 + 0 + 1 + + + MR1 + Interrupt Mask on line 1 + 1 + 1 + + + MR2 + Interrupt Mask on line 2 + 2 + 1 + + + MR3 + Interrupt Mask on line 3 + 3 + 1 + + + MR4 + Interrupt Mask on line 4 + 4 + 1 + + + MR5 + Interrupt Mask on line 5 + 5 + 1 + + + MR6 + Interrupt Mask on line 6 + 6 + 1 + + + MR7 + Interrupt Mask on line 7 + 7 + 1 + + + MR8 + Interrupt Mask on line 8 + 8 + 1 + + + MR9 + Interrupt Mask on line 9 + 9 + 1 + + + MR10 + Interrupt Mask on line 10 + 10 + 1 + + + MR11 + Interrupt Mask on line 11 + 11 + 1 + + + MR12 + Interrupt Mask on line 12 + 12 + 1 + + + MR13 + Interrupt Mask on line 13 + 13 + 1 + + + MR14 + Interrupt Mask on line 14 + 14 + 1 + + + MR15 + Interrupt Mask on line 15 + 15 + 1 + + + MR16 + Interrupt Mask on line 16 + 16 + 1 + + + MR17 + Interrupt Mask on line 17 + 17 + 1 + + + MR18 + Interrupt Mask on line 18 + 18 + 1 + + + MR19 + Interrupt Mask on line 19 + 19 + 1 + + + + + EMR + EMR + Event mask register (EXTI_EMR) + 0x4 + 0x20 + read-write + 0x00000000 + + + MR0 + Event Mask on line 0 + 0 + 1 + + + MR1 + Event Mask on line 1 + 1 + 1 + + + MR2 + Event Mask on line 2 + 2 + 1 + + + MR3 + Event Mask on line 3 + 3 + 1 + + + MR4 + Event Mask on line 4 + 4 + 1 + + + MR5 + Event Mask on line 5 + 5 + 1 + + + MR6 + Event Mask on line 6 + 6 + 1 + + + MR7 + Event Mask on line 7 + 7 + 1 + + + MR8 + Event Mask on line 8 + 8 + 1 + + + MR9 + Event Mask on line 9 + 9 + 1 + + + MR10 + Event Mask on line 10 + 10 + 1 + + + MR11 + Event Mask on line 11 + 11 + 1 + + + MR12 + Event Mask on line 12 + 12 + 1 + + + MR13 + Event Mask on line 13 + 13 + 1 + + + MR14 + Event Mask on line 14 + 14 + 1 + + + MR15 + Event Mask on line 15 + 15 + 1 + + + MR16 + Event Mask on line 16 + 16 + 1 + + + MR17 + Event Mask on line 17 + 17 + 1 + + + MR18 + Event Mask on line 18 + 18 + 1 + + + MR19 + Event Mask on line 19 + 19 + 1 + + + + + RTSR + RTSR + Rising Trigger selection register + (EXTI_RTSR) + 0x8 + 0x20 + read-write + 0x00000000 + + + TR0 + Rising trigger event configuration of + line 0 + 0 + 1 + + + TR1 + Rising trigger event configuration of + line 1 + 1 + 1 + + + TR2 + Rising trigger event configuration of + line 2 + 2 + 1 + + + TR3 + Rising trigger event configuration of + line 3 + 3 + 1 + + + TR4 + Rising trigger event configuration of + line 4 + 4 + 1 + + + TR5 + Rising trigger event configuration of + line 5 + 5 + 1 + + + TR6 + Rising trigger event configuration of + line 6 + 6 + 1 + + + TR7 + Rising trigger event configuration of + line 7 + 7 + 1 + + + TR8 + Rising trigger event configuration of + line 8 + 8 + 1 + + + TR9 + Rising trigger event configuration of + line 9 + 9 + 1 + + + TR10 + Rising trigger event configuration of + line 10 + 10 + 1 + + + TR11 + Rising trigger event configuration of + line 11 + 11 + 1 + + + TR12 + Rising trigger event configuration of + line 12 + 12 + 1 + + + TR13 + Rising trigger event configuration of + line 13 + 13 + 1 + + + TR14 + Rising trigger event configuration of + line 14 + 14 + 1 + + + TR15 + Rising trigger event configuration of + line 15 + 15 + 1 + + + TR16 + Rising trigger event configuration of + line 16 + 16 + 1 + + + TR17 + Rising trigger event configuration of + line 17 + 17 + 1 + + + TR18 + Rising trigger event configuration of + line 18 + 18 + 1 + + + TR19 + Rising trigger event configuration of + line 19 + 19 + 1 + + + + + FTSR + FTSR + Falling Trigger selection register + (EXTI_FTSR) + 0xC + 0x20 + read-write + 0x00000000 + + + TR0 + Falling trigger event configuration of + line 0 + 0 + 1 + + + TR1 + Falling trigger event configuration of + line 1 + 1 + 1 + + + TR2 + Falling trigger event configuration of + line 2 + 2 + 1 + + + TR3 + Falling trigger event configuration of + line 3 + 3 + 1 + + + TR4 + Falling trigger event configuration of + line 4 + 4 + 1 + + + TR5 + Falling trigger event configuration of + line 5 + 5 + 1 + + + TR6 + Falling trigger event configuration of + line 6 + 6 + 1 + + + TR7 + Falling trigger event configuration of + line 7 + 7 + 1 + + + TR8 + Falling trigger event configuration of + line 8 + 8 + 1 + + + TR9 + Falling trigger event configuration of + line 9 + 9 + 1 + + + TR10 + Falling trigger event configuration of + line 10 + 10 + 1 + + + TR11 + Falling trigger event configuration of + line 11 + 11 + 1 + + + TR12 + Falling trigger event configuration of + line 12 + 12 + 1 + + + TR13 + Falling trigger event configuration of + line 13 + 13 + 1 + + + TR14 + Falling trigger event configuration of + line 14 + 14 + 1 + + + TR15 + Falling trigger event configuration of + line 15 + 15 + 1 + + + TR16 + Falling trigger event configuration of + line 16 + 16 + 1 + + + TR17 + Falling trigger event configuration of + line 17 + 17 + 1 + + + TR18 + Falling trigger event configuration of + line 18 + 18 + 1 + + + TR19 + Falling trigger event configuration of + line 19 + 19 + 1 + + + + + SWIER + SWIER + Software interrupt event register + (EXTI_SWIER) + 0x10 + 0x20 + read-write + 0x00000000 + + + SWIER0 + Software Interrupt on line + 0 + 0 + 1 + + + SWIER1 + Software Interrupt on line + 1 + 1 + 1 + + + SWIER2 + Software Interrupt on line + 2 + 2 + 1 + + + SWIER3 + Software Interrupt on line + 3 + 3 + 1 + + + SWIER4 + Software Interrupt on line + 4 + 4 + 1 + + + SWIER5 + Software Interrupt on line + 5 + 5 + 1 + + + SWIER6 + Software Interrupt on line + 6 + 6 + 1 + + + SWIER7 + Software Interrupt on line + 7 + 7 + 1 + + + SWIER8 + Software Interrupt on line + 8 + 8 + 1 + + + SWIER9 + Software Interrupt on line + 9 + 9 + 1 + + + SWIER10 + Software Interrupt on line + 10 + 10 + 1 + + + SWIER11 + Software Interrupt on line + 11 + 11 + 1 + + + SWIER12 + Software Interrupt on line + 12 + 12 + 1 + + + SWIER13 + Software Interrupt on line + 13 + 13 + 1 + + + SWIER14 + Software Interrupt on line + 14 + 14 + 1 + + + SWIER15 + Software Interrupt on line + 15 + 15 + 1 + + + SWIER16 + Software Interrupt on line + 16 + 16 + 1 + + + SWIER17 + Software Interrupt on line + 17 + 17 + 1 + + + SWIER18 + Software Interrupt on line + 18 + 18 + 1 + + + SWIER19 + Software Interrupt on line + 19 + 19 + 1 + + + + + PR + PR + Pending register (EXTI_PR) + 0x14 + 0x20 + read-write + 0x00000000 + + + PR0 + Pending bit 0 + 0 + 1 + + + PR1 + Pending bit 1 + 1 + 1 + + + PR2 + Pending bit 2 + 2 + 1 + + + PR3 + Pending bit 3 + 3 + 1 + + + PR4 + Pending bit 4 + 4 + 1 + + + PR5 + Pending bit 5 + 5 + 1 + + + PR6 + Pending bit 6 + 6 + 1 + + + PR7 + Pending bit 7 + 7 + 1 + + + PR8 + Pending bit 8 + 8 + 1 + + + PR9 + Pending bit 9 + 9 + 1 + + + PR10 + Pending bit 10 + 10 + 1 + + + PR11 + Pending bit 11 + 11 + 1 + + + PR12 + Pending bit 12 + 12 + 1 + + + PR13 + Pending bit 13 + 13 + 1 + + + PR14 + Pending bit 14 + 14 + 1 + + + PR15 + Pending bit 15 + 15 + 1 + + + PR16 + Pending bit 16 + 16 + 1 + + + PR17 + Pending bit 17 + 17 + 1 + + + PR18 + Pending bit 18 + 18 + 1 + + + PR19 + Pending bit 19 + 19 + 1 + + + + + + + DMA1 + DMA controller + DMA + 0x40020000 + + 0x0 + 0x400 + registers + + + DMA1_Channel1 + DMA1 Channel1 global interrupt + 11 + + + DMA1_Channel2 + DMA1 Channel2 global interrupt + 12 + + + DMA1_Channel3 + DMA1 Channel3 global interrupt + 13 + + + DMA1_Channel4 + DMA1 Channel4 global interrupt + 14 + + + DMA1_Channel5 + DMA1 Channel5 global interrupt + 15 + + + DMA1_Channel6 + DMA1 Channel6 global interrupt + 16 + + + DMA1_Channel7 + DMA1 Channel7 global interrupt + 17 + + + + ISR + ISR + DMA interrupt status register + (DMA_ISR) + 0x0 + 0x20 + read-only + 0x00000000 + + + GIF1 + Channel 1 Global interrupt + flag + 0 + 1 + + + TCIF1 + Channel 1 Transfer Complete + flag + 1 + 1 + + + HTIF1 + Channel 1 Half Transfer Complete + flag + 2 + 1 + + + TEIF1 + Channel 1 Transfer Error + flag + 3 + 1 + + + GIF2 + Channel 2 Global interrupt + flag + 4 + 1 + + + TCIF2 + Channel 2 Transfer Complete + flag + 5 + 1 + + + HTIF2 + Channel 2 Half Transfer Complete + flag + 6 + 1 + + + TEIF2 + Channel 2 Transfer Error + flag + 7 + 1 + + + GIF3 + Channel 3 Global interrupt + flag + 8 + 1 + + + TCIF3 + Channel 3 Transfer Complete + flag + 9 + 1 + + + HTIF3 + Channel 3 Half Transfer Complete + flag + 10 + 1 + + + TEIF3 + Channel 3 Transfer Error + flag + 11 + 1 + + + GIF4 + Channel 4 Global interrupt + flag + 12 + 1 + + + TCIF4 + Channel 4 Transfer Complete + flag + 13 + 1 + + + HTIF4 + Channel 4 Half Transfer Complete + flag + 14 + 1 + + + TEIF4 + Channel 4 Transfer Error + flag + 15 + 1 + + + GIF5 + Channel 5 Global interrupt + flag + 16 + 1 + + + TCIF5 + Channel 5 Transfer Complete + flag + 17 + 1 + + + HTIF5 + Channel 5 Half Transfer Complete + flag + 18 + 1 + + + TEIF5 + Channel 5 Transfer Error + flag + 19 + 1 + + + GIF6 + Channel 6 Global interrupt + flag + 20 + 1 + + + TCIF6 + Channel 6 Transfer Complete + flag + 21 + 1 + + + HTIF6 + Channel 6 Half Transfer Complete + flag + 22 + 1 + + + TEIF6 + Channel 6 Transfer Error + flag + 23 + 1 + + + GIF7 + Channel 7 Global interrupt + flag + 24 + 1 + + + TCIF7 + Channel 7 Transfer Complete + flag + 25 + 1 + + + HTIF7 + Channel 7 Half Transfer Complete + flag + 26 + 1 + + + TEIF7 + Channel 7 Transfer Error + flag + 27 + 1 + + + + + IFCR + IFCR + DMA interrupt flag clear register + (DMA_IFCR) + 0x4 + 0x20 + write-only + 0x00000000 + + + CGIF1 + Channel 1 Global interrupt + clear + 0 + 1 + + + CGIF2 + Channel 2 Global interrupt + clear + 4 + 1 + + + CGIF3 + Channel 3 Global interrupt + clear + 8 + 1 + + + CGIF4 + Channel 4 Global interrupt + clear + 12 + 1 + + + CGIF5 + Channel 5 Global interrupt + clear + 16 + 1 + + + CGIF6 + Channel 6 Global interrupt + clear + 20 + 1 + + + CGIF7 + Channel 7 Global interrupt + clear + 24 + 1 + + + CTCIF1 + Channel 1 Transfer Complete + clear + 1 + 1 + + + CTCIF2 + Channel 2 Transfer Complete + clear + 5 + 1 + + + CTCIF3 + Channel 3 Transfer Complete + clear + 9 + 1 + + + CTCIF4 + Channel 4 Transfer Complete + clear + 13 + 1 + + + CTCIF5 + Channel 5 Transfer Complete + clear + 17 + 1 + + + CTCIF6 + Channel 6 Transfer Complete + clear + 21 + 1 + + + CTCIF7 + Channel 7 Transfer Complete + clear + 25 + 1 + + + CHTIF1 + Channel 1 Half Transfer + clear + 2 + 1 + + + CHTIF2 + Channel 2 Half Transfer + clear + 6 + 1 + + + CHTIF3 + Channel 3 Half Transfer + clear + 10 + 1 + + + CHTIF4 + Channel 4 Half Transfer + clear + 14 + 1 + + + CHTIF5 + Channel 5 Half Transfer + clear + 18 + 1 + + + CHTIF6 + Channel 6 Half Transfer + clear + 22 + 1 + + + CHTIF7 + Channel 7 Half Transfer + clear + 26 + 1 + + + CTEIF1 + Channel 1 Transfer Error + clear + 3 + 1 + + + CTEIF2 + Channel 2 Transfer Error + clear + 7 + 1 + + + CTEIF3 + Channel 3 Transfer Error + clear + 11 + 1 + + + CTEIF4 + Channel 4 Transfer Error + clear + 15 + 1 + + + CTEIF5 + Channel 5 Transfer Error + clear + 19 + 1 + + + CTEIF6 + Channel 6 Transfer Error + clear + 23 + 1 + + + CTEIF7 + Channel 7 Transfer Error + clear + 27 + 1 + + + + + CCR1 + CCR1 + DMA channel configuration register + (DMA_CCR) + 0x8 + 0x20 + read-write + 0x00000000 + + + EN + Channel enable + 0 + 1 + + + TCIE + Transfer complete interrupt + enable + 1 + 1 + + + HTIE + Half Transfer interrupt + enable + 2 + 1 + + + TEIE + Transfer error interrupt + enable + 3 + 1 + + + DIR + Data transfer direction + 4 + 1 + + + CIRC + Circular mode + 5 + 1 + + + PINC + Peripheral increment mode + 6 + 1 + + + MINC + Memory increment mode + 7 + 1 + + + PSIZE + Peripheral size + 8 + 2 + + + MSIZE + Memory size + 10 + 2 + + + PL + Channel Priority level + 12 + 2 + + + MEM2MEM + Memory to memory mode + 14 + 1 + + + + + CNDTR1 + CNDTR1 + DMA channel 1 number of data + register + 0xC + 0x20 + read-write + 0x00000000 + + + NDT + Number of data to transfer + 0 + 16 + + + + + CPAR1 + CPAR1 + DMA channel 1 peripheral address + register + 0x10 + 0x20 + read-write + 0x00000000 + + + PA + Peripheral address + 0 + 32 + + + + + CMAR1 + CMAR1 + DMA channel 1 memory address + register + 0x14 + 0x20 + read-write + 0x00000000 + + + MA + Memory address + 0 + 32 + + + + + CCR2 + CCR2 + DMA channel configuration register + (DMA_CCR) + 0x1C + 0x20 + read-write + 0x00000000 + + + EN + Channel enable + 0 + 1 + + + TCIE + Transfer complete interrupt + enable + 1 + 1 + + + HTIE + Half Transfer interrupt + enable + 2 + 1 + + + TEIE + Transfer error interrupt + enable + 3 + 1 + + + DIR + Data transfer direction + 4 + 1 + + + CIRC + Circular mode + 5 + 1 + + + PINC + Peripheral increment mode + 6 + 1 + + + MINC + Memory increment mode + 7 + 1 + + + PSIZE + Peripheral size + 8 + 2 + + + MSIZE + Memory size + 10 + 2 + + + PL + Channel Priority level + 12 + 2 + + + MEM2MEM + Memory to memory mode + 14 + 1 + + + + + CNDTR2 + CNDTR2 + DMA channel 2 number of data + register + 0x20 + 0x20 + read-write + 0x00000000 + + + NDT + Number of data to transfer + 0 + 16 + + + + + CPAR2 + CPAR2 + DMA channel 2 peripheral address + register + 0x24 + 0x20 + read-write + 0x00000000 + + + PA + Peripheral address + 0 + 32 + + + + + CMAR2 + CMAR2 + DMA channel 2 memory address + register + 0x28 + 0x20 + read-write + 0x00000000 + + + MA + Memory address + 0 + 32 + + + + + CCR3 + CCR3 + DMA channel configuration register + (DMA_CCR) + 0x30 + 0x20 + read-write + 0x00000000 + + + EN + Channel enable + 0 + 1 + + + TCIE + Transfer complete interrupt + enable + 1 + 1 + + + HTIE + Half Transfer interrupt + enable + 2 + 1 + + + TEIE + Transfer error interrupt + enable + 3 + 1 + + + DIR + Data transfer direction + 4 + 1 + + + CIRC + Circular mode + 5 + 1 + + + PINC + Peripheral increment mode + 6 + 1 + + + MINC + Memory increment mode + 7 + 1 + + + PSIZE + Peripheral size + 8 + 2 + + + MSIZE + Memory size + 10 + 2 + + + PL + Channel Priority level + 12 + 2 + + + MEM2MEM + Memory to memory mode + 14 + 1 + + + + + CNDTR3 + CNDTR3 + DMA channel 3 number of data + register + 0x34 + 0x20 + read-write + 0x00000000 + + + NDT + Number of data to transfer + 0 + 16 + + + + + CPAR3 + CPAR3 + DMA channel 3 peripheral address + register + 0x38 + 0x20 + read-write + 0x00000000 + + + PA + Peripheral address + 0 + 32 + + + + + CMAR3 + CMAR3 + DMA channel 3 memory address + register + 0x3C + 0x20 + read-write + 0x00000000 + + + MA + Memory address + 0 + 32 + + + + + CCR4 + CCR4 + DMA channel configuration register + (DMA_CCR) + 0x44 + 0x20 + read-write + 0x00000000 + + + EN + Channel enable + 0 + 1 + + + TCIE + Transfer complete interrupt + enable + 1 + 1 + + + HTIE + Half Transfer interrupt + enable + 2 + 1 + + + TEIE + Transfer error interrupt + enable + 3 + 1 + + + DIR + Data transfer direction + 4 + 1 + + + CIRC + Circular mode + 5 + 1 + + + PINC + Peripheral increment mode + 6 + 1 + + + MINC + Memory increment mode + 7 + 1 + + + PSIZE + Peripheral size + 8 + 2 + + + MSIZE + Memory size + 10 + 2 + + + PL + Channel Priority level + 12 + 2 + + + MEM2MEM + Memory to memory mode + 14 + 1 + + + + + CNDTR4 + CNDTR4 + DMA channel 4 number of data + register + 0x48 + 0x20 + read-write + 0x00000000 + + + NDT + Number of data to transfer + 0 + 16 + + + + + CPAR4 + CPAR4 + DMA channel 4 peripheral address + register + 0x4C + 0x20 + read-write + 0x00000000 + + + PA + Peripheral address + 0 + 32 + + + + + CMAR4 + CMAR4 + DMA channel 4 memory address + register + 0x50 + 0x20 + read-write + 0x00000000 + + + MA + Memory address + 0 + 32 + + + + + CCR5 + CCR5 + DMA channel configuration register + (DMA_CCR) + 0x58 + 0x20 + read-write + 0x00000000 + + + EN + Channel enable + 0 + 1 + + + TCIE + Transfer complete interrupt + enable + 1 + 1 + + + HTIE + Half Transfer interrupt + enable + 2 + 1 + + + TEIE + Transfer error interrupt + enable + 3 + 1 + + + DIR + Data transfer direction + 4 + 1 + + + CIRC + Circular mode + 5 + 1 + + + PINC + Peripheral increment mode + 6 + 1 + + + MINC + Memory increment mode + 7 + 1 + + + PSIZE + Peripheral size + 8 + 2 + + + MSIZE + Memory size + 10 + 2 + + + PL + Channel Priority level + 12 + 2 + + + MEM2MEM + Memory to memory mode + 14 + 1 + + + + + CNDTR5 + CNDTR5 + DMA channel 5 number of data + register + 0x5C + 0x20 + read-write + 0x00000000 + + + NDT + Number of data to transfer + 0 + 16 + + + + + CPAR5 + CPAR5 + DMA channel 5 peripheral address + register + 0x60 + 0x20 + read-write + 0x00000000 + + + PA + Peripheral address + 0 + 32 + + + + + CMAR5 + CMAR5 + DMA channel 5 memory address + register + 0x64 + 0x20 + read-write + 0x00000000 + + + MA + Memory address + 0 + 32 + + + + + CCR6 + CCR6 + DMA channel configuration register + (DMA_CCR) + 0x6C + 0x20 + read-write + 0x00000000 + + + EN + Channel enable + 0 + 1 + + + TCIE + Transfer complete interrupt + enable + 1 + 1 + + + HTIE + Half Transfer interrupt + enable + 2 + 1 + + + TEIE + Transfer error interrupt + enable + 3 + 1 + + + DIR + Data transfer direction + 4 + 1 + + + CIRC + Circular mode + 5 + 1 + + + PINC + Peripheral increment mode + 6 + 1 + + + MINC + Memory increment mode + 7 + 1 + + + PSIZE + Peripheral size + 8 + 2 + + + MSIZE + Memory size + 10 + 2 + + + PL + Channel Priority level + 12 + 2 + + + MEM2MEM + Memory to memory mode + 14 + 1 + + + + + CNDTR6 + CNDTR6 + DMA channel 6 number of data + register + 0x70 + 0x20 + read-write + 0x00000000 + + + NDT + Number of data to transfer + 0 + 16 + + + + + CPAR6 + CPAR6 + DMA channel 6 peripheral address + register + 0x74 + 0x20 + read-write + 0x00000000 + + + PA + Peripheral address + 0 + 32 + + + + + CMAR6 + CMAR6 + DMA channel 6 memory address + register + 0x78 + 0x20 + read-write + 0x00000000 + + + MA + Memory address + 0 + 32 + + + + + CCR7 + CCR7 + DMA channel configuration register + (DMA_CCR) + 0x80 + 0x20 + read-write + 0x00000000 + + + EN + Channel enable + 0 + 1 + + + TCIE + Transfer complete interrupt + enable + 1 + 1 + + + HTIE + Half Transfer interrupt + enable + 2 + 1 + + + TEIE + Transfer error interrupt + enable + 3 + 1 + + + DIR + Data transfer direction + 4 + 1 + + + CIRC + Circular mode + 5 + 1 + + + PINC + Peripheral increment mode + 6 + 1 + + + MINC + Memory increment mode + 7 + 1 + + + PSIZE + Peripheral size + 8 + 2 + + + MSIZE + Memory size + 10 + 2 + + + PL + Channel Priority level + 12 + 2 + + + MEM2MEM + Memory to memory mode + 14 + 1 + + + + + CNDTR7 + CNDTR7 + DMA channel 7 number of data + register + 0x84 + 0x20 + read-write + 0x00000000 + + + NDT + Number of data to transfer + 0 + 16 + + + + + CPAR7 + CPAR7 + DMA channel 7 peripheral address + register + 0x88 + 0x20 + read-write + 0x00000000 + + + PA + Peripheral address + 0 + 32 + + + + + CMAR7 + CMAR7 + DMA channel 7 memory address + register + 0x8C + 0x20 + read-write + 0x00000000 + + + MA + Memory address + 0 + 32 + + + + + + + DMA2 + 0x40020400 + + DMA2_Channel1 + DMA2 Channel1 global interrupt + 56 + + + DMA2_Channel2 + DMA2 Channel2 global interrupt + 57 + + + DMA2_Channel3 + DMA2 Channel3 global interrupt + 58 + + + DMA2_Channel4 + DMA2 Channel4 global interrupt + 59 + + + DMA2_Channel5 + DMA2 Channel5 global interrupt + 60 + + + + RTC + Real time clock + RTC + 0x40002800 + + 0x0 + 0x400 + registers + + + RTC + RTC global interrupt + 3 + + + RTCAlarm + RTC Alarms through EXTI line + interrupt + 41 + + + + CRH + CRH + RTC Control Register High + 0x0 + 0x20 + read-write + 0x00000000 + + + SECIE + Second interrupt Enable + 0 + 1 + + + ALRIE + Alarm interrupt Enable + 1 + 1 + + + OWIE + Overflow interrupt Enable + 2 + 1 + + + + + CRL + CRL + RTC Control Register Low + 0x4 + 0x20 + 0x00000020 + + + SECF + Second Flag + 0 + 1 + read-write + + + ALRF + Alarm Flag + 1 + 1 + read-write + + + OWF + Overflow Flag + 2 + 1 + read-write + + + RSF + Registers Synchronized + Flag + 3 + 1 + read-write + + + CNF + Configuration Flag + 4 + 1 + read-write + + + RTOFF + RTC operation OFF + 5 + 1 + read-only + + + + + PRLH + PRLH + RTC Prescaler Load Register + High + 0x8 + 0x20 + write-only + 0x00000000 + + + PRLH + RTC Prescaler Load Register + High + 0 + 4 + + + + + PRLL + PRLL + RTC Prescaler Load Register + Low + 0xC + 0x20 + write-only + 0x8000 + + + PRLL + RTC Prescaler Divider Register + Low + 0 + 16 + + + + + DIVH + DIVH + RTC Prescaler Divider Register + High + 0x10 + 0x20 + read-only + 0x00000000 + + + DIVH + RTC prescaler divider register + high + 0 + 4 + + + + + DIVL + DIVL + RTC Prescaler Divider Register + Low + 0x14 + 0x20 + read-only + 0x8000 + + + DIVL + RTC prescaler divider register + Low + 0 + 16 + + + + + CNTH + CNTH + RTC Counter Register High + 0x18 + 0x20 + read-write + 0x00000000 + + + CNTH + RTC counter register high + 0 + 16 + + + + + CNTL + CNTL + RTC Counter Register Low + 0x1C + 0x20 + read-write + 0x00000000 + + + CNTL + RTC counter register Low + 0 + 16 + + + + + ALRH + ALRH + RTC Alarm Register High + 0x20 + 0x20 + write-only + 0xFFFF + + + ALRH + RTC alarm register high + 0 + 16 + + + + + ALRL + ALRL + RTC Alarm Register Low + 0x24 + 0x20 + write-only + 0xFFFF + + + ALRL + RTC alarm register low + 0 + 16 + + + + + + + BKP + Backup registers + BKP + 0x40006C00 + + 0x0 + 0x400 + registers + + + + DR1 + DR1 + Backup data register (BKP_DR) + 0x0 + 0x20 + read-write + 0x00000000 + + + D1 + Backup data + 0 + 16 + + + + + DR2 + DR2 + Backup data register (BKP_DR) + 0x4 + 0x20 + read-write + 0x00000000 + + + D2 + Backup data + 0 + 16 + + + + + DR3 + DR3 + Backup data register (BKP_DR) + 0x8 + 0x20 + read-write + 0x00000000 + + + D3 + Backup data + 0 + 16 + + + + + DR4 + DR4 + Backup data register (BKP_DR) + 0xC + 0x20 + read-write + 0x00000000 + + + D4 + Backup data + 0 + 16 + + + + + DR5 + DR5 + Backup data register (BKP_DR) + 0x10 + 0x20 + read-write + 0x00000000 + + + D5 + Backup data + 0 + 16 + + + + + DR6 + DR6 + Backup data register (BKP_DR) + 0x14 + 0x20 + read-write + 0x00000000 + + + D6 + Backup data + 0 + 16 + + + + + DR7 + DR7 + Backup data register (BKP_DR) + 0x18 + 0x20 + read-write + 0x00000000 + + + D7 + Backup data + 0 + 16 + + + + + DR8 + DR8 + Backup data register (BKP_DR) + 0x1C + 0x20 + read-write + 0x00000000 + + + D8 + Backup data + 0 + 16 + + + + + DR9 + DR9 + Backup data register (BKP_DR) + 0x20 + 0x20 + read-write + 0x00000000 + + + D9 + Backup data + 0 + 16 + + + + + DR10 + DR10 + Backup data register (BKP_DR) + 0x24 + 0x20 + read-write + 0x00000000 + + + D10 + Backup data + 0 + 16 + + + + + DR11 + DR11 + Backup data register (BKP_DR) + 0x3C + 0x20 + read-write + 0x00000000 + + + DR11 + Backup data + 0 + 16 + + + + + DR12 + DR12 + Backup data register (BKP_DR) + 0x40 + 0x20 + read-write + 0x00000000 + + + DR12 + Backup data + 0 + 16 + + + + + DR13 + DR13 + Backup data register (BKP_DR) + 0x44 + 0x20 + read-write + 0x00000000 + + + DR13 + Backup data + 0 + 16 + + + + + DR14 + DR14 + Backup data register (BKP_DR) + 0x48 + 0x20 + read-write + 0x00000000 + + + D14 + Backup data + 0 + 16 + + + + + DR15 + DR15 + Backup data register (BKP_DR) + 0x4C + 0x20 + read-write + 0x00000000 + + + D15 + Backup data + 0 + 16 + + + + + DR16 + DR16 + Backup data register (BKP_DR) + 0x50 + 0x20 + read-write + 0x00000000 + + + D16 + Backup data + 0 + 16 + + + + + DR17 + DR17 + Backup data register (BKP_DR) + 0x54 + 0x20 + read-write + 0x00000000 + + + D17 + Backup data + 0 + 16 + + + + + DR18 + DR18 + Backup data register (BKP_DR) + 0x58 + 0x20 + read-write + 0x00000000 + + + D18 + Backup data + 0 + 16 + + + + + DR19 + DR19 + Backup data register (BKP_DR) + 0x5C + 0x20 + read-write + 0x00000000 + + + D19 + Backup data + 0 + 16 + + + + + DR20 + DR20 + Backup data register (BKP_DR) + 0x60 + 0x20 + read-write + 0x00000000 + + + D20 + Backup data + 0 + 16 + + + + + DR21 + DR21 + Backup data register (BKP_DR) + 0x64 + 0x20 + read-write + 0x00000000 + + + D21 + Backup data + 0 + 16 + + + + + DR22 + DR22 + Backup data register (BKP_DR) + 0x68 + 0x20 + read-write + 0x00000000 + + + D22 + Backup data + 0 + 16 + + + + + DR23 + DR23 + Backup data register (BKP_DR) + 0x6C + 0x20 + read-write + 0x00000000 + + + D23 + Backup data + 0 + 16 + + + + + DR24 + DR24 + Backup data register (BKP_DR) + 0x70 + 0x20 + read-write + 0x00000000 + + + D24 + Backup data + 0 + 16 + + + + + DR25 + DR25 + Backup data register (BKP_DR) + 0x74 + 0x20 + read-write + 0x00000000 + + + D25 + Backup data + 0 + 16 + + + + + DR26 + DR26 + Backup data register (BKP_DR) + 0x78 + 0x20 + read-write + 0x00000000 + + + D26 + Backup data + 0 + 16 + + + + + DR27 + DR27 + Backup data register (BKP_DR) + 0x7C + 0x20 + read-write + 0x00000000 + + + D27 + Backup data + 0 + 16 + + + + + DR28 + DR28 + Backup data register (BKP_DR) + 0x80 + 0x20 + read-write + 0x00000000 + + + D28 + Backup data + 0 + 16 + + + + + DR29 + DR29 + Backup data register (BKP_DR) + 0x84 + 0x20 + read-write + 0x00000000 + + + D29 + Backup data + 0 + 16 + + + + + DR30 + DR30 + Backup data register (BKP_DR) + 0x88 + 0x20 + read-write + 0x00000000 + + + D30 + Backup data + 0 + 16 + + + + + DR31 + DR31 + Backup data register (BKP_DR) + 0x8C + 0x20 + read-write + 0x00000000 + + + D31 + Backup data + 0 + 16 + + + + + DR32 + DR32 + Backup data register (BKP_DR) + 0x90 + 0x20 + read-write + 0x00000000 + + + D32 + Backup data + 0 + 16 + + + + + DR33 + DR33 + Backup data register (BKP_DR) + 0x94 + 0x20 + read-write + 0x00000000 + + + D33 + Backup data + 0 + 16 + + + + + DR34 + DR34 + Backup data register (BKP_DR) + 0x98 + 0x20 + read-write + 0x00000000 + + + D34 + Backup data + 0 + 16 + + + + + DR35 + DR35 + Backup data register (BKP_DR) + 0x9C + 0x20 + read-write + 0x00000000 + + + D35 + Backup data + 0 + 16 + + + + + DR36 + DR36 + Backup data register (BKP_DR) + 0xA0 + 0x20 + read-write + 0x00000000 + + + D36 + Backup data + 0 + 16 + + + + + DR37 + DR37 + Backup data register (BKP_DR) + 0xA4 + 0x20 + read-write + 0x00000000 + + + D37 + Backup data + 0 + 16 + + + + + DR38 + DR38 + Backup data register (BKP_DR) + 0xA8 + 0x20 + read-write + 0x00000000 + + + D38 + Backup data + 0 + 16 + + + + + DR39 + DR39 + Backup data register (BKP_DR) + 0xAC + 0x20 + read-write + 0x00000000 + + + D39 + Backup data + 0 + 16 + + + + + DR40 + DR40 + Backup data register (BKP_DR) + 0xB0 + 0x20 + read-write + 0x00000000 + + + D40 + Backup data + 0 + 16 + + + + + DR41 + DR41 + Backup data register (BKP_DR) + 0xB4 + 0x20 + read-write + 0x00000000 + + + D41 + Backup data + 0 + 16 + + + + + DR42 + DR42 + Backup data register (BKP_DR) + 0xB8 + 0x20 + read-write + 0x00000000 + + + D42 + Backup data + 0 + 16 + + + + + RTCCR + RTCCR + RTC clock calibration register + (BKP_RTCCR) + 0x28 + 0x20 + read-write + 0x00000000 + + + CAL + Calibration value + 0 + 7 + + + CCO + Calibration Clock Output + 7 + 1 + + + ASOE + Alarm or second output + enable + 8 + 1 + + + ASOS + Alarm or second output + selection + 9 + 1 + + + + + CR + CR + Backup control register + (BKP_CR) + 0x2C + 0x20 + read-write + 0x00000000 + + + TPE + Tamper pin enable + 0 + 1 + + + TPAL + Tamper pin active level + 1 + 1 + + + + + CSR + CSR + BKP_CSR control/status + register + 0x30 + 0x20 + 0x00000000 + + + CTE + Clear Tamper event + 0 + 1 + write-only + + + CTI + Clear Tamper Interrupt + 1 + 1 + write-only + + + TPIE + Tamper Pin interrupt + enable + 2 + 1 + read-write + + + TEF + Tamper Event Flag + 8 + 1 + read-only + + + TIF + Tamper Interrupt Flag + 9 + 1 + read-only + + + + + + + IWDG + Independent watchdog + IWDG + 0x40003000 + + 0x0 + 0x400 + registers + + + + KR + KR + Key register (IWDG_KR) + 0x0 + 0x20 + write-only + 0x00000000 + + + KEY + Key value + 0 + 16 + + + + + PR + PR + Prescaler register (IWDG_PR) + 0x4 + 0x20 + read-write + 0x00000000 + + + PR + Prescaler divider + 0 + 3 + + + + + RLR + RLR + Reload register (IWDG_RLR) + 0x8 + 0x20 + read-write + 0x00000FFF + + + RL + Watchdog counter reload + value + 0 + 12 + + + + + SR + SR + Status register (IWDG_SR) + 0xC + 0x20 + read-only + 0x00000000 + + + PVU + Watchdog prescaler value + update + 0 + 1 + + + RVU + Watchdog counter reload value + update + 1 + 1 + + + + + + + WWDG + Window watchdog + WWDG + 0x40002C00 + + 0x0 + 0x400 + registers + + + WWDG + Window Watchdog interrupt + 0 + + + + CR + CR + Control register (WWDG_CR) + 0x0 + 0x20 + read-write + 0x0000007F + + + T + 7-bit counter (MSB to LSB) + 0 + 7 + + + WDGA + Activation bit + 7 + 1 + + + + + CFR + CFR + Configuration register + (WWDG_CFR) + 0x4 + 0x20 + read-write + 0x0000007F + + + W + 7-bit window value + 0 + 7 + + + WDGTB + Timer Base + 7 + 2 + + + EWI + Early Wakeup Interrupt + 9 + 1 + + + + + SR + SR + Status register (WWDG_SR) + 0x8 + 0x20 + read-write + 0x00000000 + + + EWI + Early Wakeup Interrupt + 0 + 1 + + + + + + + TIM1 + Advanced timer + TIM + 0x40012C00 + + 0x0 + 0x400 + registers + + + TIM1_BRK + TIM1 Break interrupt + 24 + + + TIM1_UP + TIM1 Update interrupt + 25 + + + TIM1_CC + TIM1 Capture Compare interrupt + 27 + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + CKD + Clock division + 8 + 2 + + + ARPE + Auto-reload preload enable + 7 + 1 + + + CMS + Center-aligned mode + selection + 5 + 2 + + + DIR + Direction + 4 + 1 + + + OPM + One-pulse mode + 3 + 1 + + + URS + Update request source + 2 + 1 + + + UDIS + Update disable + 1 + 1 + + + CEN + Counter enable + 0 + 1 + + + + + CR2 + CR2 + control register 2 + 0x4 + 0x20 + read-write + 0x0000 + + + OIS4 + Output Idle state 4 + 14 + 1 + + + OIS3N + Output Idle state 3 + 13 + 1 + + + OIS3 + Output Idle state 3 + 12 + 1 + + + OIS2N + Output Idle state 2 + 11 + 1 + + + OIS2 + Output Idle state 2 + 10 + 1 + + + OIS1N + Output Idle state 1 + 9 + 1 + + + OIS1 + Output Idle state 1 + 8 + 1 + + + TI1S + TI1 selection + 7 + 1 + + + MMS + Master mode selection + 4 + 3 + + + CCDS + Capture/compare DMA + selection + 3 + 1 + + + CCUS + Capture/compare control update + selection + 2 + 1 + + + CCPC + Capture/compare preloaded + control + 0 + 1 + + + + + SMCR + SMCR + slave mode control register + 0x8 + 0x20 + read-write + 0x0000 + + + ETP + External trigger polarity + 15 + 1 + + + ECE + External clock enable + 14 + 1 + + + ETPS + External trigger prescaler + 12 + 2 + + + ETF + External trigger filter + 8 + 4 + + + MSM + Master/Slave mode + 7 + 1 + + + TS + Trigger selection + 4 + 3 + + + SMS + Slave mode selection + 0 + 3 + + + + + DIER + DIER + DMA/Interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + TDE + Trigger DMA request enable + 14 + 1 + + + COMDE + COM DMA request enable + 13 + 1 + + + CC4DE + Capture/Compare 4 DMA request + enable + 12 + 1 + + + CC3DE + Capture/Compare 3 DMA request + enable + 11 + 1 + + + CC2DE + Capture/Compare 2 DMA request + enable + 10 + 1 + + + CC1DE + Capture/Compare 1 DMA request + enable + 9 + 1 + + + UDE + Update DMA request enable + 8 + 1 + + + TIE + Trigger interrupt enable + 6 + 1 + + + CC4IE + Capture/Compare 4 interrupt + enable + 4 + 1 + + + CC3IE + Capture/Compare 3 interrupt + enable + 3 + 1 + + + CC2IE + Capture/Compare 2 interrupt + enable + 2 + 1 + + + CC1IE + Capture/Compare 1 interrupt + enable + 1 + 1 + + + UIE + Update interrupt enable + 0 + 1 + + + BIE + Break interrupt enable + 7 + 1 + + + COMIE + COM interrupt enable + 5 + 1 + + + + + SR + SR + status register + 0x10 + 0x20 + read-write + 0x0000 + + + CC4OF + Capture/Compare 4 overcapture + flag + 12 + 1 + + + CC3OF + Capture/Compare 3 overcapture + flag + 11 + 1 + + + CC2OF + Capture/compare 2 overcapture + flag + 10 + 1 + + + CC1OF + Capture/Compare 1 overcapture + flag + 9 + 1 + + + BIF + Break interrupt flag + 7 + 1 + + + TIF + Trigger interrupt flag + 6 + 1 + + + COMIF + COM interrupt flag + 5 + 1 + + + CC4IF + Capture/Compare 4 interrupt + flag + 4 + 1 + + + CC3IF + Capture/Compare 3 interrupt + flag + 3 + 1 + + + CC2IF + Capture/Compare 2 interrupt + flag + 2 + 1 + + + CC1IF + Capture/compare 1 interrupt + flag + 1 + 1 + + + UIF + Update interrupt flag + 0 + 1 + + + + + EGR + EGR + event generation register + 0x14 + 0x20 + write-only + 0x0000 + + + BG + Break generation + 7 + 1 + + + TG + Trigger generation + 6 + 1 + + + COMG + Capture/Compare control update + generation + 5 + 1 + + + CC4G + Capture/compare 4 + generation + 4 + 1 + + + CC3G + Capture/compare 3 + generation + 3 + 1 + + + CC2G + Capture/compare 2 + generation + 2 + 1 + + + CC1G + Capture/compare 1 + generation + 1 + 1 + + + UG + Update generation + 0 + 1 + + + + + CCMR1_Output + CCMR1_Output + capture/compare mode register (output + mode) + 0x18 + 0x20 + read-write + 0x00000000 + + + OC2CE + Output Compare 2 clear + enable + 15 + 1 + + + OC2M + Output Compare 2 mode + 12 + 3 + + + OC2PE + Output Compare 2 preload + enable + 11 + 1 + + + OC2FE + Output Compare 2 fast + enable + 10 + 1 + + + CC2S + Capture/Compare 2 + selection + 8 + 2 + + + OC1CE + Output Compare 1 clear + enable + 7 + 1 + + + OC1M + Output Compare 1 mode + 4 + 3 + + + OC1PE + Output Compare 1 preload + enable + 3 + 1 + + + OC1FE + Output Compare 1 fast + enable + 2 + 1 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCMR1_Input + CCMR1_Input + capture/compare mode register 1 (input + mode) + CCMR1_Output + 0x18 + 0x20 + read-write + 0x00000000 + + + IC2F + Input capture 2 filter + 12 + 4 + + + IC2PCS + Input capture 2 prescaler + 10 + 2 + + + CC2S + Capture/Compare 2 + selection + 8 + 2 + + + IC1F + Input capture 1 filter + 4 + 4 + + + ICPCS + Input capture 1 prescaler + 2 + 2 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCMR2_Output + CCMR2_Output + capture/compare mode register (output + mode) + 0x1C + 0x20 + read-write + 0x00000000 + + + OC4CE + Output compare 4 clear + enable + 15 + 1 + + + OC4M + Output compare 4 mode + 12 + 3 + + + OC4PE + Output compare 4 preload + enable + 11 + 1 + + + OC4FE + Output compare 4 fast + enable + 10 + 1 + + + CC4S + Capture/Compare 4 + selection + 8 + 2 + + + OC3CE + Output compare 3 clear + enable + 7 + 1 + + + OC3M + Output compare 3 mode + 4 + 3 + + + OC3PE + Output compare 3 preload + enable + 3 + 1 + + + OC3FE + Output compare 3 fast + enable + 2 + 1 + + + CC3S + Capture/Compare 3 + selection + 0 + 2 + + + + + CCMR2_Input + CCMR2_Input + capture/compare mode register 2 (input + mode) + CCMR2_Output + 0x1C + 0x20 + read-write + 0x00000000 + + + IC4F + Input capture 4 filter + 12 + 4 + + + IC4PSC + Input capture 4 prescaler + 10 + 2 + + + CC4S + Capture/Compare 4 + selection + 8 + 2 + + + IC3F + Input capture 3 filter + 4 + 4 + + + IC3PSC + Input capture 3 prescaler + 2 + 2 + + + CC3S + Capture/compare 3 + selection + 0 + 2 + + + + + CCER + CCER + capture/compare enable + register + 0x20 + 0x20 + read-write + 0x0000 + + + CC4P + Capture/Compare 3 output + Polarity + 13 + 1 + + + CC4E + Capture/Compare 4 output + enable + 12 + 1 + + + CC3NP + Capture/Compare 3 output + Polarity + 11 + 1 + + + CC3NE + Capture/Compare 3 complementary output + enable + 10 + 1 + + + CC3P + Capture/Compare 3 output + Polarity + 9 + 1 + + + CC3E + Capture/Compare 3 output + enable + 8 + 1 + + + CC2NP + Capture/Compare 2 output + Polarity + 7 + 1 + + + CC2NE + Capture/Compare 2 complementary output + enable + 6 + 1 + + + CC2P + Capture/Compare 2 output + Polarity + 5 + 1 + + + CC2E + Capture/Compare 2 output + enable + 4 + 1 + + + CC1NP + Capture/Compare 1 output + Polarity + 3 + 1 + + + CC1NE + Capture/Compare 1 complementary output + enable + 2 + 1 + + + CC1P + Capture/Compare 1 output + Polarity + 1 + 1 + + + CC1E + Capture/Compare 1 output + enable + 0 + 1 + + + + + CNT + CNT + counter + 0x24 + 0x20 + read-write + 0x00000000 + + + CNT + counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + ARR + Auto-reload value + 0 + 16 + + + + + CCR1 + CCR1 + capture/compare register 1 + 0x34 + 0x20 + read-write + 0x00000000 + + + CCR1 + Capture/Compare 1 value + 0 + 16 + + + + + CCR2 + CCR2 + capture/compare register 2 + 0x38 + 0x20 + read-write + 0x00000000 + + + CCR2 + Capture/Compare 2 value + 0 + 16 + + + + + CCR3 + CCR3 + capture/compare register 3 + 0x3C + 0x20 + read-write + 0x00000000 + + + CCR3 + Capture/Compare value + 0 + 16 + + + + + CCR4 + CCR4 + capture/compare register 4 + 0x40 + 0x20 + read-write + 0x00000000 + + + CCR4 + Capture/Compare value + 0 + 16 + + + + + DCR + DCR + DMA control register + 0x48 + 0x20 + read-write + 0x0000 + + + DBL + DMA burst length + 8 + 5 + + + DBA + DMA base address + 0 + 5 + + + + + DMAR + DMAR + DMA address for full transfer + 0x4C + 0x20 + read-write + 0x0000 + + + DMAB + DMA register for burst + accesses + 0 + 16 + + + + + RCR + RCR + repetition counter register + 0x30 + 0x20 + read-write + 0x0000 + + + REP + Repetition counter value + 0 + 8 + + + + + BDTR + BDTR + break and dead-time register + 0x44 + 0x20 + read-write + 0x0000 + + + MOE + Main output enable + 15 + 1 + + + AOE + Automatic output enable + 14 + 1 + + + BKP + Break polarity + 13 + 1 + + + BKE + Break enable + 12 + 1 + + + OSSR + Off-state selection for Run + mode + 11 + 1 + + + OSSI + Off-state selection for Idle + mode + 10 + 1 + + + LOCK + Lock configuration + 8 + 2 + + + DTG + Dead-time generator setup + 0 + 8 + + + + + + + TIM2 + General purpose timer + TIM + 0x40000000 + + 0x0 + 0x400 + registers + + + TIM2 + TIM2 global interrupt + 28 + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + CKD + Clock division + 8 + 2 + + + ARPE + Auto-reload preload enable + 7 + 1 + + + CMS + Center-aligned mode + selection + 5 + 2 + + + DIR + Direction + 4 + 1 + + + OPM + One-pulse mode + 3 + 1 + + + URS + Update request source + 2 + 1 + + + UDIS + Update disable + 1 + 1 + + + CEN + Counter enable + 0 + 1 + + + + + CR2 + CR2 + control register 2 + 0x4 + 0x20 + read-write + 0x0000 + + + TI1S + TI1 selection + 7 + 1 + + + MMS + Master mode selection + 4 + 3 + + + CCDS + Capture/compare DMA + selection + 3 + 1 + + + + + SMCR + SMCR + slave mode control register + 0x8 + 0x20 + read-write + 0x0000 + + + ETP + External trigger polarity + 15 + 1 + + + ECE + External clock enable + 14 + 1 + + + ETPS + External trigger prescaler + 12 + 2 + + + ETF + External trigger filter + 8 + 4 + + + MSM + Master/Slave mode + 7 + 1 + + + TS + Trigger selection + 4 + 3 + + + SMS + Slave mode selection + 0 + 3 + + + + + DIER + DIER + DMA/Interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + TDE + Trigger DMA request enable + 14 + 1 + + + CC4DE + Capture/Compare 4 DMA request + enable + 12 + 1 + + + CC3DE + Capture/Compare 3 DMA request + enable + 11 + 1 + + + CC2DE + Capture/Compare 2 DMA request + enable + 10 + 1 + + + CC1DE + Capture/Compare 1 DMA request + enable + 9 + 1 + + + UDE + Update DMA request enable + 8 + 1 + + + TIE + Trigger interrupt enable + 6 + 1 + + + CC4IE + Capture/Compare 4 interrupt + enable + 4 + 1 + + + CC3IE + Capture/Compare 3 interrupt + enable + 3 + 1 + + + CC2IE + Capture/Compare 2 interrupt + enable + 2 + 1 + + + CC1IE + Capture/Compare 1 interrupt + enable + 1 + 1 + + + UIE + Update interrupt enable + 0 + 1 + + + + + SR + SR + status register + 0x10 + 0x20 + read-write + 0x0000 + + + CC4OF + Capture/Compare 4 overcapture + flag + 12 + 1 + + + CC3OF + Capture/Compare 3 overcapture + flag + 11 + 1 + + + CC2OF + Capture/compare 2 overcapture + flag + 10 + 1 + + + CC1OF + Capture/Compare 1 overcapture + flag + 9 + 1 + + + TIF + Trigger interrupt flag + 6 + 1 + + + CC4IF + Capture/Compare 4 interrupt + flag + 4 + 1 + + + CC3IF + Capture/Compare 3 interrupt + flag + 3 + 1 + + + CC2IF + Capture/Compare 2 interrupt + flag + 2 + 1 + + + CC1IF + Capture/compare 1 interrupt + flag + 1 + 1 + + + UIF + Update interrupt flag + 0 + 1 + + + + + EGR + EGR + event generation register + 0x14 + 0x20 + write-only + 0x0000 + + + TG + Trigger generation + 6 + 1 + + + CC4G + Capture/compare 4 + generation + 4 + 1 + + + CC3G + Capture/compare 3 + generation + 3 + 1 + + + CC2G + Capture/compare 2 + generation + 2 + 1 + + + CC1G + Capture/compare 1 + generation + 1 + 1 + + + UG + Update generation + 0 + 1 + + + + + CCMR1_Output + CCMR1_Output + capture/compare mode register 1 (output + mode) + 0x18 + 0x20 + read-write + 0x00000000 + + + OC2CE + Output compare 2 clear + enable + 15 + 1 + + + OC2M + Output compare 2 mode + 12 + 3 + + + OC2PE + Output compare 2 preload + enable + 11 + 1 + + + OC2FE + Output compare 2 fast + enable + 10 + 1 + + + CC2S + Capture/Compare 2 + selection + 8 + 2 + + + OC1CE + Output compare 1 clear + enable + 7 + 1 + + + OC1M + Output compare 1 mode + 4 + 3 + + + OC1PE + Output compare 1 preload + enable + 3 + 1 + + + OC1FE + Output compare 1 fast + enable + 2 + 1 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCMR1_Input + CCMR1_Input + capture/compare mode register 1 (input + mode) + CCMR1_Output + 0x18 + 0x20 + read-write + 0x00000000 + + + IC2F + Input capture 2 filter + 12 + 4 + + + IC2PSC + Input capture 2 prescaler + 10 + 2 + + + CC2S + Capture/compare 2 + selection + 8 + 2 + + + IC1F + Input capture 1 filter + 4 + 4 + + + IC1PSC + Input capture 1 prescaler + 2 + 2 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCMR2_Output + CCMR2_Output + capture/compare mode register 2 (output + mode) + 0x1C + 0x20 + read-write + 0x00000000 + + + OC4CE + Output compare 4 clear + enable + 15 + 1 + + + OC4M + Output compare 4 mode + 12 + 3 + + + OC4PE + Output compare 4 preload + enable + 11 + 1 + + + OC4FE + Output compare 4 fast + enable + 10 + 1 + + + CC4S + Capture/Compare 4 + selection + 8 + 2 + + + OC3CE + Output compare 3 clear + enable + 7 + 1 + + + OC3M + Output compare 3 mode + 4 + 3 + + + OC3PE + Output compare 3 preload + enable + 3 + 1 + + + OC3FE + Output compare 3 fast + enable + 2 + 1 + + + CC3S + Capture/Compare 3 + selection + 0 + 2 + + + + + CCMR2_Input + CCMR2_Input + capture/compare mode register 2 (input + mode) + CCMR2_Output + 0x1C + 0x20 + read-write + 0x00000000 + + + IC4F + Input capture 4 filter + 12 + 4 + + + IC4PSC + Input capture 4 prescaler + 10 + 2 + + + CC4S + Capture/Compare 4 + selection + 8 + 2 + + + IC3F + Input capture 3 filter + 4 + 4 + + + IC3PSC + Input capture 3 prescaler + 2 + 2 + + + CC3S + Capture/Compare 3 + selection + 0 + 2 + + + + + CCER + CCER + capture/compare enable + register + 0x20 + 0x20 + read-write + 0x0000 + + + CC4P + Capture/Compare 3 output + Polarity + 13 + 1 + + + CC4E + Capture/Compare 4 output + enable + 12 + 1 + + + CC3P + Capture/Compare 3 output + Polarity + 9 + 1 + + + CC3E + Capture/Compare 3 output + enable + 8 + 1 + + + CC2P + Capture/Compare 2 output + Polarity + 5 + 1 + + + CC2E + Capture/Compare 2 output + enable + 4 + 1 + + + CC1P + Capture/Compare 1 output + Polarity + 1 + 1 + + + CC1E + Capture/Compare 1 output + enable + 0 + 1 + + + + + CNT + CNT + counter + 0x24 + 0x20 + read-write + 0x00000000 + + + CNT + counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + ARR + Auto-reload value + 0 + 16 + + + + + CCR1 + CCR1 + capture/compare register 1 + 0x34 + 0x20 + read-write + 0x00000000 + + + CCR1 + Capture/Compare 1 value + 0 + 16 + + + + + CCR2 + CCR2 + capture/compare register 2 + 0x38 + 0x20 + read-write + 0x00000000 + + + CCR2 + Capture/Compare 2 value + 0 + 16 + + + + + CCR3 + CCR3 + capture/compare register 3 + 0x3C + 0x20 + read-write + 0x00000000 + + + CCR3 + Capture/Compare value + 0 + 16 + + + + + CCR4 + CCR4 + capture/compare register 4 + 0x40 + 0x20 + read-write + 0x00000000 + + + CCR4 + Capture/Compare value + 0 + 16 + + + + + DCR + DCR + DMA control register + 0x48 + 0x20 + read-write + 0x0000 + + + DBL + DMA burst length + 8 + 5 + + + DBA + DMA base address + 0 + 5 + + + + + DMAR + DMAR + DMA address for full transfer + 0x4C + 0x20 + read-write + 0x0000 + + + DMAB + DMA register for burst + accesses + 0 + 16 + + + + + + + TIM3 + 0x40000400 + + TIM3 + TIM3 global interrupt + 29 + + + + TIM4 + 0x40000800 + + TIM4 + TIM4 global interrupt + 30 + + + + TIM5 + 0x40000C00 + + TIM5 + TIM5 global interrupt + 50 + + + + TIM6 + Basic timer + TIM + 0x40001000 + + 0x0 + 0x400 + registers + + + TIM6 + TIM6 global interrupt + 54 + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + ARPE + Auto-reload preload enable + 7 + 1 + + + OPM + One-pulse mode + 3 + 1 + + + URS + Update request source + 2 + 1 + + + UDIS + Update disable + 1 + 1 + + + CEN + Counter enable + 0 + 1 + + + + + CR2 + CR2 + control register 2 + 0x4 + 0x20 + read-write + 0x0000 + + + MMS + Master mode selection + 4 + 3 + + + + + DIER + DIER + DMA/Interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + UDE + Update DMA request enable + 8 + 1 + + + UIE + Update interrupt enable + 0 + 1 + + + + + SR + SR + status register + 0x10 + 0x20 + read-write + 0x0000 + + + UIF + Update interrupt flag + 0 + 1 + + + + + EGR + EGR + event generation register + 0x14 + 0x20 + write-only + 0x0000 + + + UG + Update generation + 0 + 1 + + + + + CNT + CNT + counter + 0x24 + 0x20 + read-write + 0x00000000 + + + CNT + Low counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + ARR + Low Auto-reload value + 0 + 16 + + + + + + + TIM7 + 0x40001400 + + TIM7 + TIM7 global interrupt + 55 + + + + I2C1 + Inter integrated circuit + I2C + 0x40005400 + + 0x0 + 0x400 + registers + + + I2C1_EV + I2C1 event interrupt + 31 + + + I2C1_ER + I2C1 error interrupt + 32 + + + + CR1 + CR1 + Control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + SWRST + Software reset + 15 + 1 + + + ALERT + SMBus alert + 13 + 1 + + + PEC + Packet error checking + 12 + 1 + + + POS + Acknowledge/PEC Position (for data + reception) + 11 + 1 + + + ACK + Acknowledge enable + 10 + 1 + + + STOP + Stop generation + 9 + 1 + + + START + Start generation + 8 + 1 + + + NOSTRETCH + Clock stretching disable (Slave + mode) + 7 + 1 + + + ENGC + General call enable + 6 + 1 + + + ENPEC + PEC enable + 5 + 1 + + + ENARP + ARP enable + 4 + 1 + + + SMBTYPE + SMBus type + 3 + 1 + + + SMBUS + SMBus mode + 1 + 1 + + + PE + Peripheral enable + 0 + 1 + + + + + CR2 + CR2 + Control register 2 + 0x4 + 0x20 + read-write + 0x0000 + + + LAST + DMA last transfer + 12 + 1 + + + DMAEN + DMA requests enable + 11 + 1 + + + ITBUFEN + Buffer interrupt enable + 10 + 1 + + + ITEVTEN + Event interrupt enable + 9 + 1 + + + ITERREN + Error interrupt enable + 8 + 1 + + + FREQ + Peripheral clock frequency + 0 + 6 + + + + + OAR1 + OAR1 + Own address register 1 + 0x8 + 0x20 + read-write + 0x0000 + + + ADDMODE + Addressing mode (slave + mode) + 15 + 1 + + + ADD10 + Interface address + 8 + 2 + + + ADD7 + Interface address + 1 + 7 + + + ADD0 + Interface address + 0 + 1 + + + + + OAR2 + OAR2 + Own address register 2 + 0xC + 0x20 + read-write + 0x0000 + + + ADD2 + Interface address + 1 + 7 + + + ENDUAL + Dual addressing mode + enable + 0 + 1 + + + + + DR + DR + Data register + 0x10 + 0x20 + read-write + 0x0000 + + + DR + 8-bit data register + 0 + 8 + + + + + SR1 + SR1 + Status register 1 + 0x14 + 0x20 + 0x0000 + + + SMBALERT + SMBus alert + 15 + 1 + read-write + + + TIMEOUT + Timeout or Tlow error + 14 + 1 + read-write + + + PECERR + PEC Error in reception + 12 + 1 + read-write + + + OVR + Overrun/Underrun + 11 + 1 + read-write + + + AF + Acknowledge failure + 10 + 1 + read-write + + + ARLO + Arbitration lost (master + mode) + 9 + 1 + read-write + + + BERR + Bus error + 8 + 1 + read-write + + + TxE + Data register empty + (transmitters) + 7 + 1 + read-only + + + RxNE + Data register not empty + (receivers) + 6 + 1 + read-only + + + STOPF + Stop detection (slave + mode) + 4 + 1 + read-only + + + ADD10 + 10-bit header sent (Master + mode) + 3 + 1 + read-only + + + BTF + Byte transfer finished + 2 + 1 + read-only + + + ADDR + Address sent (master mode)/matched + (slave mode) + 1 + 1 + read-only + + + SB + Start bit (Master mode) + 0 + 1 + read-only + + + + + SR2 + SR2 + Status register 2 + 0x18 + 0x20 + read-only + 0x0000 + + + PEC + acket error checking + register + 8 + 8 + + + DUALF + Dual flag (Slave mode) + 7 + 1 + + + SMBHOST + SMBus host header (Slave + mode) + 6 + 1 + + + SMBDEFAULT + SMBus device default address (Slave + mode) + 5 + 1 + + + GENCALL + General call address (Slave + mode) + 4 + 1 + + + TRA + Transmitter/receiver + 2 + 1 + + + BUSY + Bus busy + 1 + 1 + + + MSL + Master/slave + 0 + 1 + + + + + CCR + CCR + Clock control register + 0x1C + 0x20 + read-write + 0x0000 + + + F_S + I2C master mode selection + 15 + 1 + + + DUTY + Fast mode duty cycle + 14 + 1 + + + CCR + Clock control register in Fast/Standard + mode (Master mode) + 0 + 12 + + + + + TRISE + TRISE + TRISE register + 0x20 + 0x20 + read-write + 0x0002 + + + TRISE + Maximum rise time in Fast/Standard mode + (Master mode) + 0 + 6 + + + + + + + I2C2 + 0x40005800 + + I2C2_EV + I2C2 event interrupt + 33 + + + I2C2_ER + I2C2 error interrupt + 34 + + + + SPI1 + Serial peripheral interface + SPI + 0x40013000 + + 0x0 + 0x400 + registers + + + SPI1 + SPI1 global interrupt + 35 + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + BIDIMODE + Bidirectional data mode + enable + 15 + 1 + + + BIDIOE + Output enable in bidirectional + mode + 14 + 1 + + + CRCEN + Hardware CRC calculation + enable + 13 + 1 + + + CRCNEXT + CRC transfer next + 12 + 1 + + + DFF + Data frame format + 11 + 1 + + + RXONLY + Receive only + 10 + 1 + + + SSM + Software slave management + 9 + 1 + + + SSI + Internal slave select + 8 + 1 + + + LSBFIRST + Frame format + 7 + 1 + + + SPE + SPI enable + 6 + 1 + + + BR + Baud rate control + 3 + 3 + + + MSTR + Master selection + 2 + 1 + + + CPOL + Clock polarity + 1 + 1 + + + CPHA + Clock phase + 0 + 1 + + + + + CR2 + CR2 + control register 2 + 0x4 + 0x20 + read-write + 0x0000 + + + TXEIE + Tx buffer empty interrupt + enable + 7 + 1 + + + RXNEIE + RX buffer not empty interrupt + enable + 6 + 1 + + + ERRIE + Error interrupt enable + 5 + 1 + + + SSOE + SS output enable + 2 + 1 + + + TXDMAEN + Tx buffer DMA enable + 1 + 1 + + + RXDMAEN + Rx buffer DMA enable + 0 + 1 + + + + + SR + SR + status register + 0x8 + 0x20 + 0x0002 + + + BSY + Busy flag + 7 + 1 + read-only + + + OVR + Overrun flag + 6 + 1 + read-only + + + MODF + Mode fault + 5 + 1 + read-only + + + CRCERR + CRC error flag + 4 + 1 + read-write + + + UDR + Underrun flag + 3 + 1 + read-only + + + CHSIDE + Channel side + 2 + 1 + read-only + + + TXE + Transmit buffer empty + 1 + 1 + read-only + + + RXNE + Receive buffer not empty + 0 + 1 + read-only + + + + + DR + DR + data register + 0xC + 0x20 + read-write + 0x0000 + + + DR + Data register + 0 + 16 + + + + + CRCPR + CRCPR + CRC polynomial register + 0x10 + 0x20 + read-write + 0x0007 + + + CRCPOLY + CRC polynomial register + 0 + 16 + + + + + RXCRCR + RXCRCR + RX CRC register + 0x14 + 0x20 + read-only + 0x0000 + + + RxCRC + Rx CRC register + 0 + 16 + + + + + TXCRCR + TXCRCR + TX CRC register + 0x18 + 0x20 + read-only + 0x0000 + + + TxCRC + Tx CRC register + 0 + 16 + + + + + I2SCFGR + I2SCFGR + I2S configuration register + 0x1C + 0x20 + read-write + 0x0000 + + + I2SMOD + I2S mode selection + 11 + 1 + + + I2SE + I2S Enable + 10 + 1 + + + I2SCFG + I2S configuration mode + 8 + 2 + + + PCMSYNC + PCM frame synchronization + 7 + 1 + + + I2SSTD + I2S standard selection + 4 + 2 + + + CKPOL + Steady state clock + polarity + 3 + 1 + + + DATLEN + Data length to be + transferred + 1 + 2 + + + CHLEN + Channel length (number of bits per audio + channel) + 0 + 1 + + + + + I2SPR + I2SPR + I2S prescaler register + 0x20 + 0x20 + read-write + 00000010 + + + MCKOE + Master clock output enable + 9 + 1 + + + ODD + Odd factor for the + prescaler + 8 + 1 + + + I2SDIV + I2S Linear prescaler + 0 + 8 + + + + + + + SPI2 + 0x40003800 + + SPI2 + SPI2 global interrupt + 36 + + + + SPI3 + 0x40003C00 + + SPI3 + SPI3 global interrupt + 51 + + + + USART1 + Universal synchronous asynchronous receiver + transmitter + USART + 0x40013800 + + 0x0 + 0x400 + registers + + + USART1 + USART1 global interrupt + 37 + + + + SR + SR + Status register + 0x0 + 0x20 + 0x00C0 + + + CTS + CTS flag + 9 + 1 + read-write + + + LBD + LIN break detection flag + 8 + 1 + read-write + + + TXE + Transmit data register + empty + 7 + 1 + read-only + + + TC + Transmission complete + 6 + 1 + read-write + + + RXNE + Read data register not + empty + 5 + 1 + read-write + + + IDLE + IDLE line detected + 4 + 1 + read-only + + + ORE + Overrun error + 3 + 1 + read-only + + + NE + Noise error flag + 2 + 1 + read-only + + + FE + Framing error + 1 + 1 + read-only + + + PE + Parity error + 0 + 1 + read-only + + + + + DR + DR + Data register + 0x4 + 0x20 + read-write + 0x00000000 + + + DR + Data value + 0 + 9 + + + + + BRR + BRR + Baud rate register + 0x8 + 0x20 + read-write + 0x0000 + + + DIV_Mantissa + mantissa of USARTDIV + 4 + 12 + + + DIV_Fraction + fraction of USARTDIV + 0 + 4 + + + + + CR1 + CR1 + Control register 1 + 0xC + 0x20 + read-write + 0x0000 + + + UE + USART enable + 13 + 1 + + + M + Word length + 12 + 1 + + + WAKE + Wakeup method + 11 + 1 + + + PCE + Parity control enable + 10 + 1 + + + PS + Parity selection + 9 + 1 + + + PEIE + PE interrupt enable + 8 + 1 + + + TXEIE + TXE interrupt enable + 7 + 1 + + + TCIE + Transmission complete interrupt + enable + 6 + 1 + + + RXNEIE + RXNE interrupt enable + 5 + 1 + + + IDLEIE + IDLE interrupt enable + 4 + 1 + + + TE + Transmitter enable + 3 + 1 + + + RE + Receiver enable + 2 + 1 + + + RWU + Receiver wakeup + 1 + 1 + + + SBK + Send break + 0 + 1 + + + + + CR2 + CR2 + Control register 2 + 0x10 + 0x20 + read-write + 0x0000 + + + LINEN + LIN mode enable + 14 + 1 + + + STOP + STOP bits + 12 + 2 + + + CLKEN + Clock enable + 11 + 1 + + + CPOL + Clock polarity + 10 + 1 + + + CPHA + Clock phase + 9 + 1 + + + LBCL + Last bit clock pulse + 8 + 1 + + + LBDIE + LIN break detection interrupt + enable + 6 + 1 + + + LBDL + lin break detection length + 5 + 1 + + + ADD + Address of the USART node + 0 + 4 + + + + + CR3 + CR3 + Control register 3 + 0x14 + 0x20 + read-write + 0x0000 + + + CTSIE + CTS interrupt enable + 10 + 1 + + + CTSE + CTS enable + 9 + 1 + + + RTSE + RTS enable + 8 + 1 + + + DMAT + DMA enable transmitter + 7 + 1 + + + DMAR + DMA enable receiver + 6 + 1 + + + SCEN + Smartcard mode enable + 5 + 1 + + + NACK + Smartcard NACK enable + 4 + 1 + + + HDSEL + Half-duplex selection + 3 + 1 + + + IRLP + IrDA low-power + 2 + 1 + + + IREN + IrDA mode enable + 1 + 1 + + + EIE + Error interrupt enable + 0 + 1 + + + + + GTPR + GTPR + Guard time and prescaler + register + 0x18 + 0x20 + read-write + 0x0000 + + + GT + Guard time value + 8 + 8 + + + PSC + Prescaler value + 0 + 8 + + + + + + + USART2 + 0x40004400 + + USART2 + USART2 global interrupt + 38 + + + + USART3 + 0x40004800 + + USART3 + USART3 global interrupt + 39 + + + + ADC1 + Analog to digital converter + ADC + 0x40012400 + + 0x0 + 0x400 + registers + + + + SR + SR + status register + 0x0 + 0x20 + read-write + 0x00000000 + + + STRT + Regular channel start flag + 4 + 1 + + + JSTRT + Injected channel start + flag + 3 + 1 + + + JEOC + Injected channel end of + conversion + 2 + 1 + + + EOC + Regular channel end of + conversion + 1 + 1 + + + AWD + Analog watchdog flag + 0 + 1 + + + + + CR1 + CR1 + control register 1 + 0x4 + 0x20 + read-write + 0x00000000 + + + AWDEN + Analog watchdog enable on regular + channels + 23 + 1 + + + JAWDEN + Analog watchdog enable on injected + channels + 22 + 1 + + + DUALMOD + Dual mode selection + 16 + 4 + + + DISCNUM + Discontinuous mode channel + count + 13 + 3 + + + JDISCEN + Discontinuous mode on injected + channels + 12 + 1 + + + DISCEN + Discontinuous mode on regular + channels + 11 + 1 + + + JAUTO + Automatic injected group + conversion + 10 + 1 + + + AWDSGL + Enable the watchdog on a single channel + in scan mode + 9 + 1 + + + SCAN + Scan mode + 8 + 1 + + + JEOCIE + Interrupt enable for injected + channels + 7 + 1 + + + AWDIE + Analog watchdog interrupt + enable + 6 + 1 + + + EOCIE + Interrupt enable for EOC + 5 + 1 + + + AWDCH + Analog watchdog channel select + bits + 0 + 5 + + + + + CR2 + CR2 + control register 2 + 0x8 + 0x20 + read-write + 0x00000000 + + + TSVREFE + Temperature sensor and VREFINT + enable + 23 + 1 + + + SWSTART + Start conversion of regular + channels + 22 + 1 + + + JSWSTART + Start conversion of injected + channels + 21 + 1 + + + EXTTRIG + External trigger conversion mode for + regular channels + 20 + 1 + + + EXTSEL + External event select for regular + group + 17 + 3 + + + JEXTTRIG + External trigger conversion mode for + injected channels + 15 + 1 + + + JEXTSEL + External event select for injected + group + 12 + 3 + + + ALIGN + Data alignment + 11 + 1 + + + DMA + Direct memory access mode + 8 + 1 + + + RSTCAL + Reset calibration + 3 + 1 + + + CAL + A/D calibration + 2 + 1 + + + CONT + Continuous conversion + 1 + 1 + + + ADON + A/D converter ON / OFF + 0 + 1 + + + + + SMPR1 + SMPR1 + sample time register 1 + 0xC + 0x20 + read-write + 0x00000000 + + + SMP10 + Channel 10 sampling time + selection + 0 + 3 + + + SMP11 + Channel 11 sampling time + selection + 3 + 3 + + + SMP12 + Channel 12 sampling time + selection + 6 + 3 + + + SMP13 + Channel 13 sampling time + selection + 9 + 3 + + + SMP14 + Channel 14 sampling time + selection + 12 + 3 + + + SMP15 + Channel 15 sampling time + selection + 15 + 3 + + + SMP16 + Channel 16 sampling time + selection + 18 + 3 + + + SMP17 + Channel 17 sampling time + selection + 21 + 3 + + + + + SMPR2 + SMPR2 + sample time register 2 + 0x10 + 0x20 + read-write + 0x00000000 + + + SMP0 + Channel 0 sampling time + selection + 0 + 3 + + + SMP1 + Channel 1 sampling time + selection + 3 + 3 + + + SMP2 + Channel 2 sampling time + selection + 6 + 3 + + + SMP3 + Channel 3 sampling time + selection + 9 + 3 + + + SMP4 + Channel 4 sampling time + selection + 12 + 3 + + + SMP5 + Channel 5 sampling time + selection + 15 + 3 + + + SMP6 + Channel 6 sampling time + selection + 18 + 3 + + + SMP7 + Channel 7 sampling time + selection + 21 + 3 + + + SMP8 + Channel 8 sampling time + selection + 24 + 3 + + + SMP9 + Channel 9 sampling time + selection + 27 + 3 + + + + + JOFR1 + JOFR1 + injected channel data offset register + x + 0x14 + 0x20 + read-write + 0x00000000 + + + JOFFSET1 + Data offset for injected channel + x + 0 + 12 + + + + + JOFR2 + JOFR2 + injected channel data offset register + x + 0x18 + 0x20 + read-write + 0x00000000 + + + JOFFSET2 + Data offset for injected channel + x + 0 + 12 + + + + + JOFR3 + JOFR3 + injected channel data offset register + x + 0x1C + 0x20 + read-write + 0x00000000 + + + JOFFSET3 + Data offset for injected channel + x + 0 + 12 + + + + + JOFR4 + JOFR4 + injected channel data offset register + x + 0x20 + 0x20 + read-write + 0x00000000 + + + JOFFSET4 + Data offset for injected channel + x + 0 + 12 + + + + + HTR + HTR + watchdog higher threshold + register + 0x24 + 0x20 + read-write + 0x00000FFF + + + HT + Analog watchdog higher + threshold + 0 + 12 + + + + + LTR + LTR + watchdog lower threshold + register + 0x28 + 0x20 + read-write + 0x00000000 + + + LT + Analog watchdog lower + threshold + 0 + 12 + + + + + SQR1 + SQR1 + regular sequence register 1 + 0x2C + 0x20 + read-write + 0x00000000 + + + L + Regular channel sequence + length + 20 + 4 + + + SQ16 + 16th conversion in regular + sequence + 15 + 5 + + + SQ15 + 15th conversion in regular + sequence + 10 + 5 + + + SQ14 + 14th conversion in regular + sequence + 5 + 5 + + + SQ13 + 13th conversion in regular + sequence + 0 + 5 + + + + + SQR2 + SQR2 + regular sequence register 2 + 0x30 + 0x20 + read-write + 0x00000000 + + + SQ12 + 12th conversion in regular + sequence + 25 + 5 + + + SQ11 + 11th conversion in regular + sequence + 20 + 5 + + + SQ10 + 10th conversion in regular + sequence + 15 + 5 + + + SQ9 + 9th conversion in regular + sequence + 10 + 5 + + + SQ8 + 8th conversion in regular + sequence + 5 + 5 + + + SQ7 + 7th conversion in regular + sequence + 0 + 5 + + + + + SQR3 + SQR3 + regular sequence register 3 + 0x34 + 0x20 + read-write + 0x00000000 + + + SQ6 + 6th conversion in regular + sequence + 25 + 5 + + + SQ5 + 5th conversion in regular + sequence + 20 + 5 + + + SQ4 + 4th conversion in regular + sequence + 15 + 5 + + + SQ3 + 3rd conversion in regular + sequence + 10 + 5 + + + SQ2 + 2nd conversion in regular + sequence + 5 + 5 + + + SQ1 + 1st conversion in regular + sequence + 0 + 5 + + + + + JSQR + JSQR + injected sequence register + 0x38 + 0x20 + read-write + 0x00000000 + + + JL + Injected sequence length + 20 + 2 + + + JSQ4 + 4th conversion in injected + sequence + 15 + 5 + + + JSQ3 + 3rd conversion in injected + sequence + 10 + 5 + + + JSQ2 + 2nd conversion in injected + sequence + 5 + 5 + + + JSQ1 + 1st conversion in injected + sequence + 0 + 5 + + + + + JDR1 + JDR1 + injected data register x + 0x3C + 0x20 + read-only + 0x00000000 + + + JDATA + Injected data + 0 + 16 + + + + + JDR2 + JDR2 + injected data register x + 0x40 + 0x20 + read-only + 0x00000000 + + + JDATA + Injected data + 0 + 16 + + + + + JDR3 + JDR3 + injected data register x + 0x44 + 0x20 + read-only + 0x00000000 + + + JDATA + Injected data + 0 + 16 + + + + + JDR4 + JDR4 + injected data register x + 0x48 + 0x20 + read-only + 0x00000000 + + + JDATA + Injected data + 0 + 16 + + + + + DR + DR + regular data register + 0x4C + 0x20 + read-only + 0x00000000 + + + DATA + Regular data + 0 + 16 + + + ADC2DATA + ADC2 data + 16 + 16 + + + + + + + ADC2 + Analog to digital converter + ADC + 0x40012800 + + 0x0 + 0x400 + registers + + + + SR + SR + status register + 0x0 + 0x20 + read-write + 0x00000000 + + + STRT + Regular channel start flag + 4 + 1 + + + JSTRT + Injected channel start + flag + 3 + 1 + + + JEOC + Injected channel end of + conversion + 2 + 1 + + + EOC + Regular channel end of + conversion + 1 + 1 + + + AWD + Analog watchdog flag + 0 + 1 + + + + + CR1 + CR1 + control register 1 + 0x4 + 0x20 + read-write + 0x00000000 + + + AWDEN + Analog watchdog enable on regular + channels + 23 + 1 + + + JAWDEN + Analog watchdog enable on injected + channels + 22 + 1 + + + DISCNUM + Discontinuous mode channel + count + 13 + 3 + + + JDISCEN + Discontinuous mode on injected + channels + 12 + 1 + + + DISCEN + Discontinuous mode on regular + channels + 11 + 1 + + + JAUTO + Automatic injected group + conversion + 10 + 1 + + + AWDSGL + Enable the watchdog on a single channel + in scan mode + 9 + 1 + + + SCAN + Scan mode + 8 + 1 + + + JEOCIE + Interrupt enable for injected + channels + 7 + 1 + + + AWDIE + Analog watchdog interrupt + enable + 6 + 1 + + + EOCIE + Interrupt enable for EOC + 5 + 1 + + + AWDCH + Analog watchdog channel select + bits + 0 + 5 + + + + + CR2 + CR2 + control register 2 + 0x8 + 0x20 + read-write + 0x00000000 + + + TSVREFE + Temperature sensor and VREFINT + enable + 23 + 1 + + + SWSTART + Start conversion of regular + channels + 22 + 1 + + + JSWSTART + Start conversion of injected + channels + 21 + 1 + + + EXTTRIG + External trigger conversion mode for + regular channels + 20 + 1 + + + EXTSEL + External event select for regular + group + 17 + 3 + + + JEXTTRIG + External trigger conversion mode for + injected channels + 15 + 1 + + + JEXTSEL + External event select for injected + group + 12 + 3 + + + ALIGN + Data alignment + 11 + 1 + + + DMA + Direct memory access mode + 8 + 1 + + + RSTCAL + Reset calibration + 3 + 1 + + + CAL + A/D calibration + 2 + 1 + + + CONT + Continuous conversion + 1 + 1 + + + ADON + A/D converter ON / OFF + 0 + 1 + + + + + SMPR1 + SMPR1 + sample time register 1 + 0xC + 0x20 + read-write + 0x00000000 + + + SMP10 + Channel 10 sampling time + selection + 0 + 3 + + + SMP11 + Channel 11 sampling time + selection + 3 + 3 + + + SMP12 + Channel 12 sampling time + selection + 6 + 3 + + + SMP13 + Channel 13 sampling time + selection + 9 + 3 + + + SMP14 + Channel 14 sampling time + selection + 12 + 3 + + + SMP15 + Channel 15 sampling time + selection + 15 + 3 + + + SMP16 + Channel 16 sampling time + selection + 18 + 3 + + + SMP17 + Channel 17 sampling time + selection + 21 + 3 + + + + + SMPR2 + SMPR2 + sample time register 2 + 0x10 + 0x20 + read-write + 0x00000000 + + + SMP0 + Channel 0 sampling time + selection + 0 + 3 + + + SMP1 + Channel 1 sampling time + selection + 3 + 3 + + + SMP2 + Channel 2 sampling time + selection + 6 + 3 + + + SMP3 + Channel 3 sampling time + selection + 9 + 3 + + + SMP4 + Channel 4 sampling time + selection + 12 + 3 + + + SMP5 + Channel 5 sampling time + selection + 15 + 3 + + + SMP6 + Channel 6 sampling time + selection + 18 + 3 + + + SMP7 + Channel 7 sampling time + selection + 21 + 3 + + + SMP8 + Channel 8 sampling time + selection + 24 + 3 + + + SMP9 + Channel 9 sampling time + selection + 27 + 3 + + + + + JOFR1 + JOFR1 + injected channel data offset register + x + 0x14 + 0x20 + read-write + 0x00000000 + + + JOFFSET1 + Data offset for injected channel + x + 0 + 12 + + + + + JOFR2 + JOFR2 + injected channel data offset register + x + 0x18 + 0x20 + read-write + 0x00000000 + + + JOFFSET2 + Data offset for injected channel + x + 0 + 12 + + + + + JOFR3 + JOFR3 + injected channel data offset register + x + 0x1C + 0x20 + read-write + 0x00000000 + + + JOFFSET3 + Data offset for injected channel + x + 0 + 12 + + + + + JOFR4 + JOFR4 + injected channel data offset register + x + 0x20 + 0x20 + read-write + 0x00000000 + + + JOFFSET4 + Data offset for injected channel + x + 0 + 12 + + + + + HTR + HTR + watchdog higher threshold + register + 0x24 + 0x20 + read-write + 0x00000FFF + + + HT + Analog watchdog higher + threshold + 0 + 12 + + + + + LTR + LTR + watchdog lower threshold + register + 0x28 + 0x20 + read-write + 0x00000000 + + + LT + Analog watchdog lower + threshold + 0 + 12 + + + + + SQR1 + SQR1 + regular sequence register 1 + 0x2C + 0x20 + read-write + 0x00000000 + + + L + Regular channel sequence + length + 20 + 4 + + + SQ16 + 16th conversion in regular + sequence + 15 + 5 + + + SQ15 + 15th conversion in regular + sequence + 10 + 5 + + + SQ14 + 14th conversion in regular + sequence + 5 + 5 + + + SQ13 + 13th conversion in regular + sequence + 0 + 5 + + + + + SQR2 + SQR2 + regular sequence register 2 + 0x30 + 0x20 + read-write + 0x00000000 + + + SQ12 + 12th conversion in regular + sequence + 25 + 5 + + + SQ11 + 11th conversion in regular + sequence + 20 + 5 + + + SQ10 + 10th conversion in regular + sequence + 15 + 5 + + + SQ9 + 9th conversion in regular + sequence + 10 + 5 + + + SQ8 + 8th conversion in regular + sequence + 5 + 5 + + + SQ7 + 7th conversion in regular + sequence + 0 + 5 + + + + + SQR3 + SQR3 + regular sequence register 3 + 0x34 + 0x20 + read-write + 0x00000000 + + + SQ6 + 6th conversion in regular + sequence + 25 + 5 + + + SQ5 + 5th conversion in regular + sequence + 20 + 5 + + + SQ4 + 4th conversion in regular + sequence + 15 + 5 + + + SQ3 + 3rd conversion in regular + sequence + 10 + 5 + + + SQ2 + 2nd conversion in regular + sequence + 5 + 5 + + + SQ1 + 1st conversion in regular + sequence + 0 + 5 + + + + + JSQR + JSQR + injected sequence register + 0x38 + 0x20 + read-write + 0x00000000 + + + JL + Injected sequence length + 20 + 2 + + + JSQ4 + 4th conversion in injected + sequence + 15 + 5 + + + JSQ3 + 3rd conversion in injected + sequence + 10 + 5 + + + JSQ2 + 2nd conversion in injected + sequence + 5 + 5 + + + JSQ1 + 1st conversion in injected + sequence + 0 + 5 + + + + + JDR1 + JDR1 + injected data register x + 0x3C + 0x20 + read-only + 0x00000000 + + + JDATA + Injected data + 0 + 16 + + + + + JDR2 + JDR2 + injected data register x + 0x40 + 0x20 + read-only + 0x00000000 + + + JDATA + Injected data + 0 + 16 + + + + + JDR3 + JDR3 + injected data register x + 0x44 + 0x20 + read-only + 0x00000000 + + + JDATA + Injected data + 0 + 16 + + + + + JDR4 + JDR4 + injected data register x + 0x48 + 0x20 + read-only + 0x00000000 + + + JDATA + Injected data + 0 + 16 + + + + + DR + DR + regular data register + 0x4C + 0x20 + read-only + 0x00000000 + + + DATA + Regular data + 0 + 16 + + + + + + + CAN2 + Controller area network + CAN + 0x40006800 + + 0x0 + 0x400 + registers + + + CAN2_TX + CAN2 TX interrupts + 63 + + + CAN2_RX0 + CAN2 RX0 interrupts + 64 + + + CAN2_RX1 + CAN2 RX1 interrupts + 65 + + + CAN2_SCE + CAN2 SCE interrupt + 66 + + + + CAN_MCR + CAN_MCR + CAN_MCR + 0x0 + 0x20 + read-write + 0x00000000 + + + DBF + DBF + 16 + 1 + + + RESET + RESET + 15 + 1 + + + TTCM + TTCM + 7 + 1 + + + ABOM + ABOM + 6 + 1 + + + AWUM + AWUM + 5 + 1 + + + NART + NART + 4 + 1 + + + RFLM + RFLM + 3 + 1 + + + TXFP + TXFP + 2 + 1 + + + SLEEP + SLEEP + 1 + 1 + + + INRQ + INRQ + 0 + 1 + + + + + CAN_MSR + CAN_MSR + CAN_MSR + 0x4 + 0x20 + 0x00000000 + + + RX + RX + 11 + 1 + read-only + + + SAMP + SAMP + 10 + 1 + read-only + + + RXM + RXM + 9 + 1 + read-only + + + TXM + TXM + 8 + 1 + read-only + + + SLAKI + SLAKI + 4 + 1 + read-write + + + WKUI + WKUI + 3 + 1 + read-write + + + ERRI + ERRI + 2 + 1 + read-write + + + SLAK + SLAK + 1 + 1 + read-only + + + INAK + INAK + 0 + 1 + read-only + + + + + CAN_TSR + CAN_TSR + CAN_TSR + 0x8 + 0x20 + 0x00000000 + + + LOW2 + Lowest priority flag for mailbox + 2 + 31 + 1 + read-only + + + LOW1 + Lowest priority flag for mailbox + 1 + 30 + 1 + read-only + + + LOW0 + Lowest priority flag for mailbox + 0 + 29 + 1 + read-only + + + TME2 + Lowest priority flag for mailbox + 2 + 28 + 1 + read-only + + + TME1 + Lowest priority flag for mailbox + 1 + 27 + 1 + read-only + + + TME0 + Lowest priority flag for mailbox + 0 + 26 + 1 + read-only + + + CODE + CODE + 24 + 2 + read-only + + + ABRQ2 + ABRQ2 + 23 + 1 + read-write + + + TERR2 + TERR2 + 19 + 1 + read-write + + + ALST2 + ALST2 + 18 + 1 + read-write + + + TXOK2 + TXOK2 + 17 + 1 + read-write + + + RQCP2 + RQCP2 + 16 + 1 + read-write + + + ABRQ1 + ABRQ1 + 15 + 1 + read-write + + + TERR1 + TERR1 + 11 + 1 + read-write + + + ALST1 + ALST1 + 10 + 1 + read-write + + + TXOK1 + TXOK1 + 9 + 1 + read-write + + + RQCP1 + RQCP1 + 8 + 1 + read-write + + + ABRQ0 + ABRQ0 + 7 + 1 + read-write + + + TERR0 + TERR0 + 3 + 1 + read-write + + + ALST0 + ALST0 + 2 + 1 + read-write + + + TXOK0 + TXOK0 + 1 + 1 + read-write + + + RQCP0 + RQCP0 + 0 + 1 + read-write + + + + + CAN_RF0R + CAN_RF0R + CAN_RF0R + 0xC + 0x20 + 0x00000000 + + + RFOM0 + RFOM0 + 5 + 1 + read-write + + + FOVR0 + FOVR0 + 4 + 1 + read-write + + + FULL0 + FULL0 + 3 + 1 + read-write + + + FMP0 + FMP0 + 0 + 2 + read-only + + + + + CAN_RF1R + CAN_RF1R + CAN_RF1R + 0x10 + 0x20 + 0x00000000 + + + RFOM1 + RFOM1 + 5 + 1 + read-write + + + FOVR1 + FOVR1 + 4 + 1 + read-write + + + FULL1 + FULL1 + 3 + 1 + read-write + + + FMP1 + FMP1 + 0 + 2 + read-only + + + + + CAN_IER + CAN_IER + CAN_IER + 0x14 + 0x20 + read-write + 0x00000000 + + + SLKIE + SLKIE + 17 + 1 + + + WKUIE + WKUIE + 16 + 1 + + + ERRIE + ERRIE + 15 + 1 + + + LECIE + LECIE + 11 + 1 + + + BOFIE + BOFIE + 10 + 1 + + + EPVIE + EPVIE + 9 + 1 + + + EWGIE + EWGIE + 8 + 1 + + + FOVIE1 + FOVIE1 + 6 + 1 + + + FFIE1 + FFIE1 + 5 + 1 + + + FMPIE1 + FMPIE1 + 4 + 1 + + + FOVIE0 + FOVIE0 + 3 + 1 + + + FFIE0 + FFIE0 + 2 + 1 + + + FMPIE0 + FMPIE0 + 1 + 1 + + + TMEIE + TMEIE + 0 + 1 + + + + + CAN_ESR + CAN_ESR + CAN_ESR + 0x18 + 0x20 + 0x00000000 + + + REC + REC + 24 + 8 + read-only + + + TEC + TEC + 16 + 8 + read-only + + + LEC + LEC + 4 + 3 + read-write + + + BOFF + BOFF + 2 + 1 + read-only + + + EPVF + EPVF + 1 + 1 + read-only + + + EWGF + EWGF + 0 + 1 + read-only + + + + + CAN_BTR + CAN_BTR + CAN_BTR + 0x1C + 0x20 + read-write + 0x00000000 + + + SILM + SILM + 31 + 1 + + + LBKM + LBKM + 30 + 1 + + + SJW + SJW + 24 + 2 + + + TS2 + TS2 + 20 + 3 + + + TS1 + TS1 + 16 + 4 + + + BRP + BRP + 0 + 10 + + + + + CAN_TI0R + CAN_TI0R + CAN_TI0R + 0x180 + 0x20 + read-write + 0x00000000 + + + STID + STID + 21 + 11 + + + EXID + EXID + 3 + 18 + + + IDE + IDE + 2 + 1 + + + RTR + RTR + 1 + 1 + + + TXRQ + TXRQ + 0 + 1 + + + + + CAN_TDT0R + CAN_TDT0R + CAN_TDT0R + 0x184 + 0x20 + read-write + 0x00000000 + + + TIME + TIME + 16 + 16 + + + TGT + TGT + 8 + 1 + + + DLC + DLC + 0 + 4 + + + + + CAN_TDL0R + CAN_TDL0R + CAN_TDL0R + 0x188 + 0x20 + read-write + 0x00000000 + + + DATA3 + DATA3 + 24 + 8 + + + DATA2 + DATA2 + 16 + 8 + + + DATA1 + DATA1 + 8 + 8 + + + DATA0 + DATA0 + 0 + 8 + + + + + CAN_TDH0R + CAN_TDH0R + CAN_TDH0R + 0x18C + 0x20 + read-write + 0x00000000 + + + DATA7 + DATA7 + 24 + 8 + + + DATA6 + DATA6 + 16 + 8 + + + DATA5 + DATA5 + 8 + 8 + + + DATA4 + DATA4 + 0 + 8 + + + + + CAN_TI1R + CAN_TI1R + CAN_TI1R + 0x190 + 0x20 + read-write + 0x00000000 + + + STID + STID + 21 + 11 + + + EXID + EXID + 3 + 18 + + + IDE + IDE + 2 + 1 + + + RTR + RTR + 1 + 1 + + + TXRQ + TXRQ + 0 + 1 + + + + + CAN_TDT1R + CAN_TDT1R + CAN_TDT1R + 0x194 + 0x20 + read-write + 0x00000000 + + + TIME + TIME + 16 + 16 + + + TGT + TGT + 8 + 1 + + + DLC + DLC + 0 + 4 + + + + + CAN_TDL1R + CAN_TDL1R + CAN_TDL1R + 0x198 + 0x20 + read-write + 0x00000000 + + + DATA3 + DATA3 + 24 + 8 + + + DATA2 + DATA2 + 16 + 8 + + + DATA1 + DATA1 + 8 + 8 + + + DATA0 + DATA0 + 0 + 8 + + + + + CAN_TDH1R + CAN_TDH1R + CAN_TDH1R + 0x19C + 0x20 + read-write + 0x00000000 + + + DATA7 + DATA7 + 24 + 8 + + + DATA6 + DATA6 + 16 + 8 + + + DATA5 + DATA5 + 8 + 8 + + + DATA4 + DATA4 + 0 + 8 + + + + + CAN_TI2R + CAN_TI2R + CAN_TI2R + 0x1A0 + 0x20 + read-write + 0x00000000 + + + STID + STID + 21 + 11 + + + EXID + EXID + 3 + 18 + + + IDE + IDE + 2 + 1 + + + RTR + RTR + 1 + 1 + + + TXRQ + TXRQ + 0 + 1 + + + + + CAN_TDT2R + CAN_TDT2R + CAN_TDT2R + 0x1A4 + 0x20 + read-write + 0x00000000 + + + TIME + TIME + 16 + 16 + + + TGT + TGT + 8 + 1 + + + DLC + DLC + 0 + 4 + + + + + CAN_TDL2R + CAN_TDL2R + CAN_TDL2R + 0x1A8 + 0x20 + read-write + 0x00000000 + + + DATA3 + DATA3 + 24 + 8 + + + DATA2 + DATA2 + 16 + 8 + + + DATA1 + DATA1 + 8 + 8 + + + DATA0 + DATA0 + 0 + 8 + + + + + CAN_TDH2R + CAN_TDH2R + CAN_TDH2R + 0x1AC + 0x20 + read-write + 0x00000000 + + + DATA7 + DATA7 + 24 + 8 + + + DATA6 + DATA6 + 16 + 8 + + + DATA5 + DATA5 + 8 + 8 + + + DATA4 + DATA4 + 0 + 8 + + + + + CAN_RI0R + CAN_RI0R + CAN_RI0R + 0x1B0 + 0x20 + read-only + 0x00000000 + + + STID + STID + 21 + 11 + + + EXID + EXID + 3 + 18 + + + IDE + IDE + 2 + 1 + + + RTR + RTR + 1 + 1 + + + + + CAN_RDT0R + CAN_RDT0R + CAN_RDT0R + 0x1B4 + 0x20 + read-only + 0x00000000 + + + TIME + TIME + 16 + 16 + + + FMI + FMI + 8 + 8 + + + DLC + DLC + 0 + 4 + + + + + CAN_RDL0R + CAN_RDL0R + CAN_RDL0R + 0x1B8 + 0x20 + read-only + 0x00000000 + + + DATA3 + DATA3 + 24 + 8 + + + DATA2 + DATA2 + 16 + 8 + + + DATA1 + DATA1 + 8 + 8 + + + DATA0 + DATA0 + 0 + 8 + + + + + CAN_RDH0R + CAN_RDH0R + CAN_RDH0R + 0x1BC + 0x20 + read-only + 0x00000000 + + + DATA7 + DATA7 + 24 + 8 + + + DATA6 + DATA6 + 16 + 8 + + + DATA5 + DATA5 + 8 + 8 + + + DATA4 + DATA4 + 0 + 8 + + + + + CAN_RI1R + CAN_RI1R + CAN_RI1R + 0x1C0 + 0x20 + read-only + 0x00000000 + + + STID + STID + 21 + 11 + + + EXID + EXID + 3 + 18 + + + IDE + IDE + 2 + 1 + + + RTR + RTR + 1 + 1 + + + + + CAN_RDT1R + CAN_RDT1R + CAN_RDT1R + 0x1C4 + 0x20 + read-only + 0x00000000 + + + TIME + TIME + 16 + 16 + + + FMI + FMI + 8 + 8 + + + DLC + DLC + 0 + 4 + + + + + CAN_RDL1R + CAN_RDL1R + CAN_RDL1R + 0x1C8 + 0x20 + read-only + 0x00000000 + + + DATA3 + DATA3 + 24 + 8 + + + DATA2 + DATA2 + 16 + 8 + + + DATA1 + DATA1 + 8 + 8 + + + DATA0 + DATA0 + 0 + 8 + + + + + CAN_RDH1R + CAN_RDH1R + CAN_RDH1R + 0x1CC + 0x20 + read-only + 0x00000000 + + + DATA7 + DATA7 + 24 + 8 + + + DATA6 + DATA6 + 16 + 8 + + + DATA5 + DATA5 + 8 + 8 + + + DATA4 + DATA4 + 0 + 8 + + + + + + + CAN1 + Controller area network + CAN + 0x40006400 + + 0x0 + 0x400 + registers + + + CAN_RX1 + CAN RX1 interrupts + 21 + + + CAN_SCE + CAN SCE interrupt + 22 + + + + CAN_MCR + CAN_MCR + CAN_MCR + 0x0 + 0x20 + read-write + 0x00000000 + + + DBF + DBF + 16 + 1 + + + RESET + RESET + 15 + 1 + + + TTCM + TTCM + 7 + 1 + + + ABOM + ABOM + 6 + 1 + + + AWUM + AWUM + 5 + 1 + + + NART + NART + 4 + 1 + + + RFLM + RFLM + 3 + 1 + + + TXFP + TXFP + 2 + 1 + + + SLEEP + SLEEP + 1 + 1 + + + INRQ + INRQ + 0 + 1 + + + + + CAN_MSR + CAN_MSR + CAN_MSR + 0x4 + 0x20 + 0x00000000 + + + RX + RX + 11 + 1 + read-only + + + SAMP + SAMP + 10 + 1 + read-only + + + RXM + RXM + 9 + 1 + read-only + + + TXM + TXM + 8 + 1 + read-only + + + SLAKI + SLAKI + 4 + 1 + read-write + + + WKUI + WKUI + 3 + 1 + read-write + + + ERRI + ERRI + 2 + 1 + read-write + + + SLAK + SLAK + 1 + 1 + read-only + + + INAK + INAK + 0 + 1 + read-only + + + + + CAN_TSR + CAN_TSR + CAN_TSR + 0x8 + 0x20 + 0x00000000 + + + LOW2 + Lowest priority flag for mailbox + 2 + 31 + 1 + read-only + + + LOW1 + Lowest priority flag for mailbox + 1 + 30 + 1 + read-only + + + LOW0 + Lowest priority flag for mailbox + 0 + 29 + 1 + read-only + + + TME2 + Lowest priority flag for mailbox + 2 + 28 + 1 + read-only + + + TME1 + Lowest priority flag for mailbox + 1 + 27 + 1 + read-only + + + TME0 + Lowest priority flag for mailbox + 0 + 26 + 1 + read-only + + + CODE + CODE + 24 + 2 + read-only + + + ABRQ2 + ABRQ2 + 23 + 1 + read-write + + + TERR2 + TERR2 + 19 + 1 + read-write + + + ALST2 + ALST2 + 18 + 1 + read-write + + + TXOK2 + TXOK2 + 17 + 1 + read-write + + + RQCP2 + RQCP2 + 16 + 1 + read-write + + + ABRQ1 + ABRQ1 + 15 + 1 + read-write + + + TERR1 + TERR1 + 11 + 1 + read-write + + + ALST1 + ALST1 + 10 + 1 + read-write + + + TXOK1 + TXOK1 + 9 + 1 + read-write + + + RQCP1 + RQCP1 + 8 + 1 + read-write + + + ABRQ0 + ABRQ0 + 7 + 1 + read-write + + + TERR0 + TERR0 + 3 + 1 + read-write + + + ALST0 + ALST0 + 2 + 1 + read-write + + + TXOK0 + TXOK0 + 1 + 1 + read-write + + + RQCP0 + RQCP0 + 0 + 1 + read-write + + + + + CAN_RF0R + CAN_RF0R + CAN_RF0R + 0xC + 0x20 + 0x00000000 + + + RFOM0 + RFOM0 + 5 + 1 + read-write + + + FOVR0 + FOVR0 + 4 + 1 + read-write + + + FULL0 + FULL0 + 3 + 1 + read-write + + + FMP0 + FMP0 + 0 + 2 + read-only + + + + + CAN_RF1R + CAN_RF1R + CAN_RF1R + 0x10 + 0x20 + 0x00000000 + + + RFOM1 + RFOM1 + 5 + 1 + read-write + + + FOVR1 + FOVR1 + 4 + 1 + read-write + + + FULL1 + FULL1 + 3 + 1 + read-write + + + FMP1 + FMP1 + 0 + 2 + read-only + + + + + CAN_IER + CAN_IER + CAN_IER + 0x14 + 0x20 + read-write + 0x00000000 + + + SLKIE + SLKIE + 17 + 1 + + + WKUIE + WKUIE + 16 + 1 + + + ERRIE + ERRIE + 15 + 1 + + + LECIE + LECIE + 11 + 1 + + + BOFIE + BOFIE + 10 + 1 + + + EPVIE + EPVIE + 9 + 1 + + + EWGIE + EWGIE + 8 + 1 + + + FOVIE1 + FOVIE1 + 6 + 1 + + + FFIE1 + FFIE1 + 5 + 1 + + + FMPIE1 + FMPIE1 + 4 + 1 + + + FOVIE0 + FOVIE0 + 3 + 1 + + + FFIE0 + FFIE0 + 2 + 1 + + + FMPIE0 + FMPIE0 + 1 + 1 + + + TMEIE + TMEIE + 0 + 1 + + + + + CAN_ESR + CAN_ESR + CAN_ESR + 0x18 + 0x20 + 0x00000000 + + + REC + REC + 24 + 8 + read-only + + + TEC + TEC + 16 + 8 + read-only + + + LEC + LEC + 4 + 3 + read-write + + + BOFF + BOFF + 2 + 1 + read-only + + + EPVF + EPVF + 1 + 1 + read-only + + + EWGF + EWGF + 0 + 1 + read-only + + + + + CAN_BTR + CAN_BTR + CAN_BTR + 0x1C + 0x20 + read-write + 0x00000000 + + + SILM + SILM + 31 + 1 + + + LBKM + LBKM + 30 + 1 + + + SJW + SJW + 24 + 2 + + + TS2 + TS2 + 20 + 3 + + + TS1 + TS1 + 16 + 4 + + + BRP + BRP + 0 + 10 + + + + + CAN_TI0R + CAN_TI0R + CAN_TI0R + 0x180 + 0x20 + read-write + 0x00000000 + + + STID + STID + 21 + 11 + + + EXID + EXID + 3 + 18 + + + IDE + IDE + 2 + 1 + + + RTR + RTR + 1 + 1 + + + TXRQ + TXRQ + 0 + 1 + + + + + CAN_TDT0R + CAN_TDT0R + CAN_TDT0R + 0x184 + 0x20 + read-write + 0x00000000 + + + TIME + TIME + 16 + 16 + + + TGT + TGT + 8 + 1 + + + DLC + DLC + 0 + 4 + + + + + CAN_TDL0R + CAN_TDL0R + CAN_TDL0R + 0x188 + 0x20 + read-write + 0x00000000 + + + DATA3 + DATA3 + 24 + 8 + + + DATA2 + DATA2 + 16 + 8 + + + DATA1 + DATA1 + 8 + 8 + + + DATA0 + DATA0 + 0 + 8 + + + + + CAN_TDH0R + CAN_TDH0R + CAN_TDH0R + 0x18C + 0x20 + read-write + 0x00000000 + + + DATA7 + DATA7 + 24 + 8 + + + DATA6 + DATA6 + 16 + 8 + + + DATA5 + DATA5 + 8 + 8 + + + DATA4 + DATA4 + 0 + 8 + + + + + CAN_TI1R + CAN_TI1R + CAN_TI1R + 0x190 + 0x20 + read-write + 0x00000000 + + + STID + STID + 21 + 11 + + + EXID + EXID + 3 + 18 + + + IDE + IDE + 2 + 1 + + + RTR + RTR + 1 + 1 + + + TXRQ + TXRQ + 0 + 1 + + + + + CAN_TDT1R + CAN_TDT1R + CAN_TDT1R + 0x194 + 0x20 + read-write + 0x00000000 + + + TIME + TIME + 16 + 16 + + + TGT + TGT + 8 + 1 + + + DLC + DLC + 0 + 4 + + + + + CAN_TDL1R + CAN_TDL1R + CAN_TDL1R + 0x198 + 0x20 + read-write + 0x00000000 + + + DATA3 + DATA3 + 24 + 8 + + + DATA2 + DATA2 + 16 + 8 + + + DATA1 + DATA1 + 8 + 8 + + + DATA0 + DATA0 + 0 + 8 + + + + + CAN_TDH1R + CAN_TDH1R + CAN_TDH1R + 0x19C + 0x20 + read-write + 0x00000000 + + + DATA7 + DATA7 + 24 + 8 + + + DATA6 + DATA6 + 16 + 8 + + + DATA5 + DATA5 + 8 + 8 + + + DATA4 + DATA4 + 0 + 8 + + + + + CAN_TI2R + CAN_TI2R + CAN_TI2R + 0x1A0 + 0x20 + read-write + 0x00000000 + + + STID + STID + 21 + 11 + + + EXID + EXID + 3 + 18 + + + IDE + IDE + 2 + 1 + + + RTR + RTR + 1 + 1 + + + TXRQ + TXRQ + 0 + 1 + + + + + CAN_TDT2R + CAN_TDT2R + CAN_TDT2R + 0x1A4 + 0x20 + read-write + 0x00000000 + + + TIME + TIME + 16 + 16 + + + TGT + TGT + 8 + 1 + + + DLC + DLC + 0 + 4 + + + + + CAN_TDL2R + CAN_TDL2R + CAN_TDL2R + 0x1A8 + 0x20 + read-write + 0x00000000 + + + DATA3 + DATA3 + 24 + 8 + + + DATA2 + DATA2 + 16 + 8 + + + DATA1 + DATA1 + 8 + 8 + + + DATA0 + DATA0 + 0 + 8 + + + + + CAN_TDH2R + CAN_TDH2R + CAN_TDH2R + 0x1AC + 0x20 + read-write + 0x00000000 + + + DATA7 + DATA7 + 24 + 8 + + + DATA6 + DATA6 + 16 + 8 + + + DATA5 + DATA5 + 8 + 8 + + + DATA4 + DATA4 + 0 + 8 + + + + + CAN_RI0R + CAN_RI0R + CAN_RI0R + 0x1B0 + 0x20 + read-only + 0x00000000 + + + STID + STID + 21 + 11 + + + EXID + EXID + 3 + 18 + + + IDE + IDE + 2 + 1 + + + RTR + RTR + 1 + 1 + + + + + CAN_RDT0R + CAN_RDT0R + CAN_RDT0R + 0x1B4 + 0x20 + read-only + 0x00000000 + + + TIME + TIME + 16 + 16 + + + FMI + FMI + 8 + 8 + + + DLC + DLC + 0 + 4 + + + + + CAN_RDL0R + CAN_RDL0R + CAN_RDL0R + 0x1B8 + 0x20 + read-only + 0x00000000 + + + DATA3 + DATA3 + 24 + 8 + + + DATA2 + DATA2 + 16 + 8 + + + DATA1 + DATA1 + 8 + 8 + + + DATA0 + DATA0 + 0 + 8 + + + + + CAN_RDH0R + CAN_RDH0R + CAN_RDH0R + 0x1BC + 0x20 + read-only + 0x00000000 + + + DATA7 + DATA7 + 24 + 8 + + + DATA6 + DATA6 + 16 + 8 + + + DATA5 + DATA5 + 8 + 8 + + + DATA4 + DATA4 + 0 + 8 + + + + + CAN_RI1R + CAN_RI1R + CAN_RI1R + 0x1C0 + 0x20 + read-only + 0x00000000 + + + STID + STID + 21 + 11 + + + EXID + EXID + 3 + 18 + + + IDE + IDE + 2 + 1 + + + RTR + RTR + 1 + 1 + + + + + CAN_RDT1R + CAN_RDT1R + CAN_RDT1R + 0x1C4 + 0x20 + read-only + 0x00000000 + + + TIME + TIME + 16 + 16 + + + FMI + FMI + 8 + 8 + + + DLC + DLC + 0 + 4 + + + + + CAN_RDL1R + CAN_RDL1R + CAN_RDL1R + 0x1C8 + 0x20 + read-only + 0x00000000 + + + DATA3 + DATA3 + 24 + 8 + + + DATA2 + DATA2 + 16 + 8 + + + DATA1 + DATA1 + 8 + 8 + + + DATA0 + DATA0 + 0 + 8 + + + + + CAN_RDH1R + CAN_RDH1R + CAN_RDH1R + 0x1CC + 0x20 + read-only + 0x00000000 + + + DATA7 + DATA7 + 24 + 8 + + + DATA6 + DATA6 + 16 + 8 + + + DATA5 + DATA5 + 8 + 8 + + + DATA4 + DATA4 + 0 + 8 + + + + + CAN_FMR + CAN_FMR + CAN_FMR + 0x200 + 0x20 + read-write + 0x00000000 + + + CAN2SB + CAN2SB + 8 + 6 + + + FINIT + FINIT + 0 + 1 + + + + + CAN_FM1R + CAN_FM1R + CAN_FM1R + 0x204 + 0x20 + read-write + 0x00000000 + + + FBM0 + Filter mode + 0 + 1 + + + FBM1 + Filter mode + 1 + 1 + + + FBM2 + Filter mode + 2 + 1 + + + FBM3 + Filter mode + 3 + 1 + + + FBM4 + Filter mode + 4 + 1 + + + FBM5 + Filter mode + 5 + 1 + + + FBM6 + Filter mode + 6 + 1 + + + FBM7 + Filter mode + 7 + 1 + + + FBM8 + Filter mode + 8 + 1 + + + FBM9 + Filter mode + 9 + 1 + + + FBM10 + Filter mode + 10 + 1 + + + FBM11 + Filter mode + 11 + 1 + + + FBM12 + Filter mode + 12 + 1 + + + FBM13 + Filter mode + 13 + 1 + + + FBM14 + Filter mode + 14 + 1 + + + FBM15 + Filter mode + 15 + 1 + + + FBM16 + Filter mode + 16 + 1 + + + FBM17 + Filter mode + 17 + 1 + + + FBM18 + Filter mode + 18 + 1 + + + FBM19 + Filter mode + 19 + 1 + + + FBM20 + Filter mode + 20 + 1 + + + FBM21 + Filter mode + 21 + 1 + + + FBM22 + Filter mode + 22 + 1 + + + FBM23 + Filter mode + 23 + 1 + + + FBM24 + Filter mode + 24 + 1 + + + FBM25 + Filter mode + 25 + 1 + + + FBM26 + Filter mode + 26 + 1 + + + FBM27 + Filter mode + 27 + 1 + + + + + CAN_FS1R + CAN_FS1R + CAN_FS1R + 0x20C + 0x20 + read-write + 0x00000000 + + + FSC0 + Filter scale configuration + 0 + 1 + + + FSC1 + Filter scale configuration + 1 + 1 + + + FSC2 + Filter scale configuration + 2 + 1 + + + FSC3 + Filter scale configuration + 3 + 1 + + + FSC4 + Filter scale configuration + 4 + 1 + + + FSC5 + Filter scale configuration + 5 + 1 + + + FSC6 + Filter scale configuration + 6 + 1 + + + FSC7 + Filter scale configuration + 7 + 1 + + + FSC8 + Filter scale configuration + 8 + 1 + + + FSC9 + Filter scale configuration + 9 + 1 + + + FSC10 + Filter scale configuration + 10 + 1 + + + FSC11 + Filter scale configuration + 11 + 1 + + + FSC12 + Filter scale configuration + 12 + 1 + + + FSC13 + Filter scale configuration + 13 + 1 + + + FSC14 + Filter scale configuration + 14 + 1 + + + FSC15 + Filter scale configuration + 15 + 1 + + + FSC16 + Filter scale configuration + 16 + 1 + + + FSC17 + Filter scale configuration + 17 + 1 + + + FSC18 + Filter scale configuration + 18 + 1 + + + FSC19 + Filter scale configuration + 19 + 1 + + + FSC20 + Filter scale configuration + 20 + 1 + + + FSC21 + Filter scale configuration + 21 + 1 + + + FSC22 + Filter scale configuration + 22 + 1 + + + FSC23 + Filter scale configuration + 23 + 1 + + + FSC24 + Filter scale configuration + 24 + 1 + + + FSC25 + Filter scale configuration + 25 + 1 + + + FSC26 + Filter scale configuration + 26 + 1 + + + FSC27 + Filter scale configuration + 27 + 1 + + + + + CAN_FFA1R + CAN_FFA1R + CAN_FFA1R + 0x214 + 0x20 + read-write + 0x00000000 + + + FFA0 + Filter FIFO assignment for filter + 0 + 0 + 1 + + + FFA1 + Filter FIFO assignment for filter + 1 + 1 + 1 + + + FFA2 + Filter FIFO assignment for filter + 2 + 2 + 1 + + + FFA3 + Filter FIFO assignment for filter + 3 + 3 + 1 + + + FFA4 + Filter FIFO assignment for filter + 4 + 4 + 1 + + + FFA5 + Filter FIFO assignment for filter + 5 + 5 + 1 + + + FFA6 + Filter FIFO assignment for filter + 6 + 6 + 1 + + + FFA7 + Filter FIFO assignment for filter + 7 + 7 + 1 + + + FFA8 + Filter FIFO assignment for filter + 8 + 8 + 1 + + + FFA9 + Filter FIFO assignment for filter + 9 + 9 + 1 + + + FFA10 + Filter FIFO assignment for filter + 10 + 10 + 1 + + + FFA11 + Filter FIFO assignment for filter + 11 + 11 + 1 + + + FFA12 + Filter FIFO assignment for filter + 12 + 12 + 1 + + + FFA13 + Filter FIFO assignment for filter + 13 + 13 + 1 + + + FFA14 + Filter FIFO assignment for filter + 14 + 14 + 1 + + + FFA15 + Filter FIFO assignment for filter + 15 + 15 + 1 + + + FFA16 + Filter FIFO assignment for filter + 16 + 16 + 1 + + + FFA17 + Filter FIFO assignment for filter + 17 + 17 + 1 + + + FFA18 + Filter FIFO assignment for filter + 18 + 18 + 1 + + + FFA19 + Filter FIFO assignment for filter + 19 + 19 + 1 + + + FFA20 + Filter FIFO assignment for filter + 20 + 20 + 1 + + + FFA21 + Filter FIFO assignment for filter + 21 + 21 + 1 + + + FFA22 + Filter FIFO assignment for filter + 22 + 22 + 1 + + + FFA23 + Filter FIFO assignment for filter + 23 + 23 + 1 + + + FFA24 + Filter FIFO assignment for filter + 24 + 24 + 1 + + + FFA25 + Filter FIFO assignment for filter + 25 + 25 + 1 + + + FFA26 + Filter FIFO assignment for filter + 26 + 26 + 1 + + + FFA27 + Filter FIFO assignment for filter + 27 + 27 + 1 + + + + + CAN_FA1R + CAN_FA1R + CAN_FA1R + 0x21C + 0x20 + read-write + 0x00000000 + + + FACT0 + Filter active + 0 + 1 + + + FACT1 + Filter active + 1 + 1 + + + FACT2 + Filter active + 2 + 1 + + + FACT3 + Filter active + 3 + 1 + + + FACT4 + Filter active + 4 + 1 + + + FACT5 + Filter active + 5 + 1 + + + FACT6 + Filter active + 6 + 1 + + + FACT7 + Filter active + 7 + 1 + + + FACT8 + Filter active + 8 + 1 + + + FACT9 + Filter active + 9 + 1 + + + FACT10 + Filter active + 10 + 1 + + + FACT11 + Filter active + 11 + 1 + + + FACT12 + Filter active + 12 + 1 + + + FACT13 + Filter active + 13 + 1 + + + FACT14 + Filter active + 14 + 1 + + + FACT15 + Filter active + 15 + 1 + + + FACT16 + Filter active + 16 + 1 + + + FACT17 + Filter active + 17 + 1 + + + FACT18 + Filter active + 18 + 1 + + + FACT19 + Filter active + 19 + 1 + + + FACT20 + Filter active + 20 + 1 + + + FACT21 + Filter active + 21 + 1 + + + FACT22 + Filter active + 22 + 1 + + + FACT23 + Filter active + 23 + 1 + + + FACT24 + Filter active + 24 + 1 + + + FACT25 + Filter active + 25 + 1 + + + FACT26 + Filter active + 26 + 1 + + + FACT27 + Filter active + 27 + 1 + + + + + F0R1 + F0R1 + Filter bank 0 register 1 + 0x240 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F0R2 + F0R2 + Filter bank 0 register 2 + 0x244 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F1R1 + F1R1 + Filter bank 1 register 1 + 0x248 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F1R2 + F1R2 + Filter bank 1 register 2 + 0x24C + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F2R1 + F2R1 + Filter bank 2 register 1 + 0x250 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F2R2 + F2R2 + Filter bank 2 register 2 + 0x254 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F3R1 + F3R1 + Filter bank 3 register 1 + 0x258 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F3R2 + F3R2 + Filter bank 3 register 2 + 0x25C + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F4R1 + F4R1 + Filter bank 4 register 1 + 0x260 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F4R2 + F4R2 + Filter bank 4 register 2 + 0x264 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F5R1 + F5R1 + Filter bank 5 register 1 + 0x268 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F5R2 + F5R2 + Filter bank 5 register 2 + 0x26C + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F6R1 + F6R1 + Filter bank 6 register 1 + 0x270 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F6R2 + F6R2 + Filter bank 6 register 2 + 0x274 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F7R1 + F7R1 + Filter bank 7 register 1 + 0x278 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F7R2 + F7R2 + Filter bank 7 register 2 + 0x27C + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F8R1 + F8R1 + Filter bank 8 register 1 + 0x280 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F8R2 + F8R2 + Filter bank 8 register 2 + 0x284 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F9R1 + F9R1 + Filter bank 9 register 1 + 0x288 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F9R2 + F9R2 + Filter bank 9 register 2 + 0x28C + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F10R1 + F10R1 + Filter bank 10 register 1 + 0x290 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F10R2 + F10R2 + Filter bank 10 register 2 + 0x294 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F11R1 + F11R1 + Filter bank 11 register 1 + 0x298 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F11R2 + F11R2 + Filter bank 11 register 2 + 0x29C + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F12R1 + F12R1 + Filter bank 4 register 1 + 0x2A0 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F12R2 + F12R2 + Filter bank 12 register 2 + 0x2A4 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F13R1 + F13R1 + Filter bank 13 register 1 + 0x2A8 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F13R2 + F13R2 + Filter bank 13 register 2 + 0x2AC + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F14R1 + F14R1 + Filter bank 14 register 1 + 0x2B0 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F14R2 + F14R2 + Filter bank 14 register 2 + 0x2B4 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F15R1 + F15R1 + Filter bank 15 register 1 + 0x2B8 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F15R2 + F15R2 + Filter bank 15 register 2 + 0x2BC + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F16R1 + F16R1 + Filter bank 16 register 1 + 0x2C0 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F16R2 + F16R2 + Filter bank 16 register 2 + 0x2C4 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F17R1 + F17R1 + Filter bank 17 register 1 + 0x2C8 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F17R2 + F17R2 + Filter bank 17 register 2 + 0x2CC + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F18R1 + F18R1 + Filter bank 18 register 1 + 0x2D0 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F18R2 + F18R2 + Filter bank 18 register 2 + 0x2D4 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F19R1 + F19R1 + Filter bank 19 register 1 + 0x2D8 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F19R2 + F19R2 + Filter bank 19 register 2 + 0x2DC + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F20R1 + F20R1 + Filter bank 20 register 1 + 0x2E0 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F20R2 + F20R2 + Filter bank 20 register 2 + 0x2E4 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F21R1 + F21R1 + Filter bank 21 register 1 + 0x2E8 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F21R2 + F21R2 + Filter bank 21 register 2 + 0x2EC + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F22R1 + F22R1 + Filter bank 22 register 1 + 0x2F0 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F22R2 + F22R2 + Filter bank 22 register 2 + 0x2F4 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F23R1 + F23R1 + Filter bank 23 register 1 + 0x2F8 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F23R2 + F23R2 + Filter bank 23 register 2 + 0x2FC + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F24R1 + F24R1 + Filter bank 24 register 1 + 0x300 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F24R2 + F24R2 + Filter bank 24 register 2 + 0x304 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F25R1 + F25R1 + Filter bank 25 register 1 + 0x308 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F25R2 + F25R2 + Filter bank 25 register 2 + 0x30C + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F26R1 + F26R1 + Filter bank 26 register 1 + 0x310 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F26R2 + F26R2 + Filter bank 26 register 2 + 0x314 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F27R1 + F27R1 + Filter bank 27 register 1 + 0x318 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F27R2 + F27R2 + Filter bank 27 register 2 + 0x31C + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + + + ETHERNET_MAC + Ethernet: media access control + ETHERNET + 0x40028000 + + 0x0 + 0x61 + registers + + + ETH + Ethernet global interrupt + 61 + + + ETH_WKUP + Ethernet Wakeup through EXTI line + interrupt + 62 + + + + MACCR + MACCR + Ethernet MAC configuration register + (ETH_MACCR) + 0x0 + 0x20 + read-write + 0x00008000 + + + RE + Receiver enable + 2 + 1 + + + TE + Transmitter enable + 3 + 1 + + + DC + Deferral check + 4 + 1 + + + BL + Back-off limit + 5 + 2 + + + APCS + Automatic pad/CRC + stripping + 7 + 1 + + + RD + Retry disable + 9 + 1 + + + IPCO + IPv4 checksum offload + 10 + 1 + + + DM + Duplex mode + 11 + 1 + + + LM + Loopback mode + 12 + 1 + + + ROD + Receive own disable + 13 + 1 + + + FES + Fast Ethernet speed + 14 + 1 + + + CSD + Carrier sense disable + 16 + 1 + + + IFG + Interframe gap + 17 + 3 + + + JD + Jabber disable + 22 + 1 + + + WD + Watchdog disable + 23 + 1 + + + + + MACFFR + MACFFR + Ethernet MAC frame filter register + (ETH_MACCFFR) + 0x4 + 0x20 + read-write + 0x00000000 + + + PM + Promiscuous mode + 0 + 1 + + + HU + Hash unicast + 1 + 1 + + + HM + Hash multicast + 2 + 1 + + + DAIF + Destination address inverse + filtering + 3 + 1 + + + PAM + Pass all multicast + 4 + 1 + + + BFD + Broadcast frames disable + 5 + 1 + + + PCF + Pass control frames + 6 + 2 + + + SAIF + Source address inverse + filtering + 8 + 1 + + + SAF + Source address filter + 9 + 1 + + + HPF + Hash or perfect filter + 10 + 1 + + + RA + Receive all + 31 + 1 + + + + + MACHTHR + MACHTHR + Ethernet MAC hash table high + register + 0x8 + 0x20 + read-write + 0x00000000 + + + HTH + Hash table high + 0 + 32 + + + + + MACHTLR + MACHTLR + Ethernet MAC hash table low + register + 0xC + 0x20 + read-write + 0x00000000 + + + HTL + Hash table low + 0 + 32 + + + + + MACMIIAR + MACMIIAR + Ethernet MAC MII address register + (ETH_MACMIIAR) + 0x10 + 0x20 + read-write + 0x00000000 + + + MB + MII busy + 0 + 1 + + + MW + MII write + 1 + 1 + + + CR + Clock range + 2 + 3 + + + MR + MII register + 6 + 5 + + + PA + PHY address + 11 + 5 + + + + + MACMIIDR + MACMIIDR + Ethernet MAC MII data register + (ETH_MACMIIDR) + 0x14 + 0x20 + read-write + 0x00000000 + + + MD + MII data + 0 + 16 + + + + + MACFCR + MACFCR + Ethernet MAC flow control register + (ETH_MACFCR) + 0x18 + 0x20 + read-write + 0x00000000 + + + FCB_BPA + Flow control busy/back pressure + activate + 0 + 1 + + + TFCE + Transmit flow control + enable + 1 + 1 + + + RFCE + Receive flow control + enable + 2 + 1 + + + UPFD + Unicast pause frame detect + 3 + 1 + + + PLT + Pause low threshold + 4 + 2 + + + ZQPD + Zero-quanta pause disable + 7 + 1 + + + PT + Pass control frames + 16 + 16 + + + + + MACVLANTR + MACVLANTR + Ethernet MAC VLAN tag register + (ETH_MACVLANTR) + 0x1C + 0x20 + read-write + 0x00000000 + + + VLANTI + VLAN tag identifier (for receive + frames) + 0 + 16 + + + VLANTC + 12-bit VLAN tag comparison + 16 + 1 + + + + + MACRWUFFR + MACRWUFFR + Ethernet MAC remote wakeup frame filter + register (ETH_MACRWUFFR) + 0x28 + 0x20 + read-write + 0x00000000 + + + MACPMTCSR + MACPMTCSR + Ethernet MAC PMT control and status register + (ETH_MACPMTCSR) + 0x2C + 0x20 + read-write + 0x00000000 + + + PD + Power down + 0 + 1 + + + MPE + Magic Packet enable + 1 + 1 + + + WFE + Wakeup frame enable + 2 + 1 + + + MPR + Magic packet received + 5 + 1 + + + WFR + Wakeup frame received + 6 + 1 + + + GU + Global unicast + 9 + 1 + + + WFFRPR + Wakeup frame filter register pointer + reset + 31 + 1 + + + + + MACSR + MACSR + Ethernet MAC interrupt status register + (ETH_MACSR) + 0x38 + 0x20 + read-write + 0x00000000 + + + PMTS + PMT status + 3 + 1 + + + MMCS + MMC status + 4 + 1 + + + MMCRS + MMC receive status + 5 + 1 + + + MMCTS + MMC transmit status + 6 + 1 + + + TSTS + Time stamp trigger status + 9 + 1 + + + + + MACIMR + MACIMR + Ethernet MAC interrupt mask register + (ETH_MACIMR) + 0x3C + 0x20 + read-write + 0x00000000 + + + PMTIM + PMT interrupt mask + 3 + 1 + + + TSTIM + Time stamp trigger interrupt + mask + 9 + 1 + + + + + MACA0HR + MACA0HR + Ethernet MAC address 0 high register + (ETH_MACA0HR) + 0x40 + 0x20 + 0x0010FFFF + + + MACA0H + MAC address0 high + 0 + 16 + read-write + + + MO + Always 1 + 31 + 1 + read-only + + + + + MACA0LR + MACA0LR + Ethernet MAC address 0 low + register + 0x44 + 0x20 + read-write + 0xFFFFFFFF + + + MACA0L + MAC address0 low + 0 + 32 + + + + + MACA1HR + MACA1HR + Ethernet MAC address 1 high register + (ETH_MACA1HR) + 0x48 + 0x20 + read-write + 0x0000FFFF + + + MACA1H + MAC address1 high + 0 + 16 + + + MBC + Mask byte control + 24 + 6 + + + SA + Source address + 30 + 1 + + + AE + Address enable + 31 + 1 + + + + + MACA1LR + MACA1LR + Ethernet MAC address1 low + register + 0x4C + 0x20 + read-write + 0xFFFFFFFF + + + MACA1L + MAC address1 low + 0 + 32 + + + + + MACA2HR + MACA2HR + Ethernet MAC address 2 high register + (ETH_MACA2HR) + 0x50 + 0x20 + read-write + 0x0050 + + + ETH_MACA2HR + Ethernet MAC address 2 high + register + 0 + 16 + + + MBC + Mask byte control + 24 + 6 + + + SA + Source address + 30 + 1 + + + AE + Address enable + 31 + 1 + + + + + MACA2LR + MACA2LR + Ethernet MAC address 2 low + register + 0x54 + 0x20 + read-write + 0xFFFFFFFF + + + MACA2L + MAC address2 low + 0 + 31 + + + + + MACA3HR + MACA3HR + Ethernet MAC address 3 high register + (ETH_MACA3HR) + 0x58 + 0x20 + read-write + 0x0000FFFF + + + MACA3H + MAC address3 high + 0 + 16 + + + MBC + Mask byte control + 24 + 6 + + + SA + Source address + 30 + 1 + + + AE + Address enable + 31 + 1 + + + + + MACA3LR + MACA3LR + Ethernet MAC address 3 low + register + 0x5C + 0x20 + read-write + 0xFFFFFFFF + + + MBCA3L + MAC address3 low + 0 + 32 + + + + + + + ETHERNET_MMC + Ethernet: MAC management counters + ETHERNET + 0x40028100 + + 0x0 + 0x400 + registers + + + + MMCCR + MMCCR + Ethernet MMC control register + (ETH_MMCCR) + 0x0 + 0x20 + read-write + 0x00000000 + + + CR + Counter reset + 0 + 1 + + + CSR + Counter stop rollover + 1 + 1 + + + ROR + Reset on read + 2 + 1 + + + MCF + MMC counter freeze + 31 + 1 + + + + + MMCRIR + MMCRIR + Ethernet MMC receive interrupt register + (ETH_MMCRIR) + 0x4 + 0x20 + read-write + 0x00000000 + + + RFCES + Received frames CRC error + status + 5 + 1 + + + RFAES + Received frames alignment error + status + 6 + 1 + + + RGUFS + Received Good Unicast Frames + Status + 17 + 1 + + + + + MMCTIR + MMCTIR + Ethernet MMC transmit interrupt register + (ETH_MMCTIR) + 0x8 + 0x20 + read-write + 0x00000000 + + + TGFSCS + Transmitted good frames single collision + status + 14 + 1 + + + TGFMSCS + Transmitted good frames more single + collision status + 15 + 1 + + + TGFS + Transmitted good frames + status + 21 + 1 + + + + + MMCRIMR + MMCRIMR + Ethernet MMC receive interrupt mask register + (ETH_MMCRIMR) + 0xC + 0x20 + read-write + 0x00000000 + + + RFCEM + Received frame CRC error + mask + 5 + 1 + + + RFAEM + Received frames alignment error + mask + 6 + 1 + + + RGUFM + Received good unicast frames + mask + 17 + 1 + + + + + MMCTIMR + MMCTIMR + Ethernet MMC transmit interrupt mask + register (ETH_MMCTIMR) + 0x10 + 0x20 + read-write + 0x00000000 + + + TGFSCM + Transmitted good frames single collision + mask + 14 + 1 + + + TGFMSCM + Transmitted good frames more single + collision mask + 15 + 1 + + + TGFM + Transmitted good frames + mask + 21 + 1 + + + + + MMCTGFSCCR + MMCTGFSCCR + Ethernet MMC transmitted good frames after a + single collision counter + 0x4C + 0x20 + read-only + 0x00000000 + + + TGFSCC + Transmitted good frames after a single + collision counter + 0 + 32 + + + + + MMCTGFMSCCR + MMCTGFMSCCR + Ethernet MMC transmitted good frames after + more than a single collision + 0x50 + 0x20 + read-only + 0x00000000 + + + TGFMSCC + Transmitted good frames after more than + a single collision counter + 0 + 32 + + + + + MMCTGFCR + MMCTGFCR + Ethernet MMC transmitted good frames counter + register + 0x68 + 0x20 + read-only + 0x00000000 + + + TGFC + Transmitted good frames + counter + 0 + 32 + + + + + MMCRFCECR + MMCRFCECR + Ethernet MMC received frames with CRC error + counter register + 0x94 + 0x20 + read-only + 0x00000000 + + + RFCFC + Received frames with CRC error + counter + 0 + 32 + + + + + MMCRFAECR + MMCRFAECR + Ethernet MMC received frames with alignment + error counter register + 0x98 + 0x20 + read-only + 0x00000000 + + + RFAEC + Received frames with alignment error + counter + 0 + 32 + + + + + MMCRGUFCR + MMCRGUFCR + MMC received good unicast frames counter + register + 0xC4 + 0x20 + read-only + 0x00000000 + + + RGUFC + Received good unicast frames + counter + 0 + 32 + + + + + + + ETHERNET_PTP + Ethernet: Precision time protocol + ETHERNET + 0x40028700 + + 0x0 + 0x400 + registers + + + + PTPTSCR + PTPTSCR + Ethernet PTP time stamp control register + (ETH_PTPTSCR) + 0x0 + 0x20 + read-write + 0x00000000 + + + TSE + Time stamp enable + 0 + 1 + + + TSFCU + Time stamp fine or coarse + update + 1 + 1 + + + TSSTI + Time stamp system time + initialize + 2 + 1 + + + TSSTU + Time stamp system time + update + 3 + 1 + + + TSITE + Time stamp interrupt trigger + enable + 4 + 1 + + + TSARU + Time stamp addend register + update + 5 + 1 + + + + + PTPSSIR + PTPSSIR + Ethernet PTP subsecond increment + register + 0x4 + 0x20 + read-write + 0x00000000 + + + STSSI + System time subsecond + increment + 0 + 8 + + + + + PTPTSHR + PTPTSHR + Ethernet PTP time stamp high + register + 0x8 + 0x20 + read-only + 0x00000000 + + + STS + System time second + 0 + 32 + + + + + PTPTSLR + PTPTSLR + Ethernet PTP time stamp low register + (ETH_PTPTSLR) + 0xC + 0x20 + read-only + 0x00000000 + + + STSS + System time subseconds + 0 + 31 + + + STPNS + System time positive or negative + sign + 31 + 1 + + + + + PTPTSHUR + PTPTSHUR + Ethernet PTP time stamp high update + register + 0x10 + 0x20 + read-write + 0x00000000 + + + TSUS + Time stamp update second + 0 + 32 + + + + + PTPTSLUR + PTPTSLUR + Ethernet PTP time stamp low update register + (ETH_PTPTSLUR) + 0x14 + 0x20 + read-write + 0x00000000 + + + TSUSS + Time stamp update + subseconds + 0 + 31 + + + TSUPNS + Time stamp update positive or negative + sign + 31 + 1 + + + + + PTPTSAR + PTPTSAR + Ethernet PTP time stamp addend + register + 0x18 + 0x20 + read-write + 0x00000000 + + + TSA + Time stamp addend + 0 + 32 + + + + + PTPTTHR + PTPTTHR + Ethernet PTP target time high + register + 0x1C + 0x20 + read-write + 0x00000000 + + + TTSH + Target time stamp high + 0 + 32 + + + + + PTPTTLR + PTPTTLR + Ethernet PTP target time low + register + 0x20 + 0x20 + read-write + 0x00000000 + + + TTSL + Target time stamp low + 0 + 32 + + + + + + + ETHERNET_DMA + Ethernet: DMA controller operation + ETHERNET + 0x40029000 + + 0x0 + 0x400 + registers + + + + DMABMR + DMABMR + Ethernet DMA bus mode register + 0x0 + 0x20 + read-write + 0x20101 + + + SR + Software reset + 0 + 1 + + + DA + DMA Arbitration + 1 + 1 + + + DSL + Descriptor skip length + 2 + 5 + + + PBL + Programmable burst length + 8 + 6 + + + RTPR + Rx Tx priority ratio + 14 + 2 + + + FB + Fixed burst + 16 + 1 + + + RDP + Rx DMA PBL + 17 + 6 + + + USP + Use separate PBL + 23 + 1 + + + FPM + 4xPBL mode + 24 + 1 + + + AAB + Address-aligned beats + 25 + 1 + + + + + DMATPDR + DMATPDR + Ethernet DMA transmit poll demand + register + 0x4 + 0x20 + read-write + 0x00000000 + + + TPD + Transmit poll demand + 0 + 32 + + + + + DMARPDR + DMARPDR + EHERNET DMA receive poll demand + register + 0x8 + 0x20 + read-write + 0x00000000 + + + RPD + Receive poll demand + 0 + 32 + + + + + DMARDLAR + DMARDLAR + Ethernet DMA receive descriptor list address + register + 0xC + 0x20 + read-write + 0x00000000 + + + SRL + Start of receive list + 0 + 32 + + + + + DMATDLAR + DMATDLAR + Ethernet DMA transmit descriptor list + address register + 0x10 + 0x20 + read-write + 0x00000000 + + + STL + Start of transmit list + 0 + 32 + + + + + DMASR + DMASR + Ethernet DMA status register + 0x14 + 0x20 + 0x00000000 + + + TS + Transmit status + 0 + 1 + read-write + + + TPSS + Transmit process stopped + status + 1 + 1 + read-write + + + TBUS + Transmit buffer unavailable + status + 2 + 1 + read-write + + + TJTS + Transmit jabber timeout + status + 3 + 1 + read-write + + + ROS + Receive overflow status + 4 + 1 + read-write + + + TUS + Transmit underflow status + 5 + 1 + read-write + + + RS + Receive status + 6 + 1 + read-write + + + RBUS + Receive buffer unavailable + status + 7 + 1 + read-write + + + RPSS + Receive process stopped + status + 8 + 1 + read-write + + + PWTS + Receive watchdog timeout + status + 9 + 1 + read-write + + + ETS + Early transmit status + 10 + 1 + read-write + + + FBES + Fatal bus error status + 13 + 1 + read-write + + + ERS + Early receive status + 14 + 1 + read-write + + + AIS + Abnormal interrupt summary + 15 + 1 + read-write + + + NIS + Normal interrupt summary + 16 + 1 + read-write + + + RPS + Receive process state + 17 + 3 + read-only + + + TPS + Transmit process state + 20 + 3 + read-only + + + EBS + Error bits status + 23 + 3 + read-only + + + MMCS + MMC status + 27 + 1 + read-only + + + PMTS + PMT status + 28 + 1 + read-only + + + TSTS + Time stamp trigger status + 29 + 1 + read-only + + + + + DMAOMR + DMAOMR + Ethernet DMA operation mode + register + 0x18 + 0x20 + read-write + 0x00000000 + + + SR + SR + 1 + 1 + + + OSF + OSF + 2 + 1 + + + RTC + RTC + 3 + 2 + + + FUGF + FUGF + 6 + 1 + + + FEF + FEF + 7 + 1 + + + ST + ST + 13 + 1 + + + TTC + TTC + 14 + 3 + + + FTF + FTF + 20 + 1 + + + TSF + TSF + 21 + 1 + + + DFRF + DFRF + 24 + 1 + + + RSF + RSF + 25 + 1 + + + DTCEFD + DTCEFD + 26 + 1 + + + + + DMAIER + DMAIER + Ethernet DMA interrupt enable + register + 0x1C + 0x20 + read-write + 0x00000000 + + + TIE + Transmit interrupt enable + 0 + 1 + + + TPSIE + Transmit process stopped interrupt + enable + 1 + 1 + + + TBUIE + Transmit buffer unavailable interrupt + enable + 2 + 1 + + + TJTIE + Transmit jabber timeout interrupt + enable + 3 + 1 + + + ROIE + Overflow interrupt enable + 4 + 1 + + + TUIE + Underflow interrupt enable + 5 + 1 + + + RIE + Receive interrupt enable + 6 + 1 + + + RBUIE + Receive buffer unavailable interrupt + enable + 7 + 1 + + + RPSIE + Receive process stopped interrupt + enable + 8 + 1 + + + RWTIE + receive watchdog timeout interrupt + enable + 9 + 1 + + + ETIE + Early transmit interrupt + enable + 10 + 1 + + + FBEIE + Fatal bus error interrupt + enable + 13 + 1 + + + ERIE + Early receive interrupt + enable + 14 + 1 + + + AISE + Abnormal interrupt summary + enable + 15 + 1 + + + NISE + Normal interrupt summary + enable + 16 + 1 + + + + + DMAMFBOCR + DMAMFBOCR + Ethernet DMA missed frame and buffer + overflow counter register + 0x20 + 0x20 + read-only + 0x00000000 + + + MFC + Missed frames by the + controller + 0 + 16 + + + OMFC + Overflow bit for missed frame + counter + 16 + 1 + + + MFA + Missed frames by the + application + 17 + 11 + + + OFOC + Overflow bit for FIFO overflow + counter + 28 + 1 + + + + + DMACHTDR + DMACHTDR + Ethernet DMA current host transmit + descriptor register + 0x48 + 0x20 + read-only + 0x00000000 + + + HTDAP + Host transmit descriptor address + pointer + 0 + 32 + + + + + DMACHRDR + DMACHRDR + Ethernet DMA current host receive descriptor + register + 0x4C + 0x20 + read-only + 0x00000000 + + + HRDAP + Host receive descriptor address + pointer + 0 + 32 + + + + + DMACHTBAR + DMACHTBAR + Ethernet DMA current host transmit buffer + address register + 0x50 + 0x20 + read-only + 0x00000000 + + + HTBAP + Host transmit buffer address + pointer + 0 + 32 + + + + + DMACHRBAR + DMACHRBAR + Ethernet DMA current host receive buffer + address register + 0x54 + 0x20 + read-only + 0x00000000 + + + HRBAP + Host receive buffer address + pointer + 0 + 32 + + + + + + + USB_OTG_GLOBAL + USB on the go full speed + USB_OTG + 0x50000000 + + 0x0 + 0x400 + registers + + + OTG_FS + USB On The Go FS global + interrupt + 67 + + + + FS_GOTGCTL + FS_GOTGCTL + OTG_FS control and status register + (OTG_FS_GOTGCTL) + 0x0 + 0x20 + 0x00000800 + + + SRQSCS + Session request success + 0 + 1 + read-only + + + SRQ + Session request + 1 + 1 + read-write + + + HNGSCS + Host negotiation success + 8 + 1 + read-only + + + HNPRQ + HNP request + 9 + 1 + read-write + + + HSHNPEN + Host set HNP enable + 10 + 1 + read-write + + + DHNPEN + Device HNP enabled + 11 + 1 + read-write + + + CIDSTS + Connector ID status + 16 + 1 + read-only + + + DBCT + Long/short debounce time + 17 + 1 + read-only + + + ASVLD + A-session valid + 18 + 1 + read-only + + + BSVLD + B-session valid + 19 + 1 + read-only + + + + + FS_GOTGINT + FS_GOTGINT + OTG_FS interrupt register + (OTG_FS_GOTGINT) + 0x4 + 0x20 + read-write + 0x00000000 + + + SEDET + Session end detected + 2 + 1 + + + SRSSCHG + Session request success status + change + 8 + 1 + + + HNSSCHG + Host negotiation success status + change + 9 + 1 + + + HNGDET + Host negotiation detected + 17 + 1 + + + ADTOCHG + A-device timeout change + 18 + 1 + + + DBCDNE + Debounce done + 19 + 1 + + + + + FS_GAHBCFG + FS_GAHBCFG + OTG_FS AHB configuration register + (OTG_FS_GAHBCFG) + 0x8 + 0x20 + read-write + 0x00000000 + + + GINT + Global interrupt mask + 0 + 1 + + + TXFELVL + TxFIFO empty level + 7 + 1 + + + PTXFELVL + Periodic TxFIFO empty + level + 8 + 1 + + + + + FS_GUSBCFG + FS_GUSBCFG + OTG_FS USB configuration register + (OTG_FS_GUSBCFG) + 0xC + 0x20 + 0x00000A00 + + + TOCAL + FS timeout calibration + 0 + 3 + read-write + + + PHYSEL + Full Speed serial transceiver + select + 7 + 1 + write-only + + + SRPCAP + SRP-capable + 8 + 1 + read-write + + + HNPCAP + HNP-capable + 9 + 1 + read-write + + + TRDT + USB turnaround time + 10 + 4 + read-write + + + FHMOD + Force host mode + 29 + 1 + read-write + + + FDMOD + Force device mode + 30 + 1 + read-write + + + CTXPKT + Corrupt Tx packet + 31 + 1 + read-write + + + + + FS_GRSTCTL + FS_GRSTCTL + OTG_FS reset register + (OTG_FS_GRSTCTL) + 0x10 + 0x20 + 0x20000000 + + + CSRST + Core soft reset + 0 + 1 + read-write + + + HSRST + HCLK soft reset + 1 + 1 + read-write + + + FCRST + Host frame counter reset + 2 + 1 + read-write + + + RXFFLSH + RxFIFO flush + 4 + 1 + read-write + + + TXFFLSH + TxFIFO flush + 5 + 1 + read-write + + + TXFNUM + TxFIFO number + 6 + 5 + read-write + + + AHBIDL + AHB master idle + 31 + 1 + read-only + + + + + FS_GINTSTS + FS_GINTSTS + OTG_FS core interrupt register + (OTG_FS_GINTSTS) + 0x14 + 0x20 + 0x04000020 + + + CMOD + Current mode of operation + 0 + 1 + read-only + + + MMIS + Mode mismatch interrupt + 1 + 1 + read-write + + + OTGINT + OTG interrupt + 2 + 1 + read-only + + + SOF + Start of frame + 3 + 1 + read-write + + + RXFLVL + RxFIFO non-empty + 4 + 1 + read-only + + + NPTXFE + Non-periodic TxFIFO empty + 5 + 1 + read-only + + + GINAKEFF + Global IN non-periodic NAK + effective + 6 + 1 + read-only + + + GOUTNAKEFF + Global OUT NAK effective + 7 + 1 + read-only + + + ESUSP + Early suspend + 10 + 1 + read-write + + + USBSUSP + USB suspend + 11 + 1 + read-write + + + USBRST + USB reset + 12 + 1 + read-write + + + ENUMDNE + Enumeration done + 13 + 1 + read-write + + + ISOODRP + Isochronous OUT packet dropped + interrupt + 14 + 1 + read-write + + + EOPF + End of periodic frame + interrupt + 15 + 1 + read-write + + + IEPINT + IN endpoint interrupt + 18 + 1 + read-only + + + OEPINT + OUT endpoint interrupt + 19 + 1 + read-only + + + IISOIXFR + Incomplete isochronous IN + transfer + 20 + 1 + read-write + + + IPXFR_INCOMPISOOUT + Incomplete periodic transfer(Host + mode)/Incomplete isochronous OUT transfer(Device + mode) + 21 + 1 + read-write + + + HPRTINT + Host port interrupt + 24 + 1 + read-only + + + HCINT + Host channels interrupt + 25 + 1 + read-only + + + PTXFE + Periodic TxFIFO empty + 26 + 1 + read-only + + + CIDSCHG + Connector ID status change + 28 + 1 + read-write + + + DISCINT + Disconnect detected + interrupt + 29 + 1 + read-write + + + SRQINT + Session request/new session detected + interrupt + 30 + 1 + read-write + + + WKUPINT + Resume/remote wakeup detected + interrupt + 31 + 1 + read-write + + + + + FS_GINTMSK + FS_GINTMSK + OTG_FS interrupt mask register + (OTG_FS_GINTMSK) + 0x18 + 0x20 + 0x00000000 + + + MMISM + Mode mismatch interrupt + mask + 1 + 1 + read-write + + + OTGINT + OTG interrupt mask + 2 + 1 + read-write + + + SOFM + Start of frame mask + 3 + 1 + read-write + + + RXFLVLM + Receive FIFO non-empty + mask + 4 + 1 + read-write + + + NPTXFEM + Non-periodic TxFIFO empty + mask + 5 + 1 + read-write + + + GINAKEFFM + Global non-periodic IN NAK effective + mask + 6 + 1 + read-write + + + GONAKEFFM + Global OUT NAK effective + mask + 7 + 1 + read-write + + + ESUSPM + Early suspend mask + 10 + 1 + read-write + + + USBSUSPM + USB suspend mask + 11 + 1 + read-write + + + USBRST + USB reset mask + 12 + 1 + read-write + + + ENUMDNEM + Enumeration done mask + 13 + 1 + read-write + + + ISOODRPM + Isochronous OUT packet dropped interrupt + mask + 14 + 1 + read-write + + + EOPFM + End of periodic frame interrupt + mask + 15 + 1 + read-write + + + EPMISM + Endpoint mismatch interrupt + mask + 17 + 1 + read-write + + + IEPINT + IN endpoints interrupt + mask + 18 + 1 + read-write + + + OEPINT + OUT endpoints interrupt + mask + 19 + 1 + read-write + + + IISOIXFRM + Incomplete isochronous IN transfer + mask + 20 + 1 + read-write + + + IPXFRM_IISOOXFRM + Incomplete periodic transfer mask(Host + mode)/Incomplete isochronous OUT transfer mask(Device + mode) + 21 + 1 + read-write + + + PRTIM + Host port interrupt mask + 24 + 1 + read-only + + + HCIM + Host channels interrupt + mask + 25 + 1 + read-write + + + PTXFEM + Periodic TxFIFO empty mask + 26 + 1 + read-write + + + CIDSCHGM + Connector ID status change + mask + 28 + 1 + read-write + + + DISCINT + Disconnect detected interrupt + mask + 29 + 1 + read-write + + + SRQIM + Session request/new session detected + interrupt mask + 30 + 1 + read-write + + + WUIM + Resume/remote wakeup detected interrupt + mask + 31 + 1 + read-write + + + + + FS_GRXSTSR_Device + FS_GRXSTSR_Device + OTG_FS Receive status debug read(Device + mode) + 0x1C + 0x20 + read-only + 0x00000000 + + + EPNUM + Endpoint number + 0 + 4 + + + BCNT + Byte count + 4 + 11 + + + DPID + Data PID + 15 + 2 + + + PKTSTS + Packet status + 17 + 4 + + + FRMNUM + Frame number + 21 + 4 + + + + + FS_GRXSTSR_Host + FS_GRXSTSR_Host + OTG_FS Receive status debug read(Host + mode) + FS_GRXSTSR_Device + 0x1C + 0x20 + read-only + 0x00000000 + + + EPNUM + Endpoint number + 0 + 4 + + + BCNT + Byte count + 4 + 11 + + + DPID + Data PID + 15 + 2 + + + PKTSTS + Packet status + 17 + 4 + + + FRMNUM + Frame number + 21 + 4 + + + + + FS_GRXFSIZ + FS_GRXFSIZ + OTG_FS Receive FIFO size register + (OTG_FS_GRXFSIZ) + 0x24 + 0x20 + read-write + 0x00000200 + + + RXFD + RxFIFO depth + 0 + 16 + + + + + FS_GNPTXFSIZ_Device + FS_GNPTXFSIZ_Device + OTG_FS non-periodic transmit FIFO size + register (Device mode) + 0x28 + 0x20 + read-write + 0x00000200 + + + TX0FSA + Endpoint 0 transmit RAM start + address + 0 + 16 + + + TX0FD + Endpoint 0 TxFIFO depth + 16 + 16 + + + + + FS_GNPTXFSIZ_Host + FS_GNPTXFSIZ_Host + OTG_FS non-periodic transmit FIFO size + register (Host mode) + FS_GNPTXFSIZ_Device + 0x28 + 0x20 + read-write + 0x00000200 + + + NPTXFSA + Non-periodic transmit RAM start + address + 0 + 16 + + + NPTXFD + Non-periodic TxFIFO depth + 16 + 16 + + + + + FS_GNPTXSTS + FS_GNPTXSTS + OTG_FS non-periodic transmit FIFO/queue + status register (OTG_FS_GNPTXSTS) + 0x2C + 0x20 + read-only + 0x00080200 + + + NPTXFSAV + Non-periodic TxFIFO space + available + 0 + 16 + + + NPTQXSAV + Non-periodic transmit request queue + space available + 16 + 8 + + + NPTXQTOP + Top of the non-periodic transmit request + queue + 24 + 7 + + + + + FS_GCCFG + FS_GCCFG + OTG_FS general core configuration register + (OTG_FS_GCCFG) + 0x38 + 0x20 + read-write + 0x00000000 + + + PWRDWN + Power down + 16 + 1 + + + VBUSASEN + Enable the VBUS sensing + device + 18 + 1 + + + VBUSBSEN + Enable the VBUS sensing + device + 19 + 1 + + + SOFOUTEN + SOF output enable + 20 + 1 + + + + + FS_CID + FS_CID + core ID register + 0x3C + 0x20 + read-write + 0x00001000 + + + PRODUCT_ID + Product ID field + 0 + 32 + + + + + FS_HPTXFSIZ + FS_HPTXFSIZ + OTG_FS Host periodic transmit FIFO size + register (OTG_FS_HPTXFSIZ) + 0x100 + 0x20 + read-write + 0x02000600 + + + PTXSA + Host periodic TxFIFO start + address + 0 + 16 + + + PTXFSIZ + Host periodic TxFIFO depth + 16 + 16 + + + + + FS_DIEPTXF1 + FS_DIEPTXF1 + OTG_FS device IN endpoint transmit FIFO size + register (OTG_FS_DIEPTXF2) + 0x104 + 0x20 + read-write + 0x02000400 + + + INEPTXSA + IN endpoint FIFO2 transmit RAM start + address + 0 + 16 + + + INEPTXFD + IN endpoint TxFIFO depth + 16 + 16 + + + + + FS_DIEPTXF2 + FS_DIEPTXF2 + OTG_FS device IN endpoint transmit FIFO size + register (OTG_FS_DIEPTXF3) + 0x108 + 0x20 + read-write + 0x02000400 + + + INEPTXSA + IN endpoint FIFO3 transmit RAM start + address + 0 + 16 + + + INEPTXFD + IN endpoint TxFIFO depth + 16 + 16 + + + + + FS_DIEPTXF3 + FS_DIEPTXF3 + OTG_FS device IN endpoint transmit FIFO size + register (OTG_FS_DIEPTXF4) + 0x10C + 0x20 + read-write + 0x02000400 + + + INEPTXSA + IN endpoint FIFO4 transmit RAM start + address + 0 + 16 + + + INEPTXFD + IN endpoint TxFIFO depth + 16 + 16 + + + + + + + USB_OTG_HOST + USB on the go full speed + USB_OTG + 0x50000400 + + 0x0 + 0x400 + registers + + + + FS_HCFG + FS_HCFG + OTG_FS host configuration register + (OTG_FS_HCFG) + 0x0 + 0x20 + 0x00000000 + + + FSLSPCS + FS/LS PHY clock select + 0 + 2 + read-write + + + FSLSS + FS- and LS-only support + 2 + 1 + read-only + + + + + HFIR + HFIR + OTG_FS Host frame interval + register + 0x4 + 0x20 + read-write + 0x0000EA60 + + + FRIVL + Frame interval + 0 + 16 + + + + + FS_HFNUM + FS_HFNUM + OTG_FS host frame number/frame time + remaining register (OTG_FS_HFNUM) + 0x8 + 0x20 + read-only + 0x00003FFF + + + FRNUM + Frame number + 0 + 16 + + + FTREM + Frame time remaining + 16 + 16 + + + + + FS_HPTXSTS + FS_HPTXSTS + OTG_FS_Host periodic transmit FIFO/queue + status register (OTG_FS_HPTXSTS) + 0x10 + 0x20 + 0x00080100 + + + PTXFSAVL + Periodic transmit data FIFO space + available + 0 + 16 + read-write + + + PTXQSAV + Periodic transmit request queue space + available + 16 + 8 + read-only + + + PTXQTOP + Top of the periodic transmit request + queue + 24 + 8 + read-only + + + + + HAINT + HAINT + OTG_FS Host all channels interrupt + register + 0x14 + 0x20 + read-only + 0x00000000 + + + HAINT + Channel interrupts + 0 + 16 + + + + + HAINTMSK + HAINTMSK + OTG_FS host all channels interrupt mask + register + 0x18 + 0x20 + read-write + 0x00000000 + + + HAINTM + Channel interrupt mask + 0 + 16 + + + + + FS_HPRT + FS_HPRT + OTG_FS host port control and status register + (OTG_FS_HPRT) + 0x40 + 0x20 + 0x00000000 + + + PCSTS + Port connect status + 0 + 1 + read-only + + + PCDET + Port connect detected + 1 + 1 + read-write + + + PENA + Port enable + 2 + 1 + read-write + + + PENCHNG + Port enable/disable change + 3 + 1 + read-write + + + POCA + Port overcurrent active + 4 + 1 + read-only + + + POCCHNG + Port overcurrent change + 5 + 1 + read-write + + + PRES + Port resume + 6 + 1 + read-write + + + PSUSP + Port suspend + 7 + 1 + read-write + + + PRST + Port reset + 8 + 1 + read-write + + + PLSTS + Port line status + 10 + 2 + read-only + + + PPWR + Port power + 12 + 1 + read-write + + + PTCTL + Port test control + 13 + 4 + read-write + + + PSPD + Port speed + 17 + 2 + read-only + + + + + FS_HCCHAR0 + FS_HCCHAR0 + OTG_FS host channel-0 characteristics + register (OTG_FS_HCCHAR0) + 0x100 + 0x20 + read-write + 0x00000000 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multicount + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + FS_HCCHAR1 + FS_HCCHAR1 + OTG_FS host channel-1 characteristics + register (OTG_FS_HCCHAR1) + 0x120 + 0x20 + read-write + 0x00000000 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multicount + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + FS_HCCHAR2 + FS_HCCHAR2 + OTG_FS host channel-2 characteristics + register (OTG_FS_HCCHAR2) + 0x140 + 0x20 + read-write + 0x00000000 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multicount + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + FS_HCCHAR3 + FS_HCCHAR3 + OTG_FS host channel-3 characteristics + register (OTG_FS_HCCHAR3) + 0x160 + 0x20 + read-write + 0x00000000 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multicount + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + FS_HCCHAR4 + FS_HCCHAR4 + OTG_FS host channel-4 characteristics + register (OTG_FS_HCCHAR4) + 0x180 + 0x20 + read-write + 0x00000000 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multicount + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + FS_HCCHAR5 + FS_HCCHAR5 + OTG_FS host channel-5 characteristics + register (OTG_FS_HCCHAR5) + 0x1A0 + 0x20 + read-write + 0x00000000 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multicount + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + FS_HCCHAR6 + FS_HCCHAR6 + OTG_FS host channel-6 characteristics + register (OTG_FS_HCCHAR6) + 0x1C0 + 0x20 + read-write + 0x00000000 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multicount + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + FS_HCCHAR7 + FS_HCCHAR7 + OTG_FS host channel-7 characteristics + register (OTG_FS_HCCHAR7) + 0x1E0 + 0x20 + read-write + 0x00000000 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multicount + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + FS_HCINT0 + FS_HCINT0 + OTG_FS host channel-0 interrupt register + (OTG_FS_HCINT0) + 0x108 + 0x20 + read-write + 0x00000000 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + FS_HCINT1 + FS_HCINT1 + OTG_FS host channel-1 interrupt register + (OTG_FS_HCINT1) + 0x128 + 0x20 + read-write + 0x00000000 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + FS_HCINT2 + FS_HCINT2 + OTG_FS host channel-2 interrupt register + (OTG_FS_HCINT2) + 0x148 + 0x20 + read-write + 0x00000000 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + FS_HCINT3 + FS_HCINT3 + OTG_FS host channel-3 interrupt register + (OTG_FS_HCINT3) + 0x168 + 0x20 + read-write + 0x00000000 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + FS_HCINT4 + FS_HCINT4 + OTG_FS host channel-4 interrupt register + (OTG_FS_HCINT4) + 0x188 + 0x20 + read-write + 0x00000000 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + FS_HCINT5 + FS_HCINT5 + OTG_FS host channel-5 interrupt register + (OTG_FS_HCINT5) + 0x1A8 + 0x20 + read-write + 0x00000000 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + FS_HCINT6 + FS_HCINT6 + OTG_FS host channel-6 interrupt register + (OTG_FS_HCINT6) + 0x1C8 + 0x20 + read-write + 0x00000000 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + FS_HCINT7 + FS_HCINT7 + OTG_FS host channel-7 interrupt register + (OTG_FS_HCINT7) + 0x1E8 + 0x20 + read-write + 0x00000000 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + FS_HCINTMSK0 + FS_HCINTMSK0 + OTG_FS host channel-0 mask register + (OTG_FS_HCINTMSK0) + 0x10C + 0x20 + read-write + 0x00000000 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + FS_HCINTMSK1 + FS_HCINTMSK1 + OTG_FS host channel-1 mask register + (OTG_FS_HCINTMSK1) + 0x12C + 0x20 + read-write + 0x00000000 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + FS_HCINTMSK2 + FS_HCINTMSK2 + OTG_FS host channel-2 mask register + (OTG_FS_HCINTMSK2) + 0x14C + 0x20 + read-write + 0x00000000 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + FS_HCINTMSK3 + FS_HCINTMSK3 + OTG_FS host channel-3 mask register + (OTG_FS_HCINTMSK3) + 0x16C + 0x20 + read-write + 0x00000000 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + FS_HCINTMSK4 + FS_HCINTMSK4 + OTG_FS host channel-4 mask register + (OTG_FS_HCINTMSK4) + 0x18C + 0x20 + read-write + 0x00000000 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + FS_HCINTMSK5 + FS_HCINTMSK5 + OTG_FS host channel-5 mask register + (OTG_FS_HCINTMSK5) + 0x1AC + 0x20 + read-write + 0x00000000 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + FS_HCINTMSK6 + FS_HCINTMSK6 + OTG_FS host channel-6 mask register + (OTG_FS_HCINTMSK6) + 0x1CC + 0x20 + read-write + 0x00000000 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + FS_HCINTMSK7 + FS_HCINTMSK7 + OTG_FS host channel-7 mask register + (OTG_FS_HCINTMSK7) + 0x1EC + 0x20 + read-write + 0x00000000 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + FS_HCTSIZ0 + FS_HCTSIZ0 + OTG_FS host channel-0 transfer size + register + 0x110 + 0x20 + read-write + 0x00000000 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + FS_HCTSIZ1 + FS_HCTSIZ1 + OTG_FS host channel-1 transfer size + register + 0x130 + 0x20 + read-write + 0x00000000 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + FS_HCTSIZ2 + FS_HCTSIZ2 + OTG_FS host channel-2 transfer size + register + 0x150 + 0x20 + read-write + 0x00000000 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + FS_HCTSIZ3 + FS_HCTSIZ3 + OTG_FS host channel-3 transfer size + register + 0x170 + 0x20 + read-write + 0x00000000 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + FS_HCTSIZ4 + FS_HCTSIZ4 + OTG_FS host channel-x transfer size + register + 0x190 + 0x20 + read-write + 0x00000000 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + FS_HCTSIZ5 + FS_HCTSIZ5 + OTG_FS host channel-5 transfer size + register + 0x1B0 + 0x20 + read-write + 0x00000000 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + FS_HCTSIZ6 + FS_HCTSIZ6 + OTG_FS host channel-6 transfer size + register + 0x1D0 + 0x20 + read-write + 0x00000000 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + FS_HCTSIZ7 + FS_HCTSIZ7 + OTG_FS host channel-7 transfer size + register + 0x1F0 + 0x20 + read-write + 0x00000000 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + + + USB_OTG_DEVICE + USB on the go full speed + USB_OTG + 0x50000800 + + 0x0 + 0x400 + registers + + + + FS_DCFG + FS_DCFG + OTG_FS device configuration register + (OTG_FS_DCFG) + 0x0 + 0x20 + read-write + 0x02200000 + + + DSPD + Device speed + 0 + 2 + + + NZLSOHSK + Non-zero-length status OUT + handshake + 2 + 1 + + + DAD + Device address + 4 + 7 + + + PFIVL + Periodic frame interval + 11 + 2 + + + + + FS_DCTL + FS_DCTL + OTG_FS device control register + (OTG_FS_DCTL) + 0x4 + 0x20 + 0x00000000 + + + RWUSIG + Remote wakeup signaling + 0 + 1 + read-write + + + SDIS + Soft disconnect + 1 + 1 + read-write + + + GINSTS + Global IN NAK status + 2 + 1 + read-only + + + GONSTS + Global OUT NAK status + 3 + 1 + read-only + + + TCTL + Test control + 4 + 3 + read-write + + + SGINAK + Set global IN NAK + 7 + 1 + read-write + + + CGINAK + Clear global IN NAK + 8 + 1 + read-write + + + SGONAK + Set global OUT NAK + 9 + 1 + read-write + + + CGONAK + Clear global OUT NAK + 10 + 1 + read-write + + + POPRGDNE + Power-on programming done + 11 + 1 + read-write + + + + + FS_DSTS + FS_DSTS + OTG_FS device status register + (OTG_FS_DSTS) + 0x8 + 0x20 + read-only + 0x00000010 + + + SUSPSTS + Suspend status + 0 + 1 + + + ENUMSPD + Enumerated speed + 1 + 2 + + + EERR + Erratic error + 3 + 1 + + + FNSOF + Frame number of the received + SOF + 8 + 14 + + + + + FS_DIEPMSK + FS_DIEPMSK + OTG_FS device IN endpoint common interrupt + mask register (OTG_FS_DIEPMSK) + 0x10 + 0x20 + read-write + 0x00000000 + + + XFRCM + Transfer completed interrupt + mask + 0 + 1 + + + EPDM + Endpoint disabled interrupt + mask + 1 + 1 + + + TOM + Timeout condition mask (Non-isochronous + endpoints) + 3 + 1 + + + ITTXFEMSK + IN token received when TxFIFO empty + mask + 4 + 1 + + + INEPNMM + IN token received with EP mismatch + mask + 5 + 1 + + + INEPNEM + IN endpoint NAK effective + mask + 6 + 1 + + + + + FS_DOEPMSK + FS_DOEPMSK + OTG_FS device OUT endpoint common interrupt + mask register (OTG_FS_DOEPMSK) + 0x14 + 0x20 + read-write + 0x00000000 + + + XFRCM + Transfer completed interrupt + mask + 0 + 1 + + + EPDM + Endpoint disabled interrupt + mask + 1 + 1 + + + STUPM + SETUP phase done mask + 3 + 1 + + + OTEPDM + OUT token received when endpoint + disabled mask + 4 + 1 + + + + + FS_DAINT + FS_DAINT + OTG_FS device all endpoints interrupt + register (OTG_FS_DAINT) + 0x18 + 0x20 + read-only + 0x00000000 + + + IEPINT + IN endpoint interrupt bits + 0 + 16 + + + OEPINT + OUT endpoint interrupt + bits + 16 + 16 + + + + + FS_DAINTMSK + FS_DAINTMSK + OTG_FS all endpoints interrupt mask register + (OTG_FS_DAINTMSK) + 0x1C + 0x20 + read-write + 0x00000000 + + + IEPM + IN EP interrupt mask bits + 0 + 16 + + + OEPINT + OUT endpoint interrupt + bits + 16 + 16 + + + + + DVBUSDIS + DVBUSDIS + OTG_FS device VBUS discharge time + register + 0x28 + 0x20 + read-write + 0x000017D7 + + + VBUSDT + Device VBUS discharge time + 0 + 16 + + + + + DVBUSPULSE + DVBUSPULSE + OTG_FS device VBUS pulsing time + register + 0x2C + 0x20 + read-write + 0x000005B8 + + + DVBUSP + Device VBUS pulsing time + 0 + 12 + + + + + DIEPEMPMSK + DIEPEMPMSK + OTG_FS device IN endpoint FIFO empty + interrupt mask register + 0x34 + 0x20 + read-write + 0x00000000 + + + INEPTXFEM + IN EP Tx FIFO empty interrupt mask + bits + 0 + 16 + + + + + FS_DIEPCTL0 + FS_DIEPCTL0 + OTG_FS device control IN endpoint 0 control + register (OTG_FS_DIEPCTL0) + 0x100 + 0x20 + 0x00000000 + + + MPSIZ + Maximum packet size + 0 + 2 + read-write + + + USBAEP + USB active endpoint + 15 + 1 + read-only + + + NAKSTS + NAK status + 17 + 1 + read-only + + + EPTYP + Endpoint type + 18 + 2 + read-only + + + STALL + STALL handshake + 21 + 1 + read-write + + + TXFNUM + TxFIFO number + 22 + 4 + read-write + + + CNAK + Clear NAK + 26 + 1 + write-only + + + SNAK + Set NAK + 27 + 1 + write-only + + + EPDIS + Endpoint disable + 30 + 1 + read-only + + + EPENA + Endpoint enable + 31 + 1 + read-only + + + + + DIEPCTL1 + DIEPCTL1 + OTG device endpoint-1 control + register + 0x120 + 0x20 + 0x00000000 + + + EPENA + EPENA + 31 + 1 + read-write + + + EPDIS + EPDIS + 30 + 1 + read-write + + + SODDFRM_SD1PID + SODDFRM/SD1PID + 29 + 1 + write-only + + + SD0PID_SEVNFRM + SD0PID/SEVNFRM + 28 + 1 + write-only + + + SNAK + SNAK + 27 + 1 + write-only + + + CNAK + CNAK + 26 + 1 + write-only + + + TXFNUM + TXFNUM + 22 + 4 + read-write + + + Stall + Stall + 21 + 1 + read-write + + + EPTYP + EPTYP + 18 + 2 + read-write + + + NAKSTS + NAKSTS + 17 + 1 + read-only + + + EONUM_DPID + EONUM/DPID + 16 + 1 + read-only + + + USBAEP + USBAEP + 15 + 1 + read-write + + + MPSIZ + MPSIZ + 0 + 11 + read-write + + + + + DIEPCTL2 + DIEPCTL2 + OTG device endpoint-2 control + register + 0x140 + 0x20 + 0x00000000 + + + EPENA + EPENA + 31 + 1 + read-write + + + EPDIS + EPDIS + 30 + 1 + read-write + + + SODDFRM + SODDFRM + 29 + 1 + write-only + + + SD0PID_SEVNFRM + SD0PID/SEVNFRM + 28 + 1 + write-only + + + SNAK + SNAK + 27 + 1 + write-only + + + CNAK + CNAK + 26 + 1 + write-only + + + TXFNUM + TXFNUM + 22 + 4 + read-write + + + Stall + Stall + 21 + 1 + read-write + + + EPTYP + EPTYP + 18 + 2 + read-write + + + NAKSTS + NAKSTS + 17 + 1 + read-only + + + EONUM_DPID + EONUM/DPID + 16 + 1 + read-only + + + USBAEP + USBAEP + 15 + 1 + read-write + + + MPSIZ + MPSIZ + 0 + 11 + read-write + + + + + DIEPCTL3 + DIEPCTL3 + OTG device endpoint-3 control + register + 0x160 + 0x20 + 0x00000000 + + + EPENA + EPENA + 31 + 1 + read-write + + + EPDIS + EPDIS + 30 + 1 + read-write + + + SODDFRM + SODDFRM + 29 + 1 + write-only + + + SD0PID_SEVNFRM + SD0PID/SEVNFRM + 28 + 1 + write-only + + + SNAK + SNAK + 27 + 1 + write-only + + + CNAK + CNAK + 26 + 1 + write-only + + + TXFNUM + TXFNUM + 22 + 4 + read-write + + + Stall + Stall + 21 + 1 + read-write + + + EPTYP + EPTYP + 18 + 2 + read-write + + + NAKSTS + NAKSTS + 17 + 1 + read-only + + + EONUM_DPID + EONUM/DPID + 16 + 1 + read-only + + + USBAEP + USBAEP + 15 + 1 + read-write + + + MPSIZ + MPSIZ + 0 + 11 + read-write + + + + + DOEPCTL0 + DOEPCTL0 + device endpoint-0 control + register + 0x300 + 0x20 + 0x00008000 + + + EPENA + EPENA + 31 + 1 + write-only + + + EPDIS + EPDIS + 30 + 1 + read-only + + + SNAK + SNAK + 27 + 1 + write-only + + + CNAK + CNAK + 26 + 1 + write-only + + + Stall + Stall + 21 + 1 + read-write + + + SNPM + SNPM + 20 + 1 + read-write + + + EPTYP + EPTYP + 18 + 2 + read-only + + + NAKSTS + NAKSTS + 17 + 1 + read-only + + + USBAEP + USBAEP + 15 + 1 + read-only + + + MPSIZ + MPSIZ + 0 + 2 + read-only + + + + + DOEPCTL1 + DOEPCTL1 + device endpoint-1 control + register + 0x320 + 0x20 + 0x00000000 + + + EPENA + EPENA + 31 + 1 + read-write + + + EPDIS + EPDIS + 30 + 1 + read-write + + + SODDFRM + SODDFRM + 29 + 1 + write-only + + + SD0PID_SEVNFRM + SD0PID/SEVNFRM + 28 + 1 + write-only + + + SNAK + SNAK + 27 + 1 + write-only + + + CNAK + CNAK + 26 + 1 + write-only + + + Stall + Stall + 21 + 1 + read-write + + + SNPM + SNPM + 20 + 1 + read-write + + + EPTYP + EPTYP + 18 + 2 + read-write + + + NAKSTS + NAKSTS + 17 + 1 + read-only + + + EONUM_DPID + EONUM/DPID + 16 + 1 + read-only + + + USBAEP + USBAEP + 15 + 1 + read-write + + + MPSIZ + MPSIZ + 0 + 11 + read-write + + + + + DOEPCTL2 + DOEPCTL2 + device endpoint-2 control + register + 0x340 + 0x20 + 0x00000000 + + + EPENA + EPENA + 31 + 1 + read-write + + + EPDIS + EPDIS + 30 + 1 + read-write + + + SODDFRM + SODDFRM + 29 + 1 + write-only + + + SD0PID_SEVNFRM + SD0PID/SEVNFRM + 28 + 1 + write-only + + + SNAK + SNAK + 27 + 1 + write-only + + + CNAK + CNAK + 26 + 1 + write-only + + + Stall + Stall + 21 + 1 + read-write + + + SNPM + SNPM + 20 + 1 + read-write + + + EPTYP + EPTYP + 18 + 2 + read-write + + + NAKSTS + NAKSTS + 17 + 1 + read-only + + + EONUM_DPID + EONUM/DPID + 16 + 1 + read-only + + + USBAEP + USBAEP + 15 + 1 + read-write + + + MPSIZ + MPSIZ + 0 + 11 + read-write + + + + + DOEPCTL3 + DOEPCTL3 + device endpoint-3 control + register + 0x360 + 0x20 + 0x00000000 + + + EPENA + EPENA + 31 + 1 + read-write + + + EPDIS + EPDIS + 30 + 1 + read-write + + + SODDFRM + SODDFRM + 29 + 1 + write-only + + + SD0PID_SEVNFRM + SD0PID/SEVNFRM + 28 + 1 + write-only + + + SNAK + SNAK + 27 + 1 + write-only + + + CNAK + CNAK + 26 + 1 + write-only + + + Stall + Stall + 21 + 1 + read-write + + + SNPM + SNPM + 20 + 1 + read-write + + + EPTYP + EPTYP + 18 + 2 + read-write + + + NAKSTS + NAKSTS + 17 + 1 + read-only + + + EONUM_DPID + EONUM/DPID + 16 + 1 + read-only + + + USBAEP + USBAEP + 15 + 1 + read-write + + + MPSIZ + MPSIZ + 0 + 11 + read-write + + + + + DIEPINT0 + DIEPINT0 + device endpoint-x interrupt + register + 0x108 + 0x20 + 0x00000080 + + + TXFE + TXFE + 7 + 1 + read-only + + + INEPNE + INEPNE + 6 + 1 + read-write + + + ITTXFE + ITTXFE + 4 + 1 + read-write + + + TOC + TOC + 3 + 1 + read-write + + + EPDISD + EPDISD + 1 + 1 + read-write + + + XFRC + XFRC + 0 + 1 + read-write + + + + + DIEPINT1 + DIEPINT1 + device endpoint-1 interrupt + register + 0x128 + 0x20 + 0x00000080 + + + TXFE + TXFE + 7 + 1 + read-only + + + INEPNE + INEPNE + 6 + 1 + read-write + + + ITTXFE + ITTXFE + 4 + 1 + read-write + + + TOC + TOC + 3 + 1 + read-write + + + EPDISD + EPDISD + 1 + 1 + read-write + + + XFRC + XFRC + 0 + 1 + read-write + + + + + DIEPINT2 + DIEPINT2 + device endpoint-2 interrupt + register + 0x148 + 0x20 + 0x00000080 + + + TXFE + TXFE + 7 + 1 + read-only + + + INEPNE + INEPNE + 6 + 1 + read-write + + + ITTXFE + ITTXFE + 4 + 1 + read-write + + + TOC + TOC + 3 + 1 + read-write + + + EPDISD + EPDISD + 1 + 1 + read-write + + + XFRC + XFRC + 0 + 1 + read-write + + + + + DIEPINT3 + DIEPINT3 + device endpoint-3 interrupt + register + 0x168 + 0x20 + 0x00000080 + + + TXFE + TXFE + 7 + 1 + read-only + + + INEPNE + INEPNE + 6 + 1 + read-write + + + ITTXFE + ITTXFE + 4 + 1 + read-write + + + TOC + TOC + 3 + 1 + read-write + + + EPDISD + EPDISD + 1 + 1 + read-write + + + XFRC + XFRC + 0 + 1 + read-write + + + + + DOEPINT0 + DOEPINT0 + device endpoint-0 interrupt + register + 0x308 + 0x20 + read-write + 0x00000080 + + + B2BSTUP + B2BSTUP + 6 + 1 + + + OTEPDIS + OTEPDIS + 4 + 1 + + + STUP + STUP + 3 + 1 + + + EPDISD + EPDISD + 1 + 1 + + + XFRC + XFRC + 0 + 1 + + + + + DOEPINT1 + DOEPINT1 + device endpoint-1 interrupt + register + 0x328 + 0x20 + read-write + 0x00000080 + + + B2BSTUP + B2BSTUP + 6 + 1 + + + OTEPDIS + OTEPDIS + 4 + 1 + + + STUP + STUP + 3 + 1 + + + EPDISD + EPDISD + 1 + 1 + + + XFRC + XFRC + 0 + 1 + + + + + DOEPINT2 + DOEPINT2 + device endpoint-2 interrupt + register + 0x348 + 0x20 + read-write + 0x00000080 + + + B2BSTUP + B2BSTUP + 6 + 1 + + + OTEPDIS + OTEPDIS + 4 + 1 + + + STUP + STUP + 3 + 1 + + + EPDISD + EPDISD + 1 + 1 + + + XFRC + XFRC + 0 + 1 + + + + + DOEPINT3 + DOEPINT3 + device endpoint-3 interrupt + register + 0x368 + 0x20 + read-write + 0x00000080 + + + B2BSTUP + B2BSTUP + 6 + 1 + + + OTEPDIS + OTEPDIS + 4 + 1 + + + STUP + STUP + 3 + 1 + + + EPDISD + EPDISD + 1 + 1 + + + XFRC + XFRC + 0 + 1 + + + + + DIEPTSIZ0 + DIEPTSIZ0 + device endpoint-0 transfer size + register + 0x110 + 0x20 + read-write + 0x00000000 + + + PKTCNT + Packet count + 19 + 2 + + + XFRSIZ + Transfer size + 0 + 7 + + + + + DOEPTSIZ0 + DOEPTSIZ0 + device OUT endpoint-0 transfer size + register + 0x310 + 0x20 + read-write + 0x00000000 + + + STUPCNT + SETUP packet count + 29 + 2 + + + PKTCNT + Packet count + 19 + 1 + + + XFRSIZ + Transfer size + 0 + 7 + + + + + DIEPTSIZ1 + DIEPTSIZ1 + device endpoint-1 transfer size + register + 0x130 + 0x20 + read-write + 0x00000000 + + + MCNT + Multi count + 29 + 2 + + + PKTCNT + Packet count + 19 + 10 + + + XFRSIZ + Transfer size + 0 + 19 + + + + + DIEPTSIZ2 + DIEPTSIZ2 + device endpoint-2 transfer size + register + 0x150 + 0x20 + read-write + 0x00000000 + + + MCNT + Multi count + 29 + 2 + + + PKTCNT + Packet count + 19 + 10 + + + XFRSIZ + Transfer size + 0 + 19 + + + + + DIEPTSIZ3 + DIEPTSIZ3 + device endpoint-3 transfer size + register + 0x170 + 0x20 + read-write + 0x00000000 + + + MCNT + Multi count + 29 + 2 + + + PKTCNT + Packet count + 19 + 10 + + + XFRSIZ + Transfer size + 0 + 19 + + + + + DTXFSTS0 + DTXFSTS0 + OTG_FS device IN endpoint transmit FIFO + status register + 0x118 + 0x20 + read-only + 0x00000000 + + + INEPTFSAV + IN endpoint TxFIFO space + available + 0 + 16 + + + + + DTXFSTS1 + DTXFSTS1 + OTG_FS device IN endpoint transmit FIFO + status register + 0x138 + 0x20 + read-only + 0x00000000 + + + INEPTFSAV + IN endpoint TxFIFO space + available + 0 + 16 + + + + + DTXFSTS2 + DTXFSTS2 + OTG_FS device IN endpoint transmit FIFO + status register + 0x158 + 0x20 + read-only + 0x00000000 + + + INEPTFSAV + IN endpoint TxFIFO space + available + 0 + 16 + + + + + DTXFSTS3 + DTXFSTS3 + OTG_FS device IN endpoint transmit FIFO + status register + 0x178 + 0x20 + read-only + 0x00000000 + + + INEPTFSAV + IN endpoint TxFIFO space + available + 0 + 16 + + + + + DOEPTSIZ1 + DOEPTSIZ1 + device OUT endpoint-1 transfer size + register + 0x330 + 0x20 + read-write + 0x00000000 + + + RXDPID_STUPCNT + Received data PID/SETUP packet + count + 29 + 2 + + + PKTCNT + Packet count + 19 + 10 + + + XFRSIZ + Transfer size + 0 + 19 + + + + + DOEPTSIZ2 + DOEPTSIZ2 + device OUT endpoint-2 transfer size + register + 0x350 + 0x20 + read-write + 0x00000000 + + + RXDPID_STUPCNT + Received data PID/SETUP packet + count + 29 + 2 + + + PKTCNT + Packet count + 19 + 10 + + + XFRSIZ + Transfer size + 0 + 19 + + + + + DOEPTSIZ3 + DOEPTSIZ3 + device OUT endpoint-3 transfer size + register + 0x370 + 0x20 + read-write + 0x00000000 + + + RXDPID_STUPCNT + Received data PID/SETUP packet + count + 29 + 2 + + + PKTCNT + Packet count + 19 + 10 + + + XFRSIZ + Transfer size + 0 + 19 + + + + + + + USB_OTG_PWRCLK + USB on the go full speed + USB_OTG + 0x50000E00 + + 0x0 + 0x400 + registers + + + + FS_PCGCCTL + FS_PCGCCTL + OTG_FS power and clock gating control + register (OTG_FS_PCGCCTL) + 0x0 + 0x20 + read-write + 0x00000000 + + + STPPCLK + Stop PHY clock + 0 + 1 + + + GATEHCLK + Gate HCLK + 1 + 1 + + + PHYSUSP + PHY Suspended + 4 + 1 + + + + + + + DAC + Digital to analog converter + DAC + 0x40007400 + + 0x0 + 0x400 + registers + + + + CR + CR + Control register (DAC_CR) + 0x0 + 0x20 + read-write + 0x00000000 + + + EN1 + DAC channel1 enable + 0 + 1 + + + BOFF1 + DAC channel1 output buffer + disable + 1 + 1 + + + TEN1 + DAC channel1 trigger + enable + 2 + 1 + + + TSEL1 + DAC channel1 trigger + selection + 3 + 3 + + + WAVE1 + DAC channel1 noise/triangle wave + generation enable + 6 + 2 + + + MAMP1 + DAC channel1 mask/amplitude + selector + 8 + 4 + + + DMAEN1 + DAC channel1 DMA enable + 12 + 1 + + + EN2 + DAC channel2 enable + 16 + 1 + + + BOFF2 + DAC channel2 output buffer + disable + 17 + 1 + + + TEN2 + DAC channel2 trigger + enable + 18 + 1 + + + TSEL2 + DAC channel2 trigger + selection + 19 + 3 + + + WAVE2 + DAC channel2 noise/triangle wave + generation enable + 22 + 2 + + + MAMP2 + DAC channel2 mask/amplitude + selector + 24 + 4 + + + DMAEN2 + DAC channel2 DMA enable + 28 + 1 + + + + + SWTRIGR + SWTRIGR + DAC software trigger register + (DAC_SWTRIGR) + 0x4 + 0x20 + write-only + 0x00000000 + + + SWTRIG1 + DAC channel1 software + trigger + 0 + 1 + + + SWTRIG2 + DAC channel2 software + trigger + 1 + 1 + + + + + DHR12R1 + DHR12R1 + DAC channel1 12-bit right-aligned data + holding register(DAC_DHR12R1) + 0x8 + 0x20 + read-write + 0x00000000 + + + DACC1DHR + DAC channel1 12-bit right-aligned + data + 0 + 12 + + + + + DHR12L1 + DHR12L1 + DAC channel1 12-bit left aligned data + holding register (DAC_DHR12L1) + 0xC + 0x20 + read-write + 0x00000000 + + + DACC1DHR + DAC channel1 12-bit left-aligned + data + 4 + 12 + + + + + DHR8R1 + DHR8R1 + DAC channel1 8-bit right aligned data + holding register (DAC_DHR8R1) + 0x10 + 0x20 + read-write + 0x00000000 + + + DACC1DHR + DAC channel1 8-bit right-aligned + data + 0 + 8 + + + + + DHR12R2 + DHR12R2 + DAC channel2 12-bit right aligned data + holding register (DAC_DHR12R2) + 0x14 + 0x20 + read-write + 0x00000000 + + + DACC2DHR + DAC channel2 12-bit right-aligned + data + 0 + 12 + + + + + DHR12L2 + DHR12L2 + DAC channel2 12-bit left aligned data + holding register (DAC_DHR12L2) + 0x18 + 0x20 + read-write + 0x00000000 + + + DACC2DHR + DAC channel2 12-bit left-aligned + data + 4 + 12 + + + + + DHR8R2 + DHR8R2 + DAC channel2 8-bit right-aligned data + holding register (DAC_DHR8R2) + 0x1C + 0x20 + read-write + 0x00000000 + + + DACC2DHR + DAC channel2 8-bit right-aligned + data + 0 + 8 + + + + + DHR12RD + DHR12RD + Dual DAC 12-bit right-aligned data holding + register (DAC_DHR12RD), Bits 31:28 Reserved, Bits 15:12 + Reserved + 0x20 + 0x20 + read-write + 0x00000000 + + + DACC1DHR + DAC channel1 12-bit right-aligned + data + 0 + 12 + + + DACC2DHR + DAC channel2 12-bit right-aligned + data + 16 + 12 + + + + + DHR12LD + DHR12LD + DUAL DAC 12-bit left aligned data holding + register (DAC_DHR12LD), Bits 19:16 Reserved, Bits 3:0 + Reserved + 0x24 + 0x20 + read-write + 0x00000000 + + + DACC1DHR + DAC channel1 12-bit left-aligned + data + 4 + 12 + + + DACC2DHR + DAC channel2 12-bit right-aligned + data + 20 + 12 + + + + + DHR8RD + DHR8RD + DUAL DAC 8-bit right aligned data holding + register (DAC_DHR8RD), Bits 31:16 Reserved + 0x28 + 0x20 + read-write + 0x00000000 + + + DACC1DHR + DAC channel1 8-bit right-aligned + data + 0 + 8 + + + DACC2DHR + DAC channel2 8-bit right-aligned + data + 8 + 8 + + + + + DOR1 + DOR1 + DAC channel1 data output register + (DAC_DOR1) + 0x2C + 0x20 + read-only + 0x00000000 + + + DACC1DOR + DAC channel1 data output + 0 + 12 + + + + + DOR2 + DOR2 + DAC channel2 data output register + (DAC_DOR2) + 0x30 + 0x20 + read-only + 0x00000000 + + + DACC2DOR + DAC channel2 data output + 0 + 12 + + + + + + + DBG + Debug support + DBG + 0xE0042000 + + 0x0 + 0x400 + registers + + + + IDCODE + IDCODE + DBGMCU_IDCODE + 0x0 + 0x20 + read-only + 0x0 + + + DEV_ID + DEV_ID + 0 + 12 + + + REV_ID + REV_ID + 16 + 16 + + + + + CR + CR + DBGMCU_CR + 0x4 + 0x20 + read-write + 0x0 + + + DBG_SLEEP + DBG_SLEEP + 0 + 1 + + + DBG_STOP + DBG_STOP + 1 + 1 + + + DBG_STANDBY + DBG_STANDBY + 2 + 1 + + + TRACE_IOEN + TRACE_IOEN + 5 + 1 + + + TRACE_MODE + TRACE_MODE + 6 + 2 + + + DBG_IWDG_STOP + DBG_IWDG_STOP + 8 + 1 + + + DBG_WWDG_STOP + DBG_WWDG_STOP + 9 + 1 + + + DBG_TIM1_STOP + DBG_TIM1_STOP + 10 + 1 + + + DBG_TIM2_STOP + DBG_TIM2_STOP + 11 + 1 + + + DBG_TIM3_STOP + DBG_TIM3_STOP + 12 + 1 + + + DBG_TIM4_STOP + DBG_TIM4_STOP + 13 + 1 + + + DBG_CAN1_STOP + DBG_CAN1_STOP + 14 + 1 + + + DBG_I2C1_SMBUS_TIMEOUT + DBG_I2C1_SMBUS_TIMEOUT + 15 + 1 + + + DBG_I2C2_SMBUS_TIMEOUT + DBG_I2C2_SMBUS_TIMEOUT + 16 + 1 + + + DBG_TIM5_STOP + DBG_TIM5_STOP + 18 + 1 + + + DBG_TIM6_STOP + DBG_TIM6_STOP + 19 + 1 + + + DBG_TIM7_STOP + DBG_TIM7_STOP + 20 + 1 + + + DBG_CAN2_STOP + DBG_CAN2_STOP + 21 + 1 + + + + + + + UART4 + Universal asynchronous receiver + transmitter + USART + 0x40004C00 + + 0x0 + 0x400 + registers + + + UART4 + UART4 global interrupt + 52 + + + + SR + SR + UART4 SR + 0x0 + 0x20 + 0x0 + + + PE + Parity error + 0 + 1 + read-only + + + FE + Framing error + 1 + 1 + read-only + + + NE + Noise error flag + 2 + 1 + read-only + + + ORE + Overrun error + 3 + 1 + read-only + + + IDLE + IDLE line detected + 4 + 1 + read-only + + + RXNE + Read data register not + empty + 5 + 1 + read-write + + + TC + Transmission complete + 6 + 1 + read-write + + + TXE + Transmit data register + empty + 7 + 1 + read-only + + + LBD + LIN break detection flag + 8 + 1 + read-write + + + + + DR + DR + UART4 DR + 0x4 + 0x20 + read-write + 0x0 + + + DR + DR + 0 + 9 + + + + + BRR + BRR + UART4 BRR + 0x8 + 0x20 + read-write + 0x0 + + + DIV_Fraction + DIV_Fraction + 0 + 4 + + + DIV_Mantissa + DIV_Mantissa + 4 + 12 + + + + + CR1 + CR1 + UART4 CR1 + 0xC + 0x20 + read-write + 0x0 + + + SBK + Send break + 0 + 1 + + + RWU + Receiver wakeup + 1 + 1 + + + RE + Receiver enable + 2 + 1 + + + TE + Transmitter enable + 3 + 1 + + + IDLEIE + IDLE interrupt enable + 4 + 1 + + + RXNEIE + RXNE interrupt enable + 5 + 1 + + + TCIE + Transmission complete interrupt + enable + 6 + 1 + + + TXEIE + TXE interrupt enable + 7 + 1 + + + PEIE + PE interrupt enable + 8 + 1 + + + PS + Parity selection + 9 + 1 + + + PCE + Parity control enable + 10 + 1 + + + WAKE + Wakeup method + 11 + 1 + + + M + Word length + 12 + 1 + + + UE + USART enable + 13 + 1 + + + + + CR2 + CR2 + UART4 CR2 + 0x10 + 0x20 + read-write + 0x0 + + + ADD + Address of the USART node + 0 + 4 + + + LBDL + lin break detection length + 5 + 1 + + + LBDIE + LIN break detection interrupt + enable + 6 + 1 + + + STOP + STOP bits + 12 + 2 + + + LINEN + LIN mode enable + 14 + 1 + + + + + CR3 + CR3 + UART4 CR3 + 0x14 + 0x20 + read-write + 0x0 + + + EIE + Error interrupt enable + 0 + 1 + + + IREN + IrDA mode enable + 1 + 1 + + + IRLP + IrDA low-power + 2 + 1 + + + HDSEL + Half-duplex selection + 3 + 1 + + + DMAR + DMA enable receiver + 6 + 1 + + + DMAT + DMA enable transmitter + 7 + 1 + + + + + + + UART5 + Universal asynchronous receiver + transmitter + USART + 0x40005000 + + 0x0 + 0x400 + registers + + + UART5 + UART5 global interrupt + 53 + + + + SR + SR + UART5 SR + 0x0 + 0x20 + 0x0 + + + PE + PE + 0 + 1 + read-only + + + FE + FE + 1 + 1 + read-only + + + NE + NE + 2 + 1 + read-only + + + ORE + ORE + 3 + 1 + read-only + + + IDLE + IDLE + 4 + 1 + read-only + + + RXNE + RXNE + 5 + 1 + read-write + + + TC + TC + 6 + 1 + read-write + + + TXE + TXE + 7 + 1 + read-only + + + LBD + LBD + 8 + 1 + read-write + + + + + DR + DR + UART5 DR + 0x4 + 0x20 + read-write + 0x0 + + + DR + DR + 0 + 9 + + + + + BRR + BRR + UART5 BRR + 0x8 + 0x20 + read-write + 0x0 + + + DIV_Fraction + DIV_Fraction + 0 + 4 + + + DIV_Mantissa + DIV_Mantissa + 4 + 12 + + + + + CR1 + CR1 + UART5 CR1 + 0xC + 0x20 + read-write + 0x0 + + + SBK + SBK + 0 + 1 + + + RWU + RWU + 1 + 1 + + + RE + RE + 2 + 1 + + + TE + TE + 3 + 1 + + + IDLEIE + IDLEIE + 4 + 1 + + + RXNEIE + RXNEIE + 5 + 1 + + + TCIE + TCIE + 6 + 1 + + + TXEIE + TXEIE + 7 + 1 + + + PEIE + PEIE + 8 + 1 + + + PS + PS + 9 + 1 + + + PCE + PCE + 10 + 1 + + + WAKE + WAKE + 11 + 1 + + + M + M + 12 + 1 + + + UE + UE + 13 + 1 + + + + + CR2 + CR2 + UART5 CR2 + 0x10 + 0x20 + read-write + 0x0 + + + ADD + ADD + 0 + 4 + + + LBDL + LBDL + 5 + 1 + + + LBDIE + LBDIE + 6 + 1 + + + STOP + STOP + 12 + 2 + + + LINEN + LINEN + 14 + 1 + + + + + CR3 + CR3 + UART5 CR3 + 0x14 + 0x20 + read-write + 0x0 + + + EIE + Error interrupt enable + 0 + 1 + + + IREN + IrDA mode enable + 1 + 1 + + + IRLP + IrDA low-power + 2 + 1 + + + HDSEL + Half-duplex selection + 3 + 1 + + + DMAT + DMA enable transmitter + 7 + 1 + + + + + + + CRC + CRC calculation unit + CRC + 0x40023000 + + 0x0 + 0x400 + registers + + + + DR + DR + Data register + 0x0 + 0x20 + read-write + 0xFFFFFFFF + + + DR + Data Register + 0 + 32 + + + + + IDR + IDR + Independent Data register + 0x4 + 0x20 + read-write + 0x00000000 + + + IDR + Independent Data register + 0 + 8 + + + + + CR + CR + Control register + 0x8 + 0x20 + write-only + 0x00000000 + + + RESET + Reset bit + 0 + 1 + + + + + + + FLASH + FLASH + FLASH + 0x40022000 + + 0x0 + 0x400 + registers + + + FLASH + Flash global interrupt + 4 + + + + ACR + ACR + Flash access control register + 0x0 + 0x20 + 0x00000030 + + + LATENCY + Latency + 0 + 3 + read-write + + + HLFCYA + Flash half cycle access + enable + 3 + 1 + read-write + + + PRFTBE + Prefetch buffer enable + 4 + 1 + read-write + + + PRFTBS + Prefetch buffer status + 5 + 1 + read-only + + + + + KEYR + KEYR + Flash key register + 0x4 + 0x20 + write-only + 0x00000000 + + + KEY + FPEC key + 0 + 32 + + + + + OPTKEYR + OPTKEYR + Flash option key register + 0x8 + 0x20 + write-only + 0x00000000 + + + OPTKEY + Option byte key + 0 + 32 + + + + + SR + SR + Status register + 0xC + 0x20 + 0x00000000 + + + EOP + End of operation + 5 + 1 + read-write + + + WRPRTERR + Write protection error + 4 + 1 + read-write + + + PGERR + Programming error + 2 + 1 + read-write + + + BSY + Busy + 0 + 1 + read-only + + + + + CR + CR + Control register + 0x10 + 0x20 + read-write + 0x00000080 + + + PG + Programming + 0 + 1 + + + PER + Page Erase + 1 + 1 + + + MER + Mass Erase + 2 + 1 + + + OPTPG + Option byte programming + 4 + 1 + + + OPTER + Option byte erase + 5 + 1 + + + STRT + Start + 6 + 1 + + + LOCK + Lock + 7 + 1 + + + OPTWRE + Option bytes write enable + 9 + 1 + + + ERRIE + Error interrupt enable + 10 + 1 + + + EOPIE + End of operation interrupt + enable + 12 + 1 + + + + + AR + AR + Flash address register + 0x14 + 0x20 + write-only + 0x00000000 + + + FAR + Flash Address + 0 + 32 + + + + + OBR + OBR + Option byte register + 0x1C + 0x20 + read-only + 0x03FFFFFC + + + OPTERR + Option byte error + 0 + 1 + + + RDPRT + Read protection + 1 + 1 + + + WDG_SW + WDG_SW + 2 + 1 + + + nRST_STOP + nRST_STOP + 3 + 1 + + + nRST_STDBY + nRST_STDBY + 4 + 1 + + + Data0 + Data0 + 10 + 8 + + + Data1 + Data1 + 18 + 8 + + + + + WRPR + WRPR + Write protection register + 0x20 + 0x20 + read-only + 0xFFFFFFFF + + + WRP + Write protect + 0 + 32 + + + + + + + FSMC + Flexible static memory controller + FSMC + 0xA0000000 + + 0x0 + 0x1000 + registers + + + FSMC + FSMC global interrupt + 48 + + + + BCR1 + BCR1 + SRAM/NOR-Flash chip-select control register + 1 + 0x0 + 0x20 + read-write + 0x000030D0 + + + CBURSTRW + CBURSTRW + 19 + 1 + + + ASYNCWAIT + ASYNCWAIT + 15 + 1 + + + EXTMOD + EXTMOD + 14 + 1 + + + WAITEN + WAITEN + 13 + 1 + + + WREN + WREN + 12 + 1 + + + WAITCFG + WAITCFG + 11 + 1 + + + WAITPOL + WAITPOL + 9 + 1 + + + BURSTEN + BURSTEN + 8 + 1 + + + FACCEN + FACCEN + 6 + 1 + + + MWID + MWID + 4 + 2 + + + MTYP + MTYP + 2 + 2 + + + MUXEN + MUXEN + 1 + 1 + + + MBKEN + MBKEN + 0 + 1 + + + + + BTR1 + BTR1 + SRAM/NOR-Flash chip-select timing register + 1 + 0x4 + 0x20 + read-write + 0xFFFFFFFF + + + ACCMOD + ACCMOD + 28 + 2 + + + DATLAT + DATLAT + 24 + 4 + + + CLKDIV + CLKDIV + 20 + 4 + + + BUSTURN + BUSTURN + 16 + 4 + + + DATAST + DATAST + 8 + 8 + + + ADDHLD + ADDHLD + 4 + 4 + + + ADDSET + ADDSET + 0 + 4 + + + + + BCR2 + BCR2 + SRAM/NOR-Flash chip-select control register + 2 + 0x8 + 0x20 + read-write + 0x000030D0 + + + CBURSTRW + CBURSTRW + 19 + 1 + + + ASYNCWAIT + ASYNCWAIT + 15 + 1 + + + EXTMOD + EXTMOD + 14 + 1 + + + WAITEN + WAITEN + 13 + 1 + + + WREN + WREN + 12 + 1 + + + WAITCFG + WAITCFG + 11 + 1 + + + WRAPMOD + WRAPMOD + 10 + 1 + + + WAITPOL + WAITPOL + 9 + 1 + + + BURSTEN + BURSTEN + 8 + 1 + + + FACCEN + FACCEN + 6 + 1 + + + MWID + MWID + 4 + 2 + + + MTYP + MTYP + 2 + 2 + + + MUXEN + MUXEN + 1 + 1 + + + MBKEN + MBKEN + 0 + 1 + + + + + BTR2 + BTR2 + SRAM/NOR-Flash chip-select timing register + 2 + 0xC + 0x20 + read-write + 0xFFFFFFFF + + + ACCMOD + ACCMOD + 28 + 2 + + + DATLAT + DATLAT + 24 + 4 + + + CLKDIV + CLKDIV + 20 + 4 + + + BUSTURN + BUSTURN + 16 + 4 + + + DATAST + DATAST + 8 + 8 + + + ADDHLD + ADDHLD + 4 + 4 + + + ADDSET + ADDSET + 0 + 4 + + + + + BCR3 + BCR3 + SRAM/NOR-Flash chip-select control register + 3 + 0x10 + 0x20 + read-write + 0x000030D0 + + + CBURSTRW + CBURSTRW + 19 + 1 + + + ASYNCWAIT + ASYNCWAIT + 15 + 1 + + + EXTMOD + EXTMOD + 14 + 1 + + + WAITEN + WAITEN + 13 + 1 + + + WREN + WREN + 12 + 1 + + + WAITCFG + WAITCFG + 11 + 1 + + + WRAPMOD + WRAPMOD + 10 + 1 + + + WAITPOL + WAITPOL + 9 + 1 + + + BURSTEN + BURSTEN + 8 + 1 + + + FACCEN + FACCEN + 6 + 1 + + + MWID + MWID + 4 + 2 + + + MTYP + MTYP + 2 + 2 + + + MUXEN + MUXEN + 1 + 1 + + + MBKEN + MBKEN + 0 + 1 + + + + + BTR3 + BTR3 + SRAM/NOR-Flash chip-select timing register + 3 + 0x14 + 0x20 + read-write + 0xFFFFFFFF + + + ACCMOD + ACCMOD + 28 + 2 + + + DATLAT + DATLAT + 24 + 4 + + + CLKDIV + CLKDIV + 20 + 4 + + + BUSTURN + BUSTURN + 16 + 4 + + + DATAST + DATAST + 8 + 8 + + + ADDHLD + ADDHLD + 4 + 4 + + + ADDSET + ADDSET + 0 + 4 + + + + + BCR4 + BCR4 + SRAM/NOR-Flash chip-select control register + 4 + 0x18 + 0x20 + read-write + 0x000030D0 + + + CBURSTRW + CBURSTRW + 19 + 1 + + + ASYNCWAIT + ASYNCWAIT + 15 + 1 + + + EXTMOD + EXTMOD + 14 + 1 + + + WAITEN + WAITEN + 13 + 1 + + + WREN + WREN + 12 + 1 + + + WAITCFG + WAITCFG + 11 + 1 + + + WRAPMOD + WRAPMOD + 10 + 1 + + + WAITPOL + WAITPOL + 9 + 1 + + + BURSTEN + BURSTEN + 8 + 1 + + + FACCEN + FACCEN + 6 + 1 + + + MWID + MWID + 4 + 2 + + + MTYP + MTYP + 2 + 2 + + + MUXEN + MUXEN + 1 + 1 + + + MBKEN + MBKEN + 0 + 1 + + + + + BTR4 + BTR4 + SRAM/NOR-Flash chip-select timing register + 4 + 0x1C + 0x20 + read-write + 0xFFFFFFFF + + + ACCMOD + ACCMOD + 28 + 2 + + + DATLAT + DATLAT + 24 + 4 + + + CLKDIV + CLKDIV + 20 + 4 + + + BUSTURN + BUSTURN + 16 + 4 + + + DATAST + DATAST + 8 + 8 + + + ADDHLD + ADDHLD + 4 + 4 + + + ADDSET + ADDSET + 0 + 4 + + + + + PCR2 + PCR2 + PC Card/NAND Flash control register + 2 + 0x60 + 0x20 + read-write + 0x00000018 + + + ECCPS + ECCPS + 17 + 3 + + + TAR + TAR + 13 + 4 + + + TCLR + TCLR + 9 + 4 + + + ECCEN + ECCEN + 6 + 1 + + + PWID + PWID + 4 + 2 + + + PTYP + PTYP + 3 + 1 + + + PBKEN + PBKEN + 2 + 1 + + + PWAITEN + PWAITEN + 1 + 1 + + + + + SR2 + SR2 + FIFO status and interrupt register + 2 + 0x64 + 0x20 + 0x00000040 + + + FEMPT + FEMPT + 6 + 1 + read-only + + + IFEN + IFEN + 5 + 1 + read-write + + + ILEN + ILEN + 4 + 1 + read-write + + + IREN + IREN + 3 + 1 + read-write + + + IFS + IFS + 2 + 1 + read-write + + + ILS + ILS + 1 + 1 + read-write + + + IRS + IRS + 0 + 1 + read-write + + + + + PMEM2 + PMEM2 + Common memory space timing register + 2 + 0x68 + 0x20 + read-write + 0xFCFCFCFC + + + MEMHIZx + MEMHIZx + 24 + 8 + + + MEMHOLDx + MEMHOLDx + 16 + 8 + + + MEMWAITx + MEMWAITx + 8 + 8 + + + MEMSETx + MEMSETx + 0 + 8 + + + + + PATT2 + PATT2 + Attribute memory space timing register + 2 + 0x6C + 0x20 + read-write + 0xFCFCFCFC + + + ATTHIZx + Attribute memory x databus HiZ + time + 24 + 8 + + + ATTHOLDx + Attribute memory x hold + time + 16 + 8 + + + ATTWAITx + Attribute memory x wait + time + 8 + 8 + + + ATTSETx + Attribute memory x setup + time + 0 + 8 + + + + + ECCR2 + ECCR2 + ECC result register 2 + 0x74 + 0x20 + read-only + 0x00000000 + + + ECCx + ECC result + 0 + 32 + + + + + PCR3 + PCR3 + PC Card/NAND Flash control register + 3 + 0x80 + 0x20 + read-write + 0x00000018 + + + ECCPS + ECCPS + 17 + 3 + + + TAR + TAR + 13 + 4 + + + TCLR + TCLR + 9 + 4 + + + ECCEN + ECCEN + 6 + 1 + + + PWID + PWID + 4 + 2 + + + PTYP + PTYP + 3 + 1 + + + PBKEN + PBKEN + 2 + 1 + + + PWAITEN + PWAITEN + 1 + 1 + + + + + SR3 + SR3 + FIFO status and interrupt register + 3 + 0x84 + 0x20 + 0x00000040 + + + FEMPT + FEMPT + 6 + 1 + read-only + + + IFEN + IFEN + 5 + 1 + read-write + + + ILEN + ILEN + 4 + 1 + read-write + + + IREN + IREN + 3 + 1 + read-write + + + IFS + IFS + 2 + 1 + read-write + + + ILS + ILS + 1 + 1 + read-write + + + IRS + IRS + 0 + 1 + read-write + + + + + PMEM3 + PMEM3 + Common memory space timing register + 3 + 0x88 + 0x20 + read-write + 0xFCFCFCFC + + + MEMHIZx + MEMHIZx + 24 + 8 + + + MEMHOLDx + MEMHOLDx + 16 + 8 + + + MEMWAITx + MEMWAITx + 8 + 8 + + + MEMSETx + MEMSETx + 0 + 8 + + + + + PATT3 + PATT3 + Attribute memory space timing register + 3 + 0x8C + 0x20 + read-write + 0xFCFCFCFC + + + ATTHIZx + ATTHIZx + 24 + 8 + + + ATTHOLDx + ATTHOLDx + 16 + 8 + + + ATTWAITx + ATTWAITx + 8 + 8 + + + ATTSETx + ATTSETx + 0 + 8 + + + + + ECCR3 + ECCR3 + ECC result register 3 + 0x94 + 0x20 + read-only + 0x00000000 + + + ECCx + ECCx + 0 + 32 + + + + + PCR4 + PCR4 + PC Card/NAND Flash control register + 4 + 0xA0 + 0x20 + read-write + 0x00000018 + + + ECCPS + ECCPS + 17 + 3 + + + TAR + TAR + 13 + 4 + + + TCLR + TCLR + 9 + 4 + + + ECCEN + ECCEN + 6 + 1 + + + PWID + PWID + 4 + 2 + + + PTYP + PTYP + 3 + 1 + + + PBKEN + PBKEN + 2 + 1 + + + PWAITEN + PWAITEN + 1 + 1 + + + + + SR4 + SR4 + FIFO status and interrupt register + 4 + 0xA4 + 0x20 + 0x00000040 + + + FEMPT + FEMPT + 6 + 1 + read-only + + + IFEN + IFEN + 5 + 1 + read-write + + + ILEN + ILEN + 4 + 1 + read-write + + + IREN + IREN + 3 + 1 + read-write + + + IFS + IFS + 2 + 1 + read-write + + + ILS + ILS + 1 + 1 + read-write + + + IRS + IRS + 0 + 1 + read-write + + + + + PMEM4 + PMEM4 + Common memory space timing register + 4 + 0xA8 + 0x20 + read-write + 0xFCFCFCFC + + + MEMHIZx + MEMHIZx + 24 + 8 + + + MEMHOLDx + MEMHOLDx + 16 + 8 + + + MEMWAITx + MEMWAITx + 8 + 8 + + + MEMSETx + MEMSETx + 0 + 8 + + + + + PATT4 + PATT4 + Attribute memory space timing register + 4 + 0xAC + 0x20 + read-write + 0xFCFCFCFC + + + ATTHIZx + ATTHIZx + 24 + 8 + + + ATTHOLDx + ATTHOLDx + 16 + 8 + + + ATTWAITx + ATTWAITx + 8 + 8 + + + ATTSETx + ATTSETx + 0 + 8 + + + + + PIO4 + PIO4 + I/O space timing register 4 + 0xB0 + 0x20 + read-write + 0xFCFCFCFC + + + IOHIZx + IOHIZx + 24 + 8 + + + IOHOLDx + IOHOLDx + 16 + 8 + + + IOWAITx + IOWAITx + 8 + 8 + + + IOSETx + IOSETx + 0 + 8 + + + + + BWTR1 + BWTR1 + SRAM/NOR-Flash write timing registers + 1 + 0x104 + 0x20 + read-write + 0x0FFFFFFF + + + ACCMOD + ACCMOD + 28 + 2 + + + DATLAT + DATLAT + 24 + 4 + + + CLKDIV + CLKDIV + 20 + 4 + + + DATAST + DATAST + 8 + 8 + + + ADDHLD + ADDHLD + 4 + 4 + + + ADDSET + ADDSET + 0 + 4 + + + + + BWTR2 + BWTR2 + SRAM/NOR-Flash write timing registers + 2 + 0x10C + 0x20 + read-write + 0x0FFFFFFF + + + ACCMOD + ACCMOD + 28 + 2 + + + DATLAT + DATLAT + 24 + 4 + + + CLKDIV + CLKDIV + 20 + 4 + + + DATAST + DATAST + 8 + 8 + + + ADDHLD + ADDHLD + 4 + 4 + + + ADDSET + ADDSET + 0 + 4 + + + + + BWTR3 + BWTR3 + SRAM/NOR-Flash write timing registers + 3 + 0x114 + 0x20 + read-write + 0x0FFFFFFF + + + ACCMOD + ACCMOD + 28 + 2 + + + DATLAT + DATLAT + 24 + 4 + + + CLKDIV + CLKDIV + 20 + 4 + + + DATAST + DATAST + 8 + 8 + + + ADDHLD + ADDHLD + 4 + 4 + + + ADDSET + ADDSET + 0 + 4 + + + + + BWTR4 + BWTR4 + SRAM/NOR-Flash write timing registers + 4 + 0x11C + 0x20 + read-write + 0x0FFFFFFF + + + ACCMOD + ACCMOD + 28 + 2 + + + DATLAT + DATLAT + 24 + 4 + + + CLKDIV + CLKDIV + 20 + 4 + + + DATAST + DATAST + 8 + 8 + + + ADDHLD + ADDHLD + 4 + 4 + + + ADDSET + ADDSET + 0 + 4 + + + + + + + SDIO + Secure digital input/output + interface + SDIO + 0x40018000 + + 0x0 + 0x400 + registers + + + SDIO + SDIO global interrupt + 49 + + + + POWER + POWER + power control register + 0x0 + 0x20 + read-write + 0x00000000 + + + PWRCTRL + PWRCTRL + 0 + 2 + + + + + CLKCR + CLKCR + SDI clock control register + 0x4 + 0x20 + read-write + 0x00000000 + + + HWFC_EN + HW Flow Control enable + 14 + 1 + + + NEGEDGE + SDIO_CK dephasing selection + bit + 13 + 1 + + + WIDBUS + Wide bus mode enable bit + 11 + 2 + + + BYPASS + Clock divider bypass enable + bit + 10 + 1 + + + PWRSAV + Power saving configuration + bit + 9 + 1 + + + CLKEN + Clock enable bit + 8 + 1 + + + CLKDIV + Clock divide factor + 0 + 8 + + + + + ARG + ARG + argument register + 0x8 + 0x20 + read-write + 0x00000000 + + + CMDARG + Command argument + 0 + 32 + + + + + CMD + CMD + command register + 0xC + 0x20 + read-write + 0x00000000 + + + CE_ATACMD + CE-ATA command + 14 + 1 + + + nIEN + not Interrupt Enable + 13 + 1 + + + ENCMDcompl + Enable CMD completion + 12 + 1 + + + SDIOSuspend + SD I/O suspend command + 11 + 1 + + + CPSMEN + Command path state machine (CPSM) Enable + bit + 10 + 1 + + + WAITPEND + CPSM Waits for ends of data transfer + (CmdPend internal signal). + 9 + 1 + + + WAITINT + CPSM waits for interrupt + request + 8 + 1 + + + WAITRESP + Wait for response bits + 6 + 2 + + + CMDINDEX + Command index + 0 + 6 + + + + + RESPCMD + RESPCMD + command response register + 0x10 + 0x20 + read-only + 0x00000000 + + + RESPCMD + Response command index + 0 + 6 + + + + + RESP1 + RESP1 + response 1..4 register + 0x14 + 0x20 + read-only + 0x00000000 + + + CARDSTATUS1 + Card Status + 0 + 32 + + + + + RESP2 + RESP2 + response 1..4 register + 0x18 + 0x20 + read-only + 0x00000000 + + + CARDSTATUS2 + Card Status + 0 + 32 + + + + + RESP3 + RESP3 + response 1..4 register + 0x1C + 0x20 + read-only + 0x00000000 + + + CARDSTATUS3 + Card Status + 0 + 32 + + + + + RESP4 + RESP4 + response 1..4 register + 0x20 + 0x20 + read-only + 0x00000000 + + + CARDSTATUS4 + Card Status + 0 + 32 + + + + + DTIMER + DTIMER + data timer register + 0x24 + 0x20 + read-write + 0x00000000 + + + DATATIME + Data timeout period + 0 + 32 + + + + + DLEN + DLEN + data length register + 0x28 + 0x20 + read-write + 0x00000000 + + + DATALENGTH + Data length value + 0 + 25 + + + + + DCTRL + DCTRL + data control register + 0x2C + 0x20 + read-write + 0x00000000 + + + SDIOEN + SD I/O enable functions + 11 + 1 + + + RWMOD + Read wait mode + 10 + 1 + + + RWSTOP + Read wait stop + 9 + 1 + + + RWSTART + Read wait start + 8 + 1 + + + DBLOCKSIZE + Data block size + 4 + 4 + + + DMAEN + DMA enable bit + 3 + 1 + + + DTMODE + Data transfer mode selection 1: Stream + or SDIO multibyte data transfer. + 2 + 1 + + + DTDIR + Data transfer direction + selection + 1 + 1 + + + DTEN + DTEN + 0 + 1 + + + + + DCOUNT + DCOUNT + data counter register + 0x30 + 0x20 + read-only + 0x00000000 + + + DATACOUNT + Data count value + 0 + 25 + + + + + STA + STA + status register + 0x34 + 0x20 + read-only + 0x00000000 + + + CEATAEND + CE-ATA command completion signal + received for CMD61 + 23 + 1 + + + SDIOIT + SDIO interrupt received + 22 + 1 + + + RXDAVL + Data available in receive + FIFO + 21 + 1 + + + TXDAVL + Data available in transmit + FIFO + 20 + 1 + + + RXFIFOE + Receive FIFO empty + 19 + 1 + + + TXFIFOE + Transmit FIFO empty + 18 + 1 + + + RXFIFOF + Receive FIFO full + 17 + 1 + + + TXFIFOF + Transmit FIFO full + 16 + 1 + + + RXFIFOHF + Receive FIFO half full: there are at + least 8 words in the FIFO + 15 + 1 + + + TXFIFOHE + Transmit FIFO half empty: at least 8 + words can be written into the FIFO + 14 + 1 + + + RXACT + Data receive in progress + 13 + 1 + + + TXACT + Data transmit in progress + 12 + 1 + + + CMDACT + Command transfer in + progress + 11 + 1 + + + DBCKEND + Data block sent/received (CRC check + passed) + 10 + 1 + + + STBITERR + Start bit not detected on all data + signals in wide bus mode + 9 + 1 + + + DATAEND + Data end (data counter, SDIDCOUNT, is + zero) + 8 + 1 + + + CMDSENT + Command sent (no response + required) + 7 + 1 + + + CMDREND + Command response received (CRC check + passed) + 6 + 1 + + + RXOVERR + Received FIFO overrun + error + 5 + 1 + + + TXUNDERR + Transmit FIFO underrun + error + 4 + 1 + + + DTIMEOUT + Data timeout + 3 + 1 + + + CTIMEOUT + Command response timeout + 2 + 1 + + + DCRCFAIL + Data block sent/received (CRC check + failed) + 1 + 1 + + + CCRCFAIL + Command response received (CRC check + failed) + 0 + 1 + + + + + ICR + ICR + interrupt clear register + 0x38 + 0x20 + read-write + 0x00000000 + + + CEATAENDC + CEATAEND flag clear bit + 23 + 1 + + + SDIOITC + SDIOIT flag clear bit + 22 + 1 + + + DBCKENDC + DBCKEND flag clear bit + 10 + 1 + + + STBITERRC + STBITERR flag clear bit + 9 + 1 + + + DATAENDC + DATAEND flag clear bit + 8 + 1 + + + CMDSENTC + CMDSENT flag clear bit + 7 + 1 + + + CMDRENDC + CMDREND flag clear bit + 6 + 1 + + + RXOVERRC + RXOVERR flag clear bit + 5 + 1 + + + TXUNDERRC + TXUNDERR flag clear bit + 4 + 1 + + + DTIMEOUTC + DTIMEOUT flag clear bit + 3 + 1 + + + CTIMEOUTC + CTIMEOUT flag clear bit + 2 + 1 + + + DCRCFAILC + DCRCFAIL flag clear bit + 1 + 1 + + + CCRCFAILC + CCRCFAIL flag clear bit + 0 + 1 + + + + + MASK + MASK + mask register + 0x3C + 0x20 + read-write + 0x00000000 + + + CEATAENDIE + CE-ATA command completion signal + received interrupt enable + 23 + 1 + + + SDIOITIE + SDIO mode interrupt received interrupt + enable + 22 + 1 + + + RXDAVLIE + Data available in Rx FIFO interrupt + enable + 21 + 1 + + + TXDAVLIE + Data available in Tx FIFO interrupt + enable + 20 + 1 + + + RXFIFOEIE + Rx FIFO empty interrupt + enable + 19 + 1 + + + TXFIFOEIE + Tx FIFO empty interrupt + enable + 18 + 1 + + + RXFIFOFIE + Rx FIFO full interrupt + enable + 17 + 1 + + + TXFIFOFIE + Tx FIFO full interrupt + enable + 16 + 1 + + + RXFIFOHFIE + Rx FIFO half full interrupt + enable + 15 + 1 + + + TXFIFOHEIE + Tx FIFO half empty interrupt + enable + 14 + 1 + + + RXACTIE + Data receive acting interrupt + enable + 13 + 1 + + + TXACTIE + Data transmit acting interrupt + enable + 12 + 1 + + + CMDACTIE + Command acting interrupt + enable + 11 + 1 + + + DBCKENDIE + Data block end interrupt + enable + 10 + 1 + + + STBITERRIE + Start bit error interrupt + enable + 9 + 1 + + + DATAENDIE + Data end interrupt enable + 8 + 1 + + + CMDSENTIE + Command sent interrupt + enable + 7 + 1 + + + CMDRENDIE + Command response received interrupt + enable + 6 + 1 + + + RXOVERRIE + Rx FIFO overrun error interrupt + enable + 5 + 1 + + + TXUNDERRIE + Tx FIFO underrun error interrupt + enable + 4 + 1 + + + DTIMEOUTIE + Data timeout interrupt + enable + 3 + 1 + + + CTIMEOUTIE + Command timeout interrupt + enable + 2 + 1 + + + DCRCFAILIE + Data CRC fail interrupt + enable + 1 + 1 + + + CCRCFAILIE + Command CRC fail interrupt + enable + 0 + 1 + + + + + FIFOCNT + FIFOCNT + FIFO counter register + 0x48 + 0x20 + read-only + 0x00000000 + + + FIFOCOUNT + Remaining number of words to be written + to or read from the FIFO. + 0 + 24 + + + + + FIFO + FIFO + data FIFO register + 0x80 + 0x20 + read-write + 0x00000000 + + + FIFOData + Receive and transmit FIFO + data + 0 + 32 + + + + + + + TIM11 + General purpose timer + TIM + 0x40015400 + + 0x0 + 0x400 + registers + + + TIM1_TRG_COM + TIM1 Trigger and Commutation + interrupts + 26 + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + CKD + Clock division + 8 + 2 + + + ARPE + Auto-reload preload enable + 7 + 1 + + + URS + Update request source + 2 + 1 + + + UDIS + Update disable + 1 + 1 + + + CEN + Counter enable + 0 + 1 + + + + + DIER + DIER + DMA/Interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + CC1IE + Capture/Compare 1 interrupt + enable + 1 + 1 + + + UIE + Update interrupt enable + 0 + 1 + + + + + SR + SR + status register + 0x10 + 0x20 + read-write + 0x0000 + + + CC1OF + Capture/Compare 1 overcapture + flag + 9 + 1 + + + CC1IF + Capture/compare 1 interrupt + flag + 1 + 1 + + + UIF + Update interrupt flag + 0 + 1 + + + + + EGR + EGR + event generation register + 0x14 + 0x20 + write-only + 0x0000 + + + CC1G + Capture/compare 1 + generation + 1 + 1 + + + UG + Update generation + 0 + 1 + + + + + CCMR1_Output + CCMR1_Output + capture/compare mode register (output + mode) + 0x18 + 0x20 + read-write + 0x00000000 + + + OC1M + Output Compare 1 mode + 4 + 3 + + + OC1PE + Output Compare 1 preload + enable + 3 + 1 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCMR1_Input + CCMR1_Input + capture/compare mode register (input + mode) + CCMR1_Output + 0x18 + 0x20 + read-write + 0x00000000 + + + IC1F + Input capture 1 filter + 4 + 4 + + + IC1PSC + Input capture 1 prescaler + 2 + 2 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCER + CCER + capture/compare enable + register + 0x20 + 0x20 + read-write + 0x0000 + + + CC1NP + Capture/Compare 1 output + Polarity + 3 + 1 + + + CC1P + Capture/Compare 1 output + Polarity + 1 + 1 + + + CC1E + Capture/Compare 1 output + enable + 0 + 1 + + + + + CNT + CNT + counter + 0x24 + 0x20 + read-write + 0x00000000 + + + CNT + counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + ARR + Auto-reload value + 0 + 16 + + + + + CCR1 + CCR1 + capture/compare register 1 + 0x34 + 0x20 + read-write + 0x00000000 + + + CCR1 + Capture/Compare 1 value + 0 + 16 + + + + + + + TIM10 + 0x40015000 + + + TIM9 + General purpose timer + TIM + 0x40014C00 + + 0x0 + 0x400 + registers + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + CKD + Clock division + 8 + 2 + + + ARPE + Auto-reload preload enable + 7 + 1 + + + OPM + One-pulse mode + 3 + 1 + + + URS + Update request source + 2 + 1 + + + UDIS + Update disable + 1 + 1 + + + CEN + Counter enable + 0 + 1 + + + + + CR2 + CR2 + control register 2 + 0x4 + 0x20 + read-write + 0x0000 + + + MMS + Master mode selection + 4 + 3 + + + + + SMCR + SMCR + slave mode control register + 0x8 + 0x20 + read-write + 0x0000 + + + MSM + Master/Slave mode + 7 + 1 + + + TS + Trigger selection + 4 + 3 + + + SMS + Slave mode selection + 0 + 3 + + + + + DIER + DIER + DMA/Interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + TIE + Trigger interrupt enable + 6 + 1 + + + CC2IE + Capture/Compare 2 interrupt + enable + 2 + 1 + + + CC1IE + Capture/Compare 1 interrupt + enable + 1 + 1 + + + UIE + Update interrupt enable + 0 + 1 + + + + + SR + SR + status register + 0x10 + 0x20 + read-write + 0x0000 + + + CC2OF + Capture/compare 2 overcapture + flag + 10 + 1 + + + CC1OF + Capture/Compare 1 overcapture + flag + 9 + 1 + + + TIF + Trigger interrupt flag + 6 + 1 + + + CC2IF + Capture/Compare 2 interrupt + flag + 2 + 1 + + + CC1IF + Capture/compare 1 interrupt + flag + 1 + 1 + + + UIF + Update interrupt flag + 0 + 1 + + + + + EGR + EGR + event generation register + 0x14 + 0x20 + write-only + 0x0000 + + + TG + Trigger generation + 6 + 1 + + + CC2G + Capture/compare 2 + generation + 2 + 1 + + + CC1G + Capture/compare 1 + generation + 1 + 1 + + + UG + Update generation + 0 + 1 + + + + + CCMR1_Output + CCMR1_Output + capture/compare mode register 1 (output + mode) + 0x18 + 0x20 + read-write + 0x00000000 + + + OC2M + Output Compare 2 mode + 12 + 3 + + + OC2PE + Output Compare 2 preload + enable + 11 + 1 + + + OC2FE + Output Compare 2 fast + enable + 10 + 1 + + + CC2S + Capture/Compare 2 + selection + 8 + 2 + + + OC1M + Output Compare 1 mode + 4 + 3 + + + OC1PE + Output Compare 1 preload + enable + 3 + 1 + + + OC1FE + Output Compare 1 fast + enable + 2 + 1 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCMR1_Input + CCMR1_Input + capture/compare mode register 1 (input + mode) + CCMR1_Output + 0x18 + 0x20 + read-write + 0x00000000 + + + IC2F + Input capture 2 filter + 12 + 4 + + + IC2PSC + Input capture 2 prescaler + 10 + 2 + + + CC2S + Capture/Compare 2 + selection + 8 + 2 + + + IC1F + Input capture 1 filter + 4 + 4 + + + IC1PSC + Input capture 1 prescaler + 2 + 2 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCER + CCER + capture/compare enable + register + 0x20 + 0x20 + read-write + 0x0000 + + + CC2NP + Capture/Compare 2 output + Polarity + 7 + 1 + + + CC2P + Capture/Compare 2 output + Polarity + 5 + 1 + + + CC2E + Capture/Compare 2 output + enable + 4 + 1 + + + CC1NP + Capture/Compare 1 output + Polarity + 3 + 1 + + + CC1P + Capture/Compare 1 output + Polarity + 1 + 1 + + + CC1E + Capture/Compare 1 output + enable + 0 + 1 + + + + + CNT + CNT + counter + 0x24 + 0x20 + read-write + 0x00000000 + + + CNT + counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + ARR + Auto-reload value + 0 + 16 + + + + + CCR1 + CCR1 + capture/compare register 1 + 0x34 + 0x20 + read-write + 0x00000000 + + + CCR1 + Capture/Compare 1 value + 0 + 16 + + + + + CCR2 + CCR2 + capture/compare register 2 + 0x38 + 0x20 + read-write + 0x00000000 + + + CCR2 + Capture/Compare 2 value + 0 + 16 + + + + + + + TIM12 + 0x40001800 + + + ADC3 + Analog to digital converter + ADC + 0x40013C00 + + 0x0 + 0x400 + registers + + + ADC1_2 + ADC1 and ADC2 global interrupt + 18 + + + ADC3 + ADC3 global interrupt + 47 + + + + SR + SR + status register + 0x0 + 0x20 + read-write + 0x00000000 + + + STRT + Regular channel start flag + 4 + 1 + + + JSTRT + Injected channel start + flag + 3 + 1 + + + JEOC + Injected channel end of + conversion + 2 + 1 + + + EOC + Regular channel end of + conversion + 1 + 1 + + + AWD + Analog watchdog flag + 0 + 1 + + + + + CR1 + CR1 + control register 1 + 0x4 + 0x20 + read-write + 0x00000000 + + + AWDEN + Analog watchdog enable on regular + channels + 23 + 1 + + + JAWDEN + Analog watchdog enable on injected + channels + 22 + 1 + + + DUALMOD + Dual mode selection + 16 + 4 + + + DISCNUM + Discontinuous mode channel + count + 13 + 3 + + + JDISCEN + Discontinuous mode on injected + channels + 12 + 1 + + + DISCEN + Discontinuous mode on regular + channels + 11 + 1 + + + JAUTO + Automatic injected group + conversion + 10 + 1 + + + AWDSGL + Enable the watchdog on a single channel + in scan mode + 9 + 1 + + + SCAN + Scan mode + 8 + 1 + + + JEOCIE + Interrupt enable for injected + channels + 7 + 1 + + + AWDIE + Analog watchdog interrupt + enable + 6 + 1 + + + EOCIE + Interrupt enable for EOC + 5 + 1 + + + AWDCH + Analog watchdog channel select + bits + 0 + 5 + + + + + CR2 + CR2 + control register 2 + 0x8 + 0x20 + read-write + 0x00000000 + + + TSVREFE + Temperature sensor and VREFINT + enable + 23 + 1 + + + SWSTART + Start conversion of regular + channels + 22 + 1 + + + JSWSTART + Start conversion of injected + channels + 21 + 1 + + + EXTTRIG + External trigger conversion mode for + regular channels + 20 + 1 + + + EXTSEL + External event select for regular + group + 17 + 3 + + + JEXTTRIG + External trigger conversion mode for + injected channels + 15 + 1 + + + JEXTSEL + External event select for injected + group + 12 + 3 + + + ALIGN + Data alignment + 11 + 1 + + + DMA + Direct memory access mode + 8 + 1 + + + RSTCAL + Reset calibration + 3 + 1 + + + CAL + A/D calibration + 2 + 1 + + + CONT + Continuous conversion + 1 + 1 + + + ADON + A/D converter ON / OFF + 0 + 1 + + + + + SMPR1 + SMPR1 + sample time register 1 + 0xC + 0x20 + read-write + 0x00000000 + + + SMPx_x + Sample time bits + 0 + 32 + + + + + SMPR2 + SMPR2 + sample time register 2 + 0x10 + 0x20 + read-write + 0x00000000 + + + SMPx_x + Sample time bits + 0 + 32 + + + + + JOFR1 + JOFR1 + injected channel data offset register + x + 0x14 + 0x20 + read-write + 0x00000000 + + + JOFFSET1 + Data offset for injected channel + x + 0 + 12 + + + + + JOFR2 + JOFR2 + injected channel data offset register + x + 0x18 + 0x20 + read-write + 0x00000000 + + + JOFFSET2 + Data offset for injected channel + x + 0 + 12 + + + + + JOFR3 + JOFR3 + injected channel data offset register + x + 0x1C + 0x20 + read-write + 0x00000000 + + + JOFFSET3 + Data offset for injected channel + x + 0 + 12 + + + + + JOFR4 + JOFR4 + injected channel data offset register + x + 0x20 + 0x20 + read-write + 0x00000000 + + + JOFFSET4 + Data offset for injected channel + x + 0 + 12 + + + + + HTR + HTR + watchdog higher threshold + register + 0x24 + 0x20 + read-write + 0x00000FFF + + + HT + Analog watchdog higher + threshold + 0 + 12 + + + + + LTR + LTR + watchdog lower threshold + register + 0x28 + 0x20 + read-write + 0x00000000 + + + LT + Analog watchdog lower + threshold + 0 + 12 + + + + + SQR1 + SQR1 + regular sequence register 1 + 0x2C + 0x20 + read-write + 0x00000000 + + + L + Regular channel sequence + length + 20 + 4 + + + SQ16 + 16th conversion in regular + sequence + 15 + 5 + + + SQ15 + 15th conversion in regular + sequence + 10 + 5 + + + SQ14 + 14th conversion in regular + sequence + 5 + 5 + + + SQ13 + 13th conversion in regular + sequence + 0 + 5 + + + + + SQR2 + SQR2 + regular sequence register 2 + 0x30 + 0x20 + read-write + 0x00000000 + + + SQ12 + 12th conversion in regular + sequence + 25 + 5 + + + SQ11 + 11th conversion in regular + sequence + 20 + 5 + + + SQ10 + 10th conversion in regular + sequence + 15 + 5 + + + SQ9 + 9th conversion in regular + sequence + 10 + 5 + + + SQ8 + 8th conversion in regular + sequence + 5 + 5 + + + SQ7 + 7th conversion in regular + sequence + 0 + 5 + + + + + SQR3 + SQR3 + regular sequence register 3 + 0x34 + 0x20 + read-write + 0x00000000 + + + SQ6 + 6th conversion in regular + sequence + 25 + 5 + + + SQ5 + 5th conversion in regular + sequence + 20 + 5 + + + SQ4 + 4th conversion in regular + sequence + 15 + 5 + + + SQ3 + 3rd conversion in regular + sequence + 10 + 5 + + + SQ2 + 2nd conversion in regular + sequence + 5 + 5 + + + SQ1 + 1st conversion in regular + sequence + 0 + 5 + + + + + JSQR + JSQR + injected sequence register + 0x38 + 0x20 + read-write + 0x00000000 + + + JL + Injected sequence length + 20 + 2 + + + JSQ4 + 4th conversion in injected + sequence + 15 + 5 + + + JSQ3 + 3rd conversion in injected + sequence + 10 + 5 + + + JSQ2 + 2nd conversion in injected + sequence + 5 + 5 + + + JSQ1 + 1st conversion in injected + sequence + 0 + 5 + + + + + JDR1 + JDR1 + injected data register x + 0x3C + 0x20 + read-only + 0x00000000 + + + JDATA + Injected data + 0 + 16 + + + + + JDR2 + JDR2 + injected data register x + 0x40 + 0x20 + read-only + 0x00000000 + + + JDATA + Injected data + 0 + 16 + + + + + JDR3 + JDR3 + injected data register x + 0x44 + 0x20 + read-only + 0x00000000 + + + JDATA + Injected data + 0 + 16 + + + + + JDR4 + JDR4 + injected data register x + 0x48 + 0x20 + read-only + 0x00000000 + + + JDATA + Injected data + 0 + 16 + + + + + DR + DR + regular data register + 0x4C + 0x20 + read-only + 0x00000000 + + + DATA + Regular data + 0 + 16 + + + + + + + TIM8 + Advanced timer + TIM + 0x40013400 + + 0x0 + 0x400 + registers + + + TIM8_BRK + TIM8 Break interrupt + 43 + + + TIM8_UP + TIM8 Update interrupt + 44 + + + TIM8_TRG_COM + TIM8 Trigger and Commutation + interrupts + 45 + + + TIM8_CC + TIM8 Capture Compare interrupt + 46 + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + CKD + Clock division + 8 + 2 + + + ARPE + Auto-reload preload enable + 7 + 1 + + + CMS + Center-aligned mode + selection + 5 + 2 + + + DIR + Direction + 4 + 1 + + + OPM + One-pulse mode + 3 + 1 + + + URS + Update request source + 2 + 1 + + + UDIS + Update disable + 1 + 1 + + + CEN + Counter enable + 0 + 1 + + + + + CR2 + CR2 + control register 2 + 0x4 + 0x20 + read-write + 0x0000 + + + OIS4 + Output Idle state 4 + 14 + 1 + + + OIS3N + Output Idle state 3 + 13 + 1 + + + OIS3 + Output Idle state 3 + 12 + 1 + + + OIS2N + Output Idle state 2 + 11 + 1 + + + OIS2 + Output Idle state 2 + 10 + 1 + + + OIS1N + Output Idle state 1 + 9 + 1 + + + OIS1 + Output Idle state 1 + 8 + 1 + + + TI1S + TI1 selection + 7 + 1 + + + MMS + Master mode selection + 4 + 3 + + + CCDS + Capture/compare DMA + selection + 3 + 1 + + + CCUS + Capture/compare control update + selection + 2 + 1 + + + CCPC + Capture/compare preloaded + control + 0 + 1 + + + + + SMCR + SMCR + slave mode control register + 0x8 + 0x20 + read-write + 0x0000 + + + ETP + External trigger polarity + 15 + 1 + + + ECE + External clock enable + 14 + 1 + + + ETPS + External trigger prescaler + 12 + 2 + + + ETF + External trigger filter + 8 + 4 + + + MSM + Master/Slave mode + 7 + 1 + + + TS + Trigger selection + 4 + 3 + + + SMS + Slave mode selection + 0 + 3 + + + + + DIER + DIER + DMA/Interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + UIE + Update interrupt enable + 0 + 1 + + + CC1IE + Capture/Compare 1 interrupt + enable + 1 + 1 + + + CC2IE + Capture/Compare 2 interrupt + enable + 2 + 1 + + + CC3IE + Capture/Compare 3 interrupt + enable + 3 + 1 + + + CC4IE + Capture/Compare 4 interrupt + enable + 4 + 1 + + + COMIE + COM interrupt enable + 5 + 1 + + + TIE + Trigger interrupt enable + 6 + 1 + + + BIE + Break interrupt enable + 7 + 1 + + + UDE + Update DMA request enable + 8 + 1 + + + CC1DE + Capture/Compare 1 DMA request + enable + 9 + 1 + + + CC2DE + Capture/Compare 2 DMA request + enable + 10 + 1 + + + CC3DE + Capture/Compare 3 DMA request + enable + 11 + 1 + + + CC4DE + Capture/Compare 4 DMA request + enable + 12 + 1 + + + COMDE + COM DMA request enable + 13 + 1 + + + TDE + Trigger DMA request enable + 14 + 1 + + + + + SR + SR + status register + 0x10 + 0x20 + read-write + 0x0000 + + + CC4OF + Capture/Compare 4 overcapture + flag + 12 + 1 + + + CC3OF + Capture/Compare 3 overcapture + flag + 11 + 1 + + + CC2OF + Capture/compare 2 overcapture + flag + 10 + 1 + + + CC1OF + Capture/Compare 1 overcapture + flag + 9 + 1 + + + BIF + Break interrupt flag + 7 + 1 + + + TIF + Trigger interrupt flag + 6 + 1 + + + COMIF + COM interrupt flag + 5 + 1 + + + CC4IF + Capture/Compare 4 interrupt + flag + 4 + 1 + + + CC3IF + Capture/Compare 3 interrupt + flag + 3 + 1 + + + CC2IF + Capture/Compare 2 interrupt + flag + 2 + 1 + + + CC1IF + Capture/compare 1 interrupt + flag + 1 + 1 + + + UIF + Update interrupt flag + 0 + 1 + + + + + EGR + EGR + event generation register + 0x14 + 0x20 + write-only + 0x0000 + + + BG + Break generation + 7 + 1 + + + TG + Trigger generation + 6 + 1 + + + COMG + Capture/Compare control update + generation + 5 + 1 + + + CC4G + Capture/compare 4 + generation + 4 + 1 + + + CC3G + Capture/compare 3 + generation + 3 + 1 + + + CC2G + Capture/compare 2 + generation + 2 + 1 + + + CC1G + Capture/compare 1 + generation + 1 + 1 + + + UG + Update generation + 0 + 1 + + + + + CCMR1_Output + CCMR1_Output + capture/compare mode register (output + mode) + 0x18 + 0x20 + read-write + 0x00000000 + + + OC2CE + Output Compare 2 clear + enable + 15 + 1 + + + OC2M + Output Compare 2 mode + 12 + 3 + + + OC2PE + Output Compare 2 preload + enable + 11 + 1 + + + OC2FE + Output Compare 2 fast + enable + 10 + 1 + + + CC2S + Capture/Compare 2 + selection + 8 + 2 + + + OC1CE + Output Compare 1 clear + enable + 7 + 1 + + + OC1M + Output Compare 1 mode + 4 + 3 + + + OC1PE + Output Compare 1 preload + enable + 3 + 1 + + + OC1FE + Output Compare 1 fast + enable + 2 + 1 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCMR1_Input + CCMR1_Input + capture/compare mode register 1 (input + mode) + CCMR1_Output + 0x18 + 0x20 + read-write + 0x00000000 + + + IC2F + Input capture 2 filter + 15 + 4 + + + IC2PCS + Input capture 2 prescaler + 10 + 2 + + + CC2S + Capture/Compare 2 + selection + 8 + 2 + + + IC1F + Input capture 1 filter + 4 + 4 + + + ICPCS + Input capture 1 prescaler + 2 + 2 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCMR2_Output + CCMR2_Output + capture/compare mode register (output + mode) + 0x1C + 0x20 + read-write + 0x00000000 + + + OC4CE + Output compare 4 clear + enable + 15 + 1 + + + OC4M + Output compare 4 mode + 12 + 3 + + + OC4PE + Output compare 4 preload + enable + 11 + 1 + + + OC4FE + Output compare 4 fast + enable + 10 + 1 + + + CC4S + Capture/Compare 4 + selection + 8 + 2 + + + OC3CE + Output compare 3 clear + enable + 7 + 1 + + + OC3M + Output compare 3 mode + 4 + 3 + + + OC3PE + Output compare 3 preload + enable + 3 + 1 + + + OC3FE + Output compare 3 fast + enable + 2 + 1 + + + CC3S + Capture/Compare 3 + selection + 0 + 2 + + + + + CCMR2_Input + CCMR2_Input + capture/compare mode register 2 (input + mode) + CCMR2_Output + 0x1C + 0x20 + read-write + 0x00000000 + + + IC4F + Input capture 4 filter + 15 + 4 + + + IC4PSC + Input capture 4 prescaler + 10 + 2 + + + CC4S + Capture/Compare 4 + selection + 8 + 2 + + + IC3F + Input capture 3 filter + 4 + 4 + + + IC3PSC + Input capture 3 prescaler + 2 + 2 + + + CC3S + Capture/compare 3 + selection + 0 + 2 + + + + + CCER + CCER + capture/compare enable + register + 0x20 + 0x20 + read-write + 0x0000 + + + CC4P + Capture/Compare 3 output + Polarity + 13 + 1 + + + CC4E + Capture/Compare 4 output + enable + 12 + 1 + + + CC3NP + Capture/Compare 3 output + Polarity + 11 + 1 + + + CC3NE + Capture/Compare 3 complementary output + enable + 10 + 1 + + + CC3P + Capture/Compare 3 output + Polarity + 9 + 1 + + + CC3E + Capture/Compare 3 output + enable + 8 + 1 + + + CC2NP + Capture/Compare 2 output + Polarity + 7 + 1 + + + CC2NE + Capture/Compare 2 complementary output + enable + 6 + 1 + + + CC2P + Capture/Compare 2 output + Polarity + 5 + 1 + + + CC2E + Capture/Compare 2 output + enable + 4 + 1 + + + CC1NP + Capture/Compare 1 output + Polarity + 3 + 1 + + + CC1NE + Capture/Compare 1 complementary output + enable + 2 + 1 + + + CC1P + Capture/Compare 1 output + Polarity + 1 + 1 + + + CC1E + Capture/Compare 1 output + enable + 0 + 1 + + + + + CNT + CNT + counter + 0x24 + 0x20 + read-write + 0x00000000 + + + CNT + counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + ARR + Auto-reload value + 0 + 16 + + + + + CCR1 + CCR1 + capture/compare register 1 + 0x34 + 0x20 + read-write + 0x00000000 + + + CCR1 + Capture/Compare 1 value + 0 + 16 + + + + + CCR2 + CCR2 + capture/compare register 2 + 0x38 + 0x20 + read-write + 0x00000000 + + + CCR2 + Capture/Compare 2 value + 0 + 16 + + + + + CCR3 + CCR3 + capture/compare register 3 + 0x3C + 0x20 + read-write + 0x00000000 + + + CCR3 + Capture/Compare value + 0 + 16 + + + + + CCR4 + CCR4 + capture/compare register 4 + 0x40 + 0x20 + read-write + 0x00000000 + + + CCR4 + Capture/Compare value + 0 + 16 + + + + + DCR + DCR + DMA control register + 0x48 + 0x20 + read-write + 0x0000 + + + DBL + DMA burst length + 8 + 5 + + + DBA + DMA base address + 0 + 5 + + + + + DMAR + DMAR + DMA address for full transfer + 0x4C + 0x20 + read-write + 0x0000 + + + DMAB + DMA register for burst + accesses + 0 + 16 + + + + + RCR + RCR + repetition counter register + 0x30 + 0x20 + read-write + 0x0000 + + + REP + Repetition counter value + 0 + 8 + + + + + BDTR + BDTR + break and dead-time register + 0x44 + 0x20 + read-write + 0x0000 + + + MOE + Main output enable + 15 + 1 + + + AOE + Automatic output enable + 14 + 1 + + + BKP + Break polarity + 13 + 1 + + + BKE + Break enable + 12 + 1 + + + OSSR + Off-state selection for Run + mode + 11 + 1 + + + OSSI + Off-state selection for Idle + mode + 10 + 1 + + + LOCK + Lock configuration + 8 + 2 + + + DTG + Dead-time generator setup + 0 + 8 + + + + + + + USB + Universal serial bus full-speed device + interface + USB + 0x40005C00 + + 0x0 + 0x400 + registers + + + USB_HP_CAN_TX + USB High Priority or CAN TX + interrupts + 19 + + + USB_LP_CAN_RX0 + USB Low Priority or CAN RX0 + interrupts + 20 + + + USBWakeup + USB wakeup from suspend through EXTI line + interrupt + 42 + + + + EP0R + EP0R + endpoint 0 register + 0x0 + 0x20 + read-write + 0x00000000 + + + EA + Endpoint address + 0 + 4 + + + STAT_TX + Status bits, for transmission + transfers + 4 + 2 + + + DTOG_TX + Data Toggle, for transmission + transfers + 6 + 1 + + + CTR_TX + Correct Transfer for + transmission + 7 + 1 + + + EP_KIND + Endpoint kind + 8 + 1 + + + EP_TYPE + Endpoint type + 9 + 2 + + + SETUP + Setup transaction + completed + 11 + 1 + + + STAT_RX + Status bits, for reception + transfers + 12 + 2 + + + DTOG_RX + Data Toggle, for reception + transfers + 14 + 1 + + + CTR_RX + Correct transfer for + reception + 15 + 1 + + + + + EP1R + EP1R + endpoint 1 register + 0x4 + 0x20 + read-write + 0x00000000 + + + EA + Endpoint address + 0 + 4 + + + STAT_TX + Status bits, for transmission + transfers + 4 + 2 + + + DTOG_TX + Data Toggle, for transmission + transfers + 6 + 1 + + + CTR_TX + Correct Transfer for + transmission + 7 + 1 + + + EP_KIND + Endpoint kind + 8 + 1 + + + EP_TYPE + Endpoint type + 9 + 2 + + + SETUP + Setup transaction + completed + 11 + 1 + + + STAT_RX + Status bits, for reception + transfers + 12 + 2 + + + DTOG_RX + Data Toggle, for reception + transfers + 14 + 1 + + + CTR_RX + Correct transfer for + reception + 15 + 1 + + + + + EP2R + EP2R + endpoint 2 register + 0x8 + 0x20 + read-write + 0x00000000 + + + EA + Endpoint address + 0 + 4 + + + STAT_TX + Status bits, for transmission + transfers + 4 + 2 + + + DTOG_TX + Data Toggle, for transmission + transfers + 6 + 1 + + + CTR_TX + Correct Transfer for + transmission + 7 + 1 + + + EP_KIND + Endpoint kind + 8 + 1 + + + EP_TYPE + Endpoint type + 9 + 2 + + + SETUP + Setup transaction + completed + 11 + 1 + + + STAT_RX + Status bits, for reception + transfers + 12 + 2 + + + DTOG_RX + Data Toggle, for reception + transfers + 14 + 1 + + + CTR_RX + Correct transfer for + reception + 15 + 1 + + + + + EP3R + EP3R + endpoint 3 register + 0xC + 0x20 + read-write + 0x00000000 + + + EA + Endpoint address + 0 + 4 + + + STAT_TX + Status bits, for transmission + transfers + 4 + 2 + + + DTOG_TX + Data Toggle, for transmission + transfers + 6 + 1 + + + CTR_TX + Correct Transfer for + transmission + 7 + 1 + + + EP_KIND + Endpoint kind + 8 + 1 + + + EP_TYPE + Endpoint type + 9 + 2 + + + SETUP + Setup transaction + completed + 11 + 1 + + + STAT_RX + Status bits, for reception + transfers + 12 + 2 + + + DTOG_RX + Data Toggle, for reception + transfers + 14 + 1 + + + CTR_RX + Correct transfer for + reception + 15 + 1 + + + + + EP4R + EP4R + endpoint 4 register + 0x10 + 0x20 + read-write + 0x00000000 + + + EA + Endpoint address + 0 + 4 + + + STAT_TX + Status bits, for transmission + transfers + 4 + 2 + + + DTOG_TX + Data Toggle, for transmission + transfers + 6 + 1 + + + CTR_TX + Correct Transfer for + transmission + 7 + 1 + + + EP_KIND + Endpoint kind + 8 + 1 + + + EP_TYPE + Endpoint type + 9 + 2 + + + SETUP + Setup transaction + completed + 11 + 1 + + + STAT_RX + Status bits, for reception + transfers + 12 + 2 + + + DTOG_RX + Data Toggle, for reception + transfers + 14 + 1 + + + CTR_RX + Correct transfer for + reception + 15 + 1 + + + + + EP5R + EP5R + endpoint 5 register + 0x14 + 0x20 + read-write + 0x00000000 + + + EA + Endpoint address + 0 + 4 + + + STAT_TX + Status bits, for transmission + transfers + 4 + 2 + + + DTOG_TX + Data Toggle, for transmission + transfers + 6 + 1 + + + CTR_TX + Correct Transfer for + transmission + 7 + 1 + + + EP_KIND + Endpoint kind + 8 + 1 + + + EP_TYPE + Endpoint type + 9 + 2 + + + SETUP + Setup transaction + completed + 11 + 1 + + + STAT_RX + Status bits, for reception + transfers + 12 + 2 + + + DTOG_RX + Data Toggle, for reception + transfers + 14 + 1 + + + CTR_RX + Correct transfer for + reception + 15 + 1 + + + + + EP6R + EP6R + endpoint 6 register + 0x18 + 0x20 + read-write + 0x00000000 + + + EA + Endpoint address + 0 + 4 + + + STAT_TX + Status bits, for transmission + transfers + 4 + 2 + + + DTOG_TX + Data Toggle, for transmission + transfers + 6 + 1 + + + CTR_TX + Correct Transfer for + transmission + 7 + 1 + + + EP_KIND + Endpoint kind + 8 + 1 + + + EP_TYPE + Endpoint type + 9 + 2 + + + SETUP + Setup transaction + completed + 11 + 1 + + + STAT_RX + Status bits, for reception + transfers + 12 + 2 + + + DTOG_RX + Data Toggle, for reception + transfers + 14 + 1 + + + CTR_RX + Correct transfer for + reception + 15 + 1 + + + + + EP7R + EP7R + endpoint 7 register + 0x1C + 0x20 + read-write + 0x00000000 + + + EA + Endpoint address + 0 + 4 + + + STAT_TX + Status bits, for transmission + transfers + 4 + 2 + + + DTOG_TX + Data Toggle, for transmission + transfers + 6 + 1 + + + CTR_TX + Correct Transfer for + transmission + 7 + 1 + + + EP_KIND + Endpoint kind + 8 + 1 + + + EP_TYPE + Endpoint type + 9 + 2 + + + SETUP + Setup transaction + completed + 11 + 1 + + + STAT_RX + Status bits, for reception + transfers + 12 + 2 + + + DTOG_RX + Data Toggle, for reception + transfers + 14 + 1 + + + CTR_RX + Correct transfer for + reception + 15 + 1 + + + + + CNTR + CNTR + control register + 0x40 + 0x20 + read-write + 0x00000003 + + + FRES + Force USB Reset + 0 + 1 + + + PDWN + Power down + 1 + 1 + + + LPMODE + Low-power mode + 2 + 1 + + + FSUSP + Force suspend + 3 + 1 + + + RESUME + Resume request + 4 + 1 + + + ESOFM + Expected start of frame interrupt + mask + 8 + 1 + + + SOFM + Start of frame interrupt + mask + 9 + 1 + + + RESETM + USB reset interrupt mask + 10 + 1 + + + SUSPM + Suspend mode interrupt + mask + 11 + 1 + + + WKUPM + Wakeup interrupt mask + 12 + 1 + + + ERRM + Error interrupt mask + 13 + 1 + + + PMAOVRM + Packet memory area over / underrun + interrupt mask + 14 + 1 + + + CTRM + Correct transfer interrupt + mask + 15 + 1 + + + + + ISTR + ISTR + interrupt status register + 0x44 + 0x20 + read-write + 0x00000000 + + + EP_ID + Endpoint Identifier + 0 + 4 + + + DIR + Direction of transaction + 4 + 1 + + + ESOF + Expected start frame + 8 + 1 + + + SOF + start of frame + 9 + 1 + + + RESET + reset request + 10 + 1 + + + SUSP + Suspend mode request + 11 + 1 + + + WKUP + Wakeup + 12 + 1 + + + ERR + Error + 13 + 1 + + + PMAOVR + Packet memory area over / + underrun + 14 + 1 + + + CTR + Correct transfer + 15 + 1 + + + + + FNR + FNR + frame number register + 0x48 + 0x20 + read-only + 0x0000 + + + FN + Frame number + 0 + 11 + + + LSOF + Lost SOF + 11 + 2 + + + LCK + Locked + 13 + 1 + + + RXDM + Receive data - line status + 14 + 1 + + + RXDP + Receive data + line status + 15 + 1 + + + + + DADDR + DADDR + device address + 0x4C + 0x20 + read-write + 0x0000 + + + ADD + Device address + 0 + 7 + + + EF + Enable function + 7 + 1 + + + + + BTABLE + BTABLE + Buffer table address + 0x50 + 0x20 + read-write + 0x0000 + + + BTABLE + Buffer table + 3 + 13 + + + + + + + TIM13 + General purpose timer + TIM + 0x40001C00 + + 0x0 + 0x400 + registers + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + CKD + Clock division + 8 + 2 + + + ARPE + Auto-reload preload enable + 7 + 1 + + + URS + Update request source + 2 + 1 + + + UDIS + Update disable + 1 + 1 + + + CEN + Counter enable + 0 + 1 + + + + + DIER + DIER + DMA/Interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + CC1IE + Capture/Compare 1 interrupt + enable + 1 + 1 + + + UIE + Update interrupt enable + 0 + 1 + + + + + SR + SR + status register + 0x10 + 0x20 + read-write + 0x0000 + + + CC1OF + Capture/Compare 1 overcapture + flag + 9 + 1 + + + CC1IF + Capture/compare 1 interrupt + flag + 1 + 1 + + + UIF + Update interrupt flag + 0 + 1 + + + + + EGR + EGR + event generation register + 0x14 + 0x20 + write-only + 0x0000 + + + CC1G + Capture/compare 1 + generation + 1 + 1 + + + UG + Update generation + 0 + 1 + + + + + CCMR1_Output + CCMR1_Output + capture/compare mode register (output + mode) + 0x18 + 0x20 + read-write + 0x00000000 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + OC1FE + Output compare 1 fast + enable + 2 + 1 + + + OC1PE + Output Compare 1 preload + enable + 3 + 1 + + + OC1M + Output Compare 1 mode + 4 + 3 + + + + + CCMR1_Input + CCMR1_Input + capture/compare mode register (input + mode) + CCMR1_Output + 0x18 + 0x20 + read-write + 0x00000000 + + + IC1F + Input capture 1 filter + 4 + 4 + + + IC1PSC + Input capture 1 prescaler + 2 + 2 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCER + CCER + capture/compare enable + register + 0x20 + 0x20 + read-write + 0x0000 + + + CC1NP + Capture/Compare 1 output + Polarity + 3 + 1 + + + CC1P + Capture/Compare 1 output + Polarity + 1 + 1 + + + CC1E + Capture/Compare 1 output + enable + 0 + 1 + + + + + CNT + CNT + counter + 0x24 + 0x20 + read-write + 0x00000000 + + + CNT + counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + ARR + Auto-reload value + 0 + 16 + + + + + CCR1 + CCR1 + capture/compare register 1 + 0x34 + 0x20 + read-write + 0x00000000 + + + CCR1 + Capture/Compare 1 value + 0 + 16 + + + + + + + TIM14 + 0x40002000 + + + NVIC + Nested Vectored Interrupt + Controller + NVIC + 0xE000E100 + + 0x0 + 0x33D + registers + + + + ISER0 + ISER0 + Interrupt Set-Enable Register + 0x0 + 0x20 + read-write + 0x00000000 + + + SETENA + SETENA + 0 + 32 + + + + + ISER1 + ISER1 + Interrupt Set-Enable Register + 0x4 + 0x20 + read-write + 0x00000000 + + + SETENA + SETENA + 0 + 32 + + + + + ICER0 + ICER0 + Interrupt Clear-Enable + Register + 0x80 + 0x20 + read-write + 0x00000000 + + + CLRENA + CLRENA + 0 + 32 + + + + + ICER1 + ICER1 + Interrupt Clear-Enable + Register + 0x84 + 0x20 + read-write + 0x00000000 + + + CLRENA + CLRENA + 0 + 32 + + + + + ISPR0 + ISPR0 + Interrupt Set-Pending Register + 0x100 + 0x20 + read-write + 0x00000000 + + + SETPEND + SETPEND + 0 + 32 + + + + + ISPR1 + ISPR1 + Interrupt Set-Pending Register + 0x104 + 0x20 + read-write + 0x00000000 + + + SETPEND + SETPEND + 0 + 32 + + + + + ICPR0 + ICPR0 + Interrupt Clear-Pending + Register + 0x180 + 0x20 + read-write + 0x00000000 + + + CLRPEND + CLRPEND + 0 + 32 + + + + + ICPR1 + ICPR1 + Interrupt Clear-Pending + Register + 0x184 + 0x20 + read-write + 0x00000000 + + + CLRPEND + CLRPEND + 0 + 32 + + + + + IABR0 + IABR0 + Interrupt Active Bit Register + 0x200 + 0x20 + read-only + 0x00000000 + + + ACTIVE + ACTIVE + 0 + 32 + + + + + IABR1 + IABR1 + Interrupt Active Bit Register + 0x204 + 0x20 + read-only + 0x00000000 + + + ACTIVE + ACTIVE + 0 + 32 + + + + + IPR0 + IPR0 + Interrupt Priority Register + 0x300 + 0x20 + read-write + 0x00000000 + + + IPR_N0 + IPR_N0 + 0 + 8 + + + IPR_N1 + IPR_N1 + 8 + 8 + + + IPR_N2 + IPR_N2 + 16 + 8 + + + IPR_N3 + IPR_N3 + 24 + 8 + + + + + IPR1 + IPR1 + Interrupt Priority Register + 0x304 + 0x20 + read-write + 0x00000000 + + + IPR_N0 + IPR_N0 + 0 + 8 + + + IPR_N1 + IPR_N1 + 8 + 8 + + + IPR_N2 + IPR_N2 + 16 + 8 + + + IPR_N3 + IPR_N3 + 24 + 8 + + + + + IPR2 + IPR2 + Interrupt Priority Register + 0x308 + 0x20 + read-write + 0x00000000 + + + IPR_N0 + IPR_N0 + 0 + 8 + + + IPR_N1 + IPR_N1 + 8 + 8 + + + IPR_N2 + IPR_N2 + 16 + 8 + + + IPR_N3 + IPR_N3 + 24 + 8 + + + + + IPR3 + IPR3 + Interrupt Priority Register + 0x30C + 0x20 + read-write + 0x00000000 + + + IPR_N0 + IPR_N0 + 0 + 8 + + + IPR_N1 + IPR_N1 + 8 + 8 + + + IPR_N2 + IPR_N2 + 16 + 8 + + + IPR_N3 + IPR_N3 + 24 + 8 + + + + + IPR4 + IPR4 + Interrupt Priority Register + 0x310 + 0x20 + read-write + 0x00000000 + + + IPR_N0 + IPR_N0 + 0 + 8 + + + IPR_N1 + IPR_N1 + 8 + 8 + + + IPR_N2 + IPR_N2 + 16 + 8 + + + IPR_N3 + IPR_N3 + 24 + 8 + + + + + IPR5 + IPR5 + Interrupt Priority Register + 0x314 + 0x20 + read-write + 0x00000000 + + + IPR_N0 + IPR_N0 + 0 + 8 + + + IPR_N1 + IPR_N1 + 8 + 8 + + + IPR_N2 + IPR_N2 + 16 + 8 + + + IPR_N3 + IPR_N3 + 24 + 8 + + + + + IPR6 + IPR6 + Interrupt Priority Register + 0x318 + 0x20 + read-write + 0x00000000 + + + IPR_N0 + IPR_N0 + 0 + 8 + + + IPR_N1 + IPR_N1 + 8 + 8 + + + IPR_N2 + IPR_N2 + 16 + 8 + + + IPR_N3 + IPR_N3 + 24 + 8 + + + + + IPR7 + IPR7 + Interrupt Priority Register + 0x31C + 0x20 + read-write + 0x00000000 + + + IPR_N0 + IPR_N0 + 0 + 8 + + + IPR_N1 + IPR_N1 + 8 + 8 + + + IPR_N2 + IPR_N2 + 16 + 8 + + + IPR_N3 + IPR_N3 + 24 + 8 + + + + + IPR8 + IPR8 + Interrupt Priority Register + 0x320 + 0x20 + read-write + 0x00000000 + + + IPR_N0 + IPR_N0 + 0 + 8 + + + IPR_N1 + IPR_N1 + 8 + 8 + + + IPR_N2 + IPR_N2 + 16 + 8 + + + IPR_N3 + IPR_N3 + 24 + 8 + + + + + IPR9 + IPR9 + Interrupt Priority Register + 0x324 + 0x20 + read-write + 0x00000000 + + + IPR_N0 + IPR_N0 + 0 + 8 + + + IPR_N1 + IPR_N1 + 8 + 8 + + + IPR_N2 + IPR_N2 + 16 + 8 + + + IPR_N3 + IPR_N3 + 24 + 8 + + + + + IPR10 + IPR10 + Interrupt Priority Register + 0x328 + 0x20 + read-write + 0x00000000 + + + IPR_N0 + IPR_N0 + 0 + 8 + + + IPR_N1 + IPR_N1 + 8 + 8 + + + IPR_N2 + IPR_N2 + 16 + 8 + + + IPR_N3 + IPR_N3 + 24 + 8 + + + + + IPR11 + IPR11 + Interrupt Priority Register + 0x32C + 0x20 + read-write + 0x00000000 + + + IPR_N0 + IPR_N0 + 0 + 8 + + + IPR_N1 + IPR_N1 + 8 + 8 + + + IPR_N2 + IPR_N2 + 16 + 8 + + + IPR_N3 + IPR_N3 + 24 + 8 + + + + + IPR12 + IPR12 + Interrupt Priority Register + 0x330 + 0x20 + read-write + 0x00000000 + + + IPR_N0 + IPR_N0 + 0 + 8 + + + IPR_N1 + IPR_N1 + 8 + 8 + + + IPR_N2 + IPR_N2 + 16 + 8 + + + IPR_N3 + IPR_N3 + 24 + 8 + + + + + IPR13 + IPR13 + Interrupt Priority Register + 0x334 + 0x20 + read-write + 0x00000000 + + + IPR_N0 + IPR_N0 + 0 + 8 + + + IPR_N1 + IPR_N1 + 8 + 8 + + + IPR_N2 + IPR_N2 + 16 + 8 + + + IPR_N3 + IPR_N3 + 24 + 8 + + + + + IPR14 + IPR14 + Interrupt Priority Register + 0x338 + 0x20 + read-write + 0x00000000 + + + IPR_N0 + IPR_N0 + 0 + 8 + + + IPR_N1 + IPR_N1 + 8 + 8 + + + IPR_N2 + IPR_N2 + 16 + 8 + + + IPR_N3 + IPR_N3 + 24 + 8 + + + + + + + MPU + Memory protection unit + MPU + 0xE000ED90 + + 0x0 + 0x15 + registers + + + + MPU_TYPER + MPU_TYPER + MPU type register + 0x0 + 0x20 + read-only + 0X00000800 + + + SEPARATE + Separate flag + 0 + 1 + + + DREGION + Number of MPU data regions + 8 + 8 + + + IREGION + Number of MPU instruction + regions + 16 + 8 + + + + + MPU_CTRL + MPU_CTRL + MPU control register + 0x4 + 0x20 + read-only + 0X00000000 + + + ENABLE + Enables the MPU + 0 + 1 + + + HFNMIENA + Enables the operation of MPU during hard + fault + 1 + 1 + + + PRIVDEFENA + Enable priviliged software access to + default memory map + 2 + 1 + + + + + MPU_RNR + MPU_RNR + MPU region number register + 0x8 + 0x20 + read-write + 0X00000000 + + + REGION + MPU region + 0 + 8 + + + + + MPU_RBAR + MPU_RBAR + MPU region base address + register + 0xC + 0x20 + read-write + 0X00000000 + + + REGION + MPU region field + 0 + 4 + + + VALID + MPU region number valid + 4 + 1 + + + ADDR + Region base address field + 5 + 27 + + + + + MPU_RASR + MPU_RASR + MPU region attribute and size + register + 0x10 + 0x20 + read-write + 0X00000000 + + + ENABLE + Region enable bit. + 0 + 1 + + + SIZE + Size of the MPU protection + region + 1 + 5 + + + SRD + Subregion disable bits + 8 + 8 + + + B + memory attribute + 16 + 1 + + + C + memory attribute + 17 + 1 + + + S + Shareable memory attribute + 18 + 1 + + + TEX + memory attribute + 19 + 3 + + + AP + Access permission + 24 + 3 + + + XN + Instruction access disable + bit + 28 + 1 + + + + + + + SCB_ACTRL + System control block ACTLR + SCB + 0xE000E008 + + 0x0 + 0x5 + registers + + + + ACTRL + ACTRL + Auxiliary control register + 0x0 + 0x20 + read-write + 0x00000000 + + + DISFOLD + DISFOLD + 2 + 1 + + + FPEXCODIS + FPEXCODIS + 10 + 1 + + + DISRAMODE + DISRAMODE + 11 + 1 + + + DISITMATBFLUSH + DISITMATBFLUSH + 12 + 1 + + + + + + + NVIC_STIR + Nested vectored interrupt + controller + NVIC + 0xE000EF00 + + 0x0 + 0x5 + registers + + + + STIR + STIR + Software trigger interrupt + register + 0x0 + 0x20 + read-write + 0x00000000 + + + INTID + Software generated interrupt + ID + 0 + 9 + + + + + + + SCB + System control block + SCB + 0xE000ED00 + + 0x0 + 0x41 + registers + + + + CPUID + CPUID + CPUID base register + 0x0 + 0x20 + read-only + 0x410FC241 + + + Revision + Revision number + 0 + 4 + + + PartNo + Part number of the + processor + 4 + 12 + + + Constant + Reads as 0xF + 16 + 4 + + + Variant + Variant number + 20 + 4 + + + Implementer + Implementer code + 24 + 8 + + + + + ICSR + ICSR + Interrupt control and state + register + 0x4 + 0x20 + read-write + 0x00000000 + + + VECTACTIVE + Active vector + 0 + 9 + + + RETTOBASE + Return to base level + 11 + 1 + + + VECTPENDING + Pending vector + 12 + 7 + + + ISRPENDING + Interrupt pending flag + 22 + 1 + + + PENDSTCLR + SysTick exception clear-pending + bit + 25 + 1 + + + PENDSTSET + SysTick exception set-pending + bit + 26 + 1 + + + PENDSVCLR + PendSV clear-pending bit + 27 + 1 + + + PENDSVSET + PendSV set-pending bit + 28 + 1 + + + NMIPENDSET + NMI set-pending bit. + 31 + 1 + + + + + VTOR + VTOR + Vector table offset register + 0x8 + 0x20 + read-write + 0x00000000 + + + TBLOFF + Vector table base offset + field + 9 + 21 + + + + + AIRCR + AIRCR + Application interrupt and reset control + register + 0xC + 0x20 + read-write + 0x00000000 + + + VECTRESET + VECTRESET + 0 + 1 + + + VECTCLRACTIVE + VECTCLRACTIVE + 1 + 1 + + + SYSRESETREQ + SYSRESETREQ + 2 + 1 + + + PRIGROUP + PRIGROUP + 8 + 3 + + + ENDIANESS + ENDIANESS + 15 + 1 + + + VECTKEYSTAT + Register key + 16 + 16 + + + + + SCR + SCR + System control register + 0x10 + 0x20 + read-write + 0x00000000 + + + SLEEPONEXIT + SLEEPONEXIT + 1 + 1 + + + SLEEPDEEP + SLEEPDEEP + 2 + 1 + + + SEVEONPEND + Send Event on Pending bit + 4 + 1 + + + + + CCR + CCR + Configuration and control + register + 0x14 + 0x20 + read-write + 0x00000000 + + + NONBASETHRDENA + Configures how the processor enters + Thread mode + 0 + 1 + + + USERSETMPEND + USERSETMPEND + 1 + 1 + + + UNALIGN__TRP + UNALIGN_ TRP + 3 + 1 + + + DIV_0_TRP + DIV_0_TRP + 4 + 1 + + + BFHFNMIGN + BFHFNMIGN + 8 + 1 + + + STKALIGN + STKALIGN + 9 + 1 + + + + + SHPR1 + SHPR1 + System handler priority + registers + 0x18 + 0x20 + read-write + 0x00000000 + + + PRI_4 + Priority of system handler + 4 + 0 + 8 + + + PRI_5 + Priority of system handler + 5 + 8 + 8 + + + PRI_6 + Priority of system handler + 6 + 16 + 8 + + + + + SHPR2 + SHPR2 + System handler priority + registers + 0x1C + 0x20 + read-write + 0x00000000 + + + PRI_11 + Priority of system handler + 11 + 24 + 8 + + + + + SHPR3 + SHPR3 + System handler priority + registers + 0x20 + 0x20 + read-write + 0x00000000 + + + PRI_14 + Priority of system handler + 14 + 16 + 8 + + + PRI_15 + Priority of system handler + 15 + 24 + 8 + + + + + SHCRS + SHCRS + System handler control and state + register + 0x24 + 0x20 + read-write + 0x00000000 + + + MEMFAULTACT + Memory management fault exception active + bit + 0 + 1 + + + BUSFAULTACT + Bus fault exception active + bit + 1 + 1 + + + USGFAULTACT + Usage fault exception active + bit + 3 + 1 + + + SVCALLACT + SVC call active bit + 7 + 1 + + + MONITORACT + Debug monitor active bit + 8 + 1 + + + PENDSVACT + PendSV exception active + bit + 10 + 1 + + + SYSTICKACT + SysTick exception active + bit + 11 + 1 + + + USGFAULTPENDED + Usage fault exception pending + bit + 12 + 1 + + + MEMFAULTPENDED + Memory management fault exception + pending bit + 13 + 1 + + + BUSFAULTPENDED + Bus fault exception pending + bit + 14 + 1 + + + SVCALLPENDED + SVC call pending bit + 15 + 1 + + + MEMFAULTENA + Memory management fault enable + bit + 16 + 1 + + + BUSFAULTENA + Bus fault enable bit + 17 + 1 + + + USGFAULTENA + Usage fault enable bit + 18 + 1 + + + + + CFSR_UFSR_BFSR_MMFSR + CFSR_UFSR_BFSR_MMFSR + Configurable fault status + register + 0x28 + 0x20 + read-write + 0x00000000 + + + IACCVIOL + IACCVIOL + 0 + 1 + + + DACCVIOL + DACCVIOL + 1 + 1 + + + MUNSTKERR + MUNSTKERR + 3 + 1 + + + MSTKERR + MSTKERR + 4 + 1 + + + MLSPERR + MLSPERR + 5 + 1 + + + MMARVALID + MMARVALID + 7 + 1 + + + IBUSERR + Instruction bus error + 8 + 1 + + + PRECISERR + Precise data bus error + 9 + 1 + + + IMPRECISERR + Imprecise data bus error + 10 + 1 + + + UNSTKERR + Bus fault on unstacking for a return + from exception + 11 + 1 + + + STKERR + Bus fault on stacking for exception + entry + 12 + 1 + + + LSPERR + Bus fault on floating-point lazy state + preservation + 13 + 1 + + + BFARVALID + Bus Fault Address Register (BFAR) valid + flag + 15 + 1 + + + UNDEFINSTR + Undefined instruction usage + fault + 16 + 1 + + + INVSTATE + Invalid state usage fault + 17 + 1 + + + INVPC + Invalid PC load usage + fault + 18 + 1 + + + NOCP + No coprocessor usage + fault. + 19 + 1 + + + UNALIGNED + Unaligned access usage + fault + 24 + 1 + + + DIVBYZERO + Divide by zero usage fault + 25 + 1 + + + + + HFSR + HFSR + Hard fault status register + 0x2C + 0x20 + read-write + 0x00000000 + + + VECTTBL + Vector table hard fault + 1 + 1 + + + FORCED + Forced hard fault + 30 + 1 + + + DEBUG_VT + Reserved for Debug use + 31 + 1 + + + + + MMFAR + MMFAR + Memory management fault address + register + 0x34 + 0x20 + read-write + 0x00000000 + + + MMFAR + Memory management fault + address + 0 + 32 + + + + + BFAR + BFAR + Bus fault address register + 0x38 + 0x20 + read-write + 0x00000000 + + + BFAR + Bus fault address + 0 + 32 + + + + + + + STK + SysTick timer + STK + 0xE000E010 + + 0x0 + 0x11 + registers + + + + CTRL + CTRL + SysTick control and status + register + 0x0 + 0x20 + read-write + 0X00000000 + + + ENABLE + Counter enable + 0 + 1 + + + TICKINT + SysTick exception request + enable + 1 + 1 + + + CLKSOURCE + Clock source selection + 2 + 1 + + + COUNTFLAG + COUNTFLAG + 16 + 1 + + + + + LOAD_ + LOAD_ + SysTick reload value register + 0x4 + 0x20 + read-write + 0X00000000 + + + RELOAD + RELOAD value + 0 + 24 + + + + + VAL + VAL + SysTick current value register + 0x8 + 0x20 + read-write + 0X00000000 + + + CURRENT + Current counter value + 0 + 24 + + + + + CALIB + CALIB + SysTick calibration value + register + 0xC + 0x20 + read-write + 0X00000000 + + + TENMS + Calibration value + 0 + 24 + + + + + + + diff --git a/sys/STM32F446.svd b/sys/STM32F446.svd new file mode 100644 index 0000000..2b729bb --- /dev/null +++ b/sys/STM32F446.svd @@ -0,0 +1,56913 @@ + + + + STM32F446 + 1.9 + STM32F446 + + CM4 + r0p1 + little + true + true + 4 + false + + 8 + 32 + 0x20 + 0x0 + 0xFFFFFFFF + + + DCMI + Digital camera interface + DCMI + 0x50050000 + + 0x0 + 0x400 + registers + + + DCMI + DCMI global interrupt + 78 + + + + CR + CR + control register 1 + 0x0 + 0x20 + 0x0000 + + + CAPTURE + Capture enable + 0 + 1 + read-only + + + CM + Capture mode + 1 + 1 + read-write + + + CROP + Crop feature + 2 + 1 + read-write + + + JPEG + JPEG format + 3 + 1 + read-write + + + ESS + Embedded synchronization + select + 4 + 1 + read-write + + + PCKPOL + Pixel clock polarity + 5 + 1 + read-write + + + HSPOL + Horizontal synchronization + polarity + 6 + 1 + read-write + + + VSPOL + Vertical synchronization + polarity + 7 + 1 + read-write + + + EDM + Extended data mode + 10 + 2 + read-write + + + ENABLE + DCMI enable + 14 + 1 + read-write + + + BSM + Byte Select mode + 16 + 2 + read-only + + + OEBS + Odd/Even Byte Select + 18 + 1 + read-only + + + LSM + Line Select mode + 19 + 1 + read-only + + + OELS + Odd/Even Line Select + 20 + 1 + read-only + + + FCRC + Frame capture rate control + 8 + 2 + read-write + + + + + SR + SR + status register + 0x4 + 0x20 + read-only + 0x0000 + + + FNE + FIFO not empty + 2 + 1 + + + VSYNC + VSYNC + 1 + 1 + + + HSYNC + HSYNC + 0 + 1 + + + + + RIS + RIS + raw interrupt status register + 0x8 + 0x20 + read-only + 0x0000 + + + LINE_RIS + Line raw interrupt status + 4 + 1 + + + VSYNC_RIS + VSYNC raw interrupt status + 3 + 1 + + + ERR_RIS + Synchronization error raw interrupt + status + 2 + 1 + + + OVR_RIS + Overrun raw interrupt + status + 1 + 1 + + + FRAME_RIS + Capture complete raw interrupt + status + 0 + 1 + + + + + IER + IER + interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + LINE_IE + Line interrupt enable + 4 + 1 + + + VSYNC_IE + VSYNC interrupt enable + 3 + 1 + + + ERR_IE + Synchronization error interrupt + enable + 2 + 1 + + + OVR_IE + Overrun interrupt enable + 1 + 1 + + + FRAME_IE + Capture complete interrupt + enable + 0 + 1 + + + + + MIS + MIS + masked interrupt status + register + 0x10 + 0x20 + read-only + 0x0000 + + + LINE_MIS + Line masked interrupt + status + 4 + 1 + + + VSYNC_MIS + VSYNC masked interrupt + status + 3 + 1 + + + ERR_MIS + Synchronization error masked interrupt + status + 2 + 1 + + + OVR_MIS + Overrun masked interrupt + status + 1 + 1 + + + FRAME_MIS + Capture complete masked interrupt + status + 0 + 1 + + + + + ICR + ICR + interrupt clear register + 0x14 + 0x20 + write-only + 0x0000 + + + LINE_ISC + line interrupt status + clear + 4 + 1 + + + VSYNC_ISC + Vertical synch interrupt status + clear + 3 + 1 + + + ERR_ISC + Synchronization error interrupt status + clear + 2 + 1 + + + OVR_ISC + Overrun interrupt status + clear + 1 + 1 + + + FRAME_ISC + Capture complete interrupt status + clear + 0 + 1 + + + + + ESCR + ESCR + embedded synchronization code + register + 0x18 + 0x20 + read-write + 0x0000 + + + FEC + Frame end delimiter code + 24 + 8 + + + LEC + Line end delimiter code + 16 + 8 + + + LSC + Line start delimiter code + 8 + 8 + + + FSC + Frame start delimiter code + 0 + 8 + + + + + ESUR + ESUR + embedded synchronization unmask + register + 0x1C + 0x20 + read-write + 0x0000 + + + FEU + Frame end delimiter unmask + 24 + 8 + + + LEU + Line end delimiter unmask + 16 + 8 + + + LSU + Line start delimiter + unmask + 8 + 8 + + + FSU + Frame start delimiter + unmask + 0 + 8 + + + + + CWSTRT + CWSTRT + crop window start + 0x20 + 0x20 + read-write + 0x0000 + + + VST + Vertical start line count + 16 + 13 + + + HOFFCNT + Horizontal offset count + 0 + 14 + + + + + CWSIZE + CWSIZE + crop window size + 0x24 + 0x20 + read-write + 0x0000 + + + VLINE + Vertical line count + 16 + 14 + + + CAPCNT + Capture count + 0 + 14 + + + + + DR + DR + data register + 0x28 + 0x20 + read-only + 0x0000 + + + Byte3 + Data byte 3 + 24 + 8 + + + Byte2 + Data byte 2 + 16 + 8 + + + Byte1 + Data byte 1 + 8 + 8 + + + Byte0 + Data byte 0 + 0 + 8 + + + + + + + FMC + Flexible memory controller + FSMC + 0xA0000000 + + 0x0 + 0x400 + registers + + + FMC + FMC global interrupt + 48 + + + + BCR1 + BCR1 + SRAM/NOR-Flash chip-select control register + 1 + 0x0 + 0x20 + read-write + 0x000030D0 + + + CCLKEN + CCLKEN + 20 + 1 + + + CBURSTRW + CBURSTRW + 19 + 1 + + + ASYNCWAIT + ASYNCWAIT + 15 + 1 + + + EXTMOD + EXTMOD + 14 + 1 + + + WAITEN + WAITEN + 13 + 1 + + + WREN + WREN + 12 + 1 + + + WAITCFG + WAITCFG + 11 + 1 + + + WAITPOL + WAITPOL + 9 + 1 + + + BURSTEN + BURSTEN + 8 + 1 + + + FACCEN + FACCEN + 6 + 1 + + + MWID + MWID + 4 + 2 + + + MTYP + MTYP + 2 + 2 + + + MUXEN + MUXEN + 1 + 1 + + + MBKEN + MBKEN + 0 + 1 + + + + + BTR1 + BTR1 + SRAM/NOR-Flash chip-select timing register + 1 + 0x4 + 0x20 + read-write + 0xFFFFFFFF + + + ACCMOD + ACCMOD + 28 + 2 + + + DATLAT + DATLAT + 24 + 4 + + + CLKDIV + CLKDIV + 20 + 4 + + + BUSTURN + BUSTURN + 16 + 4 + + + DATAST + DATAST + 8 + 8 + + + ADDHLD + ADDHLD + 4 + 4 + + + ADDSET + ADDSET + 0 + 4 + + + + + BCR2 + BCR2 + SRAM/NOR-Flash chip-select control register + 2 + 0x8 + 0x20 + read-write + 0x000030D0 + + + CBURSTRW + CBURSTRW + 19 + 1 + + + ASYNCWAIT + ASYNCWAIT + 15 + 1 + + + EXTMOD + EXTMOD + 14 + 1 + + + WAITEN + WAITEN + 13 + 1 + + + WREN + WREN + 12 + 1 + + + WAITCFG + WAITCFG + 11 + 1 + + + WRAPMOD + WRAPMOD + 10 + 1 + + + WAITPOL + WAITPOL + 9 + 1 + + + BURSTEN + BURSTEN + 8 + 1 + + + FACCEN + FACCEN + 6 + 1 + + + MWID + MWID + 4 + 2 + + + MTYP + MTYP + 2 + 2 + + + MUXEN + MUXEN + 1 + 1 + + + MBKEN + MBKEN + 0 + 1 + + + + + BTR2 + BTR2 + SRAM/NOR-Flash chip-select timing register + 2 + 0xC + 0x20 + read-write + 0xFFFFFFFF + + + ACCMOD + ACCMOD + 28 + 2 + + + DATLAT + DATLAT + 24 + 4 + + + CLKDIV + CLKDIV + 20 + 4 + + + BUSTURN + BUSTURN + 16 + 4 + + + DATAST + DATAST + 8 + 8 + + + ADDHLD + ADDHLD + 4 + 4 + + + ADDSET + ADDSET + 0 + 4 + + + + + BCR3 + BCR3 + SRAM/NOR-Flash chip-select control register + 3 + 0x10 + 0x20 + read-write + 0x000030D0 + + + CBURSTRW + CBURSTRW + 19 + 1 + + + ASYNCWAIT + ASYNCWAIT + 15 + 1 + + + EXTMOD + EXTMOD + 14 + 1 + + + WAITEN + WAITEN + 13 + 1 + + + WREN + WREN + 12 + 1 + + + WAITCFG + WAITCFG + 11 + 1 + + + WRAPMOD + WRAPMOD + 10 + 1 + + + WAITPOL + WAITPOL + 9 + 1 + + + BURSTEN + BURSTEN + 8 + 1 + + + FACCEN + FACCEN + 6 + 1 + + + MWID + MWID + 4 + 2 + + + MTYP + MTYP + 2 + 2 + + + MUXEN + MUXEN + 1 + 1 + + + MBKEN + MBKEN + 0 + 1 + + + + + BTR3 + BTR3 + SRAM/NOR-Flash chip-select timing register + 3 + 0x14 + 0x20 + read-write + 0xFFFFFFFF + + + ACCMOD + ACCMOD + 28 + 2 + + + DATLAT + DATLAT + 24 + 4 + + + CLKDIV + CLKDIV + 20 + 4 + + + BUSTURN + BUSTURN + 16 + 4 + + + DATAST + DATAST + 8 + 8 + + + ADDHLD + ADDHLD + 4 + 4 + + + ADDSET + ADDSET + 0 + 4 + + + + + BCR4 + BCR4 + SRAM/NOR-Flash chip-select control register + 4 + 0x18 + 0x20 + read-write + 0x000030D0 + + + CBURSTRW + CBURSTRW + 19 + 1 + + + ASYNCWAIT + ASYNCWAIT + 15 + 1 + + + EXTMOD + EXTMOD + 14 + 1 + + + WAITEN + WAITEN + 13 + 1 + + + WREN + WREN + 12 + 1 + + + WAITCFG + WAITCFG + 11 + 1 + + + WRAPMOD + WRAPMOD + 10 + 1 + + + WAITPOL + WAITPOL + 9 + 1 + + + BURSTEN + BURSTEN + 8 + 1 + + + FACCEN + FACCEN + 6 + 1 + + + MWID + MWID + 4 + 2 + + + MTYP + MTYP + 2 + 2 + + + MUXEN + MUXEN + 1 + 1 + + + MBKEN + MBKEN + 0 + 1 + + + + + BTR4 + BTR4 + SRAM/NOR-Flash chip-select timing register + 4 + 0x1C + 0x20 + read-write + 0xFFFFFFFF + + + ACCMOD + ACCMOD + 28 + 2 + + + DATLAT + DATLAT + 24 + 4 + + + CLKDIV + CLKDIV + 20 + 4 + + + BUSTURN + BUSTURN + 16 + 4 + + + DATAST + DATAST + 8 + 8 + + + ADDHLD + ADDHLD + 4 + 4 + + + ADDSET + ADDSET + 0 + 4 + + + + + PCR2 + PCR2 + PC Card/NAND Flash control register + 2 + 0x60 + 0x20 + read-write + 0x00000018 + + + ECCPS + ECCPS + 17 + 3 + + + TAR + TAR + 13 + 4 + + + TCLR + TCLR + 9 + 4 + + + ECCEN + ECCEN + 6 + 1 + + + PWID + PWID + 4 + 2 + + + PTYP + PTYP + 3 + 1 + + + PBKEN + PBKEN + 2 + 1 + + + PWAITEN + PWAITEN + 1 + 1 + + + + + SR2 + SR2 + FIFO status and interrupt register + 2 + 0x64 + 0x20 + 0x00000040 + + + FEMPT + FEMPT + 6 + 1 + read-only + + + IFEN + IFEN + 5 + 1 + read-write + + + ILEN + ILEN + 4 + 1 + read-write + + + IREN + IREN + 3 + 1 + read-write + + + IFS + IFS + 2 + 1 + read-write + + + ILS + ILS + 1 + 1 + read-write + + + IRS + IRS + 0 + 1 + read-write + + + + + PMEM2 + PMEM2 + Common memory space timing register + 2 + 0x68 + 0x20 + read-write + 0xFCFCFCFC + + + MEMHIZx + MEMHIZx + 24 + 8 + + + MEMHOLDx + MEMHOLDx + 16 + 8 + + + MEMWAITx + MEMWAITx + 8 + 8 + + + MEMSETx + MEMSETx + 0 + 8 + + + + + PATT2 + PATT2 + Attribute memory space timing register + 2 + 0x6C + 0x20 + read-write + 0xFCFCFCFC + + + ATTHIZx + ATTHIZx + 24 + 8 + + + ATTHOLDx + ATTHOLDx + 16 + 8 + + + ATTWAITx + ATTWAITx + 8 + 8 + + + ATTSETx + ATTSETx + 0 + 8 + + + + + ECCR2 + ECCR2 + ECC result register 2 + 0x74 + 0x20 + read-only + 0x00000000 + + + ECCx + ECCx + 0 + 32 + + + + + PCR3 + PCR3 + PC Card/NAND Flash control register + 3 + 0x80 + 0x20 + read-write + 0x00000018 + + + ECCPS + ECCPS + 17 + 3 + + + TAR + TAR + 13 + 4 + + + TCLR + TCLR + 9 + 4 + + + ECCEN + ECCEN + 6 + 1 + + + PWID + PWID + 4 + 2 + + + PTYP + PTYP + 3 + 1 + + + PBKEN + PBKEN + 2 + 1 + + + PWAITEN + PWAITEN + 1 + 1 + + + + + SR3 + SR3 + FIFO status and interrupt register + 3 + 0x84 + 0x20 + 0x00000040 + + + FEMPT + FEMPT + 6 + 1 + read-only + + + IFEN + IFEN + 5 + 1 + read-write + + + ILEN + ILEN + 4 + 1 + read-write + + + IREN + IREN + 3 + 1 + read-write + + + IFS + IFS + 2 + 1 + read-write + + + ILS + ILS + 1 + 1 + read-write + + + IRS + IRS + 0 + 1 + read-write + + + + + PMEM3 + PMEM3 + Common memory space timing register + 3 + 0x88 + 0x20 + read-write + 0xFCFCFCFC + + + MEMHIZx + MEMHIZx + 24 + 8 + + + MEMHOLDx + MEMHOLDx + 16 + 8 + + + MEMWAITx + MEMWAITx + 8 + 8 + + + MEMSETx + MEMSETx + 0 + 8 + + + + + PATT3 + PATT3 + Attribute memory space timing register + 3 + 0x8C + 0x20 + read-write + 0xFCFCFCFC + + + ATTHIZx + ATTHIZx + 24 + 8 + + + ATTHOLDx + ATTHOLDx + 16 + 8 + + + ATTWAITx + ATTWAITx + 8 + 8 + + + ATTSETx + ATTSETx + 0 + 8 + + + + + ECCR3 + ECCR3 + ECC result register 3 + 0x94 + 0x20 + read-only + 0x00000000 + + + ECCx + ECCx + 0 + 32 + + + + + PCR4 + PCR4 + PC Card/NAND Flash control register + 4 + 0xA0 + 0x20 + read-write + 0x00000018 + + + ECCPS + ECCPS + 17 + 3 + + + TAR + TAR + 13 + 4 + + + TCLR + TCLR + 9 + 4 + + + ECCEN + ECCEN + 6 + 1 + + + PWID + PWID + 4 + 2 + + + PTYP + PTYP + 3 + 1 + + + PBKEN + PBKEN + 2 + 1 + + + PWAITEN + PWAITEN + 1 + 1 + + + + + SR4 + SR4 + FIFO status and interrupt register + 4 + 0xA4 + 0x20 + 0x00000040 + + + FEMPT + FEMPT + 6 + 1 + read-only + + + IFEN + IFEN + 5 + 1 + read-write + + + ILEN + ILEN + 4 + 1 + read-write + + + IREN + IREN + 3 + 1 + read-write + + + IFS + IFS + 2 + 1 + read-write + + + ILS + ILS + 1 + 1 + read-write + + + IRS + IRS + 0 + 1 + read-write + + + + + PMEM4 + PMEM4 + Common memory space timing register + 4 + 0xA8 + 0x20 + read-write + 0xFCFCFCFC + + + MEMHIZx + MEMHIZx + 24 + 8 + + + MEMHOLDx + MEMHOLDx + 16 + 8 + + + MEMWAITx + MEMWAITx + 8 + 8 + + + MEMSETx + MEMSETx + 0 + 8 + + + + + PATT4 + PATT4 + Attribute memory space timing register + 4 + 0xAC + 0x20 + read-write + 0xFCFCFCFC + + + ATTHIZx + ATTHIZx + 24 + 8 + + + ATTHOLDx + ATTHOLDx + 16 + 8 + + + ATTWAITx + ATTWAITx + 8 + 8 + + + ATTSETx + ATTSETx + 0 + 8 + + + + + PIO4 + PIO4 + I/O space timing register 4 + 0xB0 + 0x20 + read-write + 0xFCFCFCFC + + + IOHIZx + IOHIZx + 24 + 8 + + + IOHOLDx + IOHOLDx + 16 + 8 + + + IOWAITx + IOWAITx + 8 + 8 + + + IOSETx + IOSETx + 0 + 8 + + + + + BWTR1 + BWTR1 + SRAM/NOR-Flash write timing registers + 1 + 0x104 + 0x20 + read-write + 0x0FFFFFFF + + + ACCMOD + ACCMOD + 28 + 2 + + + DATLAT + DATLAT + 24 + 4 + + + CLKDIV + CLKDIV + 20 + 4 + + + DATAST + DATAST + 8 + 8 + + + ADDHLD + ADDHLD + 4 + 4 + + + ADDSET + ADDSET + 0 + 4 + + + + + BWTR2 + BWTR2 + SRAM/NOR-Flash write timing registers + 2 + 0x10C + 0x20 + read-write + 0x0FFFFFFF + + + ACCMOD + ACCMOD + 28 + 2 + + + DATLAT + DATLAT + 24 + 4 + + + CLKDIV + CLKDIV + 20 + 4 + + + DATAST + DATAST + 8 + 8 + + + ADDHLD + ADDHLD + 4 + 4 + + + ADDSET + ADDSET + 0 + 4 + + + + + BWTR3 + BWTR3 + SRAM/NOR-Flash write timing registers + 3 + 0x114 + 0x20 + read-write + 0x0FFFFFFF + + + ACCMOD + ACCMOD + 28 + 2 + + + DATLAT + DATLAT + 24 + 4 + + + CLKDIV + CLKDIV + 20 + 4 + + + DATAST + DATAST + 8 + 8 + + + ADDHLD + ADDHLD + 4 + 4 + + + ADDSET + ADDSET + 0 + 4 + + + + + BWTR4 + BWTR4 + SRAM/NOR-Flash write timing registers + 4 + 0x11C + 0x20 + read-write + 0x0FFFFFFF + + + ACCMOD + ACCMOD + 28 + 2 + + + DATLAT + DATLAT + 24 + 4 + + + CLKDIV + CLKDIV + 20 + 4 + + + DATAST + DATAST + 8 + 8 + + + ADDHLD + ADDHLD + 4 + 4 + + + ADDSET + ADDSET + 0 + 4 + + + + + SDCR1 + SDCR1 + SDRAM Control Register 1 + 0x140 + 0x20 + read-write + 0x000002D0 + + + NC + Number of column address + bits + 0 + 2 + + + NR + Number of row address bits + 2 + 2 + + + MWID + Memory data bus width + 4 + 2 + + + NB + Number of internal banks + 6 + 1 + + + CAS + CAS latency + 7 + 2 + + + WP + Write protection + 9 + 1 + + + SDCLK + SDRAM clock configuration + 10 + 2 + + + RBURST + Burst read + 12 + 1 + + + RPIPE + Read pipe + 13 + 2 + + + + + SDCR2 + SDCR2 + SDRAM Control Register 2 + 0x144 + 0x20 + read-write + 0x000002D0 + + + NC + Number of column address + bits + 0 + 2 + + + NR + Number of row address bits + 2 + 2 + + + MWID + Memory data bus width + 4 + 2 + + + NB + Number of internal banks + 6 + 1 + + + CAS + CAS latency + 7 + 2 + + + WP + Write protection + 9 + 1 + + + SDCLK + SDRAM clock configuration + 10 + 2 + + + RBURST + Burst read + 12 + 1 + + + RPIPE + Read pipe + 13 + 2 + + + + + SDTR1 + SDTR1 + SDRAM Timing register 1 + 0x148 + 0x20 + read-write + 0x0FFFFFFF + + + TMRD + Load Mode Register to + Active + 0 + 4 + + + TXSR + Exit self-refresh delay + 4 + 4 + + + TRAS + Self refresh time + 8 + 4 + + + TRC + Row cycle delay + 12 + 4 + + + TWR + Recovery delay + 16 + 4 + + + TRP + Row precharge delay + 20 + 4 + + + TRCD + Row to column delay + 24 + 4 + + + + + SDTR2 + SDTR2 + SDRAM Timing register 2 + 0x14C + 0x20 + read-write + 0x0FFFFFFF + + + TMRD + Load Mode Register to + Active + 0 + 4 + + + TXSR + Exit self-refresh delay + 4 + 4 + + + TRAS + Self refresh time + 8 + 4 + + + TRC + Row cycle delay + 12 + 4 + + + TWR + Recovery delay + 16 + 4 + + + TRP + Row precharge delay + 20 + 4 + + + TRCD + Row to column delay + 24 + 4 + + + + + SDCMR + SDCMR + SDRAM Command Mode register + 0x150 + 0x20 + 0x00000000 + + + MODE + Command mode + 0 + 3 + write-only + + + CTB2 + Command target bank 2 + 3 + 1 + write-only + + + CTB1 + Command target bank 1 + 4 + 1 + write-only + + + NRFS + Number of Auto-refresh + 5 + 4 + read-write + + + MRD + Mode Register definition + 9 + 13 + read-write + + + + + SDRTR + SDRTR + SDRAM Refresh Timer register + 0x154 + 0x20 + 0x00000000 + + + CRE + Clear Refresh error flag + 0 + 1 + write-only + + + COUNT + Refresh Timer Count + 1 + 13 + read-write + + + REIE + RES Interrupt Enable + 14 + 1 + read-write + + + + + SDSR + SDSR + SDRAM Status register + 0x158 + 0x20 + read-only + 0x00000000 + + + RE + Refresh error flag + 0 + 1 + + + MODES1 + Status Mode for Bank 1 + 1 + 2 + + + MODES2 + Status Mode for Bank 2 + 3 + 2 + + + BUSY + Busy status + 5 + 1 + + + + + + + DBG + Debug support + DBG + 0xE0042000 + + 0x0 + 0x400 + registers + + + + DBGMCU_IDCODE + DBGMCU_IDCODE + IDCODE + 0x0 + 0x20 + read-only + 0x10006411 + + + DEV_ID + DEV_ID + 0 + 12 + + + REV_ID + REV_ID + 16 + 16 + + + + + DBGMCU_CR + DBGMCU_CR + Control Register + 0x4 + 0x20 + read-write + 0x00000000 + + + DBG_SLEEP + DBG_SLEEP + 0 + 1 + + + DBG_STOP + DBG_STOP + 1 + 1 + + + DBG_STANDBY + DBG_STANDBY + 2 + 1 + + + TRACE_IOEN + TRACE_IOEN + 5 + 1 + + + TRACE_MODE + TRACE_MODE + 6 + 2 + + + + + DBGMCU_APB1_FZ + DBGMCU_APB1_FZ + Debug MCU APB1 Freeze registe + 0x8 + 0x20 + read-write + 0x00000000 + + + DBG_TIM2_STOP + DBG_TIM2_STOP + 0 + 1 + + + DBG_TIM3_STOP + DBG_TIM3 _STOP + 1 + 1 + + + DBG_TIM4_STOP + DBG_TIM4_STOP + 2 + 1 + + + DBG_TIM5_STOP + DBG_TIM5_STOP + 3 + 1 + + + DBG_TIM6_STOP + DBG_TIM6_STOP + 4 + 1 + + + DBG_TIM7_STOP + DBG_TIM7_STOP + 5 + 1 + + + DBG_TIM12_STOP + DBG_TIM12_STOP + 6 + 1 + + + DBG_TIM13_STOP + DBG_TIM13_STOP + 7 + 1 + + + DBG_TIM14_STOP + DBG_TIM14_STOP + 8 + 1 + + + DBG_RTC_STOP + RTC stopped when Core is + halted + 10 + 1 + + + DBG_WWDG_STOP + DBG_WWDG_STOP + 11 + 1 + + + DBG_IWDEG_STOP + DBG_IWDEG_STOP + 12 + 1 + + + DBG_J2C1_SMBUS_TIMEOUT + DBG_J2C1_SMBUS_TIMEOUT + 21 + 1 + + + DBG_J2C2_SMBUS_TIMEOUT + DBG_J2C2_SMBUS_TIMEOUT + 22 + 1 + + + DBG_J2C3SMBUS_TIMEOUT + DBG_J2C3SMBUS_TIMEOUT + 23 + 1 + + + DBG_I2CFMP_SMBUS_TIMEOUT + SMBUS timeout mode stopped when Core is + halted + 24 + 1 + + + DBG_CAN1_STOP + DBG_CAN1_STOP + 25 + 1 + + + DBG_CAN2_STOP + DBG_CAN2_STOP + 26 + 1 + + + + + DBGMCU_APB2_FZ + DBGMCU_APB2_FZ + Debug MCU APB2 Freeze registe + 0xC + 0x20 + read-write + 0x00000000 + + + DBG_TIM1_STOP + TIM1 counter stopped when core is + halted + 0 + 1 + + + DBG_TIM8_STOP + TIM8 counter stopped when core is + halted + 1 + 1 + + + DBG_TIM9_STOP + TIM9 counter stopped when core is + halted + 16 + 1 + + + DBG_TIM10_STOP + TIM10 counter stopped when core is + halted + 17 + 1 + + + DBG_TIM11_STOP + TIM11 counter stopped when core is + halted + 18 + 1 + + + + + + + DMA2 + DMA controller + DMA + 0x40026400 + + 0x0 + 0x400 + registers + + + DMA2_Stream0 + DMA2 Stream0 global interrupt + 56 + + + DMA2_Stream1 + DMA2 Stream1 global interrupt + 57 + + + DMA2_Stream2 + DMA2 Stream2 global interrupt + 58 + + + DMA2_Stream3 + DMA2 Stream3 global interrupt + 59 + + + DMA2_Stream4 + DMA2 Stream4 global interrupt + 60 + + + DMA2_Stream5 + DMA2 Stream5 global interrupt + 68 + + + DMA2_Stream6 + DMA2 Stream6 global interrupt + 69 + + + DMA2_Stream7 + DMA2 Stream7 global interrupt + 70 + + + + LISR + LISR + low interrupt status register + 0x0 + 0x20 + read-only + 0x00000000 + + + TCIF3 + Stream x transfer complete interrupt + flag (x = 3..0) + 27 + 1 + + + HTIF3 + Stream x half transfer interrupt flag + (x=3..0) + 26 + 1 + + + TEIF3 + Stream x transfer error interrupt flag + (x=3..0) + 25 + 1 + + + DMEIF3 + Stream x direct mode error interrupt + flag (x=3..0) + 24 + 1 + + + FEIF3 + Stream x FIFO error interrupt flag + (x=3..0) + 22 + 1 + + + TCIF2 + Stream x transfer complete interrupt + flag (x = 3..0) + 21 + 1 + + + HTIF2 + Stream x half transfer interrupt flag + (x=3..0) + 20 + 1 + + + TEIF2 + Stream x transfer error interrupt flag + (x=3..0) + 19 + 1 + + + DMEIF2 + Stream x direct mode error interrupt + flag (x=3..0) + 18 + 1 + + + FEIF2 + Stream x FIFO error interrupt flag + (x=3..0) + 16 + 1 + + + TCIF1 + Stream x transfer complete interrupt + flag (x = 3..0) + 11 + 1 + + + HTIF1 + Stream x half transfer interrupt flag + (x=3..0) + 10 + 1 + + + TEIF1 + Stream x transfer error interrupt flag + (x=3..0) + 9 + 1 + + + DMEIF1 + Stream x direct mode error interrupt + flag (x=3..0) + 8 + 1 + + + FEIF1 + Stream x FIFO error interrupt flag + (x=3..0) + 6 + 1 + + + TCIF0 + Stream x transfer complete interrupt + flag (x = 3..0) + 5 + 1 + + + HTIF0 + Stream x half transfer interrupt flag + (x=3..0) + 4 + 1 + + + TEIF0 + Stream x transfer error interrupt flag + (x=3..0) + 3 + 1 + + + DMEIF0 + Stream x direct mode error interrupt + flag (x=3..0) + 2 + 1 + + + FEIF0 + Stream x FIFO error interrupt flag + (x=3..0) + 0 + 1 + + + + + HISR + HISR + high interrupt status register + 0x4 + 0x20 + read-only + 0x00000000 + + + TCIF7 + Stream x transfer complete interrupt + flag (x=7..4) + 27 + 1 + + + HTIF7 + Stream x half transfer interrupt flag + (x=7..4) + 26 + 1 + + + TEIF7 + Stream x transfer error interrupt flag + (x=7..4) + 25 + 1 + + + DMEIF7 + Stream x direct mode error interrupt + flag (x=7..4) + 24 + 1 + + + FEIF7 + Stream x FIFO error interrupt flag + (x=7..4) + 22 + 1 + + + TCIF6 + Stream x transfer complete interrupt + flag (x=7..4) + 21 + 1 + + + HTIF6 + Stream x half transfer interrupt flag + (x=7..4) + 20 + 1 + + + TEIF6 + Stream x transfer error interrupt flag + (x=7..4) + 19 + 1 + + + DMEIF6 + Stream x direct mode error interrupt + flag (x=7..4) + 18 + 1 + + + FEIF6 + Stream x FIFO error interrupt flag + (x=7..4) + 16 + 1 + + + TCIF5 + Stream x transfer complete interrupt + flag (x=7..4) + 11 + 1 + + + HTIF5 + Stream x half transfer interrupt flag + (x=7..4) + 10 + 1 + + + TEIF5 + Stream x transfer error interrupt flag + (x=7..4) + 9 + 1 + + + DMEIF5 + Stream x direct mode error interrupt + flag (x=7..4) + 8 + 1 + + + FEIF5 + Stream x FIFO error interrupt flag + (x=7..4) + 6 + 1 + + + TCIF4 + Stream x transfer complete interrupt + flag (x=7..4) + 5 + 1 + + + HTIF4 + Stream x half transfer interrupt flag + (x=7..4) + 4 + 1 + + + TEIF4 + Stream x transfer error interrupt flag + (x=7..4) + 3 + 1 + + + DMEIF4 + Stream x direct mode error interrupt + flag (x=7..4) + 2 + 1 + + + FEIF4 + Stream x FIFO error interrupt flag + (x=7..4) + 0 + 1 + + + + + LIFCR + LIFCR + low interrupt flag clear + register + 0x8 + 0x20 + read-write + 0x00000000 + + + CTCIF3 + Stream x clear transfer complete + interrupt flag (x = 3..0) + 27 + 1 + + + CHTIF3 + Stream x clear half transfer interrupt + flag (x = 3..0) + 26 + 1 + + + CTEIF3 + Stream x clear transfer error interrupt + flag (x = 3..0) + 25 + 1 + + + CDMEIF3 + Stream x clear direct mode error + interrupt flag (x = 3..0) + 24 + 1 + + + CFEIF3 + Stream x clear FIFO error interrupt flag + (x = 3..0) + 22 + 1 + + + CTCIF2 + Stream x clear transfer complete + interrupt flag (x = 3..0) + 21 + 1 + + + CHTIF2 + Stream x clear half transfer interrupt + flag (x = 3..0) + 20 + 1 + + + CTEIF2 + Stream x clear transfer error interrupt + flag (x = 3..0) + 19 + 1 + + + CDMEIF2 + Stream x clear direct mode error + interrupt flag (x = 3..0) + 18 + 1 + + + CFEIF2 + Stream x clear FIFO error interrupt flag + (x = 3..0) + 16 + 1 + + + CTCIF1 + Stream x clear transfer complete + interrupt flag (x = 3..0) + 11 + 1 + + + CHTIF1 + Stream x clear half transfer interrupt + flag (x = 3..0) + 10 + 1 + + + CTEIF1 + Stream x clear transfer error interrupt + flag (x = 3..0) + 9 + 1 + + + CDMEIF1 + Stream x clear direct mode error + interrupt flag (x = 3..0) + 8 + 1 + + + CFEIF1 + Stream x clear FIFO error interrupt flag + (x = 3..0) + 6 + 1 + + + CTCIF0 + Stream x clear transfer complete + interrupt flag (x = 3..0) + 5 + 1 + + + CHTIF0 + Stream x clear half transfer interrupt + flag (x = 3..0) + 4 + 1 + + + CTEIF0 + Stream x clear transfer error interrupt + flag (x = 3..0) + 3 + 1 + + + CDMEIF0 + Stream x clear direct mode error + interrupt flag (x = 3..0) + 2 + 1 + + + CFEIF0 + Stream x clear FIFO error interrupt flag + (x = 3..0) + 0 + 1 + + + + + HIFCR + HIFCR + high interrupt flag clear + register + 0xC + 0x20 + read-write + 0x00000000 + + + CTCIF7 + Stream x clear transfer complete + interrupt flag (x = 7..4) + 27 + 1 + + + CHTIF7 + Stream x clear half transfer interrupt + flag (x = 7..4) + 26 + 1 + + + CTEIF7 + Stream x clear transfer error interrupt + flag (x = 7..4) + 25 + 1 + + + CDMEIF7 + Stream x clear direct mode error + interrupt flag (x = 7..4) + 24 + 1 + + + CFEIF7 + Stream x clear FIFO error interrupt flag + (x = 7..4) + 22 + 1 + + + CTCIF6 + Stream x clear transfer complete + interrupt flag (x = 7..4) + 21 + 1 + + + CHTIF6 + Stream x clear half transfer interrupt + flag (x = 7..4) + 20 + 1 + + + CTEIF6 + Stream x clear transfer error interrupt + flag (x = 7..4) + 19 + 1 + + + CDMEIF6 + Stream x clear direct mode error + interrupt flag (x = 7..4) + 18 + 1 + + + CFEIF6 + Stream x clear FIFO error interrupt flag + (x = 7..4) + 16 + 1 + + + CTCIF5 + Stream x clear transfer complete + interrupt flag (x = 7..4) + 11 + 1 + + + CHTIF5 + Stream x clear half transfer interrupt + flag (x = 7..4) + 10 + 1 + + + CTEIF5 + Stream x clear transfer error interrupt + flag (x = 7..4) + 9 + 1 + + + CDMEIF5 + Stream x clear direct mode error + interrupt flag (x = 7..4) + 8 + 1 + + + CFEIF5 + Stream x clear FIFO error interrupt flag + (x = 7..4) + 6 + 1 + + + CTCIF4 + Stream x clear transfer complete + interrupt flag (x = 7..4) + 5 + 1 + + + CHTIF4 + Stream x clear half transfer interrupt + flag (x = 7..4) + 4 + 1 + + + CTEIF4 + Stream x clear transfer error interrupt + flag (x = 7..4) + 3 + 1 + + + CDMEIF4 + Stream x clear direct mode error + interrupt flag (x = 7..4) + 2 + 1 + + + CFEIF4 + Stream x clear FIFO error interrupt flag + (x = 7..4) + 0 + 1 + + + + + S0CR + S0CR + stream x configuration + register + 0x10 + 0x20 + read-write + 0x00000000 + + + CHSEL + Channel selection + 25 + 3 + + + MBURST + Memory burst transfer + configuration + 23 + 2 + + + PBURST + Peripheral burst transfer + configuration + 21 + 2 + + + CT + Current target (only in double buffer + mode) + 19 + 1 + + + DBM + Double buffer mode + 18 + 1 + + + PL + Priority level + 16 + 2 + + + PINCOS + Peripheral increment offset + size + 15 + 1 + + + MSIZE + Memory data size + 13 + 2 + + + PSIZE + Peripheral data size + 11 + 2 + + + MINC + Memory increment mode + 10 + 1 + + + PINC + Peripheral increment mode + 9 + 1 + + + CIRC + Circular mode + 8 + 1 + + + DIR + Data transfer direction + 6 + 2 + + + PFCTRL + Peripheral flow controller + 5 + 1 + + + TCIE + Transfer complete interrupt + enable + 4 + 1 + + + HTIE + Half transfer interrupt + enable + 3 + 1 + + + TEIE + Transfer error interrupt + enable + 2 + 1 + + + DMEIE + Direct mode error interrupt + enable + 1 + 1 + + + EN + Stream enable / flag stream ready when + read low + 0 + 1 + + + + + S0NDTR + S0NDTR + stream x number of data + register + 0x14 + 0x20 + read-write + 0x00000000 + + + NDT + Number of data items to + transfer + 0 + 16 + + + + + S0PAR + S0PAR + stream x peripheral address + register + 0x18 + 0x20 + read-write + 0x00000000 + + + PA + Peripheral address + 0 + 32 + + + + + S0M0AR + S0M0AR + stream x memory 0 address + register + 0x1C + 0x20 + read-write + 0x00000000 + + + M0A + Memory 0 address + 0 + 32 + + + + + S0M1AR + S0M1AR + stream x memory 1 address + register + 0x20 + 0x20 + read-write + 0x00000000 + + + M1A + Memory 1 address (used in case of Double + buffer mode) + 0 + 32 + + + + + S0FCR + S0FCR + stream x FIFO control register + 0x24 + 0x20 + 0x00000021 + + + FEIE + FIFO error interrupt + enable + 7 + 1 + read-write + + + FS + FIFO status + 3 + 3 + read-only + + + DMDIS + Direct mode disable + 2 + 1 + read-write + + + FTH + FIFO threshold selection + 0 + 2 + read-write + + + + + S1CR + S1CR + stream x configuration + register + 0x28 + 0x20 + read-write + 0x00000000 + + + CHSEL + Channel selection + 25 + 3 + + + MBURST + Memory burst transfer + configuration + 23 + 2 + + + PBURST + Peripheral burst transfer + configuration + 21 + 2 + + + ACK + ACK + 20 + 1 + + + CT + Current target (only in double buffer + mode) + 19 + 1 + + + DBM + Double buffer mode + 18 + 1 + + + PL + Priority level + 16 + 2 + + + PINCOS + Peripheral increment offset + size + 15 + 1 + + + MSIZE + Memory data size + 13 + 2 + + + PSIZE + Peripheral data size + 11 + 2 + + + MINC + Memory increment mode + 10 + 1 + + + PINC + Peripheral increment mode + 9 + 1 + + + CIRC + Circular mode + 8 + 1 + + + DIR + Data transfer direction + 6 + 2 + + + PFCTRL + Peripheral flow controller + 5 + 1 + + + TCIE + Transfer complete interrupt + enable + 4 + 1 + + + HTIE + Half transfer interrupt + enable + 3 + 1 + + + TEIE + Transfer error interrupt + enable + 2 + 1 + + + DMEIE + Direct mode error interrupt + enable + 1 + 1 + + + EN + Stream enable / flag stream ready when + read low + 0 + 1 + + + + + S1NDTR + S1NDTR + stream x number of data + register + 0x2C + 0x20 + read-write + 0x00000000 + + + NDT + Number of data items to + transfer + 0 + 16 + + + + + S1PAR + S1PAR + stream x peripheral address + register + 0x30 + 0x20 + read-write + 0x00000000 + + + PA + Peripheral address + 0 + 32 + + + + + S1M0AR + S1M0AR + stream x memory 0 address + register + 0x34 + 0x20 + read-write + 0x00000000 + + + M0A + Memory 0 address + 0 + 32 + + + + + S1M1AR + S1M1AR + stream x memory 1 address + register + 0x38 + 0x20 + read-write + 0x00000000 + + + M1A + Memory 1 address (used in case of Double + buffer mode) + 0 + 32 + + + + + S1FCR + S1FCR + stream x FIFO control register + 0x3C + 0x20 + 0x00000021 + + + FEIE + FIFO error interrupt + enable + 7 + 1 + read-write + + + FS + FIFO status + 3 + 3 + read-only + + + DMDIS + Direct mode disable + 2 + 1 + read-write + + + FTH + FIFO threshold selection + 0 + 2 + read-write + + + + + S2CR + S2CR + stream x configuration + register + 0x40 + 0x20 + read-write + 0x00000000 + + + CHSEL + Channel selection + 25 + 3 + + + MBURST + Memory burst transfer + configuration + 23 + 2 + + + PBURST + Peripheral burst transfer + configuration + 21 + 2 + + + ACK + ACK + 20 + 1 + + + CT + Current target (only in double buffer + mode) + 19 + 1 + + + DBM + Double buffer mode + 18 + 1 + + + PL + Priority level + 16 + 2 + + + PINCOS + Peripheral increment offset + size + 15 + 1 + + + MSIZE + Memory data size + 13 + 2 + + + PSIZE + Peripheral data size + 11 + 2 + + + MINC + Memory increment mode + 10 + 1 + + + PINC + Peripheral increment mode + 9 + 1 + + + CIRC + Circular mode + 8 + 1 + + + DIR + Data transfer direction + 6 + 2 + + + PFCTRL + Peripheral flow controller + 5 + 1 + + + TCIE + Transfer complete interrupt + enable + 4 + 1 + + + HTIE + Half transfer interrupt + enable + 3 + 1 + + + TEIE + Transfer error interrupt + enable + 2 + 1 + + + DMEIE + Direct mode error interrupt + enable + 1 + 1 + + + EN + Stream enable / flag stream ready when + read low + 0 + 1 + + + + + S2NDTR + S2NDTR + stream x number of data + register + 0x44 + 0x20 + read-write + 0x00000000 + + + NDT + Number of data items to + transfer + 0 + 16 + + + + + S2PAR + S2PAR + stream x peripheral address + register + 0x48 + 0x20 + read-write + 0x00000000 + + + PA + Peripheral address + 0 + 32 + + + + + S2M0AR + S2M0AR + stream x memory 0 address + register + 0x4C + 0x20 + read-write + 0x00000000 + + + M0A + Memory 0 address + 0 + 32 + + + + + S2M1AR + S2M1AR + stream x memory 1 address + register + 0x50 + 0x20 + read-write + 0x00000000 + + + M1A + Memory 1 address (used in case of Double + buffer mode) + 0 + 32 + + + + + S2FCR + S2FCR + stream x FIFO control register + 0x54 + 0x20 + 0x00000021 + + + FEIE + FIFO error interrupt + enable + 7 + 1 + read-write + + + FS + FIFO status + 3 + 3 + read-only + + + DMDIS + Direct mode disable + 2 + 1 + read-write + + + FTH + FIFO threshold selection + 0 + 2 + read-write + + + + + S3CR + S3CR + stream x configuration + register + 0x58 + 0x20 + read-write + 0x00000000 + + + CHSEL + Channel selection + 25 + 3 + + + MBURST + Memory burst transfer + configuration + 23 + 2 + + + PBURST + Peripheral burst transfer + configuration + 21 + 2 + + + ACK + ACK + 20 + 1 + + + CT + Current target (only in double buffer + mode) + 19 + 1 + + + DBM + Double buffer mode + 18 + 1 + + + PL + Priority level + 16 + 2 + + + PINCOS + Peripheral increment offset + size + 15 + 1 + + + MSIZE + Memory data size + 13 + 2 + + + PSIZE + Peripheral data size + 11 + 2 + + + MINC + Memory increment mode + 10 + 1 + + + PINC + Peripheral increment mode + 9 + 1 + + + CIRC + Circular mode + 8 + 1 + + + DIR + Data transfer direction + 6 + 2 + + + PFCTRL + Peripheral flow controller + 5 + 1 + + + TCIE + Transfer complete interrupt + enable + 4 + 1 + + + HTIE + Half transfer interrupt + enable + 3 + 1 + + + TEIE + Transfer error interrupt + enable + 2 + 1 + + + DMEIE + Direct mode error interrupt + enable + 1 + 1 + + + EN + Stream enable / flag stream ready when + read low + 0 + 1 + + + + + S3NDTR + S3NDTR + stream x number of data + register + 0x5C + 0x20 + read-write + 0x00000000 + + + NDT + Number of data items to + transfer + 0 + 16 + + + + + S3PAR + S3PAR + stream x peripheral address + register + 0x60 + 0x20 + read-write + 0x00000000 + + + PA + Peripheral address + 0 + 32 + + + + + S3M0AR + S3M0AR + stream x memory 0 address + register + 0x64 + 0x20 + read-write + 0x00000000 + + + M0A + Memory 0 address + 0 + 32 + + + + + S3M1AR + S3M1AR + stream x memory 1 address + register + 0x68 + 0x20 + read-write + 0x00000000 + + + M1A + Memory 1 address (used in case of Double + buffer mode) + 0 + 32 + + + + + S3FCR + S3FCR + stream x FIFO control register + 0x6C + 0x20 + 0x00000021 + + + FEIE + FIFO error interrupt + enable + 7 + 1 + read-write + + + FS + FIFO status + 3 + 3 + read-only + + + DMDIS + Direct mode disable + 2 + 1 + read-write + + + FTH + FIFO threshold selection + 0 + 2 + read-write + + + + + S4CR + S4CR + stream x configuration + register + 0x70 + 0x20 + read-write + 0x00000000 + + + CHSEL + Channel selection + 25 + 3 + + + MBURST + Memory burst transfer + configuration + 23 + 2 + + + PBURST + Peripheral burst transfer + configuration + 21 + 2 + + + ACK + ACK + 20 + 1 + + + CT + Current target (only in double buffer + mode) + 19 + 1 + + + DBM + Double buffer mode + 18 + 1 + + + PL + Priority level + 16 + 2 + + + PINCOS + Peripheral increment offset + size + 15 + 1 + + + MSIZE + Memory data size + 13 + 2 + + + PSIZE + Peripheral data size + 11 + 2 + + + MINC + Memory increment mode + 10 + 1 + + + PINC + Peripheral increment mode + 9 + 1 + + + CIRC + Circular mode + 8 + 1 + + + DIR + Data transfer direction + 6 + 2 + + + PFCTRL + Peripheral flow controller + 5 + 1 + + + TCIE + Transfer complete interrupt + enable + 4 + 1 + + + HTIE + Half transfer interrupt + enable + 3 + 1 + + + TEIE + Transfer error interrupt + enable + 2 + 1 + + + DMEIE + Direct mode error interrupt + enable + 1 + 1 + + + EN + Stream enable / flag stream ready when + read low + 0 + 1 + + + + + S4NDTR + S4NDTR + stream x number of data + register + 0x74 + 0x20 + read-write + 0x00000000 + + + NDT + Number of data items to + transfer + 0 + 16 + + + + + S4PAR + S4PAR + stream x peripheral address + register + 0x78 + 0x20 + read-write + 0x00000000 + + + PA + Peripheral address + 0 + 32 + + + + + S4M0AR + S4M0AR + stream x memory 0 address + register + 0x7C + 0x20 + read-write + 0x00000000 + + + M0A + Memory 0 address + 0 + 32 + + + + + S4M1AR + S4M1AR + stream x memory 1 address + register + 0x80 + 0x20 + read-write + 0x00000000 + + + M1A + Memory 1 address (used in case of Double + buffer mode) + 0 + 32 + + + + + S4FCR + S4FCR + stream x FIFO control register + 0x84 + 0x20 + 0x00000021 + + + FEIE + FIFO error interrupt + enable + 7 + 1 + read-write + + + FS + FIFO status + 3 + 3 + read-only + + + DMDIS + Direct mode disable + 2 + 1 + read-write + + + FTH + FIFO threshold selection + 0 + 2 + read-write + + + + + S5CR + S5CR + stream x configuration + register + 0x88 + 0x20 + read-write + 0x00000000 + + + CHSEL + Channel selection + 25 + 3 + + + MBURST + Memory burst transfer + configuration + 23 + 2 + + + PBURST + Peripheral burst transfer + configuration + 21 + 2 + + + ACK + ACK + 20 + 1 + + + CT + Current target (only in double buffer + mode) + 19 + 1 + + + DBM + Double buffer mode + 18 + 1 + + + PL + Priority level + 16 + 2 + + + PINCOS + Peripheral increment offset + size + 15 + 1 + + + MSIZE + Memory data size + 13 + 2 + + + PSIZE + Peripheral data size + 11 + 2 + + + MINC + Memory increment mode + 10 + 1 + + + PINC + Peripheral increment mode + 9 + 1 + + + CIRC + Circular mode + 8 + 1 + + + DIR + Data transfer direction + 6 + 2 + + + PFCTRL + Peripheral flow controller + 5 + 1 + + + TCIE + Transfer complete interrupt + enable + 4 + 1 + + + HTIE + Half transfer interrupt + enable + 3 + 1 + + + TEIE + Transfer error interrupt + enable + 2 + 1 + + + DMEIE + Direct mode error interrupt + enable + 1 + 1 + + + EN + Stream enable / flag stream ready when + read low + 0 + 1 + + + + + S5NDTR + S5NDTR + stream x number of data + register + 0x8C + 0x20 + read-write + 0x00000000 + + + NDT + Number of data items to + transfer + 0 + 16 + + + + + S5PAR + S5PAR + stream x peripheral address + register + 0x90 + 0x20 + read-write + 0x00000000 + + + PA + Peripheral address + 0 + 32 + + + + + S5M0AR + S5M0AR + stream x memory 0 address + register + 0x94 + 0x20 + read-write + 0x00000000 + + + M0A + Memory 0 address + 0 + 32 + + + + + S5M1AR + S5M1AR + stream x memory 1 address + register + 0x98 + 0x20 + read-write + 0x00000000 + + + M1A + Memory 1 address (used in case of Double + buffer mode) + 0 + 32 + + + + + S5FCR + S5FCR + stream x FIFO control register + 0x9C + 0x20 + 0x00000021 + + + FEIE + FIFO error interrupt + enable + 7 + 1 + read-write + + + FS + FIFO status + 3 + 3 + read-only + + + DMDIS + Direct mode disable + 2 + 1 + read-write + + + FTH + FIFO threshold selection + 0 + 2 + read-write + + + + + S6CR + S6CR + stream x configuration + register + 0xA0 + 0x20 + read-write + 0x00000000 + + + CHSEL + Channel selection + 25 + 3 + + + MBURST + Memory burst transfer + configuration + 23 + 2 + + + PBURST + Peripheral burst transfer + configuration + 21 + 2 + + + ACK + ACK + 20 + 1 + + + CT + Current target (only in double buffer + mode) + 19 + 1 + + + DBM + Double buffer mode + 18 + 1 + + + PL + Priority level + 16 + 2 + + + PINCOS + Peripheral increment offset + size + 15 + 1 + + + MSIZE + Memory data size + 13 + 2 + + + PSIZE + Peripheral data size + 11 + 2 + + + MINC + Memory increment mode + 10 + 1 + + + PINC + Peripheral increment mode + 9 + 1 + + + CIRC + Circular mode + 8 + 1 + + + DIR + Data transfer direction + 6 + 2 + + + PFCTRL + Peripheral flow controller + 5 + 1 + + + TCIE + Transfer complete interrupt + enable + 4 + 1 + + + HTIE + Half transfer interrupt + enable + 3 + 1 + + + TEIE + Transfer error interrupt + enable + 2 + 1 + + + DMEIE + Direct mode error interrupt + enable + 1 + 1 + + + EN + Stream enable / flag stream ready when + read low + 0 + 1 + + + + + S6NDTR + S6NDTR + stream x number of data + register + 0xA4 + 0x20 + read-write + 0x00000000 + + + NDT + Number of data items to + transfer + 0 + 16 + + + + + S6PAR + S6PAR + stream x peripheral address + register + 0xA8 + 0x20 + read-write + 0x00000000 + + + PA + Peripheral address + 0 + 32 + + + + + S6M0AR + S6M0AR + stream x memory 0 address + register + 0xAC + 0x20 + read-write + 0x00000000 + + + M0A + Memory 0 address + 0 + 32 + + + + + S6M1AR + S6M1AR + stream x memory 1 address + register + 0xB0 + 0x20 + read-write + 0x00000000 + + + M1A + Memory 1 address (used in case of Double + buffer mode) + 0 + 32 + + + + + S6FCR + S6FCR + stream x FIFO control register + 0xB4 + 0x20 + 0x00000021 + + + FEIE + FIFO error interrupt + enable + 7 + 1 + read-write + + + FS + FIFO status + 3 + 3 + read-only + + + DMDIS + Direct mode disable + 2 + 1 + read-write + + + FTH + FIFO threshold selection + 0 + 2 + read-write + + + + + S7CR + S7CR + stream x configuration + register + 0xB8 + 0x20 + read-write + 0x00000000 + + + CHSEL + Channel selection + 25 + 3 + + + MBURST + Memory burst transfer + configuration + 23 + 2 + + + PBURST + Peripheral burst transfer + configuration + 21 + 2 + + + ACK + ACK + 20 + 1 + + + CT + Current target (only in double buffer + mode) + 19 + 1 + + + DBM + Double buffer mode + 18 + 1 + + + PL + Priority level + 16 + 2 + + + PINCOS + Peripheral increment offset + size + 15 + 1 + + + MSIZE + Memory data size + 13 + 2 + + + PSIZE + Peripheral data size + 11 + 2 + + + MINC + Memory increment mode + 10 + 1 + + + PINC + Peripheral increment mode + 9 + 1 + + + CIRC + Circular mode + 8 + 1 + + + DIR + Data transfer direction + 6 + 2 + + + PFCTRL + Peripheral flow controller + 5 + 1 + + + TCIE + Transfer complete interrupt + enable + 4 + 1 + + + HTIE + Half transfer interrupt + enable + 3 + 1 + + + TEIE + Transfer error interrupt + enable + 2 + 1 + + + DMEIE + Direct mode error interrupt + enable + 1 + 1 + + + EN + Stream enable / flag stream ready when + read low + 0 + 1 + + + + + S7NDTR + S7NDTR + stream x number of data + register + 0xBC + 0x20 + read-write + 0x00000000 + + + NDT + Number of data items to + transfer + 0 + 16 + + + + + S7PAR + S7PAR + stream x peripheral address + register + 0xC0 + 0x20 + read-write + 0x00000000 + + + PA + Peripheral address + 0 + 32 + + + + + S7M0AR + S7M0AR + stream x memory 0 address + register + 0xC4 + 0x20 + read-write + 0x00000000 + + + M0A + Memory 0 address + 0 + 32 + + + + + S7M1AR + S7M1AR + stream x memory 1 address + register + 0xC8 + 0x20 + read-write + 0x00000000 + + + M1A + Memory 1 address (used in case of Double + buffer mode) + 0 + 32 + + + + + S7FCR + S7FCR + stream x FIFO control register + 0xCC + 0x20 + 0x00000021 + + + FEIE + FIFO error interrupt + enable + 7 + 1 + read-write + + + FS + FIFO status + 3 + 3 + read-only + + + DMDIS + Direct mode disable + 2 + 1 + read-write + + + FTH + FIFO threshold selection + 0 + 2 + read-write + + + + + + + DMA1 + 0x40026000 + + DMA1_Stream0 + DMA1 Stream0 global interrupt + 11 + + + DMA1_Stream1 + DMA1 Stream1 global interrupt + 12 + + + DMA1_Stream2 + DMA1 Stream2 global interrupt + 13 + + + DMA1_Stream3 + DMA1 Stream3 global interrupt + 14 + + + DMA1_Stream4 + DMA1 Stream4 global interrupt + 15 + + + DMA1_Stream5 + DMA1 Stream5 global interrupt + 16 + + + DMA1_Stream6 + DMA1 Stream6 global interrupt + 17 + + + DMA1_Stream7 + DMA1 Stream7 global interrupt + 47 + + + + RCC + Reset and clock control + RCC + 0x40023800 + + 0x0 + 0x400 + registers + + + RCC + RCC global interrupt + 5 + + + + CR + CR + clock control register + 0x0 + 0x20 + 0x00000083 + + + PLLI2SRDY + PLLI2S clock ready flag + 27 + 1 + read-only + + + PLLI2SON + PLLI2S enable + 26 + 1 + read-write + + + PLLRDY + Main PLL (PLL) clock ready + flag + 25 + 1 + read-only + + + PLLON + Main PLL (PLL) enable + 24 + 1 + read-write + + + CSSON + Clock security system + enable + 19 + 1 + read-write + + + HSEBYP + HSE clock bypass + 18 + 1 + read-write + + + HSERDY + HSE clock ready flag + 17 + 1 + read-only + + + HSEON + HSE clock enable + 16 + 1 + read-write + + + HSICAL + Internal high-speed clock + calibration + 8 + 8 + read-only + + + HSITRIM + Internal high-speed clock + trimming + 3 + 5 + read-write + + + HSIRDY + Internal high-speed clock ready + flag + 1 + 1 + read-only + + + HSION + Internal high-speed clock + enable + 0 + 1 + read-write + + + + + PLLCFGR + PLLCFGR + PLL configuration register + 0x4 + 0x20 + read-write + 0x24003010 + + + PLLQ3 + Main PLL (PLL) division factor for USB + OTG FS, SDIO and random number generator + clocks + 27 + 1 + + + PLLQ2 + Main PLL (PLL) division factor for USB + OTG FS, SDIO and random number generator + clocks + 26 + 1 + + + PLLQ1 + Main PLL (PLL) division factor for USB + OTG FS, SDIO and random number generator + clocks + 25 + 1 + + + PLLQ0 + Main PLL (PLL) division factor for USB + OTG FS, SDIO and random number generator + clocks + 24 + 1 + + + PLLSRC + Main PLL(PLL) and audio PLL (PLLI2S) + entry clock source + 22 + 1 + + + PLLP1 + Main PLL (PLL) division factor for main + system clock + 17 + 1 + + + PLLP0 + Main PLL (PLL) division factor for main + system clock + 16 + 1 + + + PLLN8 + Main PLL (PLL) multiplication factor for + VCO + 14 + 1 + + + PLLN7 + Main PLL (PLL) multiplication factor for + VCO + 13 + 1 + + + PLLN6 + Main PLL (PLL) multiplication factor for + VCO + 12 + 1 + + + PLLN5 + Main PLL (PLL) multiplication factor for + VCO + 11 + 1 + + + PLLN4 + Main PLL (PLL) multiplication factor for + VCO + 10 + 1 + + + PLLN3 + Main PLL (PLL) multiplication factor for + VCO + 9 + 1 + + + PLLN2 + Main PLL (PLL) multiplication factor for + VCO + 8 + 1 + + + PLLN1 + Main PLL (PLL) multiplication factor for + VCO + 7 + 1 + + + PLLN0 + Main PLL (PLL) multiplication factor for + VCO + 6 + 1 + + + PLLM5 + Division factor for the main PLL (PLL) + and audio PLL (PLLI2S) input clock + 5 + 1 + + + PLLM4 + Division factor for the main PLL (PLL) + and audio PLL (PLLI2S) input clock + 4 + 1 + + + PLLM3 + Division factor for the main PLL (PLL) + and audio PLL (PLLI2S) input clock + 3 + 1 + + + PLLM2 + Division factor for the main PLL (PLL) + and audio PLL (PLLI2S) input clock + 2 + 1 + + + PLLM1 + Division factor for the main PLL (PLL) + and audio PLL (PLLI2S) input clock + 1 + 1 + + + PLLM0 + Division factor for the main PLL (PLL) + and audio PLL (PLLI2S) input clock + 0 + 1 + + + + + CFGR + CFGR + clock configuration register + 0x8 + 0x20 + 0x00000000 + + + MCO2 + Microcontroller clock output + 2 + 30 + 2 + read-write + + + MCO2PRE + MCO2 prescaler + 27 + 3 + read-write + + + MCO1PRE + MCO1 prescaler + 24 + 3 + read-write + + + I2SSRC + I2S clock selection + 23 + 1 + read-write + + + MCO1 + Microcontroller clock output + 1 + 21 + 2 + read-write + + + RTCPRE + HSE division factor for RTC + clock + 16 + 5 + read-write + + + PPRE2 + APB high-speed prescaler + (APB2) + 13 + 3 + read-write + + + PPRE1 + APB Low speed prescaler + (APB1) + 10 + 3 + read-write + + + HPRE + AHB prescaler + 4 + 4 + read-write + + + SWS1 + System clock switch status + 3 + 1 + read-only + + + SWS0 + System clock switch status + 2 + 1 + read-only + + + SW1 + System clock switch + 1 + 1 + read-write + + + SW0 + System clock switch + 0 + 1 + read-write + + + + + CIR + CIR + clock interrupt register + 0xC + 0x20 + 0x00000000 + + + CSSC + Clock security system interrupt + clear + 23 + 1 + write-only + + + PLLSAIRDYC + PLLSAI Ready Interrupt + Clear + 22 + 1 + write-only + + + PLLI2SRDYC + PLLI2S ready interrupt + clear + 21 + 1 + write-only + + + PLLRDYC + Main PLL(PLL) ready interrupt + clear + 20 + 1 + write-only + + + HSERDYC + HSE ready interrupt clear + 19 + 1 + write-only + + + HSIRDYC + HSI ready interrupt clear + 18 + 1 + write-only + + + LSERDYC + LSE ready interrupt clear + 17 + 1 + write-only + + + LSIRDYC + LSI ready interrupt clear + 16 + 1 + write-only + + + PLLSAIRDYIE + PLLSAI Ready Interrupt + Enable + 14 + 1 + read-write + + + PLLI2SRDYIE + PLLI2S ready interrupt + enable + 13 + 1 + read-write + + + PLLRDYIE + Main PLL (PLL) ready interrupt + enable + 12 + 1 + read-write + + + HSERDYIE + HSE ready interrupt enable + 11 + 1 + read-write + + + HSIRDYIE + HSI ready interrupt enable + 10 + 1 + read-write + + + LSERDYIE + LSE ready interrupt enable + 9 + 1 + read-write + + + LSIRDYIE + LSI ready interrupt enable + 8 + 1 + read-write + + + CSSF + Clock security system interrupt + flag + 7 + 1 + read-only + + + PLLSAIRDYF + PLLSAI ready interrupt + flag + 6 + 1 + read-only + + + PLLI2SRDYF + PLLI2S ready interrupt + flag + 5 + 1 + read-only + + + PLLRDYF + Main PLL (PLL) ready interrupt + flag + 4 + 1 + read-only + + + HSERDYF + HSE ready interrupt flag + 3 + 1 + read-only + + + HSIRDYF + HSI ready interrupt flag + 2 + 1 + read-only + + + LSERDYF + LSE ready interrupt flag + 1 + 1 + read-only + + + LSIRDYF + LSI ready interrupt flag + 0 + 1 + read-only + + + + + AHB1RSTR + AHB1RSTR + AHB1 peripheral reset register + 0x10 + 0x20 + read-write + 0x00000000 + + + OTGHSRST + USB OTG HS module reset + 29 + 1 + + + DMA2RST + DMA2 reset + 22 + 1 + + + DMA1RST + DMA2 reset + 21 + 1 + + + CRCRST + CRC reset + 12 + 1 + + + GPIOHRST + IO port H reset + 7 + 1 + + + GPIOGRST + IO port G reset + 6 + 1 + + + GPIOFRST + IO port F reset + 5 + 1 + + + GPIOERST + IO port E reset + 4 + 1 + + + GPIODRST + IO port D reset + 3 + 1 + + + GPIOCRST + IO port C reset + 2 + 1 + + + GPIOBRST + IO port B reset + 1 + 1 + + + GPIOARST + IO port A reset + 0 + 1 + + + + + AHB2RSTR + AHB2RSTR + AHB2 peripheral reset register + 0x14 + 0x20 + read-write + 0x00000000 + + + OTGFSRST + USB OTG FS module reset + 7 + 1 + + + DCMIRST + Camera interface reset + 0 + 1 + + + + + AHB3RSTR + AHB3RSTR + AHB3 peripheral reset register + 0x18 + 0x20 + read-write + 0x00000000 + + + FMCRST + Flexible memory controller module + reset + 0 + 1 + + + QSPIRST + QUADSPI module reset + 1 + 1 + + + + + APB1RSTR + APB1RSTR + APB1 peripheral reset register + 0x20 + 0x20 + read-write + 0x00000000 + + + TIM2RST + TIM2 reset + 0 + 1 + + + TIM3RST + TIM3 reset + 1 + 1 + + + TIM4RST + TIM4 reset + 2 + 1 + + + TIM5RST + TIM5 reset + 3 + 1 + + + TIM6RST + TIM6 reset + 4 + 1 + + + TIM7RST + TIM7 reset + 5 + 1 + + + TIM12RST + TIM12 reset + 6 + 1 + + + TIM13RST + TIM13 reset + 7 + 1 + + + TIM14RST + TIM14 reset + 8 + 1 + + + WWDGRST + Window watchdog reset + 11 + 1 + + + SPI2RST + SPI 2 reset + 14 + 1 + + + SPI3RST + SPI 3 reset + 15 + 1 + + + SPDIFRST + SPDIF-IN reset + 16 + 1 + + + UART2RST + USART 2 reset + 17 + 1 + + + UART3RST + USART 3 reset + 18 + 1 + + + UART4RST + USART 4 reset + 19 + 1 + + + UART5RST + USART 5 reset + 20 + 1 + + + I2C1RST + I2C 1 reset + 21 + 1 + + + I2C2RST + I2C 2 reset + 22 + 1 + + + I2C3RST + I2C3 reset + 23 + 1 + + + I2CFMP1RST + I2CFMP1 reset + 24 + 1 + + + CAN1RST + CAN1 reset + 25 + 1 + + + CAN2RST + CAN2 reset + 26 + 1 + + + PWRRST + Power interface reset + 28 + 1 + + + DACRST + DAC reset + 29 + 1 + + + + + APB2RSTR + APB2RSTR + APB2 peripheral reset register + 0x24 + 0x20 + read-write + 0x00000000 + + + TIM1RST + TIM1 reset + 0 + 1 + + + TIM8RST + TIM8 reset + 1 + 1 + + + USART1RST + USART1 reset + 4 + 1 + + + USART6RST + USART6 reset + 5 + 1 + + + ADCRST + ADC interface reset (common to all + ADCs) + 8 + 1 + + + SDIORST + SDIO reset + 11 + 1 + + + SPI1RST + SPI 1 reset + 12 + 1 + + + SPI4RST + SPI4 reset + 13 + 1 + + + SYSCFGRST + System configuration controller + reset + 14 + 1 + + + TIM9RST + TIM9 reset + 16 + 1 + + + TIM10RST + TIM10 reset + 17 + 1 + + + TIM11RST + TIM11 reset + 18 + 1 + + + SAI1RST + SAI1 reset + 22 + 1 + + + SAI2RST + SAI2 reset + 23 + 1 + + + + + AHB1ENR + AHB1ENR + AHB1 peripheral clock register + 0x30 + 0x20 + read-write + 0x00100000 + + + OTGHSULPIEN + USB OTG HSULPI clock + enable + 30 + 1 + + + OTGHSEN + USB OTG HS clock enable + 29 + 1 + + + DMA2EN + DMA2 clock enable + 22 + 1 + + + DMA1EN + DMA1 clock enable + 21 + 1 + + + BKPSRAMEN + Backup SRAM interface clock + enable + 18 + 1 + + + CRCEN + CRC clock enable + 12 + 1 + + + GPIOHEN + IO port H clock enable + 7 + 1 + + + GPIOGEN + IO port G clock enable + 6 + 1 + + + GPIOFEN + IO port F clock enable + 5 + 1 + + + GPIOEEN + IO port E clock enable + 4 + 1 + + + GPIODEN + IO port D clock enable + 3 + 1 + + + GPIOCEN + IO port C clock enable + 2 + 1 + + + GPIOBEN + IO port B clock enable + 1 + 1 + + + GPIOAEN + IO port A clock enable + 0 + 1 + + + + + AHB2ENR + AHB2ENR + AHB2 peripheral clock enable + register + 0x34 + 0x20 + read-write + 0x00000000 + + + OTGFSEN + USB OTG FS clock enable + 7 + 1 + + + DCMIEN + Camera interface enable + 0 + 1 + + + + + AHB3ENR + AHB3ENR + AHB3 peripheral clock enable + register + 0x38 + 0x20 + read-write + 0x00000000 + + + FMCEN + Flexible memory controller module clock + enable + 0 + 1 + + + QSPIEN + QUADSPI memory controller module clock + enable + 1 + 1 + + + + + APB1ENR + APB1ENR + APB1 peripheral clock enable + register + 0x40 + 0x20 + read-write + 0x00000000 + + + TIM2EN + TIM2 clock enable + 0 + 1 + + + TIM3EN + TIM3 clock enable + 1 + 1 + + + TIM4EN + TIM4 clock enable + 2 + 1 + + + TIM5EN + TIM5 clock enable + 3 + 1 + + + TIM6EN + TIM6 clock enable + 4 + 1 + + + TIM7EN + TIM7 clock enable + 5 + 1 + + + TIM12EN + TIM12 clock enable + 6 + 1 + + + TIM13EN + TIM13 clock enable + 7 + 1 + + + TIM14EN + TIM14 clock enable + 8 + 1 + + + WWDGEN + Window watchdog clock + enable + 11 + 1 + + + SPI2EN + SPI2 clock enable + 14 + 1 + + + SPI3EN + SPI3 clock enable + 15 + 1 + + + SPDIFEN + SPDIF-IN clock enable + 16 + 1 + + + USART2EN + USART 2 clock enable + 17 + 1 + + + USART3EN + USART3 clock enable + 18 + 1 + + + UART4EN + UART4 clock enable + 19 + 1 + + + UART5EN + UART5 clock enable + 20 + 1 + + + I2C1EN + I2C1 clock enable + 21 + 1 + + + I2C2EN + I2C2 clock enable + 22 + 1 + + + I2C3EN + I2C3 clock enable + 23 + 1 + + + I2CFMP1EN + I2CFMP1 clock enable + 24 + 1 + + + CAN1EN + CAN 1 clock enable + 25 + 1 + + + CAN2EN + CAN 2 clock enable + 26 + 1 + + + CEC + CEC interface clock enable + 27 + 1 + + + PWREN + Power interface clock + enable + 28 + 1 + + + DACEN + DAC interface clock enable + 29 + 1 + + + + + APB2ENR + APB2ENR + APB2 peripheral clock enable + register + 0x44 + 0x20 + read-write + 0x00000000 + + + TIM1EN + TIM1 clock enable + 0 + 1 + + + TIM8EN + TIM8 clock enable + 1 + 1 + + + USART1EN + USART1 clock enable + 4 + 1 + + + USART6EN + USART6 clock enable + 5 + 1 + + + ADC1EN + ADC1 clock enable + 8 + 1 + + + ADC2EN + ADC2 clock enable + 9 + 1 + + + ADC3EN + ADC3 clock enable + 10 + 1 + + + SDIOEN + SDIO clock enable + 11 + 1 + + + SPI1EN + SPI1 clock enable + 12 + 1 + + + SPI4ENR + SPI4 clock enable + 13 + 1 + + + SYSCFGEN + System configuration controller clock + enable + 14 + 1 + + + TIM9EN + TIM9 clock enable + 16 + 1 + + + TIM10EN + TIM10 clock enable + 17 + 1 + + + TIM11EN + TIM11 clock enable + 18 + 1 + + + SAI1EN + SAI1 clock enable + 22 + 1 + + + SAI2EN + SAI2 clock enable + 23 + 1 + + + + + AHB1LPENR + AHB1LPENR + AHB1 peripheral clock enable in low power + mode register + 0x50 + 0x20 + read-write + 0x7E6791FF + + + GPIOALPEN + IO port A clock enable during sleep + mode + 0 + 1 + + + GPIOBLPEN + IO port B clock enable during Sleep + mode + 1 + 1 + + + GPIOCLPEN + IO port C clock enable during Sleep + mode + 2 + 1 + + + GPIODLPEN + IO port D clock enable during Sleep + mode + 3 + 1 + + + GPIOELPEN + IO port E clock enable during Sleep + mode + 4 + 1 + + + GPIOFLPEN + IO port F clock enable during Sleep + mode + 5 + 1 + + + GPIOGLPEN + IO port G clock enable during Sleep + mode + 6 + 1 + + + GPIOHLPEN + IO port H clock enable during Sleep + mode + 7 + 1 + + + CRCLPEN + CRC clock enable during Sleep + mode + 12 + 1 + + + FLITFLPEN + Flash interface clock enable during + Sleep mode + 15 + 1 + + + SRAM1LPEN + SRAM 1interface clock enable during + Sleep mode + 16 + 1 + + + SRAM2LPEN + SRAM 2 interface clock enable during + Sleep mode + 17 + 1 + + + BKPSRAMLPEN + Backup SRAM interface clock enable + during Sleep mode + 18 + 1 + + + DMA1LPEN + DMA1 clock enable during Sleep + mode + 21 + 1 + + + DMA2LPEN + DMA2 clock enable during Sleep + mode + 22 + 1 + + + OTGHSLPEN + USB OTG HS clock enable during Sleep + mode + 29 + 1 + + + OTGHSULPILPEN + USB OTG HS ULPI clock enable during + Sleep mode + 30 + 1 + + + + + AHB2LPENR + AHB2LPENR + AHB2 peripheral clock enable in low power + mode register + 0x54 + 0x20 + read-write + 0x000000F1 + + + OTGFSLPEN + USB OTG FS clock enable during Sleep + mode + 7 + 1 + + + DCMILPEN + Camera interface enable during Sleep + mode + 0 + 1 + + + + + AHB3LPENR + AHB3LPENR + AHB3 peripheral clock enable in low power + mode register + 0x58 + 0x20 + read-write + 0x00000001 + + + FMCLPEN + Flexible memory controller module clock + enable during Sleep mode + 0 + 1 + + + QSPILPEN + QUADSPI memory controller module clock + enable during Sleep mode + 1 + 1 + + + + + APB1LPENR + APB1LPENR + APB1 peripheral clock enable in low power + mode register + 0x60 + 0x20 + read-write + 0x36FEC9FF + + + TIM2LPEN + TIM2 clock enable during Sleep + mode + 0 + 1 + + + TIM3LPEN + TIM3 clock enable during Sleep + mode + 1 + 1 + + + TIM4LPEN + TIM4 clock enable during Sleep + mode + 2 + 1 + + + TIM5LPEN + TIM5 clock enable during Sleep + mode + 3 + 1 + + + TIM6LPEN + TIM6 clock enable during Sleep + mode + 4 + 1 + + + TIM7LPEN + TIM7 clock enable during Sleep + mode + 5 + 1 + + + TIM12LPEN + TIM12 clock enable during Sleep + mode + 6 + 1 + + + TIM13LPEN + TIM13 clock enable during Sleep + mode + 7 + 1 + + + TIM14LPEN + TIM14 clock enable during Sleep + mode + 8 + 1 + + + WWDGLPEN + Window watchdog clock enable during + Sleep mode + 11 + 1 + + + SPI2LPEN + SPI2 clock enable during Sleep + mode + 14 + 1 + + + SPI3LPEN + SPI3 clock enable during Sleep + mode + 15 + 1 + + + SPDIFLPEN + SPDIF clock enable during Sleep + mode + 16 + 1 + + + USART2LPEN + USART2 clock enable during Sleep + mode + 17 + 1 + + + USART3LPEN + USART3 clock enable during Sleep + mode + 18 + 1 + + + UART4LPEN + UART4 clock enable during Sleep + mode + 19 + 1 + + + UART5LPEN + UART5 clock enable during Sleep + mode + 20 + 1 + + + I2C1LPEN + I2C1 clock enable during Sleep + mode + 21 + 1 + + + I2C2LPEN + I2C2 clock enable during Sleep + mode + 22 + 1 + + + I2C3LPEN + I2C3 clock enable during Sleep + mode + 23 + 1 + + + I2CFMP1LPEN + I2CFMP1 clock enable during Sleep + mode + 24 + 1 + + + CAN1LPEN + CAN 1 clock enable during Sleep + mode + 25 + 1 + + + CAN2LPEN + CAN 2 clock enable during Sleep + mode + 26 + 1 + + + CECLPEN + CEC clock enable during Sleep + mode + 27 + 1 + + + PWRLPEN + Power interface clock enable during + Sleep mode + 28 + 1 + + + DACLPEN + DAC interface clock enable during Sleep + mode + 29 + 1 + + + + + APB2LPENR + APB2LPENR + APB2 peripheral clock enabled in low power + mode register + 0x64 + 0x20 + read-write + 0x00075F33 + + + TIM1LPEN + TIM1 clock enable during Sleep + mode + 0 + 1 + + + TIM8LPEN + TIM8 clock enable during Sleep + mode + 1 + 1 + + + USART1LPEN + USART1 clock enable during Sleep + mode + 4 + 1 + + + USART6LPEN + USART6 clock enable during Sleep + mode + 5 + 1 + + + ADC1LPEN + ADC1 clock enable during Sleep + mode + 8 + 1 + + + ADC2LPEN + ADC2 clock enable during Sleep + mode + 9 + 1 + + + ADC3LPEN + ADC 3 clock enable during Sleep + mode + 10 + 1 + + + SDIOLPEN + SDIO clock enable during Sleep + mode + 11 + 1 + + + SPI1LPEN + SPI 1 clock enable during Sleep + mode + 12 + 1 + + + SPI4LPEN + SPI 4 clock enable during Sleep + mode + 13 + 1 + + + SYSCFGLPEN + System configuration controller clock + enable during Sleep mode + 14 + 1 + + + TIM9LPEN + TIM9 clock enable during sleep + mode + 16 + 1 + + + TIM10LPEN + TIM10 clock enable during Sleep + mode + 17 + 1 + + + TIM11LPEN + TIM11 clock enable during Sleep + mode + 18 + 1 + + + SAI1LPEN + SAI1 clock enable + 22 + 1 + + + SAI2LPEN + SAI2 clock enable + 23 + 1 + + + + + BDCR + BDCR + Backup domain control register + 0x70 + 0x20 + 0x00000000 + + + BDRST + Backup domain software + reset + 16 + 1 + read-write + + + RTCEN + RTC clock enable + 15 + 1 + read-write + + + RTCSEL + RTC clock source selection + 8 + 2 + read-write + + + LSEMOD + External low-speed oscillator + mode + 3 + 1 + read-write + + + LSEBYP + External low-speed oscillator + bypass + 2 + 1 + read-write + + + LSERDY + External low-speed oscillator + ready + 1 + 1 + read-only + + + LSEON + External low-speed oscillator + enable + 0 + 1 + read-write + + + + + CSR + CSR + clock control & status + register + 0x74 + 0x20 + 0x0E000000 + + + LPWRRSTF + Low-power reset flag + 31 + 1 + read-write + + + WWDGRSTF + Window watchdog reset flag + 30 + 1 + read-write + + + WDGRSTF + Independent watchdog reset + flag + 29 + 1 + read-write + + + SFTRSTF + Software reset flag + 28 + 1 + read-write + + + PORRSTF + POR/PDR reset flag + 27 + 1 + read-write + + + PADRSTF + PIN reset flag + 26 + 1 + read-write + + + BORRSTF + BOR reset flag + 25 + 1 + read-write + + + RMVF + Remove reset flag + 24 + 1 + read-write + + + LSIRDY + Internal low-speed oscillator + ready + 1 + 1 + read-only + + + LSION + Internal low-speed oscillator + enable + 0 + 1 + read-write + + + + + SSCGR + SSCGR + spread spectrum clock generation + register + 0x80 + 0x20 + read-write + 0x00000000 + + + SSCGEN + Spread spectrum modulation + enable + 31 + 1 + + + SPREADSEL + Spread Select + 30 + 1 + + + INCSTEP + Incrementation step + 13 + 15 + + + MODPER + Modulation period + 0 + 13 + + + + + PLLI2SCFGR + PLLI2SCFGR + PLLI2S configuration register + 0x84 + 0x20 + read-write + 0x20003000 + + + PLLI2SM + Division factor for audio PLL (PLLI2S) + input clock + 0 + 6 + + + PLLI2SN + PLLI2S multiplication factor for + VCO + 6 + 9 + + + PLLI2SP + PLLI2S division factor for SPDIF-IN + clock + 16 + 2 + + + PLLI2SQ + PLLI2S division factor for SAI1 + clock + 24 + 4 + + + PLLI2SR + PLLI2S division factor for I2S + clocks + 28 + 3 + + + + + PLLSAICFGR + PLLSAICFGR + PLL configuration register + 0x88 + 0x20 + read-write + 0x24003000 + + + PLLSAIM + Division factor for audio PLLSAI input + clock + 0 + 6 + + + PLLSAIN + PLLSAI division factor for + VCO + 6 + 9 + + + PLLSAIP + PLLSAI division factor for 48 MHz + clock + 16 + 2 + + + PLLSAIQ + PLLSAI division factor for SAIs + clock + 24 + 4 + + + + + DCKCFGR + DCKCFGR + Dedicated Clock Configuration + Register + 0x8C + 0x20 + read-write + 0x00000000 + + + PLLI2SDIVQ + PLLI2S division factor for SAIs + clock + 0 + 5 + + + PLLSAIDIVQ + PLLSAI division factor for SAIs + clock + 8 + 5 + + + SAI1SRC + SAI1 clock source + selection + 20 + 2 + + + SAI2SRC + SAI2 clock source + selection + 22 + 2 + + + TIMPRE + Timers clocks prescalers + selection + 24 + 1 + + + I2S1SRC + I2S APB1 clock source + selection + 25 + 2 + + + I2S2SRC + I2S APB2 clock source + selection + 27 + 2 + + + + + CKGATENR + CKGATENR + clocks gated enable register + 0x90 + 0x20 + read-write + 0x00000000 + + + AHB2APB1_CKEN + AHB to APB1 Bridge clock + enable + 0 + 1 + + + AHB2APB2_CKEN + AHB to APB2 Bridge clock + enable + 1 + 1 + + + CM4DBG_CKEN + Cortex M4 ETM clock enable + 2 + 1 + + + SPARE_CKEN + Spare clock enable + 3 + 1 + + + SRAM_CKEN + SRQAM controller clock + enable + 4 + 1 + + + FLITF_CKEN + Flash Interface clock + enable + 5 + 1 + + + RCC_CKEN + RCC clock enable + 6 + 1 + + + + + DCKCFGR2 + DCKCFGR2 + dedicated clocks configuration register + 2 + 0x94 + 0x20 + read-write + 0x00000000 + + + FMPI2C1SEL + I2C4 kernel clock source + selection + 22 + 2 + + + CECSEL + HDMI CEC clock source + selection + 26 + 1 + + + CK48MSEL + SDIO/USBFS/HS clock + selection + 27 + 1 + + + SDIOSEL + SDIO clock selection + 28 + 1 + + + SPDIFSEL + SPDIF clock selection + 29 + 1 + + + + + + + GPIOH + General-purpose I/Os + GPIO + 0x40021C00 + + 0x0 + 0x400 + registers + + + + MODER + MODER + GPIO port mode register + 0x0 + 0x20 + read-write + 0x00000000 + + + MODER15 + Port x configuration bits (y = + 0..15) + 30 + 2 + + + MODER14 + Port x configuration bits (y = + 0..15) + 28 + 2 + + + MODER13 + Port x configuration bits (y = + 0..15) + 26 + 2 + + + MODER12 + Port x configuration bits (y = + 0..15) + 24 + 2 + + + MODER11 + Port x configuration bits (y = + 0..15) + 22 + 2 + + + MODER10 + Port x configuration bits (y = + 0..15) + 20 + 2 + + + MODER9 + Port x configuration bits (y = + 0..15) + 18 + 2 + + + MODER8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + MODER7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + MODER6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + MODER5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + MODER4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + MODER3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + MODER2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + MODER1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + MODER0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + OTYPER + OTYPER + GPIO port output type register + 0x4 + 0x20 + read-write + 0x00000000 + + + OT15 + Port x configuration bits (y = + 0..15) + 15 + 1 + + + OT14 + Port x configuration bits (y = + 0..15) + 14 + 1 + + + OT13 + Port x configuration bits (y = + 0..15) + 13 + 1 + + + OT12 + Port x configuration bits (y = + 0..15) + 12 + 1 + + + OT11 + Port x configuration bits (y = + 0..15) + 11 + 1 + + + OT10 + Port x configuration bits (y = + 0..15) + 10 + 1 + + + OT9 + Port x configuration bits (y = + 0..15) + 9 + 1 + + + OT8 + Port x configuration bits (y = + 0..15) + 8 + 1 + + + OT7 + Port x configuration bits (y = + 0..15) + 7 + 1 + + + OT6 + Port x configuration bits (y = + 0..15) + 6 + 1 + + + OT5 + Port x configuration bits (y = + 0..15) + 5 + 1 + + + OT4 + Port x configuration bits (y = + 0..15) + 4 + 1 + + + OT3 + Port x configuration bits (y = + 0..15) + 3 + 1 + + + OT2 + Port x configuration bits (y = + 0..15) + 2 + 1 + + + OT1 + Port x configuration bits (y = + 0..15) + 1 + 1 + + + OT0 + Port x configuration bits (y = + 0..15) + 0 + 1 + + + + + OSPEEDR + OSPEEDR + GPIO port output speed + register + 0x8 + 0x20 + read-write + 0x00000000 + + + OSPEEDR15 + Port x configuration bits (y = + 0..15) + 30 + 2 + + + OSPEEDR14 + Port x configuration bits (y = + 0..15) + 28 + 2 + + + OSPEEDR13 + Port x configuration bits (y = + 0..15) + 26 + 2 + + + OSPEEDR12 + Port x configuration bits (y = + 0..15) + 24 + 2 + + + OSPEEDR11 + Port x configuration bits (y = + 0..15) + 22 + 2 + + + OSPEEDR10 + Port x configuration bits (y = + 0..15) + 20 + 2 + + + OSPEEDR9 + Port x configuration bits (y = + 0..15) + 18 + 2 + + + OSPEEDR8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + OSPEEDR7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + OSPEEDR6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + OSPEEDR5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + OSPEEDR4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + OSPEEDR3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + OSPEEDR2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + OSPEEDR1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + OSPEEDR0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + PUPDR + PUPDR + GPIO port pull-up/pull-down + register + 0xC + 0x20 + read-write + 0x00000000 + + + PUPDR15 + Port x configuration bits (y = + 0..15) + 30 + 2 + + + PUPDR14 + Port x configuration bits (y = + 0..15) + 28 + 2 + + + PUPDR13 + Port x configuration bits (y = + 0..15) + 26 + 2 + + + PUPDR12 + Port x configuration bits (y = + 0..15) + 24 + 2 + + + PUPDR11 + Port x configuration bits (y = + 0..15) + 22 + 2 + + + PUPDR10 + Port x configuration bits (y = + 0..15) + 20 + 2 + + + PUPDR9 + Port x configuration bits (y = + 0..15) + 18 + 2 + + + PUPDR8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + PUPDR7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + PUPDR6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + PUPDR5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + PUPDR4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + PUPDR3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + PUPDR2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + PUPDR1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + PUPDR0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + IDR + IDR + GPIO port input data register + 0x10 + 0x20 + read-only + 0x00000000 + + + IDR15 + Port input data (y = + 0..15) + 15 + 1 + + + IDR14 + Port input data (y = + 0..15) + 14 + 1 + + + IDR13 + Port input data (y = + 0..15) + 13 + 1 + + + IDR12 + Port input data (y = + 0..15) + 12 + 1 + + + IDR11 + Port input data (y = + 0..15) + 11 + 1 + + + IDR10 + Port input data (y = + 0..15) + 10 + 1 + + + IDR9 + Port input data (y = + 0..15) + 9 + 1 + + + IDR8 + Port input data (y = + 0..15) + 8 + 1 + + + IDR7 + Port input data (y = + 0..15) + 7 + 1 + + + IDR6 + Port input data (y = + 0..15) + 6 + 1 + + + IDR5 + Port input data (y = + 0..15) + 5 + 1 + + + IDR4 + Port input data (y = + 0..15) + 4 + 1 + + + IDR3 + Port input data (y = + 0..15) + 3 + 1 + + + IDR2 + Port input data (y = + 0..15) + 2 + 1 + + + IDR1 + Port input data (y = + 0..15) + 1 + 1 + + + IDR0 + Port input data (y = + 0..15) + 0 + 1 + + + + + ODR + ODR + GPIO port output data register + 0x14 + 0x20 + read-write + 0x00000000 + + + ODR15 + Port output data (y = + 0..15) + 15 + 1 + + + ODR14 + Port output data (y = + 0..15) + 14 + 1 + + + ODR13 + Port output data (y = + 0..15) + 13 + 1 + + + ODR12 + Port output data (y = + 0..15) + 12 + 1 + + + ODR11 + Port output data (y = + 0..15) + 11 + 1 + + + ODR10 + Port output data (y = + 0..15) + 10 + 1 + + + ODR9 + Port output data (y = + 0..15) + 9 + 1 + + + ODR8 + Port output data (y = + 0..15) + 8 + 1 + + + ODR7 + Port output data (y = + 0..15) + 7 + 1 + + + ODR6 + Port output data (y = + 0..15) + 6 + 1 + + + ODR5 + Port output data (y = + 0..15) + 5 + 1 + + + ODR4 + Port output data (y = + 0..15) + 4 + 1 + + + ODR3 + Port output data (y = + 0..15) + 3 + 1 + + + ODR2 + Port output data (y = + 0..15) + 2 + 1 + + + ODR1 + Port output data (y = + 0..15) + 1 + 1 + + + ODR0 + Port output data (y = + 0..15) + 0 + 1 + + + + + BSRR + BSRR + GPIO port bit set/reset + register + 0x18 + 0x20 + write-only + 0x00000000 + + + BR15 + Port x reset bit y (y = + 0..15) + 31 + 1 + + + BR14 + Port x reset bit y (y = + 0..15) + 30 + 1 + + + BR13 + Port x reset bit y (y = + 0..15) + 29 + 1 + + + BR12 + Port x reset bit y (y = + 0..15) + 28 + 1 + + + BR11 + Port x reset bit y (y = + 0..15) + 27 + 1 + + + BR10 + Port x reset bit y (y = + 0..15) + 26 + 1 + + + BR9 + Port x reset bit y (y = + 0..15) + 25 + 1 + + + BR8 + Port x reset bit y (y = + 0..15) + 24 + 1 + + + BR7 + Port x reset bit y (y = + 0..15) + 23 + 1 + + + BR6 + Port x reset bit y (y = + 0..15) + 22 + 1 + + + BR5 + Port x reset bit y (y = + 0..15) + 21 + 1 + + + BR4 + Port x reset bit y (y = + 0..15) + 20 + 1 + + + BR3 + Port x reset bit y (y = + 0..15) + 19 + 1 + + + BR2 + Port x reset bit y (y = + 0..15) + 18 + 1 + + + BR1 + Port x reset bit y (y = + 0..15) + 17 + 1 + + + BR0 + Port x set bit y (y= + 0..15) + 16 + 1 + + + BS15 + Port x set bit y (y= + 0..15) + 15 + 1 + + + BS14 + Port x set bit y (y= + 0..15) + 14 + 1 + + + BS13 + Port x set bit y (y= + 0..15) + 13 + 1 + + + BS12 + Port x set bit y (y= + 0..15) + 12 + 1 + + + BS11 + Port x set bit y (y= + 0..15) + 11 + 1 + + + BS10 + Port x set bit y (y= + 0..15) + 10 + 1 + + + BS9 + Port x set bit y (y= + 0..15) + 9 + 1 + + + BS8 + Port x set bit y (y= + 0..15) + 8 + 1 + + + BS7 + Port x set bit y (y= + 0..15) + 7 + 1 + + + BS6 + Port x set bit y (y= + 0..15) + 6 + 1 + + + BS5 + Port x set bit y (y= + 0..15) + 5 + 1 + + + BS4 + Port x set bit y (y= + 0..15) + 4 + 1 + + + BS3 + Port x set bit y (y= + 0..15) + 3 + 1 + + + BS2 + Port x set bit y (y= + 0..15) + 2 + 1 + + + BS1 + Port x set bit y (y= + 0..15) + 1 + 1 + + + BS0 + Port x set bit y (y= + 0..15) + 0 + 1 + + + + + LCKR + LCKR + GPIO port configuration lock + register + 0x1C + 0x20 + read-write + 0x00000000 + + + LCKK + Port x lock bit y (y= + 0..15) + 16 + 1 + + + LCK15 + Port x lock bit y (y= + 0..15) + 15 + 1 + + + LCK14 + Port x lock bit y (y= + 0..15) + 14 + 1 + + + LCK13 + Port x lock bit y (y= + 0..15) + 13 + 1 + + + LCK12 + Port x lock bit y (y= + 0..15) + 12 + 1 + + + LCK11 + Port x lock bit y (y= + 0..15) + 11 + 1 + + + LCK10 + Port x lock bit y (y= + 0..15) + 10 + 1 + + + LCK9 + Port x lock bit y (y= + 0..15) + 9 + 1 + + + LCK8 + Port x lock bit y (y= + 0..15) + 8 + 1 + + + LCK7 + Port x lock bit y (y= + 0..15) + 7 + 1 + + + LCK6 + Port x lock bit y (y= + 0..15) + 6 + 1 + + + LCK5 + Port x lock bit y (y= + 0..15) + 5 + 1 + + + LCK4 + Port x lock bit y (y= + 0..15) + 4 + 1 + + + LCK3 + Port x lock bit y (y= + 0..15) + 3 + 1 + + + LCK2 + Port x lock bit y (y= + 0..15) + 2 + 1 + + + LCK1 + Port x lock bit y (y= + 0..15) + 1 + 1 + + + LCK0 + Port x lock bit y (y= + 0..15) + 0 + 1 + + + + + AFRL + AFRL + GPIO alternate function low + register + 0x20 + 0x20 + read-write + 0x00000000 + + + AFRL7 + Alternate function selection for port x + bit y (y = 0..7) + 28 + 4 + + + AFRL6 + Alternate function selection for port x + bit y (y = 0..7) + 24 + 4 + + + AFRL5 + Alternate function selection for port x + bit y (y = 0..7) + 20 + 4 + + + AFRL4 + Alternate function selection for port x + bit y (y = 0..7) + 16 + 4 + + + AFRL3 + Alternate function selection for port x + bit y (y = 0..7) + 12 + 4 + + + AFRL2 + Alternate function selection for port x + bit y (y = 0..7) + 8 + 4 + + + AFRL1 + Alternate function selection for port x + bit y (y = 0..7) + 4 + 4 + + + AFRL0 + Alternate function selection for port x + bit y (y = 0..7) + 0 + 4 + + + + + AFRH + AFRH + GPIO alternate function high + register + 0x24 + 0x20 + read-write + 0x00000000 + + + AFRH15 + Alternate function selection for port x + bit y (y = 8..15) + 28 + 4 + + + AFRH14 + Alternate function selection for port x + bit y (y = 8..15) + 24 + 4 + + + AFRH13 + Alternate function selection for port x + bit y (y = 8..15) + 20 + 4 + + + AFRH12 + Alternate function selection for port x + bit y (y = 8..15) + 16 + 4 + + + AFRH11 + Alternate function selection for port x + bit y (y = 8..15) + 12 + 4 + + + AFRH10 + Alternate function selection for port x + bit y (y = 8..15) + 8 + 4 + + + AFRH9 + Alternate function selection for port x + bit y (y = 8..15) + 4 + 4 + + + AFRH8 + Alternate function selection for port x + bit y (y = 8..15) + 0 + 4 + + + + + + + GPIOG + 0x40021800 + + + GPIOF + 0x40021400 + + + GPIOE + 0x40021000 + + + GPIOD + 0X40020C00 + + + GPIOC + 0x40020800 + + + GPIOB + General-purpose I/Os + GPIO + 0x40020400 + + 0x0 + 0x400 + registers + + + + MODER + MODER + GPIO port mode register + 0x0 + 0x20 + read-write + 0x00000280 + + + MODER15 + Port x configuration bits (y = + 0..15) + 30 + 2 + + + MODER14 + Port x configuration bits (y = + 0..15) + 28 + 2 + + + MODER13 + Port x configuration bits (y = + 0..15) + 26 + 2 + + + MODER12 + Port x configuration bits (y = + 0..15) + 24 + 2 + + + MODER11 + Port x configuration bits (y = + 0..15) + 22 + 2 + + + MODER10 + Port x configuration bits (y = + 0..15) + 20 + 2 + + + MODER9 + Port x configuration bits (y = + 0..15) + 18 + 2 + + + MODER8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + MODER7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + MODER6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + MODER5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + MODER4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + MODER3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + MODER2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + MODER1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + MODER0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + OTYPER + OTYPER + GPIO port output type register + 0x4 + 0x20 + read-write + 0x00000000 + + + OT15 + Port x configuration bits (y = + 0..15) + 15 + 1 + + + OT14 + Port x configuration bits (y = + 0..15) + 14 + 1 + + + OT13 + Port x configuration bits (y = + 0..15) + 13 + 1 + + + OT12 + Port x configuration bits (y = + 0..15) + 12 + 1 + + + OT11 + Port x configuration bits (y = + 0..15) + 11 + 1 + + + OT10 + Port x configuration bits (y = + 0..15) + 10 + 1 + + + OT9 + Port x configuration bits (y = + 0..15) + 9 + 1 + + + OT8 + Port x configuration bits (y = + 0..15) + 8 + 1 + + + OT7 + Port x configuration bits (y = + 0..15) + 7 + 1 + + + OT6 + Port x configuration bits (y = + 0..15) + 6 + 1 + + + OT5 + Port x configuration bits (y = + 0..15) + 5 + 1 + + + OT4 + Port x configuration bits (y = + 0..15) + 4 + 1 + + + OT3 + Port x configuration bits (y = + 0..15) + 3 + 1 + + + OT2 + Port x configuration bits (y = + 0..15) + 2 + 1 + + + OT1 + Port x configuration bits (y = + 0..15) + 1 + 1 + + + OT0 + Port x configuration bits (y = + 0..15) + 0 + 1 + + + + + OSPEEDR + OSPEEDR + GPIO port output speed + register + 0x8 + 0x20 + read-write + 0x000000C0 + + + OSPEEDR15 + Port x configuration bits (y = + 0..15) + 30 + 2 + + + OSPEEDR14 + Port x configuration bits (y = + 0..15) + 28 + 2 + + + OSPEEDR13 + Port x configuration bits (y = + 0..15) + 26 + 2 + + + OSPEEDR12 + Port x configuration bits (y = + 0..15) + 24 + 2 + + + OSPEEDR11 + Port x configuration bits (y = + 0..15) + 22 + 2 + + + OSPEEDR10 + Port x configuration bits (y = + 0..15) + 20 + 2 + + + OSPEEDR9 + Port x configuration bits (y = + 0..15) + 18 + 2 + + + OSPEEDR8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + OSPEEDR7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + OSPEEDR6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + OSPEEDR5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + OSPEEDR4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + OSPEEDR3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + OSPEEDR2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + OSPEEDR1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + OSPEEDR0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + PUPDR + PUPDR + GPIO port pull-up/pull-down + register + 0xC + 0x20 + read-write + 0x00000100 + + + PUPDR15 + Port x configuration bits (y = + 0..15) + 30 + 2 + + + PUPDR14 + Port x configuration bits (y = + 0..15) + 28 + 2 + + + PUPDR13 + Port x configuration bits (y = + 0..15) + 26 + 2 + + + PUPDR12 + Port x configuration bits (y = + 0..15) + 24 + 2 + + + PUPDR11 + Port x configuration bits (y = + 0..15) + 22 + 2 + + + PUPDR10 + Port x configuration bits (y = + 0..15) + 20 + 2 + + + PUPDR9 + Port x configuration bits (y = + 0..15) + 18 + 2 + + + PUPDR8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + PUPDR7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + PUPDR6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + PUPDR5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + PUPDR4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + PUPDR3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + PUPDR2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + PUPDR1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + PUPDR0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + IDR + IDR + GPIO port input data register + 0x10 + 0x20 + read-only + 0x00000000 + + + IDR15 + Port input data (y = + 0..15) + 15 + 1 + + + IDR14 + Port input data (y = + 0..15) + 14 + 1 + + + IDR13 + Port input data (y = + 0..15) + 13 + 1 + + + IDR12 + Port input data (y = + 0..15) + 12 + 1 + + + IDR11 + Port input data (y = + 0..15) + 11 + 1 + + + IDR10 + Port input data (y = + 0..15) + 10 + 1 + + + IDR9 + Port input data (y = + 0..15) + 9 + 1 + + + IDR8 + Port input data (y = + 0..15) + 8 + 1 + + + IDR7 + Port input data (y = + 0..15) + 7 + 1 + + + IDR6 + Port input data (y = + 0..15) + 6 + 1 + + + IDR5 + Port input data (y = + 0..15) + 5 + 1 + + + IDR4 + Port input data (y = + 0..15) + 4 + 1 + + + IDR3 + Port input data (y = + 0..15) + 3 + 1 + + + IDR2 + Port input data (y = + 0..15) + 2 + 1 + + + IDR1 + Port input data (y = + 0..15) + 1 + 1 + + + IDR0 + Port input data (y = + 0..15) + 0 + 1 + + + + + ODR + ODR + GPIO port output data register + 0x14 + 0x20 + read-write + 0x00000000 + + + ODR15 + Port output data (y = + 0..15) + 15 + 1 + + + ODR14 + Port output data (y = + 0..15) + 14 + 1 + + + ODR13 + Port output data (y = + 0..15) + 13 + 1 + + + ODR12 + Port output data (y = + 0..15) + 12 + 1 + + + ODR11 + Port output data (y = + 0..15) + 11 + 1 + + + ODR10 + Port output data (y = + 0..15) + 10 + 1 + + + ODR9 + Port output data (y = + 0..15) + 9 + 1 + + + ODR8 + Port output data (y = + 0..15) + 8 + 1 + + + ODR7 + Port output data (y = + 0..15) + 7 + 1 + + + ODR6 + Port output data (y = + 0..15) + 6 + 1 + + + ODR5 + Port output data (y = + 0..15) + 5 + 1 + + + ODR4 + Port output data (y = + 0..15) + 4 + 1 + + + ODR3 + Port output data (y = + 0..15) + 3 + 1 + + + ODR2 + Port output data (y = + 0..15) + 2 + 1 + + + ODR1 + Port output data (y = + 0..15) + 1 + 1 + + + ODR0 + Port output data (y = + 0..15) + 0 + 1 + + + + + BSRR + BSRR + GPIO port bit set/reset + register + 0x18 + 0x20 + write-only + 0x00000000 + + + BR15 + Port x reset bit y (y = + 0..15) + 31 + 1 + + + BR14 + Port x reset bit y (y = + 0..15) + 30 + 1 + + + BR13 + Port x reset bit y (y = + 0..15) + 29 + 1 + + + BR12 + Port x reset bit y (y = + 0..15) + 28 + 1 + + + BR11 + Port x reset bit y (y = + 0..15) + 27 + 1 + + + BR10 + Port x reset bit y (y = + 0..15) + 26 + 1 + + + BR9 + Port x reset bit y (y = + 0..15) + 25 + 1 + + + BR8 + Port x reset bit y (y = + 0..15) + 24 + 1 + + + BR7 + Port x reset bit y (y = + 0..15) + 23 + 1 + + + BR6 + Port x reset bit y (y = + 0..15) + 22 + 1 + + + BR5 + Port x reset bit y (y = + 0..15) + 21 + 1 + + + BR4 + Port x reset bit y (y = + 0..15) + 20 + 1 + + + BR3 + Port x reset bit y (y = + 0..15) + 19 + 1 + + + BR2 + Port x reset bit y (y = + 0..15) + 18 + 1 + + + BR1 + Port x reset bit y (y = + 0..15) + 17 + 1 + + + BR0 + Port x set bit y (y= + 0..15) + 16 + 1 + + + BS15 + Port x set bit y (y= + 0..15) + 15 + 1 + + + BS14 + Port x set bit y (y= + 0..15) + 14 + 1 + + + BS13 + Port x set bit y (y= + 0..15) + 13 + 1 + + + BS12 + Port x set bit y (y= + 0..15) + 12 + 1 + + + BS11 + Port x set bit y (y= + 0..15) + 11 + 1 + + + BS10 + Port x set bit y (y= + 0..15) + 10 + 1 + + + BS9 + Port x set bit y (y= + 0..15) + 9 + 1 + + + BS8 + Port x set bit y (y= + 0..15) + 8 + 1 + + + BS7 + Port x set bit y (y= + 0..15) + 7 + 1 + + + BS6 + Port x set bit y (y= + 0..15) + 6 + 1 + + + BS5 + Port x set bit y (y= + 0..15) + 5 + 1 + + + BS4 + Port x set bit y (y= + 0..15) + 4 + 1 + + + BS3 + Port x set bit y (y= + 0..15) + 3 + 1 + + + BS2 + Port x set bit y (y= + 0..15) + 2 + 1 + + + BS1 + Port x set bit y (y= + 0..15) + 1 + 1 + + + BS0 + Port x set bit y (y= + 0..15) + 0 + 1 + + + + + LCKR + LCKR + GPIO port configuration lock + register + 0x1C + 0x20 + read-write + 0x00000000 + + + LCKK + Port x lock bit y (y= + 0..15) + 16 + 1 + + + LCK15 + Port x lock bit y (y= + 0..15) + 15 + 1 + + + LCK14 + Port x lock bit y (y= + 0..15) + 14 + 1 + + + LCK13 + Port x lock bit y (y= + 0..15) + 13 + 1 + + + LCK12 + Port x lock bit y (y= + 0..15) + 12 + 1 + + + LCK11 + Port x lock bit y (y= + 0..15) + 11 + 1 + + + LCK10 + Port x lock bit y (y= + 0..15) + 10 + 1 + + + LCK9 + Port x lock bit y (y= + 0..15) + 9 + 1 + + + LCK8 + Port x lock bit y (y= + 0..15) + 8 + 1 + + + LCK7 + Port x lock bit y (y= + 0..15) + 7 + 1 + + + LCK6 + Port x lock bit y (y= + 0..15) + 6 + 1 + + + LCK5 + Port x lock bit y (y= + 0..15) + 5 + 1 + + + LCK4 + Port x lock bit y (y= + 0..15) + 4 + 1 + + + LCK3 + Port x lock bit y (y= + 0..15) + 3 + 1 + + + LCK2 + Port x lock bit y (y= + 0..15) + 2 + 1 + + + LCK1 + Port x lock bit y (y= + 0..15) + 1 + 1 + + + LCK0 + Port x lock bit y (y= + 0..15) + 0 + 1 + + + + + AFRL + AFRL + GPIO alternate function low + register + 0x20 + 0x20 + read-write + 0x00000000 + + + AFRL7 + Alternate function selection for port x + bit y (y = 0..7) + 28 + 4 + + + AFRL6 + Alternate function selection for port x + bit y (y = 0..7) + 24 + 4 + + + AFRL5 + Alternate function selection for port x + bit y (y = 0..7) + 20 + 4 + + + AFRL4 + Alternate function selection for port x + bit y (y = 0..7) + 16 + 4 + + + AFRL3 + Alternate function selection for port x + bit y (y = 0..7) + 12 + 4 + + + AFRL2 + Alternate function selection for port x + bit y (y = 0..7) + 8 + 4 + + + AFRL1 + Alternate function selection for port x + bit y (y = 0..7) + 4 + 4 + + + AFRL0 + Alternate function selection for port x + bit y (y = 0..7) + 0 + 4 + + + + + AFRH + AFRH + GPIO alternate function high + register + 0x24 + 0x20 + read-write + 0x00000000 + + + AFRH15 + Alternate function selection for port x + bit y (y = 8..15) + 28 + 4 + + + AFRH14 + Alternate function selection for port x + bit y (y = 8..15) + 24 + 4 + + + AFRH13 + Alternate function selection for port x + bit y (y = 8..15) + 20 + 4 + + + AFRH12 + Alternate function selection for port x + bit y (y = 8..15) + 16 + 4 + + + AFRH11 + Alternate function selection for port x + bit y (y = 8..15) + 12 + 4 + + + AFRH10 + Alternate function selection for port x + bit y (y = 8..15) + 8 + 4 + + + AFRH9 + Alternate function selection for port x + bit y (y = 8..15) + 4 + 4 + + + AFRH8 + Alternate function selection for port x + bit y (y = 8..15) + 0 + 4 + + + + + + + GPIOA + General-purpose I/Os + GPIO + 0x40020000 + + 0x0 + 0x400 + registers + + + + MODER + MODER + GPIO port mode register + 0x0 + 0x20 + read-write + 0xA8000000 + + + MODER15 + Port x configuration bits (y = + 0..15) + 30 + 2 + + + MODER14 + Port x configuration bits (y = + 0..15) + 28 + 2 + + + MODER13 + Port x configuration bits (y = + 0..15) + 26 + 2 + + + MODER12 + Port x configuration bits (y = + 0..15) + 24 + 2 + + + MODER11 + Port x configuration bits (y = + 0..15) + 22 + 2 + + + MODER10 + Port x configuration bits (y = + 0..15) + 20 + 2 + + + MODER9 + Port x configuration bits (y = + 0..15) + 18 + 2 + + + MODER8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + MODER7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + MODER6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + MODER5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + MODER4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + MODER3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + MODER2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + MODER1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + MODER0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + OTYPER + OTYPER + GPIO port output type register + 0x4 + 0x20 + read-write + 0x00000000 + + + OT15 + Port x configuration bits (y = + 0..15) + 15 + 1 + + + OT14 + Port x configuration bits (y = + 0..15) + 14 + 1 + + + OT13 + Port x configuration bits (y = + 0..15) + 13 + 1 + + + OT12 + Port x configuration bits (y = + 0..15) + 12 + 1 + + + OT11 + Port x configuration bits (y = + 0..15) + 11 + 1 + + + OT10 + Port x configuration bits (y = + 0..15) + 10 + 1 + + + OT9 + Port x configuration bits (y = + 0..15) + 9 + 1 + + + OT8 + Port x configuration bits (y = + 0..15) + 8 + 1 + + + OT7 + Port x configuration bits (y = + 0..15) + 7 + 1 + + + OT6 + Port x configuration bits (y = + 0..15) + 6 + 1 + + + OT5 + Port x configuration bits (y = + 0..15) + 5 + 1 + + + OT4 + Port x configuration bits (y = + 0..15) + 4 + 1 + + + OT3 + Port x configuration bits (y = + 0..15) + 3 + 1 + + + OT2 + Port x configuration bits (y = + 0..15) + 2 + 1 + + + OT1 + Port x configuration bits (y = + 0..15) + 1 + 1 + + + OT0 + Port x configuration bits (y = + 0..15) + 0 + 1 + + + + + OSPEEDR + OSPEEDR + GPIO port output speed + register + 0x8 + 0x20 + read-write + 0x00000000 + + + OSPEEDR15 + Port x configuration bits (y = + 0..15) + 30 + 2 + + + OSPEEDR14 + Port x configuration bits (y = + 0..15) + 28 + 2 + + + OSPEEDR13 + Port x configuration bits (y = + 0..15) + 26 + 2 + + + OSPEEDR12 + Port x configuration bits (y = + 0..15) + 24 + 2 + + + OSPEEDR11 + Port x configuration bits (y = + 0..15) + 22 + 2 + + + OSPEEDR10 + Port x configuration bits (y = + 0..15) + 20 + 2 + + + OSPEEDR9 + Port x configuration bits (y = + 0..15) + 18 + 2 + + + OSPEEDR8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + OSPEEDR7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + OSPEEDR6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + OSPEEDR5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + OSPEEDR4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + OSPEEDR3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + OSPEEDR2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + OSPEEDR1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + OSPEEDR0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + PUPDR + PUPDR + GPIO port pull-up/pull-down + register + 0xC + 0x20 + read-write + 0x64000000 + + + PUPDR15 + Port x configuration bits (y = + 0..15) + 30 + 2 + + + PUPDR14 + Port x configuration bits (y = + 0..15) + 28 + 2 + + + PUPDR13 + Port x configuration bits (y = + 0..15) + 26 + 2 + + + PUPDR12 + Port x configuration bits (y = + 0..15) + 24 + 2 + + + PUPDR11 + Port x configuration bits (y = + 0..15) + 22 + 2 + + + PUPDR10 + Port x configuration bits (y = + 0..15) + 20 + 2 + + + PUPDR9 + Port x configuration bits (y = + 0..15) + 18 + 2 + + + PUPDR8 + Port x configuration bits (y = + 0..15) + 16 + 2 + + + PUPDR7 + Port x configuration bits (y = + 0..15) + 14 + 2 + + + PUPDR6 + Port x configuration bits (y = + 0..15) + 12 + 2 + + + PUPDR5 + Port x configuration bits (y = + 0..15) + 10 + 2 + + + PUPDR4 + Port x configuration bits (y = + 0..15) + 8 + 2 + + + PUPDR3 + Port x configuration bits (y = + 0..15) + 6 + 2 + + + PUPDR2 + Port x configuration bits (y = + 0..15) + 4 + 2 + + + PUPDR1 + Port x configuration bits (y = + 0..15) + 2 + 2 + + + PUPDR0 + Port x configuration bits (y = + 0..15) + 0 + 2 + + + + + IDR + IDR + GPIO port input data register + 0x10 + 0x20 + read-only + 0x00000000 + + + IDR15 + Port input data (y = + 0..15) + 15 + 1 + + + IDR14 + Port input data (y = + 0..15) + 14 + 1 + + + IDR13 + Port input data (y = + 0..15) + 13 + 1 + + + IDR12 + Port input data (y = + 0..15) + 12 + 1 + + + IDR11 + Port input data (y = + 0..15) + 11 + 1 + + + IDR10 + Port input data (y = + 0..15) + 10 + 1 + + + IDR9 + Port input data (y = + 0..15) + 9 + 1 + + + IDR8 + Port input data (y = + 0..15) + 8 + 1 + + + IDR7 + Port input data (y = + 0..15) + 7 + 1 + + + IDR6 + Port input data (y = + 0..15) + 6 + 1 + + + IDR5 + Port input data (y = + 0..15) + 5 + 1 + + + IDR4 + Port input data (y = + 0..15) + 4 + 1 + + + IDR3 + Port input data (y = + 0..15) + 3 + 1 + + + IDR2 + Port input data (y = + 0..15) + 2 + 1 + + + IDR1 + Port input data (y = + 0..15) + 1 + 1 + + + IDR0 + Port input data (y = + 0..15) + 0 + 1 + + + + + ODR + ODR + GPIO port output data register + 0x14 + 0x20 + read-write + 0x00000000 + + + ODR15 + Port output data (y = + 0..15) + 15 + 1 + + + ODR14 + Port output data (y = + 0..15) + 14 + 1 + + + ODR13 + Port output data (y = + 0..15) + 13 + 1 + + + ODR12 + Port output data (y = + 0..15) + 12 + 1 + + + ODR11 + Port output data (y = + 0..15) + 11 + 1 + + + ODR10 + Port output data (y = + 0..15) + 10 + 1 + + + ODR9 + Port output data (y = + 0..15) + 9 + 1 + + + ODR8 + Port output data (y = + 0..15) + 8 + 1 + + + ODR7 + Port output data (y = + 0..15) + 7 + 1 + + + ODR6 + Port output data (y = + 0..15) + 6 + 1 + + + ODR5 + Port output data (y = + 0..15) + 5 + 1 + + + ODR4 + Port output data (y = + 0..15) + 4 + 1 + + + ODR3 + Port output data (y = + 0..15) + 3 + 1 + + + ODR2 + Port output data (y = + 0..15) + 2 + 1 + + + ODR1 + Port output data (y = + 0..15) + 1 + 1 + + + ODR0 + Port output data (y = + 0..15) + 0 + 1 + + + + + BSRR + BSRR + GPIO port bit set/reset + register + 0x18 + 0x20 + write-only + 0x00000000 + + + BR15 + Port x reset bit y (y = + 0..15) + 31 + 1 + + + BR14 + Port x reset bit y (y = + 0..15) + 30 + 1 + + + BR13 + Port x reset bit y (y = + 0..15) + 29 + 1 + + + BR12 + Port x reset bit y (y = + 0..15) + 28 + 1 + + + BR11 + Port x reset bit y (y = + 0..15) + 27 + 1 + + + BR10 + Port x reset bit y (y = + 0..15) + 26 + 1 + + + BR9 + Port x reset bit y (y = + 0..15) + 25 + 1 + + + BR8 + Port x reset bit y (y = + 0..15) + 24 + 1 + + + BR7 + Port x reset bit y (y = + 0..15) + 23 + 1 + + + BR6 + Port x reset bit y (y = + 0..15) + 22 + 1 + + + BR5 + Port x reset bit y (y = + 0..15) + 21 + 1 + + + BR4 + Port x reset bit y (y = + 0..15) + 20 + 1 + + + BR3 + Port x reset bit y (y = + 0..15) + 19 + 1 + + + BR2 + Port x reset bit y (y = + 0..15) + 18 + 1 + + + BR1 + Port x reset bit y (y = + 0..15) + 17 + 1 + + + BR0 + Port x set bit y (y= + 0..15) + 16 + 1 + + + BS15 + Port x set bit y (y= + 0..15) + 15 + 1 + + + BS14 + Port x set bit y (y= + 0..15) + 14 + 1 + + + BS13 + Port x set bit y (y= + 0..15) + 13 + 1 + + + BS12 + Port x set bit y (y= + 0..15) + 12 + 1 + + + BS11 + Port x set bit y (y= + 0..15) + 11 + 1 + + + BS10 + Port x set bit y (y= + 0..15) + 10 + 1 + + + BS9 + Port x set bit y (y= + 0..15) + 9 + 1 + + + BS8 + Port x set bit y (y= + 0..15) + 8 + 1 + + + BS7 + Port x set bit y (y= + 0..15) + 7 + 1 + + + BS6 + Port x set bit y (y= + 0..15) + 6 + 1 + + + BS5 + Port x set bit y (y= + 0..15) + 5 + 1 + + + BS4 + Port x set bit y (y= + 0..15) + 4 + 1 + + + BS3 + Port x set bit y (y= + 0..15) + 3 + 1 + + + BS2 + Port x set bit y (y= + 0..15) + 2 + 1 + + + BS1 + Port x set bit y (y= + 0..15) + 1 + 1 + + + BS0 + Port x set bit y (y= + 0..15) + 0 + 1 + + + + + LCKR + LCKR + GPIO port configuration lock + register + 0x1C + 0x20 + read-write + 0x00000000 + + + LCKK + Port x lock bit y (y= + 0..15) + 16 + 1 + + + LCK15 + Port x lock bit y (y= + 0..15) + 15 + 1 + + + LCK14 + Port x lock bit y (y= + 0..15) + 14 + 1 + + + LCK13 + Port x lock bit y (y= + 0..15) + 13 + 1 + + + LCK12 + Port x lock bit y (y= + 0..15) + 12 + 1 + + + LCK11 + Port x lock bit y (y= + 0..15) + 11 + 1 + + + LCK10 + Port x lock bit y (y= + 0..15) + 10 + 1 + + + LCK9 + Port x lock bit y (y= + 0..15) + 9 + 1 + + + LCK8 + Port x lock bit y (y= + 0..15) + 8 + 1 + + + LCK7 + Port x lock bit y (y= + 0..15) + 7 + 1 + + + LCK6 + Port x lock bit y (y= + 0..15) + 6 + 1 + + + LCK5 + Port x lock bit y (y= + 0..15) + 5 + 1 + + + LCK4 + Port x lock bit y (y= + 0..15) + 4 + 1 + + + LCK3 + Port x lock bit y (y= + 0..15) + 3 + 1 + + + LCK2 + Port x lock bit y (y= + 0..15) + 2 + 1 + + + LCK1 + Port x lock bit y (y= + 0..15) + 1 + 1 + + + LCK0 + Port x lock bit y (y= + 0..15) + 0 + 1 + + + + + AFRL + AFRL + GPIO alternate function low + register + 0x20 + 0x20 + read-write + 0x00000000 + + + AFRL7 + Alternate function selection for port x + bit y (y = 0..7) + 28 + 4 + + + AFRL6 + Alternate function selection for port x + bit y (y = 0..7) + 24 + 4 + + + AFRL5 + Alternate function selection for port x + bit y (y = 0..7) + 20 + 4 + + + AFRL4 + Alternate function selection for port x + bit y (y = 0..7) + 16 + 4 + + + AFRL3 + Alternate function selection for port x + bit y (y = 0..7) + 12 + 4 + + + AFRL2 + Alternate function selection for port x + bit y (y = 0..7) + 8 + 4 + + + AFRL1 + Alternate function selection for port x + bit y (y = 0..7) + 4 + 4 + + + AFRL0 + Alternate function selection for port x + bit y (y = 0..7) + 0 + 4 + + + + + AFRH + AFRH + GPIO alternate function high + register + 0x24 + 0x20 + read-write + 0x00000000 + + + AFRH15 + Alternate function selection for port x + bit y (y = 8..15) + 28 + 4 + + + AFRH14 + Alternate function selection for port x + bit y (y = 8..15) + 24 + 4 + + + AFRH13 + Alternate function selection for port x + bit y (y = 8..15) + 20 + 4 + + + AFRH12 + Alternate function selection for port x + bit y (y = 8..15) + 16 + 4 + + + AFRH11 + Alternate function selection for port x + bit y (y = 8..15) + 12 + 4 + + + AFRH10 + Alternate function selection for port x + bit y (y = 8..15) + 8 + 4 + + + AFRH9 + Alternate function selection for port x + bit y (y = 8..15) + 4 + 4 + + + AFRH8 + Alternate function selection for port x + bit y (y = 8..15) + 0 + 4 + + + + + + + SYSCFG + System configuration controller + SYSCFG + 0x40013800 + + 0x0 + 0x400 + registers + + + + MEMRM + MEMRM + memory remap register + 0x0 + 0x20 + read-write + 0x00000000 + + + MEM_MODE + Memory mapping selection + 0 + 3 + + + FB_MODE + Flash bank mode selection + 8 + 1 + + + SWP_FMC + FMC memory mapping swap + 10 + 2 + + + + + PMC + PMC + peripheral mode configuration + register + 0x4 + 0x20 + read-write + 0x00000000 + + + MII_RMII_SEL + Ethernet PHY interface + selection + 23 + 1 + + + ADC1DC2 + ADC1DC2 + 16 + 1 + + + ADC2DC2 + ADC2DC2 + 17 + 1 + + + ADC3DC2 + ADC3DC2 + 18 + 1 + + + + + EXTICR1 + EXTICR1 + external interrupt configuration register + 1 + 0x8 + 0x20 + read-write + 0x0000 + + + EXTI3 + EXTI x configuration (x = 0 to + 3) + 12 + 4 + + + EXTI2 + EXTI x configuration (x = 0 to + 3) + 8 + 4 + + + EXTI1 + EXTI x configuration (x = 0 to + 3) + 4 + 4 + + + EXTI0 + EXTI x configuration (x = 0 to + 3) + 0 + 4 + + + + + EXTICR2 + EXTICR2 + external interrupt configuration register + 2 + 0xC + 0x20 + read-write + 0x0000 + + + EXTI7 + EXTI x configuration (x = 4 to + 7) + 12 + 4 + + + EXTI6 + EXTI x configuration (x = 4 to + 7) + 8 + 4 + + + EXTI5 + EXTI x configuration (x = 4 to + 7) + 4 + 4 + + + EXTI4 + EXTI x configuration (x = 4 to + 7) + 0 + 4 + + + + + EXTICR3 + EXTICR3 + external interrupt configuration register + 3 + 0x10 + 0x20 + read-write + 0x0000 + + + EXTI11 + EXTI x configuration (x = 8 to + 11) + 12 + 4 + + + EXTI10 + EXTI10 + 8 + 4 + + + EXTI9 + EXTI x configuration (x = 8 to + 11) + 4 + 4 + + + EXTI8 + EXTI x configuration (x = 8 to + 11) + 0 + 4 + + + + + EXTICR4 + EXTICR4 + external interrupt configuration register + 4 + 0x14 + 0x20 + read-write + 0x0000 + + + EXTI15 + EXTI x configuration (x = 12 to + 15) + 12 + 4 + + + EXTI14 + EXTI x configuration (x = 12 to + 15) + 8 + 4 + + + EXTI13 + EXTI x configuration (x = 12 to + 15) + 4 + 4 + + + EXTI12 + EXTI x configuration (x = 12 to + 15) + 0 + 4 + + + + + CMPCR + CMPCR + Compensation cell control + register + 0x20 + 0x20 + read-only + 0x00000000 + + + READY + READY + 8 + 1 + + + CMP_PD + Compensation cell + power-down + 0 + 1 + + + + + + + SPI1 + Serial peripheral interface + SPI + 0x40013000 + + 0x0 + 0x400 + registers + + + SPI1 + SPI1 global interrupt + 35 + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + BIDIMODE + Bidirectional data mode + enable + 15 + 1 + + + BIDIOE + Output enable in bidirectional + mode + 14 + 1 + + + CRCEN + Hardware CRC calculation + enable + 13 + 1 + + + CRCNEXT + CRC transfer next + 12 + 1 + + + DFF + Data frame format + 11 + 1 + + + RXONLY + Receive only + 10 + 1 + + + SSM + Software slave management + 9 + 1 + + + SSI + Internal slave select + 8 + 1 + + + LSBFIRST + Frame format + 7 + 1 + + + SPE + SPI enable + 6 + 1 + + + BR + Baud rate control + 3 + 3 + + + MSTR + Master selection + 2 + 1 + + + CPOL + Clock polarity + 1 + 1 + + + CPHA + Clock phase + 0 + 1 + + + + + CR2 + CR2 + control register 2 + 0x4 + 0x20 + read-write + 0x0000 + + + TXEIE + Tx buffer empty interrupt + enable + 7 + 1 + + + RXNEIE + RX buffer not empty interrupt + enable + 6 + 1 + + + ERRIE + Error interrupt enable + 5 + 1 + + + FRF + Frame format + 4 + 1 + + + SSOE + SS output enable + 2 + 1 + + + TXDMAEN + Tx buffer DMA enable + 1 + 1 + + + RXDMAEN + Rx buffer DMA enable + 0 + 1 + + + + + SR + SR + status register + 0x8 + 0x20 + 0x0002 + + + TIFRFE + TI frame format error + 8 + 1 + read-only + + + BSY + Busy flag + 7 + 1 + read-only + + + OVR + Overrun flag + 6 + 1 + read-only + + + MODF + Mode fault + 5 + 1 + read-only + + + CRCERR + CRC error flag + 4 + 1 + read-write + + + UDR + Underrun flag + 3 + 1 + read-only + + + CHSIDE + Channel side + 2 + 1 + read-only + + + TXE + Transmit buffer empty + 1 + 1 + read-only + + + RXNE + Receive buffer not empty + 0 + 1 + read-only + + + + + DR + DR + data register + 0xC + 0x20 + read-write + 0x0000 + + + DR + Data register + 0 + 16 + + + + + CRCPR + CRCPR + CRC polynomial register + 0x10 + 0x20 + read-write + 0x0007 + + + CRCPOLY + CRC polynomial register + 0 + 16 + + + + + RXCRCR + RXCRCR + RX CRC register + 0x14 + 0x20 + read-only + 0x0000 + + + RxCRC + Rx CRC register + 0 + 16 + + + + + TXCRCR + TXCRCR + TX CRC register + 0x18 + 0x20 + read-only + 0x0000 + + + TxCRC + Tx CRC register + 0 + 16 + + + + + I2SCFGR + I2SCFGR + I2S configuration register + 0x1C + 0x20 + read-write + 0x0000 + + + I2SMOD + I2S mode selection + 11 + 1 + + + I2SE + I2S Enable + 10 + 1 + + + I2SCFG + I2S configuration mode + 8 + 2 + + + PCMSYNC + PCM frame synchronization + 7 + 1 + + + I2SSTD + I2S standard selection + 4 + 2 + + + CKPOL + Steady state clock + polarity + 3 + 1 + + + DATLEN + Data length to be + transferred + 1 + 2 + + + CHLEN + Channel length (number of bits per audio + channel) + 0 + 1 + + + + + I2SPR + I2SPR + I2S prescaler register + 0x20 + 0x20 + read-write + 00000010 + + + MCKOE + Master clock output enable + 9 + 1 + + + ODD + Odd factor for the + prescaler + 8 + 1 + + + I2SDIV + I2S Linear prescaler + 0 + 8 + + + + + + + SPI2 + 0x40003800 + + SPI2 + SPI2 global interrupt + 36 + + + + SPI3 + 0x40003C00 + + SPI3 + SPI3 global interrupt + 51 + + + + SPI4 + 0x40013400 + + SPI4 + SPI 4 global interrupt + 84 + + + + ADC1 + Analog-to-digital converter + ADC + 0x40012000 + + 0x0 + 0x51 + registers + + + + SR + SR + status register + 0x0 + 0x20 + read-write + 0x00000000 + + + OVR + Overrun + 5 + 1 + + + STRT + Regular channel start flag + 4 + 1 + + + JSTRT + Injected channel start + flag + 3 + 1 + + + JEOC + Injected channel end of + conversion + 2 + 1 + + + EOC + Regular channel end of + conversion + 1 + 1 + + + AWD + Analog watchdog flag + 0 + 1 + + + + + CR1 + CR1 + control register 1 + 0x4 + 0x20 + read-write + 0x00000000 + + + OVRIE + Overrun interrupt enable + 26 + 1 + + + RES + Resolution + 24 + 2 + + + AWDEN + Analog watchdog enable on regular + channels + 23 + 1 + + + JAWDEN + Analog watchdog enable on injected + channels + 22 + 1 + + + DISCNUM + Discontinuous mode channel + count + 13 + 3 + + + JDISCEN + Discontinuous mode on injected + channels + 12 + 1 + + + DISCEN + Discontinuous mode on regular + channels + 11 + 1 + + + JAUTO + Automatic injected group + conversion + 10 + 1 + + + AWDSGL + Enable the watchdog on a single channel + in scan mode + 9 + 1 + + + SCAN + Scan mode + 8 + 1 + + + JEOCIE + Interrupt enable for injected + channels + 7 + 1 + + + AWDIE + Analog watchdog interrupt + enable + 6 + 1 + + + EOCIE + Interrupt enable for EOC + 5 + 1 + + + AWDCH + Analog watchdog channel select + bits + 0 + 5 + + + + + CR2 + CR2 + control register 2 + 0x8 + 0x20 + read-write + 0x00000000 + + + SWSTART + Start conversion of regular + channels + 30 + 1 + + + EXTEN + External trigger enable for regular + channels + 28 + 2 + + + EXTSEL + External event select for regular + group + 24 + 4 + + + JSWSTART + Start conversion of injected + channels + 22 + 1 + + + JEXTEN + External trigger enable for injected + channels + 20 + 2 + + + JEXTSEL + External event select for injected + group + 16 + 4 + + + ALIGN + Data alignment + 11 + 1 + + + EOCS + End of conversion + selection + 10 + 1 + + + DDS + DMA disable selection (for single ADC + mode) + 9 + 1 + + + DMA + Direct memory access mode (for single + ADC mode) + 8 + 1 + + + CONT + Continuous conversion + 1 + 1 + + + ADON + A/D Converter ON / OFF + 0 + 1 + + + + + SMPR1 + SMPR1 + sample time register 1 + 0xC + 0x20 + read-write + 0x00000000 + + + SMPx_x + Sample time bits + 0 + 32 + + + + + SMPR2 + SMPR2 + sample time register 2 + 0x10 + 0x20 + read-write + 0x00000000 + + + SMPx_x + Sample time bits + 0 + 32 + + + + + JOFR1 + JOFR1 + injected channel data offset register + x + 0x14 + 0x20 + read-write + 0x00000000 + + + JOFFSET1 + Data offset for injected channel + x + 0 + 12 + + + + + JOFR2 + JOFR2 + injected channel data offset register + x + 0x18 + 0x20 + read-write + 0x00000000 + + + JOFFSET2 + Data offset for injected channel + x + 0 + 12 + + + + + JOFR3 + JOFR3 + injected channel data offset register + x + 0x1C + 0x20 + read-write + 0x00000000 + + + JOFFSET3 + Data offset for injected channel + x + 0 + 12 + + + + + JOFR4 + JOFR4 + injected channel data offset register + x + 0x20 + 0x20 + read-write + 0x00000000 + + + JOFFSET4 + Data offset for injected channel + x + 0 + 12 + + + + + HTR + HTR + watchdog higher threshold + register + 0x24 + 0x20 + read-write + 0x00000FFF + + + HT + Analog watchdog higher + threshold + 0 + 12 + + + + + LTR + LTR + watchdog lower threshold + register + 0x28 + 0x20 + read-write + 0x00000000 + + + LT + Analog watchdog lower + threshold + 0 + 12 + + + + + SQR1 + SQR1 + regular sequence register 1 + 0x2C + 0x20 + read-write + 0x00000000 + + + L + Regular channel sequence + length + 20 + 4 + + + SQ16 + 16th conversion in regular + sequence + 15 + 5 + + + SQ15 + 15th conversion in regular + sequence + 10 + 5 + + + SQ14 + 14th conversion in regular + sequence + 5 + 5 + + + SQ13 + 13th conversion in regular + sequence + 0 + 5 + + + + + SQR2 + SQR2 + regular sequence register 2 + 0x30 + 0x20 + read-write + 0x00000000 + + + SQ12 + 12th conversion in regular + sequence + 25 + 5 + + + SQ11 + 11th conversion in regular + sequence + 20 + 5 + + + SQ10 + 10th conversion in regular + sequence + 15 + 5 + + + SQ9 + 9th conversion in regular + sequence + 10 + 5 + + + SQ8 + 8th conversion in regular + sequence + 5 + 5 + + + SQ7 + 7th conversion in regular + sequence + 0 + 5 + + + + + SQR3 + SQR3 + regular sequence register 3 + 0x34 + 0x20 + read-write + 0x00000000 + + + SQ6 + 6th conversion in regular + sequence + 25 + 5 + + + SQ5 + 5th conversion in regular + sequence + 20 + 5 + + + SQ4 + 4th conversion in regular + sequence + 15 + 5 + + + SQ3 + 3rd conversion in regular + sequence + 10 + 5 + + + SQ2 + 2nd conversion in regular + sequence + 5 + 5 + + + SQ1 + 1st conversion in regular + sequence + 0 + 5 + + + + + JSQR + JSQR + injected sequence register + 0x38 + 0x20 + read-write + 0x00000000 + + + JL + Injected sequence length + 20 + 2 + + + JSQ4 + 4th conversion in injected + sequence + 15 + 5 + + + JSQ3 + 3rd conversion in injected + sequence + 10 + 5 + + + JSQ2 + 2nd conversion in injected + sequence + 5 + 5 + + + JSQ1 + 1st conversion in injected + sequence + 0 + 5 + + + + + JDR1 + JDR1 + injected data register x + 0x3C + 0x20 + read-only + 0x00000000 + + + JDATA + Injected data + 0 + 16 + + + + + JDR2 + JDR2 + injected data register x + 0x40 + 0x20 + read-only + 0x00000000 + + + JDATA + Injected data + 0 + 16 + + + + + JDR3 + JDR3 + injected data register x + 0x44 + 0x20 + read-only + 0x00000000 + + + JDATA + Injected data + 0 + 16 + + + + + JDR4 + JDR4 + injected data register x + 0x48 + 0x20 + read-only + 0x00000000 + + + JDATA + Injected data + 0 + 16 + + + + + DR + DR + regular data register + 0x4C + 0x20 + read-only + 0x00000000 + + + DATA + Regular data + 0 + 16 + + + + + + + ADC2 + 0x40012100 + + + ADC3 + 0x40012200 + + + USART6 + Universal synchronous asynchronous receiver + transmitter + USART + 0x40011400 + + 0x0 + 0x400 + registers + + + USART6 + USART6 global interrupt + 71 + + + + SR + SR + Status register + 0x0 + 0x20 + 0x00C00000 + + + CTS + CTS flag + 9 + 1 + read-write + + + LBD + LIN break detection flag + 8 + 1 + read-write + + + TXE + Transmit data register + empty + 7 + 1 + read-only + + + TC + Transmission complete + 6 + 1 + read-write + + + RXNE + Read data register not + empty + 5 + 1 + read-write + + + IDLE + IDLE line detected + 4 + 1 + read-only + + + ORE + Overrun error + 3 + 1 + read-only + + + NF + Noise detected flag + 2 + 1 + read-only + + + FE + Framing error + 1 + 1 + read-only + + + PE + Parity error + 0 + 1 + read-only + + + + + DR + DR + Data register + 0x4 + 0x20 + read-write + 0x00000000 + + + DR + Data value + 0 + 9 + + + + + BRR + BRR + Baud rate register + 0x8 + 0x20 + read-write + 0x0000 + + + DIV_Mantissa + mantissa of USARTDIV + 4 + 12 + + + DIV_Fraction + fraction of USARTDIV + 0 + 4 + + + + + CR1 + CR1 + Control register 1 + 0xC + 0x20 + read-write + 0x0000 + + + OVER8 + Oversampling mode + 15 + 1 + + + UE + USART enable + 13 + 1 + + + M + Word length + 12 + 1 + + + WAKE + Wakeup method + 11 + 1 + + + PCE + Parity control enable + 10 + 1 + + + PS + Parity selection + 9 + 1 + + + PEIE + PE interrupt enable + 8 + 1 + + + TXEIE + TXE interrupt enable + 7 + 1 + + + TCIE + Transmission complete interrupt + enable + 6 + 1 + + + RXNEIE + RXNE interrupt enable + 5 + 1 + + + IDLEIE + IDLE interrupt enable + 4 + 1 + + + TE + Transmitter enable + 3 + 1 + + + RE + Receiver enable + 2 + 1 + + + RWU + Receiver wakeup + 1 + 1 + + + SBK + Send break + 0 + 1 + + + + + CR2 + CR2 + Control register 2 + 0x10 + 0x20 + read-write + 0x0000 + + + LINEN + LIN mode enable + 14 + 1 + + + STOP + STOP bits + 12 + 2 + + + CLKEN + Clock enable + 11 + 1 + + + CPOL + Clock polarity + 10 + 1 + + + CPHA + Clock phase + 9 + 1 + + + LBCL + Last bit clock pulse + 8 + 1 + + + LBDIE + LIN break detection interrupt + enable + 6 + 1 + + + LBDL + lin break detection length + 5 + 1 + + + ADD + Address of the USART node + 0 + 4 + + + + + CR3 + CR3 + Control register 3 + 0x14 + 0x20 + read-write + 0x0000 + + + ONEBIT + One sample bit method + enable + 11 + 1 + + + CTSIE + CTS interrupt enable + 10 + 1 + + + CTSE + CTS enable + 9 + 1 + + + RTSE + RTS enable + 8 + 1 + + + DMAT + DMA enable transmitter + 7 + 1 + + + DMAR + DMA enable receiver + 6 + 1 + + + SCEN + Smartcard mode enable + 5 + 1 + + + NACK + Smartcard NACK enable + 4 + 1 + + + HDSEL + Half-duplex selection + 3 + 1 + + + IRLP + IrDA low-power + 2 + 1 + + + IREN + IrDA mode enable + 1 + 1 + + + EIE + Error interrupt enable + 0 + 1 + + + + + GTPR + GTPR + Guard time and prescaler + register + 0x18 + 0x20 + read-write + 0x0000 + + + GT + Guard time value + 8 + 8 + + + PSC + Prescaler value + 0 + 8 + + + + + + + USART1 + 0x40011000 + + USART1 + USART1 global interrupt + 37 + + + + USART2 + 0x40004400 + + USART2 + USART2 global interrupt + 38 + + + + USART3 + 0x40004800 + + USART3 + USART3 global interrupt + 39 + + + + DAC + Digital-to-analog converter + DAC + 0x40007400 + + 0x0 + 0x400 + registers + + + + CR + CR + control register + 0x0 + 0x20 + read-write + 0x00000000 + + + DMAUDRIE2 + DAC channel2 DMA underrun interrupt + enable + 29 + 1 + + + DMAEN2 + DAC channel2 DMA enable + 28 + 1 + + + MAMP2 + DAC channel2 mask/amplitude + selector + 24 + 4 + + + WAVE2 + DAC channel2 noise/triangle wave + generation enable + 22 + 2 + + + TSEL2 + DAC channel2 trigger + selection + 19 + 3 + + + TEN2 + DAC channel2 trigger + enable + 18 + 1 + + + BOFF2 + DAC channel2 output buffer + disable + 17 + 1 + + + EN2 + DAC channel2 enable + 16 + 1 + + + DMAUDRIE1 + DAC channel1 DMA Underrun Interrupt + enable + 13 + 1 + + + DMAEN1 + DAC channel1 DMA enable + 12 + 1 + + + MAMP1 + DAC channel1 mask/amplitude + selector + 8 + 4 + + + WAVE1 + DAC channel1 noise/triangle wave + generation enable + 6 + 2 + + + TSEL1 + DAC channel1 trigger + selection + 3 + 3 + + + TEN1 + DAC channel1 trigger + enable + 2 + 1 + + + BOFF1 + DAC channel1 output buffer + disable + 1 + 1 + + + EN1 + DAC channel1 enable + 0 + 1 + + + + + SWTRIGR + SWTRIGR + software trigger register + 0x4 + 0x20 + write-only + 0x00000000 + + + SWTRIG2 + DAC channel2 software + trigger + 1 + 1 + + + SWTRIG1 + DAC channel1 software + trigger + 0 + 1 + + + + + DHR12R1 + DHR12R1 + channel1 12-bit right-aligned data holding + register + 0x8 + 0x20 + read-write + 0x00000000 + + + DACC1DHR + DAC channel1 12-bit right-aligned + data + 0 + 12 + + + + + DHR12L1 + DHR12L1 + channel1 12-bit left aligned data holding + register + 0xC + 0x20 + read-write + 0x00000000 + + + DACC1DHR + DAC channel1 12-bit left-aligned + data + 4 + 12 + + + + + DHR8R1 + DHR8R1 + channel1 8-bit right aligned data holding + register + 0x10 + 0x20 + read-write + 0x00000000 + + + DACC1DHR + DAC channel1 8-bit right-aligned + data + 0 + 8 + + + + + DHR12R2 + DHR12R2 + channel2 12-bit right aligned data holding + register + 0x14 + 0x20 + read-write + 0x00000000 + + + DACC2DHR + DAC channel2 12-bit right-aligned + data + 0 + 12 + + + + + DHR12L2 + DHR12L2 + channel2 12-bit left aligned data holding + register + 0x18 + 0x20 + read-write + 0x00000000 + + + DACC2DHR + DAC channel2 12-bit left-aligned + data + 4 + 12 + + + + + DHR8R2 + DHR8R2 + channel2 8-bit right-aligned data holding + register + 0x1C + 0x20 + read-write + 0x00000000 + + + DACC2DHR + DAC channel2 8-bit right-aligned + data + 0 + 8 + + + + + DHR12RD + DHR12RD + Dual DAC 12-bit right-aligned data holding + register + 0x20 + 0x20 + read-write + 0x00000000 + + + DACC2DHR + DAC channel2 12-bit right-aligned + data + 16 + 12 + + + DACC1DHR + DAC channel1 12-bit right-aligned + data + 0 + 12 + + + + + DHR12LD + DHR12LD + DUAL DAC 12-bit left aligned data holding + register + 0x24 + 0x20 + read-write + 0x00000000 + + + DACC2DHR + DAC channel2 12-bit left-aligned + data + 20 + 12 + + + DACC1DHR + DAC channel1 12-bit left-aligned + data + 4 + 12 + + + + + DHR8RD + DHR8RD + DUAL DAC 8-bit right aligned data holding + register + 0x28 + 0x20 + read-write + 0x00000000 + + + DACC2DHR + DAC channel2 8-bit right-aligned + data + 8 + 8 + + + DACC1DHR + DAC channel1 8-bit right-aligned + data + 0 + 8 + + + + + DOR1 + DOR1 + channel1 data output register + 0x2C + 0x20 + read-only + 0x00000000 + + + DACC1DOR + DAC channel1 data output + 0 + 12 + + + + + DOR2 + DOR2 + channel2 data output register + 0x30 + 0x20 + read-only + 0x00000000 + + + DACC2DOR + DAC channel2 data output + 0 + 12 + + + + + SR + SR + status register + 0x34 + 0x20 + read-write + 0x00000000 + + + DMAUDR2 + DAC channel2 DMA underrun + flag + 29 + 1 + + + DMAUDR1 + DAC channel1 DMA underrun + flag + 13 + 1 + + + + + + + FMPI2C + Fast-mode Plus Inter-integrated circuit + interface + I2C + 0x40006000 + + 0x0 + 0x400 + registers + + + + CR1 + CR1 + Control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + PECEN + PEC enable + 23 + 1 + + + ALERTEN + SMBus alert enable + 22 + 1 + + + SMBDEN + SMBus Device Default address + enable + 21 + 1 + + + SMBHEN + SMBus Host address enable + 20 + 1 + + + GCEN + General call enable + 19 + 1 + + + NOSTRETCH + Clock stretching disable + 17 + 1 + + + SBC + Slave byte control + 16 + 1 + + + RXDMAEN + DMA reception requests + enable + 15 + 1 + + + TXDMAEN + DMA transmission requests + enable + 14 + 1 + + + ANFOFF + Analog noise filter OFF + 12 + 1 + + + DNF + Digital noise filter + 8 + 4 + + + ERRIE + Error interrupts enable + 7 + 1 + + + TCIE + Transfer Complete interrupt + enable + 6 + 1 + + + STOPIE + STOP detection Interrupt + enable + 5 + 1 + + + NACKIE + Not acknowledge received Interrupt + enable + 4 + 1 + + + ADDRIE + Address match Interrupt enable (slave + only) + 3 + 1 + + + RXIE + RX Interrupt enable + 2 + 1 + + + TXIE + TX Interrupt enable + 1 + 1 + + + PE + Peripheral enable + 0 + 1 + + + + + CR2 + CR2 + Control register 1 + 0x4 + 0x20 + read-write + 0x0000 + + + SADD0 + Slave address bit 0 (master + mode) + 0 + 1 + + + SADD7_1 + Slave address bit 7:1 (master + mode) + 1 + 7 + + + SADD9_8 + Slave address bit 9:8 (master + mode) + 8 + 2 + + + RD_WRN + Transfer direction (master + mode) + 10 + 1 + + + ADD10 + 10-bit addressing mode (master + mode) + 11 + 1 + + + HEAD10R + 10-bit address header only read + direction (master receiver mode) + 12 + 1 + + + START + Start generation + 13 + 1 + + + STOP + Stop generation (master + mode) + 14 + 1 + + + NACK + NACK generation (slave + mode) + 15 + 1 + + + NBYTES + Number of bytes + 16 + 8 + + + RELOAD + NBYTES reload mode + 24 + 1 + + + AUTOEND + Automatic end mode (master + mode) + 25 + 1 + + + PECBYTE + Packet error checking byte + 26 + 1 + + + + + OAR1 + OAR1 + Own address 1 register + 0x8 + 0x20 + read-write + 0x0000 + + + OA1_0 + Interface address + 0 + 1 + + + OA1_7_1 + Interface address + 1 + 7 + + + OA1_9_8 + Interface address + 8 + 2 + + + OA1MODE + Own Address 1 10-bit mode + 10 + 1 + + + OA1EN + Own Address 1 enable + 15 + 1 + + + + + OAR2 + OAR2 + Own address 2 register + 0xC + 0x20 + read-write + 0x0000 + + + OA2 + Interface address + 1 + 7 + + + OA2MSK + Own Address 2 masks + 8 + 3 + + + OA2EN + Own Address 2 enable + 15 + 1 + + + + + TIMINGR + TIMINGR + Timing register + 0x10 + 0x20 + read-write + 0x0000 + + + SCLL + SCL low period (master + mode) + 0 + 8 + + + SCLH + SCL high period (master + mode) + 8 + 8 + + + SDADEL + Data hold time + 16 + 4 + + + SCLDEL + Data setup time + 20 + 4 + + + PRESC + Timing prescaler + 28 + 4 + + + + + TIMEOUTR + TIMEOUTR + Timeout register + 0x14 + 0x20 + read-write + 0x0000 + + + TIMEOUTA + Bus Timeout A + 0 + 12 + + + TIDLE + Idle clock timeout + detection + 12 + 1 + + + TIMOUTEN + Clock timeout enable + 15 + 1 + + + TIMEOUTB + Bus timeout B + 16 + 12 + + + TEXTEN + Extended clock timeout + enable + 31 + 1 + + + + + ISR + ISR + Interrupt and status register + 0x18 + 0x20 + read-only + 0x00000001 + + + TXE + Transmit data register empty + (transmitters) + 0 + 1 + + + TXIS + Transmit interrupt status + (transmitters) + 1 + 1 + + + RXNE + Receive data register not empty + (receivers) + 2 + 1 + + + ADDR + Address matched (slave + mode) + 3 + 1 + + + NACKF + Not Acknowledge received + flag + 4 + 1 + + + STOPF + Stop detection flag + 5 + 1 + + + TC + Transfer Complete (master + mode) + 6 + 1 + + + TCR + Transfer Complete Reload + 7 + 1 + + + BERR + Bus error + 8 + 1 + + + ARLO + Arbitration lost + 9 + 1 + + + OVR + Overrun/Underrun (slave + mode) + 10 + 1 + + + PECERR + PEC Error in reception + 11 + 1 + + + TIMEOUT + Timeout or tLOW detection + flag + 12 + 1 + + + ALERT + SMBus alert + 13 + 1 + + + BUSY + Bus busy + 15 + 1 + + + DIR + Transfer direction (Slave + mode) + 16 + 1 + + + ADDCODE + Address match code (Slave + mode) + 17 + 7 + + + + + ICR + ICR + Interrupt clear register + 0x1C + 0x20 + write-only + 0x0000 + + + ADDRCF + Address matched flag clear + 3 + 1 + + + NACKCF + Not Acknowledge flag clear + 4 + 1 + + + STOPCF + Stop detection flag clear + 5 + 1 + + + BERRCF + Bus error flag clear + 8 + 1 + + + ARLOCF + Arbitration Lost flag + clear + 9 + 1 + + + OVRCF + Overrun/Underrun flag + clear + 10 + 1 + + + PECCF + PEC Error flag clear + 11 + 1 + + + TIMOUTCF + Timeout detection flag + clear + 12 + 1 + + + ALERTCF + Alert flag clear + 13 + 1 + + + + + PECR + PECR + PEC register + 0x20 + 0x20 + read-only + 0x0000 + + + PEC + Packet error checking + register + 0 + 8 + + + + + RXDR + RXDR + Receive data register + 0x24 + 0x20 + read-only + 0x0000 + + + RXDATA + 8-bit receive data + 0 + 8 + + + + + TXDR + TXDR + Transmit data register + 0x28 + 0x20 + read-only + 0x0000 + + + TXDATA + 8-bit transmit data + 0 + 8 + + + + + + + I2C3 + Inter-integrated circuit + I2C + 0x40005C00 + + 0x0 + 0x400 + registers + + + I2C3_EV + I2C3 event interrupt + 72 + + + I2C3_ER + I2C3 error interrupt + 73 + + + + CR1 + CR1 + Control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + SWRST + Software reset + 15 + 1 + + + ALERT + SMBus alert + 13 + 1 + + + PEC + Packet error checking + 12 + 1 + + + POS + Acknowledge/PEC Position (for data + reception) + 11 + 1 + + + ACK + Acknowledge enable + 10 + 1 + + + STOP + Stop generation + 9 + 1 + + + START + Start generation + 8 + 1 + + + NOSTRETCH + Clock stretching disable (Slave + mode) + 7 + 1 + + + ENGC + General call enable + 6 + 1 + + + ENPEC + PEC enable + 5 + 1 + + + ENARP + ARP enable + 4 + 1 + + + SMBTYPE + SMBus type + 3 + 1 + + + SMBUS + SMBus mode + 1 + 1 + + + PE + Peripheral enable + 0 + 1 + + + + + CR2 + CR2 + Control register 2 + 0x4 + 0x20 + read-write + 0x0000 + + + LAST + DMA last transfer + 12 + 1 + + + DMAEN + DMA requests enable + 11 + 1 + + + ITBUFEN + Buffer interrupt enable + 10 + 1 + + + ITEVTEN + Event interrupt enable + 9 + 1 + + + ITERREN + Error interrupt enable + 8 + 1 + + + FREQ + Peripheral clock frequency + 0 + 6 + + + + + OAR1 + OAR1 + Own address register 1 + 0x8 + 0x20 + read-write + 0x0000 + + + ADDMODE + Addressing mode (slave + mode) + 15 + 1 + + + ADD10 + Interface address + 8 + 2 + + + ADD7 + Interface address + 1 + 7 + + + ADD0 + Interface address + 0 + 1 + + + + + OAR2 + OAR2 + Own address register 2 + 0xC + 0x20 + read-write + 0x0000 + + + ADD2 + Interface address + 1 + 7 + + + ENDUAL + Dual addressing mode + enable + 0 + 1 + + + + + DR + DR + Data register + 0x10 + 0x20 + read-write + 0x0000 + + + DR + 8-bit data register + 0 + 8 + + + + + SR1 + SR1 + Status register 1 + 0x14 + 0x20 + 0x0000 + + + SMBALERT + SMBus alert + 15 + 1 + read-write + + + TIMEOUT + Timeout or Tlow error + 14 + 1 + read-write + + + PECERR + PEC Error in reception + 12 + 1 + read-write + + + OVR + Overrun/Underrun + 11 + 1 + read-write + + + AF + Acknowledge failure + 10 + 1 + read-write + + + ARLO + Arbitration lost (master + mode) + 9 + 1 + read-write + + + BERR + Bus error + 8 + 1 + read-write + + + TxE + Data register empty + (transmitters) + 7 + 1 + read-only + + + RxNE + Data register not empty + (receivers) + 6 + 1 + read-only + + + STOPF + Stop detection (slave + mode) + 4 + 1 + read-only + + + ADD10 + 10-bit header sent (Master + mode) + 3 + 1 + read-only + + + BTF + Byte transfer finished + 2 + 1 + read-only + + + ADDR + Address sent (master mode)/matched + (slave mode) + 1 + 1 + read-only + + + SB + Start bit (Master mode) + 0 + 1 + read-only + + + + + SR2 + SR2 + Status register 2 + 0x18 + 0x20 + read-only + 0x0000 + + + PEC + acket error checking + register + 8 + 8 + + + DUALF + Dual flag (Slave mode) + 7 + 1 + + + SMBHOST + SMBus host header (Slave + mode) + 6 + 1 + + + SMBDEFAULT + SMBus device default address (Slave + mode) + 5 + 1 + + + GENCALL + General call address (Slave + mode) + 4 + 1 + + + TRA + Transmitter/receiver + 2 + 1 + + + BUSY + Bus busy + 1 + 1 + + + MSL + Master/slave + 0 + 1 + + + + + CCR + CCR + Clock control register + 0x1C + 0x20 + read-write + 0x0000 + + + F_S + I2C master mode selection + 15 + 1 + + + DUTY + Fast mode duty cycle + 14 + 1 + + + CCR + Clock control register in Fast/Standard + mode (Master mode) + 0 + 12 + + + + + TRISE + TRISE + TRISE register + 0x20 + 0x20 + read-write + 0x0002 + + + TRISE + Maximum rise time in Fast/Standard mode + (Master mode) + 0 + 6 + + + + + FLTR + FLTR + I2C FLTR register + 0x24 + 0x20 + read-write + 0x0000 + + + DNF + Digital noise filter + 0 + 4 + + + ANOFF + Analog noise filter OFF + 4 + 1 + + + + + + + I2C2 + 0x40005800 + + I2C2_EV + I2C2 event interrupt + 33 + + + I2C2_ER + I2C2 error interrupt + 34 + + + + I2C1 + 0x40005400 + + I2C1_EV + I2C1 event interrupt + 31 + + + I2C1_ER + I2C1 error interrupt + 32 + + + FMPI2C1 + FMPI2C1 event interrupt + 95 + + + FMPI2C1_error + FMPI2C1 error interrupt + 96 + + + + IWDG + Independent watchdog + IWDG + 0x40003000 + + 0x0 + 0x400 + registers + + + + KR + KR + Key register + 0x0 + 0x20 + write-only + 0x00000000 + + + KEY + Key value (write only, read + 0000h) + 0 + 16 + + + + + PR + PR + Prescaler register + 0x4 + 0x20 + read-write + 0x00000000 + + + PR + Prescaler divider + 0 + 3 + + + + + RLR + RLR + Reload register + 0x8 + 0x20 + read-write + 0x00000FFF + + + RL + Watchdog counter reload + value + 0 + 12 + + + + + SR + SR + Status register + 0xC + 0x20 + read-only + 0x00000000 + + + RVU + Watchdog counter reload value + update + 1 + 1 + + + PVU + Watchdog prescaler value + update + 0 + 1 + + + + + + + WWDG + Window watchdog + WWDG + 0x40002C00 + + 0x0 + 0x400 + registers + + + WWDG + Window Watchdog interrupt + 0 + + + + CR + CR + Control register + 0x0 + 0x20 + read-write + 0x7F + + + WDGA + Activation bit + 7 + 1 + + + T + 7-bit counter (MSB to LSB) + 0 + 7 + + + + + CFR + CFR + Configuration register + 0x4 + 0x20 + read-write + 0x7F + + + EWI + Early wakeup interrupt + 9 + 1 + + + WDGTB1 + Timer base + 8 + 1 + + + WDGTB0 + Timer base + 7 + 1 + + + W + 7-bit window value + 0 + 7 + + + + + SR + SR + Status register + 0x8 + 0x20 + read-write + 0x00 + + + EWIF + Early wakeup interrupt + flag + 0 + 1 + + + + + + + RTC + Real-time clock + RTC + 0x40002800 + + 0x0 + 0x400 + registers + + + RTC_WKUP + RTC Wakeup interrupt through the EXTI + line + 3 + + + RTC_Alarm + RTC Alarms (A and B) through EXTI line + interrupt + 41 + + + + TR + TR + time register + 0x0 + 0x20 + read-write + 0x00000000 + + + PM + AM/PM notation + 22 + 1 + + + HT + Hour tens in BCD format + 20 + 2 + + + HU + Hour units in BCD format + 16 + 4 + + + MNT + Minute tens in BCD format + 12 + 3 + + + MNU + Minute units in BCD format + 8 + 4 + + + ST + Second tens in BCD format + 4 + 3 + + + SU + Second units in BCD format + 0 + 4 + + + + + DR + DR + date register + 0x4 + 0x20 + read-write + 0x00002101 + + + YT + Year tens in BCD format + 20 + 4 + + + YU + Year units in BCD format + 16 + 4 + + + WDU + Week day units + 13 + 3 + + + MT + Month tens in BCD format + 12 + 1 + + + MU + Month units in BCD format + 8 + 4 + + + DT + Date tens in BCD format + 4 + 2 + + + DU + Date units in BCD format + 0 + 4 + + + + + CR + CR + control register + 0x8 + 0x20 + read-write + 0x00000000 + + + COE + Calibration output enable + 23 + 1 + + + OSEL + Output selection + 21 + 2 + + + POL + Output polarity + 20 + 1 + + + BKP + Backup + 18 + 1 + + + SUB1H + Subtract 1 hour (winter time + change) + 17 + 1 + + + ADD1H + Add 1 hour (summer time + change) + 16 + 1 + + + TSIE + Time-stamp interrupt + enable + 15 + 1 + + + WUTIE + Wakeup timer interrupt + enable + 14 + 1 + + + ALRBIE + Alarm B interrupt enable + 13 + 1 + + + ALRAIE + Alarm A interrupt enable + 12 + 1 + + + TSE + Time stamp enable + 11 + 1 + + + WUTE + Wakeup timer enable + 10 + 1 + + + ALRBE + Alarm B enable + 9 + 1 + + + ALRAE + Alarm A enable + 8 + 1 + + + DCE + Coarse digital calibration + enable + 7 + 1 + + + FMT + Hour format + 6 + 1 + + + REFCKON + Reference clock detection enable (50 or + 60 Hz) + 4 + 1 + + + TSEDGE + Time-stamp event active + edge + 3 + 1 + + + WCKSEL + Wakeup clock selection + 0 + 3 + + + + + ISR + ISR + initialization and status + register + 0xC + 0x20 + 0x00000007 + + + ALRAWF + Alarm A write flag + 0 + 1 + read-only + + + ALRBWF + Alarm B write flag + 1 + 1 + read-only + + + WUTWF + Wakeup timer write flag + 2 + 1 + read-only + + + SHPF + Shift operation pending + 3 + 1 + read-write + + + INITS + Initialization status flag + 4 + 1 + read-only + + + RSF + Registers synchronization + flag + 5 + 1 + read-write + + + INITF + Initialization flag + 6 + 1 + read-only + + + INIT + Initialization mode + 7 + 1 + read-write + + + ALRAF + Alarm A flag + 8 + 1 + read-write + + + ALRBF + Alarm B flag + 9 + 1 + read-write + + + WUTF + Wakeup timer flag + 10 + 1 + read-write + + + TSF + Time-stamp flag + 11 + 1 + read-write + + + TSOVF + Time-stamp overflow flag + 12 + 1 + read-write + + + TAMP1F + Tamper detection flag + 13 + 1 + read-write + + + TAMP2F + TAMPER2 detection flag + 14 + 1 + read-write + + + RECALPF + Recalibration pending Flag + 16 + 1 + read-only + + + + + PRER + PRER + prescaler register + 0x10 + 0x20 + read-write + 0x007F00FF + + + PREDIV_A + Asynchronous prescaler + factor + 16 + 7 + + + PREDIV_S + Synchronous prescaler + factor + 0 + 15 + + + + + WUTR + WUTR + wakeup timer register + 0x14 + 0x20 + read-write + 0x0000FFFF + + + WUT + Wakeup auto-reload value + bits + 0 + 16 + + + + + CALIBR + CALIBR + calibration register + 0x18 + 0x20 + read-write + 0x00000000 + + + DCS + Digital calibration sign + 7 + 1 + + + DC + Digital calibration + 0 + 5 + + + + + ALRMAR + ALRMAR + alarm A register + 0x1C + 0x20 + read-write + 0x00000000 + + + MSK4 + Alarm A date mask + 31 + 1 + + + WDSEL + Week day selection + 30 + 1 + + + DT + Date tens in BCD format + 28 + 2 + + + DU + Date units or day in BCD + format + 24 + 4 + + + MSK3 + Alarm A hours mask + 23 + 1 + + + PM + AM/PM notation + 22 + 1 + + + HT + Hour tens in BCD format + 20 + 2 + + + HU + Hour units in BCD format + 16 + 4 + + + MSK2 + Alarm A minutes mask + 15 + 1 + + + MNT + Minute tens in BCD format + 12 + 3 + + + MNU + Minute units in BCD format + 8 + 4 + + + MSK1 + Alarm A seconds mask + 7 + 1 + + + ST + Second tens in BCD format + 4 + 3 + + + SU + Second units in BCD format + 0 + 4 + + + + + ALRMBR + ALRMBR + alarm B register + 0x20 + 0x20 + read-write + 0x00000000 + + + MSK4 + Alarm B date mask + 31 + 1 + + + WDSEL + Week day selection + 30 + 1 + + + DT + Date tens in BCD format + 28 + 2 + + + DU + Date units or day in BCD + format + 24 + 4 + + + MSK3 + Alarm B hours mask + 23 + 1 + + + PM + AM/PM notation + 22 + 1 + + + HT + Hour tens in BCD format + 20 + 2 + + + HU + Hour units in BCD format + 16 + 4 + + + MSK2 + Alarm B minutes mask + 15 + 1 + + + MNT + Minute tens in BCD format + 12 + 3 + + + MNU + Minute units in BCD format + 8 + 4 + + + MSK1 + Alarm B seconds mask + 7 + 1 + + + ST + Second tens in BCD format + 4 + 3 + + + SU + Second units in BCD format + 0 + 4 + + + + + WPR + WPR + write protection register + 0x24 + 0x20 + write-only + 0x00000000 + + + KEY + Write protection key + 0 + 8 + + + + + SSR + SSR + sub second register + 0x28 + 0x20 + read-only + 0x00000000 + + + SS + Sub second value + 0 + 16 + + + + + SHIFTR + SHIFTR + shift control register + 0x2C + 0x20 + write-only + 0x00000000 + + + ADD1S + Add one second + 31 + 1 + + + SUBFS + Subtract a fraction of a + second + 0 + 15 + + + + + TSTR + TSTR + time stamp time register + 0x30 + 0x20 + read-only + 0x00000000 + + + ALARMOUTTYPE + AFO_ALARM output type + 18 + 1 + + + TSINSEL + TIMESTAMP mapping + 17 + 1 + + + TAMP1INSEL + TAMPER1 mapping + 16 + 1 + + + TAMPIE + Tamper interrupt enable + 2 + 1 + + + TAMP1TRG + Active level for tamper 1 + 1 + 1 + + + TAMP1E + Tamper 1 detection enable + 0 + 1 + + + + + TSDR + TSDR + time stamp date register + 0x34 + 0x20 + read-only + 0x00000000 + + + WDU + Week day units + 13 + 3 + + + MT + Month tens in BCD format + 12 + 1 + + + MU + Month units in BCD format + 8 + 4 + + + DT + Date tens in BCD format + 4 + 2 + + + DU + Date units in BCD format + 0 + 4 + + + + + TSSSR + TSSSR + timestamp sub second register + 0x38 + 0x20 + read-only + 0x00000000 + + + SS + Sub second value + 0 + 16 + + + + + CALR + CALR + calibration register + 0x3C + 0x20 + read-write + 0x00000000 + + + CALP + Increase frequency of RTC by 488.5 + ppm + 15 + 1 + + + CALW8 + Use an 8-second calibration cycle + period + 14 + 1 + + + CALW16 + Use a 16-second calibration cycle + period + 13 + 1 + + + CALM + Calibration minus + 0 + 9 + + + + + TAFCR + TAFCR + tamper and alternate function configuration + register + 0x40 + 0x20 + read-write + 0x00000000 + + + ALARMOUTTYPE + AFO_ALARM output type + 18 + 1 + + + TSINSEL + TIMESTAMP mapping + 17 + 1 + + + TAMP1INSEL + TAMPER1 mapping + 16 + 1 + + + TAMPPUDIS + TAMPER pull-up disable + 15 + 1 + + + TAMPPRCH + Tamper precharge duration + 13 + 2 + + + TAMPFLT + Tamper filter count + 11 + 2 + + + TAMPFREQ + Tamper sampling frequency + 8 + 3 + + + TAMPTS + Activate timestamp on tamper detection + event + 7 + 1 + + + TAMP2TRG + Active level for tamper 2 + 4 + 1 + + + TAMP2E + Tamper 2 detection enable + 3 + 1 + + + TAMPIE + Tamper interrupt enable + 2 + 1 + + + TAMP1TRG + Active level for tamper 1 + 1 + 1 + + + TAMP1E + Tamper 1 detection enable + 0 + 1 + + + + + ALRMASSR + ALRMASSR + alarm A sub second register + 0x44 + 0x20 + read-write + 0x00000000 + + + MASKSS + Mask the most-significant bits starting + at this bit + 24 + 4 + + + SS + Sub seconds value + 0 + 15 + + + + + ALRMBSSR + ALRMBSSR + alarm B sub second register + 0x48 + 0x20 + read-write + 0x00000000 + + + MASKSS + Mask the most-significant bits starting + at this bit + 24 + 4 + + + SS + Sub seconds value + 0 + 15 + + + + + BKP0R + BKP0R + backup register + 0x50 + 0x20 + read-write + 0x00000000 + + + BKP + BKP + 0 + 32 + + + + + BKP1R + BKP1R + backup register + 0x54 + 0x20 + read-write + 0x00000000 + + + BKP + BKP + 0 + 32 + + + + + BKP2R + BKP2R + backup register + 0x58 + 0x20 + read-write + 0x00000000 + + + BKP + BKP + 0 + 32 + + + + + BKP3R + BKP3R + backup register + 0x5C + 0x20 + read-write + 0x00000000 + + + BKP + BKP + 0 + 32 + + + + + BKP4R + BKP4R + backup register + 0x60 + 0x20 + read-write + 0x00000000 + + + BKP + BKP + 0 + 32 + + + + + BKP5R + BKP5R + backup register + 0x64 + 0x20 + read-write + 0x00000000 + + + BKP + BKP + 0 + 32 + + + + + BKP6R + BKP6R + backup register + 0x68 + 0x20 + read-write + 0x00000000 + + + BKP + BKP + 0 + 32 + + + + + BKP7R + BKP7R + backup register + 0x6C + 0x20 + read-write + 0x00000000 + + + BKP + BKP + 0 + 32 + + + + + BKP8R + BKP8R + backup register + 0x70 + 0x20 + read-write + 0x00000000 + + + BKP + BKP + 0 + 32 + + + + + BKP9R + BKP9R + backup register + 0x74 + 0x20 + read-write + 0x00000000 + + + BKP + BKP + 0 + 32 + + + + + BKP10R + BKP10R + backup register + 0x78 + 0x20 + read-write + 0x00000000 + + + BKP + BKP + 0 + 32 + + + + + BKP11R + BKP11R + backup register + 0x7C + 0x20 + read-write + 0x00000000 + + + BKP + BKP + 0 + 32 + + + + + BKP12R + BKP12R + backup register + 0x80 + 0x20 + read-write + 0x00000000 + + + BKP + BKP + 0 + 32 + + + + + BKP13R + BKP13R + backup register + 0x84 + 0x20 + read-write + 0x00000000 + + + BKP + BKP + 0 + 32 + + + + + BKP14R + BKP14R + backup register + 0x88 + 0x20 + read-write + 0x00000000 + + + BKP + BKP + 0 + 32 + + + + + BKP15R + BKP15R + backup register + 0x8C + 0x20 + read-write + 0x00000000 + + + BKP + BKP + 0 + 32 + + + + + BKP16R + BKP16R + backup register + 0x90 + 0x20 + read-write + 0x00000000 + + + BKP + BKP + 0 + 32 + + + + + BKP17R + BKP17R + backup register + 0x94 + 0x20 + read-write + 0x00000000 + + + BKP + BKP + 0 + 32 + + + + + BKP18R + BKP18R + backup register + 0x98 + 0x20 + read-write + 0x00000000 + + + BKP + BKP + 0 + 32 + + + + + BKP19R + BKP19R + backup register + 0x9C + 0x20 + read-write + 0x00000000 + + + BKP + BKP + 0 + 32 + + + + + + + UART4 + Universal synchronous asynchronous receiver + transmitter + USART + 0x40004C00 + + 0x0 + 0x400 + registers + + + UART4 + UART4 global interrupt + 52 + + + + SR + SR + Status register + 0x0 + 0x20 + 0x00C00000 + + + LBD + LIN break detection flag + 8 + 1 + read-write + + + TXE + Transmit data register + empty + 7 + 1 + read-only + + + TC + Transmission complete + 6 + 1 + read-write + + + RXNE + Read data register not + empty + 5 + 1 + read-write + + + IDLE + IDLE line detected + 4 + 1 + read-only + + + ORE + Overrun error + 3 + 1 + read-only + + + NF + Noise detected flag + 2 + 1 + read-only + + + FE + Framing error + 1 + 1 + read-only + + + PE + Parity error + 0 + 1 + read-only + + + + + DR + DR + Data register + 0x4 + 0x20 + read-write + 0x00000000 + + + DR + Data value + 0 + 9 + + + + + BRR + BRR + Baud rate register + 0x8 + 0x20 + read-write + 0x0000 + + + DIV_Mantissa + mantissa of USARTDIV + 4 + 12 + + + DIV_Fraction + fraction of USARTDIV + 0 + 4 + + + + + CR1 + CR1 + Control register 1 + 0xC + 0x20 + read-write + 0x0000 + + + OVER8 + Oversampling mode + 15 + 1 + + + UE + USART enable + 13 + 1 + + + M + Word length + 12 + 1 + + + WAKE + Wakeup method + 11 + 1 + + + PCE + Parity control enable + 10 + 1 + + + PS + Parity selection + 9 + 1 + + + PEIE + PE interrupt enable + 8 + 1 + + + TXEIE + TXE interrupt enable + 7 + 1 + + + TCIE + Transmission complete interrupt + enable + 6 + 1 + + + RXNEIE + RXNE interrupt enable + 5 + 1 + + + IDLEIE + IDLE interrupt enable + 4 + 1 + + + TE + Transmitter enable + 3 + 1 + + + RE + Receiver enable + 2 + 1 + + + RWU + Receiver wakeup + 1 + 1 + + + SBK + Send break + 0 + 1 + + + + + CR2 + CR2 + Control register 2 + 0x10 + 0x20 + read-write + 0x0000 + + + LINEN + LIN mode enable + 14 + 1 + + + STOP + STOP bits + 12 + 2 + + + LBDIE + LIN break detection interrupt + enable + 6 + 1 + + + LBDL + lin break detection length + 5 + 1 + + + ADD + Address of the USART node + 0 + 4 + + + + + CR3 + CR3 + Control register 3 + 0x14 + 0x20 + read-write + 0x0000 + + + ONEBIT + One sample bit method + enable + 11 + 1 + + + CTSIE + CTS interrupt enable + 10 + 1 + + + CTSE + CTS enable + 9 + 1 + + + RTSE + RTS enable + 8 + 1 + + + DMAT + DMA enable transmitter + 7 + 1 + + + DMAR + DMA enable receiver + 6 + 1 + + + HDSEL + Half-duplex selection + 3 + 1 + + + IRLP + IrDA low-power + 2 + 1 + + + IREN + IrDA mode enable + 1 + 1 + + + EIE + Error interrupt enable + 0 + 1 + + + + + + + UART5 + 0x40005000 + + UART5 + UART5 global interrupt + 53 + + + + C_ADC + Common ADC registers + ADC + 0x40012300 + + 0x0 + 0xD + registers + + + ADC + ADC1 global interrupt + 18 + + + + CSR + CSR + ADC Common status register + 0x0 + 0x20 + read-only + 0x00000000 + + + OVR3 + Overrun flag of ADC3 + 21 + 1 + + + STRT3 + Regular channel Start flag of ADC + 3 + 20 + 1 + + + JSTRT3 + Injected channel Start flag of ADC + 3 + 19 + 1 + + + JEOC3 + Injected channel end of conversion of + ADC 3 + 18 + 1 + + + EOC3 + End of conversion of ADC 3 + 17 + 1 + + + AWD3 + Analog watchdog flag of ADC + 3 + 16 + 1 + + + OVR2 + Overrun flag of ADC 2 + 13 + 1 + + + STRT2 + Regular channel Start flag of ADC + 2 + 12 + 1 + + + JSTRT2 + Injected channel Start flag of ADC + 2 + 11 + 1 + + + JEOC2 + Injected channel end of conversion of + ADC 2 + 10 + 1 + + + EOC2 + End of conversion of ADC 2 + 9 + 1 + + + AWD2 + Analog watchdog flag of ADC + 2 + 8 + 1 + + + OVR1 + Overrun flag of ADC 1 + 5 + 1 + + + STRT1 + Regular channel Start flag of ADC + 1 + 4 + 1 + + + JSTRT1 + Injected channel Start flag of ADC + 1 + 3 + 1 + + + JEOC1 + Injected channel end of conversion of + ADC 1 + 2 + 1 + + + EOC1 + End of conversion of ADC 1 + 1 + 1 + + + AWD1 + Analog watchdog flag of ADC + 1 + 0 + 1 + + + + + CCR + CCR + ADC common control register + 0x4 + 0x20 + read-write + 0x00000000 + + + TSVREFE + Temperature sensor and VREFINT + enable + 23 + 1 + + + VBATE + VBAT enable + 22 + 1 + + + ADCPRE + ADC prescaler + 16 + 2 + + + DMA + Direct memory access mode for multi ADC + mode + 14 + 2 + + + DDS + DMA disable selection for multi-ADC + mode + 13 + 1 + + + DELAY + Delay between 2 sampling + phases + 8 + 4 + + + MULT + Multi ADC mode selection + 0 + 5 + + + + + CDR + CDR + ADC common regular data register for dual + and triple modes + 0x8 + 0x20 + read-only + 0x00000000 + + + DATA2 + 2nd data item of a pair of regular + conversions + 16 + 16 + + + DATA1 + 1st data item of a pair of regular + conversions + 0 + 16 + + + + + + + TIM1 + Advanced-timers + TIM + 0x40010000 + + 0x0 + 0x400 + registers + + + TIM1_BRK_TIM9 + TIM1 Break interrupt and TIM9 global + interrupt + 24 + + + TIM1_UP_TIM10 + TIM1 Update interrupt and TIM10 global + interrupt + 25 + + + TIM1_TRG_COM_TIM11 + TIM1 Trigger and Commutation interrupts and + TIM11 global interrupt + 26 + + + TIM1_CC + TIM1 Capture Compare interrupt + 27 + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + CKD + Clock division + 8 + 2 + + + ARPE + Auto-reload preload enable + 7 + 1 + + + CMS + Center-aligned mode + selection + 5 + 2 + + + DIR + Direction + 4 + 1 + + + OPM + One-pulse mode + 3 + 1 + + + URS + Update request source + 2 + 1 + + + UDIS + Update disable + 1 + 1 + + + CEN + Counter enable + 0 + 1 + + + + + CR2 + CR2 + control register 2 + 0x4 + 0x20 + read-write + 0x0000 + + + OIS4 + Output Idle state 4 + 14 + 1 + + + OIS3N + Output Idle state 3 + 13 + 1 + + + OIS3 + Output Idle state 3 + 12 + 1 + + + OIS2N + Output Idle state 2 + 11 + 1 + + + OIS2 + Output Idle state 2 + 10 + 1 + + + OIS1N + Output Idle state 1 + 9 + 1 + + + OIS1 + Output Idle state 1 + 8 + 1 + + + TI1S + TI1 selection + 7 + 1 + + + MMS + Master mode selection + 4 + 3 + + + CCDS + Capture/compare DMA + selection + 3 + 1 + + + CCUS + Capture/compare control update + selection + 2 + 1 + + + CCPC + Capture/compare preloaded + control + 0 + 1 + + + + + SMCR + SMCR + slave mode control register + 0x8 + 0x20 + read-write + 0x0000 + + + ETP + External trigger polarity + 15 + 1 + + + ECE + External clock enable + 14 + 1 + + + ETPS + External trigger prescaler + 12 + 2 + + + ETF + External trigger filter + 8 + 4 + + + MSM + Master/Slave mode + 7 + 1 + + + TS + Trigger selection + 4 + 3 + + + SMS + Slave mode selection + 0 + 3 + + + + + DIER + DIER + DMA/Interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + TDE + Trigger DMA request enable + 14 + 1 + + + COMDE + COM DMA request enable + 13 + 1 + + + CC4DE + Capture/Compare 4 DMA request + enable + 12 + 1 + + + CC3DE + Capture/Compare 3 DMA request + enable + 11 + 1 + + + CC2DE + Capture/Compare 2 DMA request + enable + 10 + 1 + + + CC1DE + Capture/Compare 1 DMA request + enable + 9 + 1 + + + UDE + Update DMA request enable + 8 + 1 + + + TIE + Trigger interrupt enable + 6 + 1 + + + CC4IE + Capture/Compare 4 interrupt + enable + 4 + 1 + + + CC3IE + Capture/Compare 3 interrupt + enable + 3 + 1 + + + CC2IE + Capture/Compare 2 interrupt + enable + 2 + 1 + + + CC1IE + Capture/Compare 1 interrupt + enable + 1 + 1 + + + UIE + Update interrupt enable + 0 + 1 + + + BIE + Break interrupt enable + 7 + 1 + + + COMIE + COM interrupt enable + 5 + 1 + + + + + SR + SR + status register + 0x10 + 0x20 + read-write + 0x0000 + + + CC4OF + Capture/Compare 4 overcapture + flag + 12 + 1 + + + CC3OF + Capture/Compare 3 overcapture + flag + 11 + 1 + + + CC2OF + Capture/compare 2 overcapture + flag + 10 + 1 + + + CC1OF + Capture/Compare 1 overcapture + flag + 9 + 1 + + + BIF + Break interrupt flag + 7 + 1 + + + TIF + Trigger interrupt flag + 6 + 1 + + + COMIF + COM interrupt flag + 5 + 1 + + + CC4IF + Capture/Compare 4 interrupt + flag + 4 + 1 + + + CC3IF + Capture/Compare 3 interrupt + flag + 3 + 1 + + + CC2IF + Capture/Compare 2 interrupt + flag + 2 + 1 + + + CC1IF + Capture/compare 1 interrupt + flag + 1 + 1 + + + UIF + Update interrupt flag + 0 + 1 + + + + + EGR + EGR + event generation register + 0x14 + 0x20 + write-only + 0x0000 + + + BG + Break generation + 7 + 1 + + + TG + Trigger generation + 6 + 1 + + + COMG + Capture/Compare control update + generation + 5 + 1 + + + CC4G + Capture/compare 4 + generation + 4 + 1 + + + CC3G + Capture/compare 3 + generation + 3 + 1 + + + CC2G + Capture/compare 2 + generation + 2 + 1 + + + CC1G + Capture/compare 1 + generation + 1 + 1 + + + UG + Update generation + 0 + 1 + + + + + CCMR1_Output + CCMR1_Output + capture/compare mode register 1 (output + mode) + 0x18 + 0x20 + read-write + 0x00000000 + + + OC2CE + Output Compare 2 clear + enable + 15 + 1 + + + OC2M + Output Compare 2 mode + 12 + 3 + + + OC2PE + Output Compare 2 preload + enable + 11 + 1 + + + OC2FE + Output Compare 2 fast + enable + 10 + 1 + + + CC2S + Capture/Compare 2 + selection + 8 + 2 + + + OC1CE + Output Compare 1 clear + enable + 7 + 1 + + + OC1M + Output Compare 1 mode + 4 + 3 + + + OC1PE + Output Compare 1 preload + enable + 3 + 1 + + + OC1FE + Output Compare 1 fast + enable + 2 + 1 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCMR1_Input + CCMR1_Input + capture/compare mode register 1 (input + mode) + CCMR1_Output + 0x18 + 0x20 + read-write + 0x00000000 + + + IC2F + Input capture 2 filter + 12 + 4 + + + IC2PCS + Input capture 2 prescaler + 10 + 2 + + + CC2S + Capture/Compare 2 + selection + 8 + 2 + + + IC1F + Input capture 1 filter + 4 + 4 + + + ICPCS + Input capture 1 prescaler + 2 + 2 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCMR2_Output + CCMR2_Output + capture/compare mode register 2 (output + mode) + 0x1C + 0x20 + read-write + 0x00000000 + + + OC4CE + Output compare 4 clear + enable + 15 + 1 + + + OC4M + Output compare 4 mode + 12 + 3 + + + OC4PE + Output compare 4 preload + enable + 11 + 1 + + + OC4FE + Output compare 4 fast + enable + 10 + 1 + + + CC4S + Capture/Compare 4 + selection + 8 + 2 + + + OC3CE + Output compare 3 clear + enable + 7 + 1 + + + OC3M + Output compare 3 mode + 4 + 3 + + + OC3PE + Output compare 3 preload + enable + 3 + 1 + + + OC3FE + Output compare 3 fast + enable + 2 + 1 + + + CC3S + Capture/Compare 3 + selection + 0 + 2 + + + + + CCMR2_Input + CCMR2_Input + capture/compare mode register 2 (input + mode) + CCMR2_Output + 0x1C + 0x20 + read-write + 0x00000000 + + + IC4F + Input capture 4 filter + 12 + 4 + + + IC4PSC + Input capture 4 prescaler + 10 + 2 + + + CC4S + Capture/Compare 4 + selection + 8 + 2 + + + IC3F + Input capture 3 filter + 4 + 4 + + + IC3PSC + Input capture 3 prescaler + 2 + 2 + + + CC3S + Capture/compare 3 + selection + 0 + 2 + + + + + CCER + CCER + capture/compare enable + register + 0x20 + 0x20 + read-write + 0x0000 + + + CC4P + Capture/Compare 3 output + Polarity + 13 + 1 + + + CC4E + Capture/Compare 4 output + enable + 12 + 1 + + + CC3NP + Capture/Compare 3 output + Polarity + 11 + 1 + + + CC3NE + Capture/Compare 3 complementary output + enable + 10 + 1 + + + CC3P + Capture/Compare 3 output + Polarity + 9 + 1 + + + CC3E + Capture/Compare 3 output + enable + 8 + 1 + + + CC2NP + Capture/Compare 2 output + Polarity + 7 + 1 + + + CC2NE + Capture/Compare 2 complementary output + enable + 6 + 1 + + + CC2P + Capture/Compare 2 output + Polarity + 5 + 1 + + + CC2E + Capture/Compare 2 output + enable + 4 + 1 + + + CC1NP + Capture/Compare 1 output + Polarity + 3 + 1 + + + CC1NE + Capture/Compare 1 complementary output + enable + 2 + 1 + + + CC1P + Capture/Compare 1 output + Polarity + 1 + 1 + + + CC1E + Capture/Compare 1 output + enable + 0 + 1 + + + + + CNT + CNT + counter + 0x24 + 0x20 + read-write + 0x00000000 + + + CNT + counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + ARR + Auto-reload value + 0 + 16 + + + + + CCR1 + CCR1 + capture/compare register 1 + 0x34 + 0x20 + read-write + 0x00000000 + + + CCR1 + Capture/Compare 1 value + 0 + 16 + + + + + CCR2 + CCR2 + capture/compare register 2 + 0x38 + 0x20 + read-write + 0x00000000 + + + CCR2 + Capture/Compare 2 value + 0 + 16 + + + + + CCR3 + CCR3 + capture/compare register 3 + 0x3C + 0x20 + read-write + 0x00000000 + + + CCR3 + Capture/Compare value + 0 + 16 + + + + + CCR4 + CCR4 + capture/compare register 4 + 0x40 + 0x20 + read-write + 0x00000000 + + + CCR4 + Capture/Compare value + 0 + 16 + + + + + DCR + DCR + DMA control register + 0x48 + 0x20 + read-write + 0x0000 + + + DBL + DMA burst length + 8 + 5 + + + DBA + DMA base address + 0 + 5 + + + + + DMAR + DMAR + DMA address for full transfer + 0x4C + 0x20 + read-write + 0x0000 + + + DMAB + DMA register for burst + accesses + 0 + 16 + + + + + RCR + RCR + repetition counter register + 0x30 + 0x20 + read-write + 0x0000 + + + REP + Repetition counter value + 0 + 8 + + + + + BDTR + BDTR + break and dead-time register + 0x44 + 0x20 + read-write + 0x0000 + + + MOE + Main output enable + 15 + 1 + + + AOE + Automatic output enable + 14 + 1 + + + BKP + Break polarity + 13 + 1 + + + BKE + Break enable + 12 + 1 + + + OSSR + Off-state selection for Run + mode + 11 + 1 + + + OSSI + Off-state selection for Idle + mode + 10 + 1 + + + LOCK + Lock configuration + 8 + 2 + + + DTG + Dead-time generator setup + 0 + 8 + + + + + + + TIM8 + 0x40010400 + + TIM8_BRK_TIM12 + TIM8 Break interrupt and TIM12 global + interrupt + 43 + + + TIM8_UP_TIM13 + TIM8 Update interrupt and TIM13 global + interrupt + 44 + + + TIM8_TRG_COM_TIM14 + TIM8 Trigger and Commutation interrupts and + TIM14 global interrupt + 45 + + + TIM8_CC + TIM8 Capture Compare interrupt + 46 + + + + TIM2 + General purpose timers + TIM + 0x40000000 + + 0x0 + 0x400 + registers + + + TIM2 + TIM2 global interrupt + 28 + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + CKD + Clock division + 8 + 2 + + + ARPE + Auto-reload preload enable + 7 + 1 + + + CMS + Center-aligned mode + selection + 5 + 2 + + + DIR + Direction + 4 + 1 + + + OPM + One-pulse mode + 3 + 1 + + + URS + Update request source + 2 + 1 + + + UDIS + Update disable + 1 + 1 + + + CEN + Counter enable + 0 + 1 + + + + + CR2 + CR2 + control register 2 + 0x4 + 0x20 + read-write + 0x0000 + + + TI1S + TI1 selection + 7 + 1 + + + MMS + Master mode selection + 4 + 3 + + + CCDS + Capture/compare DMA + selection + 3 + 1 + + + + + SMCR + SMCR + slave mode control register + 0x8 + 0x20 + read-write + 0x0000 + + + ETP + External trigger polarity + 15 + 1 + + + ECE + External clock enable + 14 + 1 + + + ETPS + External trigger prescaler + 12 + 2 + + + ETF + External trigger filter + 8 + 4 + + + MSM + Master/Slave mode + 7 + 1 + + + TS + Trigger selection + 4 + 3 + + + SMS + Slave mode selection + 0 + 3 + + + + + DIER + DIER + DMA/Interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + TDE + Trigger DMA request enable + 14 + 1 + + + CC4DE + Capture/Compare 4 DMA request + enable + 12 + 1 + + + CC3DE + Capture/Compare 3 DMA request + enable + 11 + 1 + + + CC2DE + Capture/Compare 2 DMA request + enable + 10 + 1 + + + CC1DE + Capture/Compare 1 DMA request + enable + 9 + 1 + + + UDE + Update DMA request enable + 8 + 1 + + + TIE + Trigger interrupt enable + 6 + 1 + + + CC4IE + Capture/Compare 4 interrupt + enable + 4 + 1 + + + CC3IE + Capture/Compare 3 interrupt + enable + 3 + 1 + + + CC2IE + Capture/Compare 2 interrupt + enable + 2 + 1 + + + CC1IE + Capture/Compare 1 interrupt + enable + 1 + 1 + + + UIE + Update interrupt enable + 0 + 1 + + + + + SR + SR + status register + 0x10 + 0x20 + read-write + 0x0000 + + + CC4OF + Capture/Compare 4 overcapture + flag + 12 + 1 + + + CC3OF + Capture/Compare 3 overcapture + flag + 11 + 1 + + + CC2OF + Capture/compare 2 overcapture + flag + 10 + 1 + + + CC1OF + Capture/Compare 1 overcapture + flag + 9 + 1 + + + TIF + Trigger interrupt flag + 6 + 1 + + + CC4IF + Capture/Compare 4 interrupt + flag + 4 + 1 + + + CC3IF + Capture/Compare 3 interrupt + flag + 3 + 1 + + + CC2IF + Capture/Compare 2 interrupt + flag + 2 + 1 + + + CC1IF + Capture/compare 1 interrupt + flag + 1 + 1 + + + UIF + Update interrupt flag + 0 + 1 + + + + + EGR + EGR + event generation register + 0x14 + 0x20 + write-only + 0x0000 + + + TG + Trigger generation + 6 + 1 + + + CC4G + Capture/compare 4 + generation + 4 + 1 + + + CC3G + Capture/compare 3 + generation + 3 + 1 + + + CC2G + Capture/compare 2 + generation + 2 + 1 + + + CC1G + Capture/compare 1 + generation + 1 + 1 + + + UG + Update generation + 0 + 1 + + + + + CCMR1_Output + CCMR1_Output + capture/compare mode register 1 (output + mode) + 0x18 + 0x20 + read-write + 0x00000000 + + + OC2CE + OC2CE + 15 + 1 + + + OC2M + OC2M + 12 + 3 + + + OC2PE + OC2PE + 11 + 1 + + + OC2FE + OC2FE + 10 + 1 + + + CC2S + CC2S + 8 + 2 + + + OC1CE + OC1CE + 7 + 1 + + + OC1M + OC1M + 4 + 3 + + + OC1PE + OC1PE + 3 + 1 + + + OC1FE + OC1FE + 2 + 1 + + + CC1S + CC1S + 0 + 2 + + + + + CCMR1_Input + CCMR1_Input + capture/compare mode register 1 (input + mode) + CCMR1_Output + 0x18 + 0x20 + read-write + 0x00000000 + + + IC2F + Input capture 2 filter + 12 + 4 + + + IC2PCS + Input capture 2 prescaler + 10 + 2 + + + CC2S + Capture/Compare 2 + selection + 8 + 2 + + + IC1F + Input capture 1 filter + 4 + 4 + + + ICPCS + Input capture 1 prescaler + 2 + 2 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCMR2_Output + CCMR2_Output + capture/compare mode register 2 (output + mode) + 0x1C + 0x20 + read-write + 0x00000000 + + + OC4CE + OC4CE + 15 + 1 + + + OC4M + OC4M + 12 + 3 + + + OC4PE + OC4PE + 11 + 1 + + + OC4FE + OC4FE + 10 + 1 + + + CC4S + CC4S + 8 + 2 + + + OC3CE + OC3CE + 7 + 1 + + + OC3M + OC3M + 4 + 3 + + + OC3PE + OC3PE + 3 + 1 + + + OC3FE + OC3FE + 2 + 1 + + + CC3S + CC3S + 0 + 2 + + + + + CCMR2_Input + CCMR2_Input + capture/compare mode register 2 (input + mode) + CCMR2_Output + 0x1C + 0x20 + read-write + 0x00000000 + + + IC4F + Input capture 4 filter + 12 + 4 + + + IC4PSC + Input capture 4 prescaler + 10 + 2 + + + CC4S + Capture/Compare 4 + selection + 8 + 2 + + + IC3F + Input capture 3 filter + 4 + 4 + + + IC3PSC + Input capture 3 prescaler + 2 + 2 + + + CC3S + Capture/compare 3 + selection + 0 + 2 + + + + + CCER + CCER + capture/compare enable + register + 0x20 + 0x20 + read-write + 0x0000 + + + CC4NP + Capture/Compare 4 output + Polarity + 15 + 1 + + + CC4P + Capture/Compare 3 output + Polarity + 13 + 1 + + + CC4E + Capture/Compare 4 output + enable + 12 + 1 + + + CC3NP + Capture/Compare 3 output + Polarity + 11 + 1 + + + CC3P + Capture/Compare 3 output + Polarity + 9 + 1 + + + CC3E + Capture/Compare 3 output + enable + 8 + 1 + + + CC2NP + Capture/Compare 2 output + Polarity + 7 + 1 + + + CC2P + Capture/Compare 2 output + Polarity + 5 + 1 + + + CC2E + Capture/Compare 2 output + enable + 4 + 1 + + + CC1NP + Capture/Compare 1 output + Polarity + 3 + 1 + + + CC1P + Capture/Compare 1 output + Polarity + 1 + 1 + + + CC1E + Capture/Compare 1 output + enable + 0 + 1 + + + + + CNT + CNT + counter + 0x24 + 0x20 + read-write + 0x00000000 + + + CNT_H + High counter value + 16 + 16 + + + CNT_L + Low counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + ARR_H + High Auto-reload value + 16 + 16 + + + ARR_L + Low Auto-reload value + 0 + 16 + + + + + CCR1 + CCR1 + capture/compare register 1 + 0x34 + 0x20 + read-write + 0x00000000 + + + CCR1_H + High Capture/Compare 1 + value + 16 + 16 + + + CCR1_L + Low Capture/Compare 1 + value + 0 + 16 + + + + + CCR2 + CCR2 + capture/compare register 2 + 0x38 + 0x20 + read-write + 0x00000000 + + + CCR2_H + High Capture/Compare 2 + value + 16 + 16 + + + CCR2_L + Low Capture/Compare 2 + value + 0 + 16 + + + + + CCR3 + CCR3 + capture/compare register 3 + 0x3C + 0x20 + read-write + 0x00000000 + + + CCR3_H + High Capture/Compare value + 16 + 16 + + + CCR3_L + Low Capture/Compare value + 0 + 16 + + + + + CCR4 + CCR4 + capture/compare register 4 + 0x40 + 0x20 + read-write + 0x00000000 + + + CCR4_H + High Capture/Compare value + 16 + 16 + + + CCR4_L + Low Capture/Compare value + 0 + 16 + + + + + DCR + DCR + DMA control register + 0x48 + 0x20 + read-write + 0x0000 + + + DBL + DMA burst length + 8 + 5 + + + DBA + DMA base address + 0 + 5 + + + + + DMAR + DMAR + DMA address for full transfer + 0x4C + 0x20 + read-write + 0x0000 + + + DMAB + DMA register for burst + accesses + 0 + 16 + + + + + OR + OR + TIM5 option register + 0x50 + 0x20 + read-write + 0x0000 + + + ITR1_RMP + Timer Input 4 remap + 10 + 2 + + + + + + + TIM3 + General purpose timers + TIM + 0x40000400 + + 0x0 + 0x400 + registers + + + TIM3 + TIM3 global interrupt + 29 + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + CKD + Clock division + 8 + 2 + + + ARPE + Auto-reload preload enable + 7 + 1 + + + CMS + Center-aligned mode + selection + 5 + 2 + + + DIR + Direction + 4 + 1 + + + OPM + One-pulse mode + 3 + 1 + + + URS + Update request source + 2 + 1 + + + UDIS + Update disable + 1 + 1 + + + CEN + Counter enable + 0 + 1 + + + + + CR2 + CR2 + control register 2 + 0x4 + 0x20 + read-write + 0x0000 + + + TI1S + TI1 selection + 7 + 1 + + + MMS + Master mode selection + 4 + 3 + + + CCDS + Capture/compare DMA + selection + 3 + 1 + + + + + SMCR + SMCR + slave mode control register + 0x8 + 0x20 + read-write + 0x0000 + + + ETP + External trigger polarity + 15 + 1 + + + ECE + External clock enable + 14 + 1 + + + ETPS + External trigger prescaler + 12 + 2 + + + ETF + External trigger filter + 8 + 4 + + + MSM + Master/Slave mode + 7 + 1 + + + TS + Trigger selection + 4 + 3 + + + SMS + Slave mode selection + 0 + 3 + + + + + DIER + DIER + DMA/Interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + TDE + Trigger DMA request enable + 14 + 1 + + + CC4DE + Capture/Compare 4 DMA request + enable + 12 + 1 + + + CC3DE + Capture/Compare 3 DMA request + enable + 11 + 1 + + + CC2DE + Capture/Compare 2 DMA request + enable + 10 + 1 + + + CC1DE + Capture/Compare 1 DMA request + enable + 9 + 1 + + + UDE + Update DMA request enable + 8 + 1 + + + TIE + Trigger interrupt enable + 6 + 1 + + + CC4IE + Capture/Compare 4 interrupt + enable + 4 + 1 + + + CC3IE + Capture/Compare 3 interrupt + enable + 3 + 1 + + + CC2IE + Capture/Compare 2 interrupt + enable + 2 + 1 + + + CC1IE + Capture/Compare 1 interrupt + enable + 1 + 1 + + + UIE + Update interrupt enable + 0 + 1 + + + + + SR + SR + status register + 0x10 + 0x20 + read-write + 0x0000 + + + CC4OF + Capture/Compare 4 overcapture + flag + 12 + 1 + + + CC3OF + Capture/Compare 3 overcapture + flag + 11 + 1 + + + CC2OF + Capture/compare 2 overcapture + flag + 10 + 1 + + + CC1OF + Capture/Compare 1 overcapture + flag + 9 + 1 + + + TIF + Trigger interrupt flag + 6 + 1 + + + CC4IF + Capture/Compare 4 interrupt + flag + 4 + 1 + + + CC3IF + Capture/Compare 3 interrupt + flag + 3 + 1 + + + CC2IF + Capture/Compare 2 interrupt + flag + 2 + 1 + + + CC1IF + Capture/compare 1 interrupt + flag + 1 + 1 + + + UIF + Update interrupt flag + 0 + 1 + + + + + EGR + EGR + event generation register + 0x14 + 0x20 + write-only + 0x0000 + + + TG + Trigger generation + 6 + 1 + + + CC4G + Capture/compare 4 + generation + 4 + 1 + + + CC3G + Capture/compare 3 + generation + 3 + 1 + + + CC2G + Capture/compare 2 + generation + 2 + 1 + + + CC1G + Capture/compare 1 + generation + 1 + 1 + + + UG + Update generation + 0 + 1 + + + + + CCMR1_Output + CCMR1_Output + capture/compare mode register 1 (output + mode) + 0x18 + 0x20 + read-write + 0x00000000 + + + OC2CE + OC2CE + 15 + 1 + + + OC2M + OC2M + 12 + 3 + + + OC2PE + OC2PE + 11 + 1 + + + OC2FE + OC2FE + 10 + 1 + + + CC2S + CC2S + 8 + 2 + + + OC1CE + OC1CE + 7 + 1 + + + OC1M + OC1M + 4 + 3 + + + OC1PE + OC1PE + 3 + 1 + + + OC1FE + OC1FE + 2 + 1 + + + CC1S + CC1S + 0 + 2 + + + + + CCMR1_Input + CCMR1_Input + capture/compare mode register 1 (input + mode) + CCMR1_Output + 0x18 + 0x20 + read-write + 0x00000000 + + + IC2F + Input capture 2 filter + 12 + 4 + + + IC2PCS + Input capture 2 prescaler + 10 + 2 + + + CC2S + Capture/Compare 2 + selection + 8 + 2 + + + IC1F + Input capture 1 filter + 4 + 4 + + + ICPCS + Input capture 1 prescaler + 2 + 2 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCMR2_Output + CCMR2_Output + capture/compare mode register 2 (output + mode) + 0x1C + 0x20 + read-write + 0x00000000 + + + OC4CE + OC4CE + 15 + 1 + + + OC4M + OC4M + 12 + 3 + + + OC4PE + OC4PE + 11 + 1 + + + OC4FE + OC4FE + 10 + 1 + + + CC4S + CC4S + 8 + 2 + + + OC3CE + OC3CE + 7 + 1 + + + OC3M + OC3M + 4 + 3 + + + OC3PE + OC3PE + 3 + 1 + + + OC3FE + OC3FE + 2 + 1 + + + CC3S + CC3S + 0 + 2 + + + + + CCMR2_Input + CCMR2_Input + capture/compare mode register 2 (input + mode) + CCMR2_Output + 0x1C + 0x20 + read-write + 0x00000000 + + + IC4F + Input capture 4 filter + 12 + 4 + + + IC4PSC + Input capture 4 prescaler + 10 + 2 + + + CC4S + Capture/Compare 4 + selection + 8 + 2 + + + IC3F + Input capture 3 filter + 4 + 4 + + + IC3PSC + Input capture 3 prescaler + 2 + 2 + + + CC3S + Capture/compare 3 + selection + 0 + 2 + + + + + CCER + CCER + capture/compare enable + register + 0x20 + 0x20 + read-write + 0x0000 + + + CC4NP + Capture/Compare 4 output + Polarity + 15 + 1 + + + CC4P + Capture/Compare 3 output + Polarity + 13 + 1 + + + CC4E + Capture/Compare 4 output + enable + 12 + 1 + + + CC3NP + Capture/Compare 3 output + Polarity + 11 + 1 + + + CC3P + Capture/Compare 3 output + Polarity + 9 + 1 + + + CC3E + Capture/Compare 3 output + enable + 8 + 1 + + + CC2NP + Capture/Compare 2 output + Polarity + 7 + 1 + + + CC2P + Capture/Compare 2 output + Polarity + 5 + 1 + + + CC2E + Capture/Compare 2 output + enable + 4 + 1 + + + CC1NP + Capture/Compare 1 output + Polarity + 3 + 1 + + + CC1P + Capture/Compare 1 output + Polarity + 1 + 1 + + + CC1E + Capture/Compare 1 output + enable + 0 + 1 + + + + + CNT + CNT + counter + 0x24 + 0x20 + read-write + 0x00000000 + + + CNT_H + High counter value + 16 + 16 + + + CNT_L + Low counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + ARR_H + High Auto-reload value + 16 + 16 + + + ARR_L + Low Auto-reload value + 0 + 16 + + + + + CCR1 + CCR1 + capture/compare register 1 + 0x34 + 0x20 + read-write + 0x00000000 + + + CCR1_H + High Capture/Compare 1 + value + 16 + 16 + + + CCR1_L + Low Capture/Compare 1 + value + 0 + 16 + + + + + CCR2 + CCR2 + capture/compare register 2 + 0x38 + 0x20 + read-write + 0x00000000 + + + CCR2_H + High Capture/Compare 2 + value + 16 + 16 + + + CCR2_L + Low Capture/Compare 2 + value + 0 + 16 + + + + + CCR3 + CCR3 + capture/compare register 3 + 0x3C + 0x20 + read-write + 0x00000000 + + + CCR3_H + High Capture/Compare value + 16 + 16 + + + CCR3_L + Low Capture/Compare value + 0 + 16 + + + + + CCR4 + CCR4 + capture/compare register 4 + 0x40 + 0x20 + read-write + 0x00000000 + + + CCR4_H + High Capture/Compare value + 16 + 16 + + + CCR4_L + Low Capture/Compare value + 0 + 16 + + + + + DCR + DCR + DMA control register + 0x48 + 0x20 + read-write + 0x0000 + + + DBL + DMA burst length + 8 + 5 + + + DBA + DMA base address + 0 + 5 + + + + + DMAR + DMAR + DMA address for full transfer + 0x4C + 0x20 + read-write + 0x0000 + + + DMAB + DMA register for burst + accesses + 0 + 16 + + + + + + + TIM4 + 0x40000800 + + TIM4 + TIM4 global interrupt + 30 + + + + TIM5 + General-purpose-timers + TIM + 0x40000C00 + + 0x0 + 0x400 + registers + + + TIM5 + TIM5 global interrupt + 50 + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + CKD + Clock division + 8 + 2 + + + ARPE + Auto-reload preload enable + 7 + 1 + + + CMS + Center-aligned mode + selection + 5 + 2 + + + DIR + Direction + 4 + 1 + + + OPM + One-pulse mode + 3 + 1 + + + URS + Update request source + 2 + 1 + + + UDIS + Update disable + 1 + 1 + + + CEN + Counter enable + 0 + 1 + + + + + CR2 + CR2 + control register 2 + 0x4 + 0x20 + read-write + 0x0000 + + + TI1S + TI1 selection + 7 + 1 + + + MMS + Master mode selection + 4 + 3 + + + CCDS + Capture/compare DMA + selection + 3 + 1 + + + + + SMCR + SMCR + slave mode control register + 0x8 + 0x20 + read-write + 0x0000 + + + ETP + External trigger polarity + 15 + 1 + + + ECE + External clock enable + 14 + 1 + + + ETPS + External trigger prescaler + 12 + 2 + + + ETF + External trigger filter + 8 + 4 + + + MSM + Master/Slave mode + 7 + 1 + + + TS + Trigger selection + 4 + 3 + + + SMS + Slave mode selection + 0 + 3 + + + + + DIER + DIER + DMA/Interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + TDE + Trigger DMA request enable + 14 + 1 + + + CC4DE + Capture/Compare 4 DMA request + enable + 12 + 1 + + + CC3DE + Capture/Compare 3 DMA request + enable + 11 + 1 + + + CC2DE + Capture/Compare 2 DMA request + enable + 10 + 1 + + + CC1DE + Capture/Compare 1 DMA request + enable + 9 + 1 + + + UDE + Update DMA request enable + 8 + 1 + + + TIE + Trigger interrupt enable + 6 + 1 + + + CC4IE + Capture/Compare 4 interrupt + enable + 4 + 1 + + + CC3IE + Capture/Compare 3 interrupt + enable + 3 + 1 + + + CC2IE + Capture/Compare 2 interrupt + enable + 2 + 1 + + + CC1IE + Capture/Compare 1 interrupt + enable + 1 + 1 + + + UIE + Update interrupt enable + 0 + 1 + + + + + SR + SR + status register + 0x10 + 0x20 + read-write + 0x0000 + + + CC4OF + Capture/Compare 4 overcapture + flag + 12 + 1 + + + CC3OF + Capture/Compare 3 overcapture + flag + 11 + 1 + + + CC2OF + Capture/compare 2 overcapture + flag + 10 + 1 + + + CC1OF + Capture/Compare 1 overcapture + flag + 9 + 1 + + + TIF + Trigger interrupt flag + 6 + 1 + + + CC4IF + Capture/Compare 4 interrupt + flag + 4 + 1 + + + CC3IF + Capture/Compare 3 interrupt + flag + 3 + 1 + + + CC2IF + Capture/Compare 2 interrupt + flag + 2 + 1 + + + CC1IF + Capture/compare 1 interrupt + flag + 1 + 1 + + + UIF + Update interrupt flag + 0 + 1 + + + + + EGR + EGR + event generation register + 0x14 + 0x20 + write-only + 0x0000 + + + TG + Trigger generation + 6 + 1 + + + CC4G + Capture/compare 4 + generation + 4 + 1 + + + CC3G + Capture/compare 3 + generation + 3 + 1 + + + CC2G + Capture/compare 2 + generation + 2 + 1 + + + CC1G + Capture/compare 1 + generation + 1 + 1 + + + UG + Update generation + 0 + 1 + + + + + CCMR1_Output + CCMR1_Output + capture/compare mode register 1 (output + mode) + 0x18 + 0x20 + read-write + 0x00000000 + + + OC2CE + OC2CE + 15 + 1 + + + OC2M + OC2M + 12 + 3 + + + OC2PE + OC2PE + 11 + 1 + + + OC2FE + OC2FE + 10 + 1 + + + CC2S + CC2S + 8 + 2 + + + OC1CE + OC1CE + 7 + 1 + + + OC1M + OC1M + 4 + 3 + + + OC1PE + OC1PE + 3 + 1 + + + OC1FE + OC1FE + 2 + 1 + + + CC1S + CC1S + 0 + 2 + + + + + CCMR1_Input + CCMR1_Input + capture/compare mode register 1 (input + mode) + CCMR1_Output + 0x18 + 0x20 + read-write + 0x00000000 + + + IC2F + Input capture 2 filter + 12 + 4 + + + IC2PCS + Input capture 2 prescaler + 10 + 2 + + + CC2S + Capture/Compare 2 + selection + 8 + 2 + + + IC1F + Input capture 1 filter + 4 + 4 + + + ICPCS + Input capture 1 prescaler + 2 + 2 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCMR2_Output + CCMR2_Output + capture/compare mode register 2 (output + mode) + 0x1C + 0x20 + read-write + 0x00000000 + + + OC4CE + OC4CE + 15 + 1 + + + OC4M + OC4M + 12 + 3 + + + OC4PE + OC4PE + 11 + 1 + + + OC4FE + OC4FE + 10 + 1 + + + CC4S + CC4S + 8 + 2 + + + OC3CE + OC3CE + 7 + 1 + + + OC3M + OC3M + 4 + 3 + + + OC3PE + OC3PE + 3 + 1 + + + OC3FE + OC3FE + 2 + 1 + + + CC3S + CC3S + 0 + 2 + + + + + CCMR2_Input + CCMR2_Input + capture/compare mode register 2 (input + mode) + CCMR2_Output + 0x1C + 0x20 + read-write + 0x00000000 + + + IC4F + Input capture 4 filter + 12 + 4 + + + IC4PSC + Input capture 4 prescaler + 10 + 2 + + + CC4S + Capture/Compare 4 + selection + 8 + 2 + + + IC3F + Input capture 3 filter + 4 + 4 + + + IC3PSC + Input capture 3 prescaler + 2 + 2 + + + CC3S + Capture/compare 3 + selection + 0 + 2 + + + + + CCER + CCER + capture/compare enable + register + 0x20 + 0x20 + read-write + 0x0000 + + + CC4NP + Capture/Compare 4 output + Polarity + 15 + 1 + + + CC4P + Capture/Compare 3 output + Polarity + 13 + 1 + + + CC4E + Capture/Compare 4 output + enable + 12 + 1 + + + CC3NP + Capture/Compare 3 output + Polarity + 11 + 1 + + + CC3P + Capture/Compare 3 output + Polarity + 9 + 1 + + + CC3E + Capture/Compare 3 output + enable + 8 + 1 + + + CC2NP + Capture/Compare 2 output + Polarity + 7 + 1 + + + CC2P + Capture/Compare 2 output + Polarity + 5 + 1 + + + CC2E + Capture/Compare 2 output + enable + 4 + 1 + + + CC1NP + Capture/Compare 1 output + Polarity + 3 + 1 + + + CC1P + Capture/Compare 1 output + Polarity + 1 + 1 + + + CC1E + Capture/Compare 1 output + enable + 0 + 1 + + + + + CNT + CNT + counter + 0x24 + 0x20 + read-write + 0x00000000 + + + CNT_H + High counter value + 16 + 16 + + + CNT_L + Low counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + ARR_H + High Auto-reload value + 16 + 16 + + + ARR_L + Low Auto-reload value + 0 + 16 + + + + + CCR1 + CCR1 + capture/compare register 1 + 0x34 + 0x20 + read-write + 0x00000000 + + + CCR1_H + High Capture/Compare 1 + value + 16 + 16 + + + CCR1_L + Low Capture/Compare 1 + value + 0 + 16 + + + + + CCR2 + CCR2 + capture/compare register 2 + 0x38 + 0x20 + read-write + 0x00000000 + + + CCR2_H + High Capture/Compare 2 + value + 16 + 16 + + + CCR2_L + Low Capture/Compare 2 + value + 0 + 16 + + + + + CCR3 + CCR3 + capture/compare register 3 + 0x3C + 0x20 + read-write + 0x00000000 + + + CCR3_H + High Capture/Compare value + 16 + 16 + + + CCR3_L + Low Capture/Compare value + 0 + 16 + + + + + CCR4 + CCR4 + capture/compare register 4 + 0x40 + 0x20 + read-write + 0x00000000 + + + CCR4_H + High Capture/Compare value + 16 + 16 + + + CCR4_L + Low Capture/Compare value + 0 + 16 + + + + + DCR + DCR + DMA control register + 0x48 + 0x20 + read-write + 0x0000 + + + DBL + DMA burst length + 8 + 5 + + + DBA + DMA base address + 0 + 5 + + + + + DMAR + DMAR + DMA address for full transfer + 0x4C + 0x20 + read-write + 0x0000 + + + DMAB + DMA register for burst + accesses + 0 + 16 + + + + + OR + OR + TIM5 option register + 0x50 + 0x20 + read-write + 0x0000 + + + IT4_RMP + Timer Input 4 remap + 6 + 2 + + + + + + + TIM9 + General purpose timers + TIM + 0x40014000 + + 0x0 + 0x400 + registers + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + CKD + Clock division + 8 + 2 + + + ARPE + Auto-reload preload enable + 7 + 1 + + + OPM + One-pulse mode + 3 + 1 + + + URS + Update request source + 2 + 1 + + + UDIS + Update disable + 1 + 1 + + + CEN + Counter enable + 0 + 1 + + + + + CR2 + CR2 + control register 2 + 0x4 + 0x20 + read-write + 0x0000 + + + MMS + Master mode selection + 4 + 3 + + + + + SMCR + SMCR + slave mode control register + 0x8 + 0x20 + read-write + 0x0000 + + + MSM + Master/Slave mode + 7 + 1 + + + TS + Trigger selection + 4 + 3 + + + SMS + Slave mode selection + 0 + 3 + + + + + DIER + DIER + DMA/Interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + TIE + Trigger interrupt enable + 6 + 1 + + + CC2IE + Capture/Compare 2 interrupt + enable + 2 + 1 + + + CC1IE + Capture/Compare 1 interrupt + enable + 1 + 1 + + + UIE + Update interrupt enable + 0 + 1 + + + + + SR + SR + status register + 0x10 + 0x20 + read-write + 0x0000 + + + CC2OF + Capture/compare 2 overcapture + flag + 10 + 1 + + + CC1OF + Capture/Compare 1 overcapture + flag + 9 + 1 + + + TIF + Trigger interrupt flag + 6 + 1 + + + CC2IF + Capture/Compare 2 interrupt + flag + 2 + 1 + + + CC1IF + Capture/compare 1 interrupt + flag + 1 + 1 + + + UIF + Update interrupt flag + 0 + 1 + + + + + EGR + EGR + event generation register + 0x14 + 0x20 + write-only + 0x0000 + + + TG + Trigger generation + 6 + 1 + + + CC2G + Capture/compare 2 + generation + 2 + 1 + + + CC1G + Capture/compare 1 + generation + 1 + 1 + + + UG + Update generation + 0 + 1 + + + + + CCMR1_Output + CCMR1_Output + capture/compare mode register 1 (output + mode) + 0x18 + 0x20 + read-write + 0x00000000 + + + OC2M + Output Compare 2 mode + 12 + 3 + + + OC2PE + Output Compare 2 preload + enable + 11 + 1 + + + OC2FE + Output Compare 2 fast + enable + 10 + 1 + + + CC2S + Capture/Compare 2 + selection + 8 + 2 + + + OC1M + Output Compare 1 mode + 4 + 3 + + + OC1PE + Output Compare 1 preload + enable + 3 + 1 + + + OC1FE + Output Compare 1 fast + enable + 2 + 1 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCMR1_Input + CCMR1_Input + capture/compare mode register 1 (input + mode) + CCMR1_Output + 0x18 + 0x20 + read-write + 0x00000000 + + + IC2F + Input capture 2 filter + 12 + 3 + + + IC2PCS + Input capture 2 prescaler + 10 + 2 + + + CC2S + Capture/Compare 2 + selection + 8 + 2 + + + IC1F + Input capture 1 filter + 4 + 3 + + + ICPCS + Input capture 1 prescaler + 2 + 2 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCER + CCER + capture/compare enable + register + 0x20 + 0x20 + read-write + 0x0000 + + + CC2NP + Capture/Compare 2 output + Polarity + 7 + 1 + + + CC2P + Capture/Compare 2 output + Polarity + 5 + 1 + + + CC2E + Capture/Compare 2 output + enable + 4 + 1 + + + CC1NP + Capture/Compare 1 output + Polarity + 3 + 1 + + + CC1P + Capture/Compare 1 output + Polarity + 1 + 1 + + + CC1E + Capture/Compare 1 output + enable + 0 + 1 + + + + + CNT + CNT + counter + 0x24 + 0x20 + read-write + 0x00000000 + + + CNT + counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + ARR + Auto-reload value + 0 + 16 + + + + + CCR1 + CCR1 + capture/compare register 1 + 0x34 + 0x20 + read-write + 0x00000000 + + + CCR1 + Capture/Compare 1 value + 0 + 16 + + + + + CCR2 + CCR2 + capture/compare register 2 + 0x38 + 0x20 + read-write + 0x00000000 + + + CCR2 + Capture/Compare 2 value + 0 + 16 + + + + + + + TIM12 + 0x40001800 + + + TIM10 + General-purpose-timers + TIM + 0x40014400 + + 0x0 + 0x400 + registers + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + CKD + Clock division + 8 + 2 + + + ARPE + Auto-reload preload enable + 7 + 1 + + + URS + Update request source + 2 + 1 + + + UDIS + Update disable + 1 + 1 + + + CEN + Counter enable + 0 + 1 + + + + + DIER + DIER + DMA/Interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + CC1IE + Capture/Compare 1 interrupt + enable + 1 + 1 + + + UIE + Update interrupt enable + 0 + 1 + + + + + SR + SR + status register + 0x10 + 0x20 + read-write + 0x0000 + + + CC1OF + Capture/Compare 1 overcapture + flag + 9 + 1 + + + CC1IF + Capture/compare 1 interrupt + flag + 1 + 1 + + + UIF + Update interrupt flag + 0 + 1 + + + + + EGR + EGR + event generation register + 0x14 + 0x20 + write-only + 0x0000 + + + CC1G + Capture/compare 1 + generation + 1 + 1 + + + UG + Update generation + 0 + 1 + + + + + CCMR1_Output + CCMR1_Output + capture/compare mode register 1 (output + mode) + 0x18 + 0x20 + read-write + 0x00000000 + + + OC1M + Output Compare 1 mode + 4 + 3 + + + OC1PE + Output Compare 1 preload + enable + 3 + 1 + + + OC1FE + Output Compare 1 fast + enable + 2 + 1 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCMR1_Input + CCMR1_Input + capture/compare mode register 1 (input + mode) + CCMR1_Output + 0x18 + 0x20 + read-write + 0x00000000 + + + IC1F + Input capture 1 filter + 4 + 4 + + + ICPCS + Input capture 1 prescaler + 2 + 2 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCER + CCER + capture/compare enable + register + 0x20 + 0x20 + read-write + 0x0000 + + + CC1NP + Capture/Compare 1 output + Polarity + 3 + 1 + + + CC1P + Capture/Compare 1 output + Polarity + 1 + 1 + + + CC1E + Capture/Compare 1 output + enable + 0 + 1 + + + + + CNT + CNT + counter + 0x24 + 0x20 + read-write + 0x00000000 + + + CNT + counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + ARR + Auto-reload value + 0 + 16 + + + + + CCR1 + CCR1 + capture/compare register 1 + 0x34 + 0x20 + read-write + 0x00000000 + + + CCR1 + Capture/Compare 1 value + 0 + 16 + + + + + + + TIM13 + 0x40001C00 + + + TIM14 + 0x40002000 + + + TIM11 + General-purpose-timers + TIM + 0x40014800 + + 0x0 + 0x400 + registers + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + CKD + Clock division + 8 + 2 + + + ARPE + Auto-reload preload enable + 7 + 1 + + + URS + Update request source + 2 + 1 + + + UDIS + Update disable + 1 + 1 + + + CEN + Counter enable + 0 + 1 + + + + + DIER + DIER + DMA/Interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + CC1IE + Capture/Compare 1 interrupt + enable + 1 + 1 + + + UIE + Update interrupt enable + 0 + 1 + + + + + SR + SR + status register + 0x10 + 0x20 + read-write + 0x0000 + + + CC1OF + Capture/Compare 1 overcapture + flag + 9 + 1 + + + CC1IF + Capture/compare 1 interrupt + flag + 1 + 1 + + + UIF + Update interrupt flag + 0 + 1 + + + + + EGR + EGR + event generation register + 0x14 + 0x20 + write-only + 0x0000 + + + CC1G + Capture/compare 1 + generation + 1 + 1 + + + UG + Update generation + 0 + 1 + + + + + CCMR1_Output + CCMR1_Output + capture/compare mode register 1 (output + mode) + 0x18 + 0x20 + read-write + 0x00000000 + + + OC1M + Output Compare 1 mode + 4 + 3 + + + OC1PE + Output Compare 1 preload + enable + 3 + 1 + + + OC1FE + Output Compare 1 fast + enable + 2 + 1 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCMR1_Input + CCMR1_Input + capture/compare mode register 1 (input + mode) + CCMR1_Output + 0x18 + 0x20 + read-write + 0x00000000 + + + IC1F + Input capture 1 filter + 4 + 4 + + + ICPCS + Input capture 1 prescaler + 2 + 2 + + + CC1S + Capture/Compare 1 + selection + 0 + 2 + + + + + CCER + CCER + capture/compare enable + register + 0x20 + 0x20 + read-write + 0x0000 + + + CC1NP + Capture/Compare 1 output + Polarity + 3 + 1 + + + CC1P + Capture/Compare 1 output + Polarity + 1 + 1 + + + CC1E + Capture/Compare 1 output + enable + 0 + 1 + + + + + CNT + CNT + counter + 0x24 + 0x20 + read-write + 0x00000000 + + + CNT + counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + ARR + Auto-reload value + 0 + 16 + + + + + CCR1 + CCR1 + capture/compare register 1 + 0x34 + 0x20 + read-write + 0x00000000 + + + CCR1 + Capture/Compare 1 value + 0 + 16 + + + + + OR + OR + option register + 0x50 + 0x20 + read-write + 0x00000000 + + + RMP + Input 1 remapping + capability + 0 + 2 + + + + + + + TIM6 + Basic timers + TIM + 0x40001000 + + 0x0 + 0x400 + registers + + + TIM6_DAC + TIM6 global interrupt, DAC1 and DAC2 underrun + error interrupt + 54 + + + + CR1 + CR1 + control register 1 + 0x0 + 0x20 + read-write + 0x0000 + + + ARPE + Auto-reload preload enable + 7 + 1 + + + OPM + One-pulse mode + 3 + 1 + + + URS + Update request source + 2 + 1 + + + UDIS + Update disable + 1 + 1 + + + CEN + Counter enable + 0 + 1 + + + + + CR2 + CR2 + control register 2 + 0x4 + 0x20 + read-write + 0x0000 + + + MMS + Master mode selection + 4 + 3 + + + + + DIER + DIER + DMA/Interrupt enable register + 0xC + 0x20 + read-write + 0x0000 + + + UDE + Update DMA request enable + 8 + 1 + + + UIE + Update interrupt enable + 0 + 1 + + + + + SR + SR + status register + 0x10 + 0x20 + read-write + 0x0000 + + + UIF + Update interrupt flag + 0 + 1 + + + + + EGR + EGR + event generation register + 0x14 + 0x20 + write-only + 0x0000 + + + UG + Update generation + 0 + 1 + + + + + CNT + CNT + counter + 0x24 + 0x20 + read-write + 0x00000000 + + + CNT + Low counter value + 0 + 16 + + + + + PSC + PSC + prescaler + 0x28 + 0x20 + read-write + 0x0000 + + + PSC + Prescaler value + 0 + 16 + + + + + ARR + ARR + auto-reload register + 0x2C + 0x20 + read-write + 0x00000000 + + + ARR + Low Auto-reload value + 0 + 16 + + + + + + + TIM7 + 0x40001400 + + TIM7 + TIM7 global interrupt + 55 + + + + CRC + Cryptographic processor + CRC + 0x40023000 + + 0x0 + 0x400 + registers + + + + DR + DR + Data register + 0x0 + 0x20 + read-write + 0xFFFFFFFF + + + DR + Data Register + 0 + 32 + + + + + IDR + IDR + Independent Data register + 0x4 + 0x20 + read-write + 0x00000000 + + + IDR + Independent Data register + 0 + 8 + + + + + CR + CR + Control register + 0x8 + 0x20 + write-only + 0x00000000 + + + CR + Control regidter + 0 + 1 + + + + + + + OTG_FS_GLOBAL + USB on the go full speed + USB_OTG_FS + 0x50000000 + + 0x0 + 0x400 + registers + + + OTG_FS_WKUP + USB On-The-Go FS Wakeup through EXTI line + interrupt + 42 + + + OTG_FS + USB On The Go FS global + interrupt + 67 + + + + FS_GOTGCTL + FS_GOTGCTL + OTG_FS control and status register + (OTG_FS_GOTGCTL) + 0x0 + 0x20 + 0x00000800 + + + SRQSCS + Session request success + 0 + 1 + read-only + + + SRQ + Session request + 1 + 1 + read-write + + + HNGSCS + Host negotiation success + 8 + 1 + read-only + + + HNPRQ + HNP request + 9 + 1 + read-write + + + HSHNPEN + Host set HNP enable + 10 + 1 + read-write + + + DHNPEN + Device HNP enabled + 11 + 1 + read-write + + + CIDSTS + Connector ID status + 16 + 1 + read-only + + + DBCT + Long/short debounce time + 17 + 1 + read-only + + + ASVLD + A-session valid + 18 + 1 + read-only + + + BSVLD + B-session valid + 19 + 1 + read-only + + + + + FS_GOTGINT + FS_GOTGINT + OTG_FS interrupt register + (OTG_FS_GOTGINT) + 0x4 + 0x20 + read-write + 0x00000000 + + + SEDET + Session end detected + 2 + 1 + + + SRSSCHG + Session request success status + change + 8 + 1 + + + HNSSCHG + Host negotiation success status + change + 9 + 1 + + + HNGDET + Host negotiation detected + 17 + 1 + + + ADTOCHG + A-device timeout change + 18 + 1 + + + DBCDNE + Debounce done + 19 + 1 + + + + + FS_GAHBCFG + FS_GAHBCFG + OTG_FS AHB configuration register + (OTG_FS_GAHBCFG) + 0x8 + 0x20 + read-write + 0x00000000 + + + GINT + Global interrupt mask + 0 + 1 + + + TXFELVL + TxFIFO empty level + 7 + 1 + + + PTXFELVL + Periodic TxFIFO empty + level + 8 + 1 + + + + + FS_GUSBCFG + FS_GUSBCFG + OTG_FS USB configuration register + (OTG_FS_GUSBCFG) + 0xC + 0x20 + 0x00000A00 + + + TOCAL + FS timeout calibration + 0 + 3 + read-write + + + PHYSEL + Full Speed serial transceiver + select + 6 + 1 + write-only + + + SRPCAP + SRP-capable + 8 + 1 + read-write + + + HNPCAP + HNP-capable + 9 + 1 + read-write + + + TRDT + USB turnaround time + 10 + 4 + read-write + + + FHMOD + Force host mode + 29 + 1 + read-write + + + FDMOD + Force device mode + 30 + 1 + read-write + + + CTXPKT + Corrupt Tx packet + 31 + 1 + read-write + + + + + FS_GRSTCTL + FS_GRSTCTL + OTG_FS reset register + (OTG_FS_GRSTCTL) + 0x10 + 0x20 + 0x20000000 + + + CSRST + Core soft reset + 0 + 1 + read-write + + + HSRST + HCLK soft reset + 1 + 1 + read-write + + + FCRST + Host frame counter reset + 2 + 1 + read-write + + + RXFFLSH + RxFIFO flush + 4 + 1 + read-write + + + TXFFLSH + TxFIFO flush + 5 + 1 + read-write + + + TXFNUM + TxFIFO number + 6 + 5 + read-write + + + AHBIDL + AHB master idle + 31 + 1 + read-only + + + + + FS_GINTSTS + FS_GINTSTS + OTG_FS core interrupt register + (OTG_FS_GINTSTS) + 0x14 + 0x20 + 0x04000020 + + + CMOD + Current mode of operation + 0 + 1 + read-only + + + MMIS + Mode mismatch interrupt + 1 + 1 + read-write + + + OTGINT + OTG interrupt + 2 + 1 + read-only + + + SOF + Start of frame + 3 + 1 + read-write + + + RXFLVL + RxFIFO non-empty + 4 + 1 + read-only + + + NPTXFE + Non-periodic TxFIFO empty + 5 + 1 + read-only + + + GINAKEFF + Global IN non-periodic NAK + effective + 6 + 1 + read-only + + + GOUTNAKEFF + Global OUT NAK effective + 7 + 1 + read-only + + + ESUSP + Early suspend + 10 + 1 + read-write + + + USBSUSP + USB suspend + 11 + 1 + read-write + + + USBRST + USB reset + 12 + 1 + read-write + + + ENUMDNE + Enumeration done + 13 + 1 + read-write + + + ISOODRP + Isochronous OUT packet dropped + interrupt + 14 + 1 + read-write + + + EOPF + End of periodic frame + interrupt + 15 + 1 + read-write + + + IEPINT + IN endpoint interrupt + 18 + 1 + read-only + + + OEPINT + OUT endpoint interrupt + 19 + 1 + read-only + + + IISOIXFR + Incomplete isochronous IN + transfer + 20 + 1 + read-write + + + IPXFR_INCOMPISOOUT + Incomplete periodic transfer(Host + mode)/Incomplete isochronous OUT transfer(Device + mode) + 21 + 1 + read-write + + + HPRTINT + Host port interrupt + 24 + 1 + read-only + + + HCINT + Host channels interrupt + 25 + 1 + read-only + + + PTXFE + Periodic TxFIFO empty + 26 + 1 + read-only + + + CIDSCHG + Connector ID status change + 28 + 1 + read-write + + + DISCINT + Disconnect detected + interrupt + 29 + 1 + read-write + + + SRQINT + Session request/new session detected + interrupt + 30 + 1 + read-write + + + WKUPINT + Resume/remote wakeup detected + interrupt + 31 + 1 + read-write + + + + + FS_GINTMSK + FS_GINTMSK + OTG_FS interrupt mask register + (OTG_FS_GINTMSK) + 0x18 + 0x20 + 0x00000000 + + + MMISM + Mode mismatch interrupt + mask + 1 + 1 + read-write + + + OTGINT + OTG interrupt mask + 2 + 1 + read-write + + + SOFM + Start of frame mask + 3 + 1 + read-write + + + RXFLVLM + Receive FIFO non-empty + mask + 4 + 1 + read-write + + + NPTXFEM + Non-periodic TxFIFO empty + mask + 5 + 1 + read-write + + + GINAKEFFM + Global non-periodic IN NAK effective + mask + 6 + 1 + read-write + + + GONAKEFFM + Global OUT NAK effective + mask + 7 + 1 + read-write + + + ESUSPM + Early suspend mask + 10 + 1 + read-write + + + USBSUSPM + USB suspend mask + 11 + 1 + read-write + + + USBRST + USB reset mask + 12 + 1 + read-write + + + ENUMDNEM + Enumeration done mask + 13 + 1 + read-write + + + ISOODRPM + Isochronous OUT packet dropped interrupt + mask + 14 + 1 + read-write + + + EOPFM + End of periodic frame interrupt + mask + 15 + 1 + read-write + + + EPMISM + Endpoint mismatch interrupt + mask + 17 + 1 + read-write + + + IEPINT + IN endpoints interrupt + mask + 18 + 1 + read-write + + + OEPINT + OUT endpoints interrupt + mask + 19 + 1 + read-write + + + IISOIXFRM + Incomplete isochronous IN transfer + mask + 20 + 1 + read-write + + + IPXFRM_IISOOXFRM + Incomplete periodic transfer mask(Host + mode)/Incomplete isochronous OUT transfer mask(Device + mode) + 21 + 1 + read-write + + + PRTIM + Host port interrupt mask + 24 + 1 + read-only + + + HCIM + Host channels interrupt + mask + 25 + 1 + read-write + + + PTXFEM + Periodic TxFIFO empty mask + 26 + 1 + read-write + + + CIDSCHGM + Connector ID status change + mask + 28 + 1 + read-write + + + DISCINT + Disconnect detected interrupt + mask + 29 + 1 + read-write + + + SRQIM + Session request/new session detected + interrupt mask + 30 + 1 + read-write + + + WUIM + Resume/remote wakeup detected interrupt + mask + 31 + 1 + read-write + + + + + FS_GRXSTSR_Device + FS_GRXSTSR_Device + OTG_FS Receive status debug read(Device + mode) + 0x1C + 0x20 + read-only + 0x00000000 + + + EPNUM + Endpoint number + 0 + 4 + + + BCNT + Byte count + 4 + 11 + + + DPID + Data PID + 15 + 2 + + + PKTSTS + Packet status + 17 + 4 + + + FRMNUM + Frame number + 21 + 4 + + + + + FS_GRXSTSR_Host + FS_GRXSTSR_Host + OTG_FS Receive status debug read(Host + mode) + FS_GRXSTSR_Device + 0x1C + 0x20 + read-only + 0x00000000 + + + EPNUM + Endpoint number + 0 + 4 + + + BCNT + Byte count + 4 + 11 + + + DPID + Data PID + 15 + 2 + + + PKTSTS + Packet status + 17 + 4 + + + FRMNUM + Frame number + 21 + 4 + + + + + FS_GRXFSIZ + FS_GRXFSIZ + OTG_FS Receive FIFO size register + (OTG_FS_GRXFSIZ) + 0x24 + 0x20 + read-write + 0x00000200 + + + RXFD + RxFIFO depth + 0 + 16 + + + + + FS_GNPTXFSIZ_Device + FS_GNPTXFSIZ_Device + OTG_FS non-periodic transmit FIFO size + register (Device mode) + 0x28 + 0x20 + read-write + 0x00000200 + + + TX0FSA + Endpoint 0 transmit RAM start + address + 0 + 16 + + + TX0FD + Endpoint 0 TxFIFO depth + 16 + 16 + + + + + FS_GNPTXFSIZ_Host + FS_GNPTXFSIZ_Host + OTG_FS non-periodic transmit FIFO size + register (Host mode) + FS_GNPTXFSIZ_Device + 0x28 + 0x20 + read-write + 0x00000200 + + + NPTXFSA + Non-periodic transmit RAM start + address + 0 + 16 + + + NPTXFD + Non-periodic TxFIFO depth + 16 + 16 + + + + + FS_GNPTXSTS + FS_GNPTXSTS + OTG_FS non-periodic transmit FIFO/queue + status register (OTG_FS_GNPTXSTS) + 0x2C + 0x20 + read-only + 0x00080200 + + + NPTXFSAV + Non-periodic TxFIFO space + available + 0 + 16 + + + NPTQXSAV + Non-periodic transmit request queue + space available + 16 + 8 + + + NPTXQTOP + Top of the non-periodic transmit request + queue + 24 + 7 + + + + + FS_GCCFG + FS_GCCFG + OTG_FS general core configuration register + (OTG_FS_GCCFG) + 0x38 + 0x20 + read-write + 0x00000000 + + + PWRDWN + Power down + 16 + 1 + + + VBUSASEN + Enable the VBUS sensing + device + 18 + 1 + + + VBUSBSEN + Enable the VBUS sensing + device + 19 + 1 + + + SOFOUTEN + SOF output enable + 20 + 1 + + + + + FS_CID + FS_CID + core ID register + 0x3C + 0x20 + read-write + 0x00001000 + + + PRODUCT_ID + Product ID field + 0 + 32 + + + + + FS_HPTXFSIZ + FS_HPTXFSIZ + OTG_FS Host periodic transmit FIFO size + register (OTG_FS_HPTXFSIZ) + 0x100 + 0x20 + read-write + 0x02000600 + + + PTXSA + Host periodic TxFIFO start + address + 0 + 16 + + + PTXFSIZ + Host periodic TxFIFO depth + 16 + 16 + + + + + FS_DIEPTXF1 + FS_DIEPTXF1 + OTG_FS device IN endpoint transmit FIFO size + register (OTG_FS_DIEPTXF2) + 0x104 + 0x20 + read-write + 0x02000400 + + + INEPTXSA + IN endpoint FIFO2 transmit RAM start + address + 0 + 16 + + + INEPTXFD + IN endpoint TxFIFO depth + 16 + 16 + + + + + FS_DIEPTXF2 + FS_DIEPTXF2 + OTG_FS device IN endpoint transmit FIFO size + register (OTG_FS_DIEPTXF3) + 0x108 + 0x20 + read-write + 0x02000400 + + + INEPTXSA + IN endpoint FIFO3 transmit RAM start + address + 0 + 16 + + + INEPTXFD + IN endpoint TxFIFO depth + 16 + 16 + + + + + FS_DIEPTXF3 + FS_DIEPTXF3 + OTG_FS device IN endpoint transmit FIFO size + register (OTG_FS_DIEPTXF4) + 0x10C + 0x20 + read-write + 0x02000400 + + + INEPTXSA + IN endpoint FIFO4 transmit RAM start + address + 0 + 16 + + + INEPTXFD + IN endpoint TxFIFO depth + 16 + 16 + + + + + + + OTG_FS_HOST + USB on the go full speed + USB_OTG_FS + 0x50000400 + + 0x0 + 0x400 + registers + + + + FS_HCFG + FS_HCFG + OTG_FS host configuration register + (OTG_FS_HCFG) + 0x0 + 0x20 + 0x00000000 + + + FSLSPCS + FS/LS PHY clock select + 0 + 2 + read-write + + + FSLSS + FS- and LS-only support + 2 + 1 + read-only + + + + + HFIR + HFIR + OTG_FS Host frame interval + register + 0x4 + 0x20 + read-write + 0x0000EA60 + + + FRIVL + Frame interval + 0 + 16 + + + + + FS_HFNUM + FS_HFNUM + OTG_FS host frame number/frame time + remaining register (OTG_FS_HFNUM) + 0x8 + 0x20 + read-only + 0x00003FFF + + + FRNUM + Frame number + 0 + 16 + + + FTREM + Frame time remaining + 16 + 16 + + + + + FS_HPTXSTS + FS_HPTXSTS + OTG_FS_Host periodic transmit FIFO/queue + status register (OTG_FS_HPTXSTS) + 0x10 + 0x20 + 0x00080100 + + + PTXFSAVL + Periodic transmit data FIFO space + available + 0 + 16 + read-write + + + PTXQSAV + Periodic transmit request queue space + available + 16 + 8 + read-only + + + PTXQTOP + Top of the periodic transmit request + queue + 24 + 8 + read-only + + + + + HAINT + HAINT + OTG_FS Host all channels interrupt + register + 0x14 + 0x20 + read-only + 0x00000000 + + + HAINT + Channel interrupts + 0 + 16 + + + + + HAINTMSK + HAINTMSK + OTG_FS host all channels interrupt mask + register + 0x18 + 0x20 + read-write + 0x00000000 + + + HAINTM + Channel interrupt mask + 0 + 16 + + + + + FS_HPRT + FS_HPRT + OTG_FS host port control and status register + (OTG_FS_HPRT) + 0x40 + 0x20 + 0x00000000 + + + PCSTS + Port connect status + 0 + 1 + read-only + + + PCDET + Port connect detected + 1 + 1 + read-write + + + PENA + Port enable + 2 + 1 + read-write + + + PENCHNG + Port enable/disable change + 3 + 1 + read-write + + + POCA + Port overcurrent active + 4 + 1 + read-only + + + POCCHNG + Port overcurrent change + 5 + 1 + read-write + + + PRES + Port resume + 6 + 1 + read-write + + + PSUSP + Port suspend + 7 + 1 + read-write + + + PRST + Port reset + 8 + 1 + read-write + + + PLSTS + Port line status + 10 + 2 + read-only + + + PPWR + Port power + 12 + 1 + read-write + + + PTCTL + Port test control + 13 + 4 + read-write + + + PSPD + Port speed + 17 + 2 + read-only + + + + + FS_HCCHAR0 + FS_HCCHAR0 + OTG_FS host channel-0 characteristics + register (OTG_FS_HCCHAR0) + 0x100 + 0x20 + read-write + 0x00000000 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multicount + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + FS_HCCHAR1 + FS_HCCHAR1 + OTG_FS host channel-1 characteristics + register (OTG_FS_HCCHAR1) + 0x120 + 0x20 + read-write + 0x00000000 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multicount + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + FS_HCCHAR2 + FS_HCCHAR2 + OTG_FS host channel-2 characteristics + register (OTG_FS_HCCHAR2) + 0x140 + 0x20 + read-write + 0x00000000 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multicount + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + FS_HCCHAR3 + FS_HCCHAR3 + OTG_FS host channel-3 characteristics + register (OTG_FS_HCCHAR3) + 0x160 + 0x20 + read-write + 0x00000000 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multicount + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + FS_HCCHAR4 + FS_HCCHAR4 + OTG_FS host channel-4 characteristics + register (OTG_FS_HCCHAR4) + 0x180 + 0x20 + read-write + 0x00000000 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multicount + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + FS_HCCHAR5 + FS_HCCHAR5 + OTG_FS host channel-5 characteristics + register (OTG_FS_HCCHAR5) + 0x1A0 + 0x20 + read-write + 0x00000000 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multicount + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + FS_HCCHAR6 + FS_HCCHAR6 + OTG_FS host channel-6 characteristics + register (OTG_FS_HCCHAR6) + 0x1C0 + 0x20 + read-write + 0x00000000 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multicount + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + FS_HCCHAR7 + FS_HCCHAR7 + OTG_FS host channel-7 characteristics + register (OTG_FS_HCCHAR7) + 0x1E0 + 0x20 + read-write + 0x00000000 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multicount + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + FS_HCCHAR8 + FS_HCCHAR8 + OTG_FS host channel-8 characteristics + register + 0x200 + 32 + read-write + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multi Count (MC) / Error Count + (EC) + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + FS_HCCHAR9 + FS_HCCHAR9 + OTG_FS host channel-9 characteristics + register + 0x220 + 32 + read-write + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multi Count (MC) / Error Count + (EC) + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + FS_HCCHAR10 + FS_HCCHAR10 + OTG_FS host channel-10 characteristics + register + 0x240 + 32 + read-write + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multi Count (MC) / Error Count + (EC) + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + FS_HCCHAR11 + FS_HCCHAR11 + OTG_FS host channel-11 characteristics + register + 0x260 + 32 + read-write + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multi Count (MC) / Error Count + (EC) + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + FS_HCINT0 + FS_HCINT0 + OTG_FS host channel-0 interrupt register + (OTG_FS_HCINT0) + 0x108 + 0x20 + read-write + 0x00000000 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + FS_HCINT1 + FS_HCINT1 + OTG_FS host channel-1 interrupt register + (OTG_FS_HCINT1) + 0x128 + 0x20 + read-write + 0x00000000 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + FS_HCINT2 + FS_HCINT2 + OTG_FS host channel-2 interrupt register + (OTG_FS_HCINT2) + 0x148 + 0x20 + read-write + 0x00000000 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + FS_HCINT3 + FS_HCINT3 + OTG_FS host channel-3 interrupt register + (OTG_FS_HCINT3) + 0x168 + 0x20 + read-write + 0x00000000 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + FS_HCINT4 + FS_HCINT4 + OTG_FS host channel-4 interrupt register + (OTG_FS_HCINT4) + 0x188 + 0x20 + read-write + 0x00000000 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + FS_HCINT5 + FS_HCINT5 + OTG_FS host channel-5 interrupt register + (OTG_FS_HCINT5) + 0x1A8 + 0x20 + read-write + 0x00000000 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + FS_HCINT6 + FS_HCINT6 + OTG_FS host channel-6 interrupt register + (OTG_FS_HCINT6) + 0x1C8 + 0x20 + read-write + 0x00000000 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + FS_HCINT7 + FS_HCINT7 + OTG_FS host channel-7 interrupt register + (OTG_FS_HCINT7) + 0x1E8 + 0x20 + read-write + 0x00000000 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + FS_HCINT8 + FS_HCINT8 + OTG_FS host channel-8 interrupt + register + 0x208 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + AHBERR + AHB error + 2 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + NYET + Response received + interrupt + 6 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + FS_HCINT9 + FS_HCINT9 + OTG_FS host channel-9 interrupt + register + 0x228 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + AHBERR + AHB error + 2 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + NYET + Response received + interrupt + 6 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + FS_HCINT10 + FS_HCINT10 + OTG_FS host channel-10 interrupt + register + 0x248 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + AHBERR + AHB error + 2 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + NYET + Response received + interrupt + 6 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + FS_HCINT11 + FS_HCINT11 + OTG_FS host channel-11 interrupt + register + 0x268 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + AHBERR + AHB error + 2 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + NYET + Response received + interrupt + 6 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + FS_HCINTMSK0 + FS_HCINTMSK0 + OTG_FS host channel-0 mask register + (OTG_FS_HCINTMSK0) + 0x10C + 0x20 + read-write + 0x00000000 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + FS_HCINTMSK1 + FS_HCINTMSK1 + OTG_FS host channel-1 mask register + (OTG_FS_HCINTMSK1) + 0x12C + 0x20 + read-write + 0x00000000 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + FS_HCINTMSK2 + FS_HCINTMSK2 + OTG_FS host channel-2 mask register + (OTG_FS_HCINTMSK2) + 0x14C + 0x20 + read-write + 0x00000000 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + FS_HCINTMSK3 + FS_HCINTMSK3 + OTG_FS host channel-3 mask register + (OTG_FS_HCINTMSK3) + 0x16C + 0x20 + read-write + 0x00000000 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + FS_HCINTMSK4 + FS_HCINTMSK4 + OTG_FS host channel-4 mask register + (OTG_FS_HCINTMSK4) + 0x18C + 0x20 + read-write + 0x00000000 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + FS_HCINTMSK5 + FS_HCINTMSK5 + OTG_FS host channel-5 mask register + (OTG_FS_HCINTMSK5) + 0x1AC + 0x20 + read-write + 0x00000000 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + FS_HCINTMSK6 + FS_HCINTMSK6 + OTG_FS host channel-6 mask register + (OTG_FS_HCINTMSK6) + 0x1CC + 0x20 + read-write + 0x00000000 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + FS_HCINTMSK7 + FS_HCINTMSK7 + OTG_FS host channel-7 mask register + (OTG_FS_HCINTMSK7) + 0x1EC + 0x20 + read-write + 0x00000000 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + FS_HCINTMSK8 + FS_HCINTMSK8 + OTG_FS host channel-8 interrupt mask + register + 0x20C + 32 + read-write + 0x0 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + AHBERRM + AHB error + 2 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + FS_HCINTMSK9 + FS_HCINTMSK9 + OTG_FS host channel-9 interrupt mask + register + 0x22C + 32 + read-write + 0x0 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + AHBERRM + AHB error + 2 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + FS_HCINTMSK10 + FS_HCINTMSK10 + OTG_FS host channel-10 interrupt mask + register + 0x24C + 32 + read-write + 0x0 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + AHBERRM + AHB error + 2 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + FS_HCINTMSK11 + FS_HCINTMSK11 + OTG_FS host channel-11 interrupt mask + register + 0x26C + 32 + read-write + 0x0 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + AHBERRM + AHB error + 2 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + FS_HCTSIZ0 + FS_HCTSIZ0 + OTG_FS host channel-0 transfer size + register + 0x110 + 0x20 + read-write + 0x00000000 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + FS_HCTSIZ1 + FS_HCTSIZ1 + OTG_FS host channel-1 transfer size + register + 0x130 + 0x20 + read-write + 0x00000000 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + FS_HCTSIZ2 + FS_HCTSIZ2 + OTG_FS host channel-2 transfer size + register + 0x150 + 0x20 + read-write + 0x00000000 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + FS_HCTSIZ3 + FS_HCTSIZ3 + OTG_FS host channel-3 transfer size + register + 0x170 + 0x20 + read-write + 0x00000000 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + FS_HCTSIZ4 + FS_HCTSIZ4 + OTG_FS host channel-x transfer size + register + 0x190 + 0x20 + read-write + 0x00000000 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + FS_HCTSIZ5 + FS_HCTSIZ5 + OTG_FS host channel-5 transfer size + register + 0x1B0 + 0x20 + read-write + 0x00000000 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + FS_HCTSIZ6 + FS_HCTSIZ6 + OTG_FS host channel-6 transfer size + register + 0x1D0 + 0x20 + read-write + 0x00000000 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + FS_HCTSIZ7 + FS_HCTSIZ7 + OTG_FS host channel-7 transfer size + register + 0x1F0 + 0x20 + read-write + 0x00000000 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + FS_HCTSIZ8 + FS_HCTSIZ8 + OTG_FS host channel-8 transfer size + register + 0x210 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + FS_HCTSIZ9 + FS_HCTSIZ9 + OTG_FS host channel-9 transfer size + register + 0x230 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + FS_HCTSIZ10 + FS_HCTSIZ10 + OTG_FS host channel-10 transfer size + register + 0x250 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + FS_HCTSIZ11 + FS_HCTSIZ11 + OTG_FS host channel-11 transfer size + register + 0x270 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + + + OTG_FS_DEVICE + USB on the go full speed + USB_OTG_FS + 0x50000800 + + 0x0 + 0x400 + registers + + + + FS_DCFG + FS_DCFG + OTG_FS device configuration register + (OTG_FS_DCFG) + 0x0 + 0x20 + read-write + 0x02200000 + + + DSPD + Device speed + 0 + 2 + + + NZLSOHSK + Non-zero-length status OUT + handshake + 2 + 1 + + + DAD + Device address + 4 + 7 + + + PFIVL + Periodic frame interval + 11 + 2 + + + ERRATIM + Erratic error interrupt + mask + 15 + 1 + + + + + FS_DCTL + FS_DCTL + OTG_FS device control register + (OTG_FS_DCTL) + 0x4 + 0x20 + 0x00000000 + + + RWUSIG + Remote wakeup signaling + 0 + 1 + read-write + + + SDIS + Soft disconnect + 1 + 1 + read-write + + + GINSTS + Global IN NAK status + 2 + 1 + read-only + + + GONSTS + Global OUT NAK status + 3 + 1 + read-only + + + TCTL + Test control + 4 + 3 + read-write + + + SGINAK + Set global IN NAK + 7 + 1 + read-write + + + CGINAK + Clear global IN NAK + 8 + 1 + read-write + + + SGONAK + Set global OUT NAK + 9 + 1 + read-write + + + CGONAK + Clear global OUT NAK + 10 + 1 + read-write + + + POPRGDNE + Power-on programming done + 11 + 1 + read-write + + + + + FS_DSTS + FS_DSTS + OTG_FS device status register + (OTG_FS_DSTS) + 0x8 + 0x20 + read-only + 0x00000010 + + + SUSPSTS + Suspend status + 0 + 1 + + + ENUMSPD + Enumerated speed + 1 + 2 + + + EERR + Erratic error + 3 + 1 + + + FNSOF + Frame number of the received + SOF + 8 + 14 + + + + + FS_DIEPMSK + FS_DIEPMSK + OTG_FS device IN endpoint common interrupt + mask register (OTG_FS_DIEPMSK) + 0x10 + 0x20 + read-write + 0x00000000 + + + XFRCM + Transfer completed interrupt + mask + 0 + 1 + + + EPDM + Endpoint disabled interrupt + mask + 1 + 1 + + + TOM + Timeout condition mask (Non-isochronous + endpoints) + 3 + 1 + + + ITTXFEMSK + IN token received when TxFIFO empty + mask + 4 + 1 + + + INEPNMM + IN token received with EP mismatch + mask + 5 + 1 + + + INEPNEM + IN endpoint NAK effective + mask + 6 + 1 + + + + + FS_DOEPMSK + FS_DOEPMSK + OTG_FS device OUT endpoint common interrupt + mask register (OTG_FS_DOEPMSK) + 0x14 + 0x20 + read-write + 0x00000000 + + + XFRCM + Transfer completed interrupt + mask + 0 + 1 + + + EPDM + Endpoint disabled interrupt + mask + 1 + 1 + + + STUPM + SETUP phase done mask + 3 + 1 + + + OTEPDM + OUT token received when endpoint + disabled mask + 4 + 1 + + + + + FS_DAINT + FS_DAINT + OTG_FS device all endpoints interrupt + register (OTG_FS_DAINT) + 0x18 + 0x20 + read-only + 0x00000000 + + + IEPINT + IN endpoint interrupt bits + 0 + 16 + + + OEPINT + OUT endpoint interrupt + bits + 16 + 16 + + + + + FS_DAINTMSK + FS_DAINTMSK + OTG_FS all endpoints interrupt mask register + (OTG_FS_DAINTMSK) + 0x1C + 0x20 + read-write + 0x00000000 + + + IEPM + IN EP interrupt mask bits + 0 + 16 + + + OEPINT + OUT endpoint interrupt + bits + 16 + 16 + + + + + DVBUSDIS + DVBUSDIS + OTG_FS device VBUS discharge time + register + 0x28 + 0x20 + read-write + 0x000017D7 + + + VBUSDT + Device VBUS discharge time + 0 + 16 + + + + + DVBUSPULSE + DVBUSPULSE + OTG_FS device VBUS pulsing time + register + 0x2C + 0x20 + read-write + 0x000005B8 + + + DVBUSP + Device VBUS pulsing time + 0 + 12 + + + + + DIEPEMPMSK + DIEPEMPMSK + OTG_FS device IN endpoint FIFO empty + interrupt mask register + 0x34 + 0x20 + read-write + 0x00000000 + + + INEPTXFEM + IN EP Tx FIFO empty interrupt mask + bits + 0 + 16 + + + + + FS_DIEPCTL0 + FS_DIEPCTL0 + OTG_FS device control IN endpoint 0 control + register (OTG_FS_DIEPCTL0) + 0x100 + 0x20 + 0x00000000 + + + MPSIZ + Maximum packet size + 0 + 2 + read-write + + + USBAEP + USB active endpoint + 15 + 1 + read-only + + + NAKSTS + NAK status + 17 + 1 + read-only + + + EPTYP + Endpoint type + 18 + 2 + read-only + + + STALL + STALL handshake + 21 + 1 + read-write + + + TXFNUM + TxFIFO number + 22 + 4 + read-write + + + CNAK + Clear NAK + 26 + 1 + write-only + + + SNAK + Set NAK + 27 + 1 + write-only + + + EPDIS + Endpoint disable + 30 + 1 + read-only + + + EPENA + Endpoint enable + 31 + 1 + read-only + + + + + DIEPCTL1 + DIEPCTL1 + OTG device endpoint-1 control + register + 0x120 + 0x20 + 0x00000000 + + + EPENA + EPENA + 31 + 1 + read-write + + + EPDIS + EPDIS + 30 + 1 + read-write + + + SODDFRM_SD1PID + SODDFRM/SD1PID + 29 + 1 + write-only + + + SD0PID_SEVNFRM + SD0PID/SEVNFRM + 28 + 1 + write-only + + + SNAK + SNAK + 27 + 1 + write-only + + + CNAK + CNAK + 26 + 1 + write-only + + + TXFNUM + TXFNUM + 22 + 4 + read-write + + + Stall + Stall + 21 + 1 + read-write + + + EPTYP + EPTYP + 18 + 2 + read-write + + + NAKSTS + NAKSTS + 17 + 1 + read-only + + + EONUM_DPID + EONUM/DPID + 16 + 1 + read-only + + + USBAEP + USBAEP + 15 + 1 + read-write + + + MPSIZ + MPSIZ + 0 + 11 + read-write + + + + + DIEPCTL2 + DIEPCTL2 + OTG device endpoint-2 control + register + 0x140 + 0x20 + 0x00000000 + + + EPENA + EPENA + 31 + 1 + read-write + + + EPDIS + EPDIS + 30 + 1 + read-write + + + SODDFRM + SODDFRM + 29 + 1 + write-only + + + SD0PID_SEVNFRM + SD0PID/SEVNFRM + 28 + 1 + write-only + + + SNAK + SNAK + 27 + 1 + write-only + + + CNAK + CNAK + 26 + 1 + write-only + + + TXFNUM + TXFNUM + 22 + 4 + read-write + + + Stall + Stall + 21 + 1 + read-write + + + EPTYP + EPTYP + 18 + 2 + read-write + + + NAKSTS + NAKSTS + 17 + 1 + read-only + + + EONUM_DPID + EONUM/DPID + 16 + 1 + read-only + + + USBAEP + USBAEP + 15 + 1 + read-write + + + MPSIZ + MPSIZ + 0 + 11 + read-write + + + + + DIEPCTL3 + DIEPCTL3 + OTG device endpoint-3 control + register + 0x160 + 0x20 + 0x00000000 + + + EPENA + EPENA + 31 + 1 + read-write + + + EPDIS + EPDIS + 30 + 1 + read-write + + + SODDFRM + SODDFRM + 29 + 1 + write-only + + + SD0PID_SEVNFRM + SD0PID/SEVNFRM + 28 + 1 + write-only + + + SNAK + SNAK + 27 + 1 + write-only + + + CNAK + CNAK + 26 + 1 + write-only + + + TXFNUM + TXFNUM + 22 + 4 + read-write + + + Stall + Stall + 21 + 1 + read-write + + + EPTYP + EPTYP + 18 + 2 + read-write + + + NAKSTS + NAKSTS + 17 + 1 + read-only + + + EONUM_DPID + EONUM/DPID + 16 + 1 + read-only + + + USBAEP + USBAEP + 15 + 1 + read-write + + + MPSIZ + MPSIZ + 0 + 11 + read-write + + + + + DOEPCTL0 + DOEPCTL0 + device endpoint-0 control + register + 0x300 + 0x20 + 0x00008000 + + + EPENA + EPENA + 31 + 1 + write-only + + + EPDIS + EPDIS + 30 + 1 + read-only + + + SNAK + SNAK + 27 + 1 + write-only + + + CNAK + CNAK + 26 + 1 + write-only + + + Stall + Stall + 21 + 1 + read-write + + + SNPM + SNPM + 20 + 1 + read-write + + + EPTYP + EPTYP + 18 + 2 + read-only + + + NAKSTS + NAKSTS + 17 + 1 + read-only + + + USBAEP + USBAEP + 15 + 1 + read-only + + + MPSIZ + MPSIZ + 0 + 2 + read-only + + + + + DOEPCTL1 + DOEPCTL1 + device endpoint-1 control + register + 0x320 + 0x20 + 0x00000000 + + + EPENA + EPENA + 31 + 1 + read-write + + + EPDIS + EPDIS + 30 + 1 + read-write + + + SODDFRM + SODDFRM + 29 + 1 + write-only + + + SD0PID_SEVNFRM + SD0PID/SEVNFRM + 28 + 1 + write-only + + + SNAK + SNAK + 27 + 1 + write-only + + + CNAK + CNAK + 26 + 1 + write-only + + + Stall + Stall + 21 + 1 + read-write + + + SNPM + SNPM + 20 + 1 + read-write + + + EPTYP + EPTYP + 18 + 2 + read-write + + + NAKSTS + NAKSTS + 17 + 1 + read-only + + + EONUM_DPID + EONUM/DPID + 16 + 1 + read-only + + + USBAEP + USBAEP + 15 + 1 + read-write + + + MPSIZ + MPSIZ + 0 + 11 + read-write + + + + + DOEPCTL2 + DOEPCTL2 + device endpoint-2 control + register + 0x340 + 0x20 + 0x00000000 + + + EPENA + EPENA + 31 + 1 + read-write + + + EPDIS + EPDIS + 30 + 1 + read-write + + + SODDFRM + SODDFRM + 29 + 1 + write-only + + + SD0PID_SEVNFRM + SD0PID/SEVNFRM + 28 + 1 + write-only + + + SNAK + SNAK + 27 + 1 + write-only + + + CNAK + CNAK + 26 + 1 + write-only + + + Stall + Stall + 21 + 1 + read-write + + + SNPM + SNPM + 20 + 1 + read-write + + + EPTYP + EPTYP + 18 + 2 + read-write + + + NAKSTS + NAKSTS + 17 + 1 + read-only + + + EONUM_DPID + EONUM/DPID + 16 + 1 + read-only + + + USBAEP + USBAEP + 15 + 1 + read-write + + + MPSIZ + MPSIZ + 0 + 11 + read-write + + + + + DOEPCTL3 + DOEPCTL3 + device endpoint-3 control + register + 0x360 + 0x20 + 0x00000000 + + + EPENA + EPENA + 31 + 1 + read-write + + + EPDIS + EPDIS + 30 + 1 + read-write + + + SODDFRM + SODDFRM + 29 + 1 + write-only + + + SD0PID_SEVNFRM + SD0PID/SEVNFRM + 28 + 1 + write-only + + + SNAK + SNAK + 27 + 1 + write-only + + + CNAK + CNAK + 26 + 1 + write-only + + + Stall + Stall + 21 + 1 + read-write + + + SNPM + SNPM + 20 + 1 + read-write + + + EPTYP + EPTYP + 18 + 2 + read-write + + + NAKSTS + NAKSTS + 17 + 1 + read-only + + + EONUM_DPID + EONUM/DPID + 16 + 1 + read-only + + + USBAEP + USBAEP + 15 + 1 + read-write + + + MPSIZ + MPSIZ + 0 + 11 + read-write + + + + + DIEPINT0 + DIEPINT0 + device endpoint-x interrupt + register + 0x108 + 0x20 + 0x00000080 + + + TXFE + TXFE + 7 + 1 + read-only + + + INEPNE + INEPNE + 6 + 1 + read-write + + + ITTXFE + ITTXFE + 4 + 1 + read-write + + + TOC + TOC + 3 + 1 + read-write + + + EPDISD + EPDISD + 1 + 1 + read-write + + + XFRC + XFRC + 0 + 1 + read-write + + + + + DIEPINT1 + DIEPINT1 + device endpoint-1 interrupt + register + 0x128 + 0x20 + 0x00000080 + + + TXFE + TXFE + 7 + 1 + read-only + + + INEPNE + INEPNE + 6 + 1 + read-write + + + ITTXFE + ITTXFE + 4 + 1 + read-write + + + TOC + TOC + 3 + 1 + read-write + + + EPDISD + EPDISD + 1 + 1 + read-write + + + XFRC + XFRC + 0 + 1 + read-write + + + + + DIEPINT2 + DIEPINT2 + device endpoint-2 interrupt + register + 0x148 + 0x20 + 0x00000080 + + + TXFE + TXFE + 7 + 1 + read-only + + + INEPNE + INEPNE + 6 + 1 + read-write + + + ITTXFE + ITTXFE + 4 + 1 + read-write + + + TOC + TOC + 3 + 1 + read-write + + + EPDISD + EPDISD + 1 + 1 + read-write + + + XFRC + XFRC + 0 + 1 + read-write + + + + + DIEPINT3 + DIEPINT3 + device endpoint-3 interrupt + register + 0x168 + 0x20 + 0x00000080 + + + TXFE + TXFE + 7 + 1 + read-only + + + INEPNE + INEPNE + 6 + 1 + read-write + + + ITTXFE + ITTXFE + 4 + 1 + read-write + + + TOC + TOC + 3 + 1 + read-write + + + EPDISD + EPDISD + 1 + 1 + read-write + + + XFRC + XFRC + 0 + 1 + read-write + + + + + DOEPINT0 + DOEPINT0 + device endpoint-0 interrupt + register + 0x308 + 0x20 + read-write + 0x00000080 + + + B2BSTUP + B2BSTUP + 6 + 1 + + + OTEPDIS + OTEPDIS + 4 + 1 + + + STUP + STUP + 3 + 1 + + + EPDISD + EPDISD + 1 + 1 + + + XFRC + XFRC + 0 + 1 + + + + + DOEPINT1 + DOEPINT1 + device endpoint-1 interrupt + register + 0x328 + 0x20 + read-write + 0x00000080 + + + B2BSTUP + B2BSTUP + 6 + 1 + + + OTEPDIS + OTEPDIS + 4 + 1 + + + STUP + STUP + 3 + 1 + + + EPDISD + EPDISD + 1 + 1 + + + XFRC + XFRC + 0 + 1 + + + + + DOEPINT2 + DOEPINT2 + device endpoint-2 interrupt + register + 0x348 + 0x20 + read-write + 0x00000080 + + + B2BSTUP + B2BSTUP + 6 + 1 + + + OTEPDIS + OTEPDIS + 4 + 1 + + + STUP + STUP + 3 + 1 + + + EPDISD + EPDISD + 1 + 1 + + + XFRC + XFRC + 0 + 1 + + + + + DOEPINT3 + DOEPINT3 + device endpoint-3 interrupt + register + 0x368 + 0x20 + read-write + 0x00000080 + + + B2BSTUP + B2BSTUP + 6 + 1 + + + OTEPDIS + OTEPDIS + 4 + 1 + + + STUP + STUP + 3 + 1 + + + EPDISD + EPDISD + 1 + 1 + + + XFRC + XFRC + 0 + 1 + + + + + DIEPTSIZ0 + DIEPTSIZ0 + device endpoint-0 transfer size + register + 0x110 + 0x20 + read-write + 0x00000000 + + + PKTCNT + Packet count + 19 + 2 + + + XFRSIZ + Transfer size + 0 + 7 + + + + + DOEPTSIZ0 + DOEPTSIZ0 + device OUT endpoint-0 transfer size + register + 0x310 + 0x20 + read-write + 0x00000000 + + + STUPCNT + SETUP packet count + 29 + 2 + + + PKTCNT + Packet count + 19 + 1 + + + XFRSIZ + Transfer size + 0 + 7 + + + + + DIEPTSIZ1 + DIEPTSIZ1 + device endpoint-1 transfer size + register + 0x130 + 0x20 + read-write + 0x00000000 + + + MCNT + Multi count + 29 + 2 + + + PKTCNT + Packet count + 19 + 10 + + + XFRSIZ + Transfer size + 0 + 19 + + + + + DIEPTSIZ2 + DIEPTSIZ2 + device endpoint-2 transfer size + register + 0x150 + 0x20 + read-write + 0x00000000 + + + MCNT + Multi count + 29 + 2 + + + PKTCNT + Packet count + 19 + 10 + + + XFRSIZ + Transfer size + 0 + 19 + + + + + DIEPTSIZ3 + DIEPTSIZ3 + device endpoint-3 transfer size + register + 0x170 + 0x20 + read-write + 0x00000000 + + + MCNT + Multi count + 29 + 2 + + + PKTCNT + Packet count + 19 + 10 + + + XFRSIZ + Transfer size + 0 + 19 + + + + + DTXFSTS0 + DTXFSTS0 + OTG_FS device IN endpoint transmit FIFO + status register + 0x118 + 0x20 + read-only + 0x00000000 + + + INEPTFSAV + IN endpoint TxFIFO space + available + 0 + 16 + + + + + DTXFSTS1 + DTXFSTS1 + OTG_FS device IN endpoint transmit FIFO + status register + 0x138 + 0x20 + read-only + 0x00000000 + + + INEPTFSAV + IN endpoint TxFIFO space + available + 0 + 16 + + + + + DTXFSTS2 + DTXFSTS2 + OTG_FS device IN endpoint transmit FIFO + status register + 0x158 + 0x20 + read-only + 0x00000000 + + + INEPTFSAV + IN endpoint TxFIFO space + available + 0 + 16 + + + + + DTXFSTS3 + DTXFSTS3 + OTG_FS device IN endpoint transmit FIFO + status register + 0x178 + 0x20 + read-only + 0x00000000 + + + INEPTFSAV + IN endpoint TxFIFO space + available + 0 + 16 + + + + + DOEPTSIZ1 + DOEPTSIZ1 + device OUT endpoint-1 transfer size + register + 0x330 + 0x20 + read-write + 0x00000000 + + + RXDPID_STUPCNT + Received data PID/SETUP packet + count + 29 + 2 + + + PKTCNT + Packet count + 19 + 10 + + + XFRSIZ + Transfer size + 0 + 19 + + + + + DOEPTSIZ2 + DOEPTSIZ2 + device OUT endpoint-2 transfer size + register + 0x350 + 0x20 + read-write + 0x00000000 + + + RXDPID_STUPCNT + Received data PID/SETUP packet + count + 29 + 2 + + + PKTCNT + Packet count + 19 + 10 + + + XFRSIZ + Transfer size + 0 + 19 + + + + + DOEPTSIZ3 + DOEPTSIZ3 + device OUT endpoint-3 transfer size + register + 0x370 + 0x20 + read-write + 0x00000000 + + + RXDPID_STUPCNT + Received data PID/SETUP packet + count + 29 + 2 + + + PKTCNT + Packet count + 19 + 10 + + + XFRSIZ + Transfer size + 0 + 19 + + + + + + + OTG_FS_PWRCLK + USB on the go full speed + USB_OTG_FS + 0x50000E00 + + 0x0 + 0x400 + registers + + + + FS_PCGCCTL + FS_PCGCCTL + OTG_FS power and clock gating control + register (OTG_FS_PCGCCTL) + 0x0 + 0x20 + read-write + 0x00000000 + + + STPPCLK + Stop PHY clock + 0 + 1 + + + GATEHCLK + Gate HCLK + 1 + 1 + + + PHYSUSP + PHY Suspended + 4 + 1 + + + + + + + CAN1 + Controller area network + CAN + 0x40006400 + + 0x0 + 0x400 + registers + + + CAN1_TX + CAN1 TX interrupts + 19 + + + CAN1_RX0 + CAN1 RX0 interrupts + 20 + + + CAN1_RX1 + CAN1 RX1 interrupts + 21 + + + CAN1_SCE + CAN1 SCE interrupt + 22 + + + + MCR + MCR + master control register + 0x0 + 0x20 + read-write + 0x00010002 + + + DBF + DBF + 16 + 1 + + + RESET + RESET + 15 + 1 + + + TTCM + TTCM + 7 + 1 + + + ABOM + ABOM + 6 + 1 + + + AWUM + AWUM + 5 + 1 + + + NART + NART + 4 + 1 + + + RFLM + RFLM + 3 + 1 + + + TXFP + TXFP + 2 + 1 + + + SLEEP + SLEEP + 1 + 1 + + + INRQ + INRQ + 0 + 1 + + + + + MSR + MSR + master status register + 0x4 + 0x20 + 0x00000C02 + + + RX + RX + 11 + 1 + read-only + + + SAMP + SAMP + 10 + 1 + read-only + + + RXM + RXM + 9 + 1 + read-only + + + TXM + TXM + 8 + 1 + read-only + + + SLAKI + SLAKI + 4 + 1 + read-write + + + WKUI + WKUI + 3 + 1 + read-write + + + ERRI + ERRI + 2 + 1 + read-write + + + SLAK + SLAK + 1 + 1 + read-only + + + INAK + INAK + 0 + 1 + read-only + + + + + TSR + TSR + transmit status register + 0x8 + 0x20 + 0x1C000000 + + + LOW2 + Lowest priority flag for mailbox + 2 + 31 + 1 + read-only + + + LOW1 + Lowest priority flag for mailbox + 1 + 30 + 1 + read-only + + + LOW0 + Lowest priority flag for mailbox + 0 + 29 + 1 + read-only + + + TME2 + Lowest priority flag for mailbox + 2 + 28 + 1 + read-only + + + TME1 + Lowest priority flag for mailbox + 1 + 27 + 1 + read-only + + + TME0 + Lowest priority flag for mailbox + 0 + 26 + 1 + read-only + + + CODE + CODE + 24 + 2 + read-only + + + ABRQ2 + ABRQ2 + 23 + 1 + read-write + + + TERR2 + TERR2 + 19 + 1 + read-write + + + ALST2 + ALST2 + 18 + 1 + read-write + + + TXOK2 + TXOK2 + 17 + 1 + read-write + + + RQCP2 + RQCP2 + 16 + 1 + read-write + + + ABRQ1 + ABRQ1 + 15 + 1 + read-write + + + TERR1 + TERR1 + 11 + 1 + read-write + + + ALST1 + ALST1 + 10 + 1 + read-write + + + TXOK1 + TXOK1 + 9 + 1 + read-write + + + RQCP1 + RQCP1 + 8 + 1 + read-write + + + ABRQ0 + ABRQ0 + 7 + 1 + read-write + + + TERR0 + TERR0 + 3 + 1 + read-write + + + ALST0 + ALST0 + 2 + 1 + read-write + + + TXOK0 + TXOK0 + 1 + 1 + read-write + + + RQCP0 + RQCP0 + 0 + 1 + read-write + + + + + RF0R + RF0R + receive FIFO 0 register + 0xC + 0x20 + 0x00000000 + + + RFOM0 + RFOM0 + 5 + 1 + read-write + + + FOVR0 + FOVR0 + 4 + 1 + read-write + + + FULL0 + FULL0 + 3 + 1 + read-write + + + FMP0 + FMP0 + 0 + 2 + read-only + + + + + RF1R + RF1R + receive FIFO 1 register + 0x10 + 0x20 + 0x00000000 + + + RFOM1 + RFOM1 + 5 + 1 + read-write + + + FOVR1 + FOVR1 + 4 + 1 + read-write + + + FULL1 + FULL1 + 3 + 1 + read-write + + + FMP1 + FMP1 + 0 + 2 + read-only + + + + + IER + IER + interrupt enable register + 0x14 + 0x20 + read-write + 0x00000000 + + + SLKIE + SLKIE + 17 + 1 + + + WKUIE + WKUIE + 16 + 1 + + + ERRIE + ERRIE + 15 + 1 + + + LECIE + LECIE + 11 + 1 + + + BOFIE + BOFIE + 10 + 1 + + + EPVIE + EPVIE + 9 + 1 + + + EWGIE + EWGIE + 8 + 1 + + + FOVIE1 + FOVIE1 + 6 + 1 + + + FFIE1 + FFIE1 + 5 + 1 + + + FMPIE1 + FMPIE1 + 4 + 1 + + + FOVIE0 + FOVIE0 + 3 + 1 + + + FFIE0 + FFIE0 + 2 + 1 + + + FMPIE0 + FMPIE0 + 1 + 1 + + + TMEIE + TMEIE + 0 + 1 + + + + + ESR + ESR + interrupt enable register + 0x18 + 0x20 + 0x00000000 + + + REC + REC + 24 + 8 + read-only + + + TEC + TEC + 16 + 8 + read-only + + + LEC + LEC + 4 + 3 + read-write + + + BOFF + BOFF + 2 + 1 + read-only + + + EPVF + EPVF + 1 + 1 + read-only + + + EWGF + EWGF + 0 + 1 + read-only + + + + + BTR + BTR + bit timing register + 0x1C + 0x20 + read-write + 0x00000000 + + + SILM + SILM + 31 + 1 + + + LBKM + LBKM + 30 + 1 + + + SJW + SJW + 24 + 2 + + + TS2 + TS2 + 20 + 3 + + + TS1 + TS1 + 16 + 4 + + + BRP + BRP + 0 + 10 + + + + + TI0R + TI0R + TX mailbox identifier register + 0x180 + 0x20 + read-write + 0x00000000 + + + STID + STID + 21 + 11 + + + EXID + EXID + 3 + 18 + + + IDE + IDE + 2 + 1 + + + RTR + RTR + 1 + 1 + + + TXRQ + TXRQ + 0 + 1 + + + + + TDT0R + TDT0R + mailbox data length control and time stamp + register + 0x184 + 0x20 + read-write + 0x00000000 + + + TIME + TIME + 16 + 16 + + + TGT + TGT + 8 + 1 + + + DLC + DLC + 0 + 4 + + + + + TDL0R + TDL0R + mailbox data low register + 0x188 + 0x20 + read-write + 0x00000000 + + + DATA3 + DATA3 + 24 + 8 + + + DATA2 + DATA2 + 16 + 8 + + + DATA1 + DATA1 + 8 + 8 + + + DATA0 + DATA0 + 0 + 8 + + + + + TDH0R + TDH0R + mailbox data high register + 0x18C + 0x20 + read-write + 0x00000000 + + + DATA7 + DATA7 + 24 + 8 + + + DATA6 + DATA6 + 16 + 8 + + + DATA5 + DATA5 + 8 + 8 + + + DATA4 + DATA4 + 0 + 8 + + + + + TI1R + TI1R + mailbox identifier register + 0x190 + 0x20 + read-write + 0x00000000 + + + STID + STID + 21 + 11 + + + EXID + EXID + 3 + 18 + + + IDE + IDE + 2 + 1 + + + RTR + RTR + 1 + 1 + + + TXRQ + TXRQ + 0 + 1 + + + + + TDT1R + TDT1R + mailbox data length control and time stamp + register + 0x194 + 0x20 + read-write + 0x00000000 + + + TIME + TIME + 16 + 16 + + + TGT + TGT + 8 + 1 + + + DLC + DLC + 0 + 4 + + + + + TDL1R + TDL1R + mailbox data low register + 0x198 + 0x20 + read-write + 0x00000000 + + + DATA3 + DATA3 + 24 + 8 + + + DATA2 + DATA2 + 16 + 8 + + + DATA1 + DATA1 + 8 + 8 + + + DATA0 + DATA0 + 0 + 8 + + + + + TDH1R + TDH1R + mailbox data high register + 0x19C + 0x20 + read-write + 0x00000000 + + + DATA7 + DATA7 + 24 + 8 + + + DATA6 + DATA6 + 16 + 8 + + + DATA5 + DATA5 + 8 + 8 + + + DATA4 + DATA4 + 0 + 8 + + + + + TI2R + TI2R + mailbox identifier register + 0x1A0 + 0x20 + read-write + 0x00000000 + + + STID + STID + 21 + 11 + + + EXID + EXID + 3 + 18 + + + IDE + IDE + 2 + 1 + + + RTR + RTR + 1 + 1 + + + TXRQ + TXRQ + 0 + 1 + + + + + TDT2R + TDT2R + mailbox data length control and time stamp + register + 0x1A4 + 0x20 + read-write + 0x00000000 + + + TIME + TIME + 16 + 16 + + + TGT + TGT + 8 + 1 + + + DLC + DLC + 0 + 4 + + + + + TDL2R + TDL2R + mailbox data low register + 0x1A8 + 0x20 + read-write + 0x00000000 + + + DATA3 + DATA3 + 24 + 8 + + + DATA2 + DATA2 + 16 + 8 + + + DATA1 + DATA1 + 8 + 8 + + + DATA0 + DATA0 + 0 + 8 + + + + + TDH2R + TDH2R + mailbox data high register + 0x1AC + 0x20 + read-write + 0x00000000 + + + DATA7 + DATA7 + 24 + 8 + + + DATA6 + DATA6 + 16 + 8 + + + DATA5 + DATA5 + 8 + 8 + + + DATA4 + DATA4 + 0 + 8 + + + + + RI0R + RI0R + receive FIFO mailbox identifier + register + 0x1B0 + 0x20 + read-only + 0x00000000 + + + STID + STID + 21 + 11 + + + EXID + EXID + 3 + 18 + + + IDE + IDE + 2 + 1 + + + RTR + RTR + 1 + 1 + + + + + RDT0R + RDT0R + mailbox data high register + 0x1B4 + 0x20 + read-only + 0x00000000 + + + TIME + TIME + 16 + 16 + + + FMI + FMI + 8 + 8 + + + DLC + DLC + 0 + 4 + + + + + RDL0R + RDL0R + mailbox data high register + 0x1B8 + 0x20 + read-only + 0x00000000 + + + DATA3 + DATA3 + 24 + 8 + + + DATA2 + DATA2 + 16 + 8 + + + DATA1 + DATA1 + 8 + 8 + + + DATA0 + DATA0 + 0 + 8 + + + + + RDH0R + RDH0R + receive FIFO mailbox data high + register + 0x1BC + 0x20 + read-only + 0x00000000 + + + DATA7 + DATA7 + 24 + 8 + + + DATA6 + DATA6 + 16 + 8 + + + DATA5 + DATA5 + 8 + 8 + + + DATA4 + DATA4 + 0 + 8 + + + + + RI1R + RI1R + mailbox data high register + 0x1C0 + 0x20 + read-only + 0x00000000 + + + STID + STID + 21 + 11 + + + EXID + EXID + 3 + 18 + + + IDE + IDE + 2 + 1 + + + RTR + RTR + 1 + 1 + + + + + RDT1R + RDT1R + mailbox data high register + 0x1C4 + 0x20 + read-only + 0x00000000 + + + TIME + TIME + 16 + 16 + + + FMI + FMI + 8 + 8 + + + DLC + DLC + 0 + 4 + + + + + RDL1R + RDL1R + mailbox data high register + 0x1C8 + 0x20 + read-only + 0x00000000 + + + DATA3 + DATA3 + 24 + 8 + + + DATA2 + DATA2 + 16 + 8 + + + DATA1 + DATA1 + 8 + 8 + + + DATA0 + DATA0 + 0 + 8 + + + + + RDH1R + RDH1R + mailbox data high register + 0x1CC + 0x20 + read-only + 0x00000000 + + + DATA7 + DATA7 + 24 + 8 + + + DATA6 + DATA6 + 16 + 8 + + + DATA5 + DATA5 + 8 + 8 + + + DATA4 + DATA4 + 0 + 8 + + + + + FMR + FMR + filter master register + 0x200 + 0x20 + read-write + 0x2A1C0E01 + + + CAN2SB + CAN2SB + 8 + 6 + + + FINIT + FINIT + 0 + 1 + + + + + FM1R + FM1R + filter mode register + 0x204 + 0x20 + read-write + 0x00000000 + + + FBM0 + Filter mode + 0 + 1 + + + FBM1 + Filter mode + 1 + 1 + + + FBM2 + Filter mode + 2 + 1 + + + FBM3 + Filter mode + 3 + 1 + + + FBM4 + Filter mode + 4 + 1 + + + FBM5 + Filter mode + 5 + 1 + + + FBM6 + Filter mode + 6 + 1 + + + FBM7 + Filter mode + 7 + 1 + + + FBM8 + Filter mode + 8 + 1 + + + FBM9 + Filter mode + 9 + 1 + + + FBM10 + Filter mode + 10 + 1 + + + FBM11 + Filter mode + 11 + 1 + + + FBM12 + Filter mode + 12 + 1 + + + FBM13 + Filter mode + 13 + 1 + + + FBM14 + Filter mode + 14 + 1 + + + FBM15 + Filter mode + 15 + 1 + + + FBM16 + Filter mode + 16 + 1 + + + FBM17 + Filter mode + 17 + 1 + + + FBM18 + Filter mode + 18 + 1 + + + FBM19 + Filter mode + 19 + 1 + + + FBM20 + Filter mode + 20 + 1 + + + FBM21 + Filter mode + 21 + 1 + + + FBM22 + Filter mode + 22 + 1 + + + FBM23 + Filter mode + 23 + 1 + + + FBM24 + Filter mode + 24 + 1 + + + FBM25 + Filter mode + 25 + 1 + + + FBM26 + Filter mode + 26 + 1 + + + FBM27 + Filter mode + 27 + 1 + + + + + FS1R + FS1R + filter scale register + 0x20C + 0x20 + read-write + 0x00000000 + + + FSC0 + Filter scale configuration + 0 + 1 + + + FSC1 + Filter scale configuration + 1 + 1 + + + FSC2 + Filter scale configuration + 2 + 1 + + + FSC3 + Filter scale configuration + 3 + 1 + + + FSC4 + Filter scale configuration + 4 + 1 + + + FSC5 + Filter scale configuration + 5 + 1 + + + FSC6 + Filter scale configuration + 6 + 1 + + + FSC7 + Filter scale configuration + 7 + 1 + + + FSC8 + Filter scale configuration + 8 + 1 + + + FSC9 + Filter scale configuration + 9 + 1 + + + FSC10 + Filter scale configuration + 10 + 1 + + + FSC11 + Filter scale configuration + 11 + 1 + + + FSC12 + Filter scale configuration + 12 + 1 + + + FSC13 + Filter scale configuration + 13 + 1 + + + FSC14 + Filter scale configuration + 14 + 1 + + + FSC15 + Filter scale configuration + 15 + 1 + + + FSC16 + Filter scale configuration + 16 + 1 + + + FSC17 + Filter scale configuration + 17 + 1 + + + FSC18 + Filter scale configuration + 18 + 1 + + + FSC19 + Filter scale configuration + 19 + 1 + + + FSC20 + Filter scale configuration + 20 + 1 + + + FSC21 + Filter scale configuration + 21 + 1 + + + FSC22 + Filter scale configuration + 22 + 1 + + + FSC23 + Filter scale configuration + 23 + 1 + + + FSC24 + Filter scale configuration + 24 + 1 + + + FSC25 + Filter scale configuration + 25 + 1 + + + FSC26 + Filter scale configuration + 26 + 1 + + + FSC27 + Filter scale configuration + 27 + 1 + + + + + FFA1R + FFA1R + filter FIFO assignment + register + 0x214 + 0x20 + read-write + 0x00000000 + + + FFA0 + Filter FIFO assignment for filter + 0 + 0 + 1 + + + FFA1 + Filter FIFO assignment for filter + 1 + 1 + 1 + + + FFA2 + Filter FIFO assignment for filter + 2 + 2 + 1 + + + FFA3 + Filter FIFO assignment for filter + 3 + 3 + 1 + + + FFA4 + Filter FIFO assignment for filter + 4 + 4 + 1 + + + FFA5 + Filter FIFO assignment for filter + 5 + 5 + 1 + + + FFA6 + Filter FIFO assignment for filter + 6 + 6 + 1 + + + FFA7 + Filter FIFO assignment for filter + 7 + 7 + 1 + + + FFA8 + Filter FIFO assignment for filter + 8 + 8 + 1 + + + FFA9 + Filter FIFO assignment for filter + 9 + 9 + 1 + + + FFA10 + Filter FIFO assignment for filter + 10 + 10 + 1 + + + FFA11 + Filter FIFO assignment for filter + 11 + 11 + 1 + + + FFA12 + Filter FIFO assignment for filter + 12 + 12 + 1 + + + FFA13 + Filter FIFO assignment for filter + 13 + 13 + 1 + + + FFA14 + Filter FIFO assignment for filter + 14 + 14 + 1 + + + FFA15 + Filter FIFO assignment for filter + 15 + 15 + 1 + + + FFA16 + Filter FIFO assignment for filter + 16 + 16 + 1 + + + FFA17 + Filter FIFO assignment for filter + 17 + 17 + 1 + + + FFA18 + Filter FIFO assignment for filter + 18 + 18 + 1 + + + FFA19 + Filter FIFO assignment for filter + 19 + 19 + 1 + + + FFA20 + Filter FIFO assignment for filter + 20 + 20 + 1 + + + FFA21 + Filter FIFO assignment for filter + 21 + 21 + 1 + + + FFA22 + Filter FIFO assignment for filter + 22 + 22 + 1 + + + FFA23 + Filter FIFO assignment for filter + 23 + 23 + 1 + + + FFA24 + Filter FIFO assignment for filter + 24 + 24 + 1 + + + FFA25 + Filter FIFO assignment for filter + 25 + 25 + 1 + + + FFA26 + Filter FIFO assignment for filter + 26 + 26 + 1 + + + FFA27 + Filter FIFO assignment for filter + 27 + 27 + 1 + + + + + FA1R + FA1R + filter activation register + 0x21C + 0x20 + read-write + 0x00000000 + + + FACT0 + Filter active + 0 + 1 + + + FACT1 + Filter active + 1 + 1 + + + FACT2 + Filter active + 2 + 1 + + + FACT3 + Filter active + 3 + 1 + + + FACT4 + Filter active + 4 + 1 + + + FACT5 + Filter active + 5 + 1 + + + FACT6 + Filter active + 6 + 1 + + + FACT7 + Filter active + 7 + 1 + + + FACT8 + Filter active + 8 + 1 + + + FACT9 + Filter active + 9 + 1 + + + FACT10 + Filter active + 10 + 1 + + + FACT11 + Filter active + 11 + 1 + + + FACT12 + Filter active + 12 + 1 + + + FACT13 + Filter active + 13 + 1 + + + FACT14 + Filter active + 14 + 1 + + + FACT15 + Filter active + 15 + 1 + + + FACT16 + Filter active + 16 + 1 + + + FACT17 + Filter active + 17 + 1 + + + FACT18 + Filter active + 18 + 1 + + + FACT19 + Filter active + 19 + 1 + + + FACT20 + Filter active + 20 + 1 + + + FACT21 + Filter active + 21 + 1 + + + FACT22 + Filter active + 22 + 1 + + + FACT23 + Filter active + 23 + 1 + + + FACT24 + Filter active + 24 + 1 + + + FACT25 + Filter active + 25 + 1 + + + FACT26 + Filter active + 26 + 1 + + + FACT27 + Filter active + 27 + 1 + + + + + F0R1 + F0R1 + Filter bank 0 register 1 + 0x240 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F0R2 + F0R2 + Filter bank 0 register 2 + 0x244 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F1R1 + F1R1 + Filter bank 1 register 1 + 0x248 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F1R2 + F1R2 + Filter bank 1 register 2 + 0x24C + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F2R1 + F2R1 + Filter bank 2 register 1 + 0x250 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F2R2 + F2R2 + Filter bank 2 register 2 + 0x254 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F3R1 + F3R1 + Filter bank 3 register 1 + 0x258 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F3R2 + F3R2 + Filter bank 3 register 2 + 0x25C + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F4R1 + F4R1 + Filter bank 4 register 1 + 0x260 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F4R2 + F4R2 + Filter bank 4 register 2 + 0x264 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F5R1 + F5R1 + Filter bank 5 register 1 + 0x268 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F5R2 + F5R2 + Filter bank 5 register 2 + 0x26C + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F6R1 + F6R1 + Filter bank 6 register 1 + 0x270 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F6R2 + F6R2 + Filter bank 6 register 2 + 0x274 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F7R1 + F7R1 + Filter bank 7 register 1 + 0x278 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F7R2 + F7R2 + Filter bank 7 register 2 + 0x27C + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F8R1 + F8R1 + Filter bank 8 register 1 + 0x280 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F8R2 + F8R2 + Filter bank 8 register 2 + 0x284 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F9R1 + F9R1 + Filter bank 9 register 1 + 0x288 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F9R2 + F9R2 + Filter bank 9 register 2 + 0x28C + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F10R1 + F10R1 + Filter bank 10 register 1 + 0x290 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F10R2 + F10R2 + Filter bank 10 register 2 + 0x294 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F11R1 + F11R1 + Filter bank 11 register 1 + 0x298 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F11R2 + F11R2 + Filter bank 11 register 2 + 0x29C + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F12R1 + F12R1 + Filter bank 4 register 1 + 0x2A0 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F12R2 + F12R2 + Filter bank 12 register 2 + 0x2A4 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F13R1 + F13R1 + Filter bank 13 register 1 + 0x2A8 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F13R2 + F13R2 + Filter bank 13 register 2 + 0x2AC + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F14R1 + F14R1 + Filter bank 14 register 1 + 0x2B0 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F14R2 + F14R2 + Filter bank 14 register 2 + 0x2B4 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F15R1 + F15R1 + Filter bank 15 register 1 + 0x2B8 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F15R2 + F15R2 + Filter bank 15 register 2 + 0x2BC + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F16R1 + F16R1 + Filter bank 16 register 1 + 0x2C0 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F16R2 + F16R2 + Filter bank 16 register 2 + 0x2C4 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F17R1 + F17R1 + Filter bank 17 register 1 + 0x2C8 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F17R2 + F17R2 + Filter bank 17 register 2 + 0x2CC + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F18R1 + F18R1 + Filter bank 18 register 1 + 0x2D0 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F18R2 + F18R2 + Filter bank 18 register 2 + 0x2D4 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F19R1 + F19R1 + Filter bank 19 register 1 + 0x2D8 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F19R2 + F19R2 + Filter bank 19 register 2 + 0x2DC + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F20R1 + F20R1 + Filter bank 20 register 1 + 0x2E0 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F20R2 + F20R2 + Filter bank 20 register 2 + 0x2E4 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F21R1 + F21R1 + Filter bank 21 register 1 + 0x2E8 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F21R2 + F21R2 + Filter bank 21 register 2 + 0x2EC + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F22R1 + F22R1 + Filter bank 22 register 1 + 0x2F0 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F22R2 + F22R2 + Filter bank 22 register 2 + 0x2F4 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F23R1 + F23R1 + Filter bank 23 register 1 + 0x2F8 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F23R2 + F23R2 + Filter bank 23 register 2 + 0x2FC + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F24R1 + F24R1 + Filter bank 24 register 1 + 0x300 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F24R2 + F24R2 + Filter bank 24 register 2 + 0x304 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F25R1 + F25R1 + Filter bank 25 register 1 + 0x308 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F25R2 + F25R2 + Filter bank 25 register 2 + 0x30C + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F26R1 + F26R1 + Filter bank 26 register 1 + 0x310 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F26R2 + F26R2 + Filter bank 26 register 2 + 0x314 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F27R1 + F27R1 + Filter bank 27 register 1 + 0x318 + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + F27R2 + F27R2 + Filter bank 27 register 2 + 0x31C + 0x20 + read-write + 0x00000000 + + + FB0 + Filter bits + 0 + 1 + + + FB1 + Filter bits + 1 + 1 + + + FB2 + Filter bits + 2 + 1 + + + FB3 + Filter bits + 3 + 1 + + + FB4 + Filter bits + 4 + 1 + + + FB5 + Filter bits + 5 + 1 + + + FB6 + Filter bits + 6 + 1 + + + FB7 + Filter bits + 7 + 1 + + + FB8 + Filter bits + 8 + 1 + + + FB9 + Filter bits + 9 + 1 + + + FB10 + Filter bits + 10 + 1 + + + FB11 + Filter bits + 11 + 1 + + + FB12 + Filter bits + 12 + 1 + + + FB13 + Filter bits + 13 + 1 + + + FB14 + Filter bits + 14 + 1 + + + FB15 + Filter bits + 15 + 1 + + + FB16 + Filter bits + 16 + 1 + + + FB17 + Filter bits + 17 + 1 + + + FB18 + Filter bits + 18 + 1 + + + FB19 + Filter bits + 19 + 1 + + + FB20 + Filter bits + 20 + 1 + + + FB21 + Filter bits + 21 + 1 + + + FB22 + Filter bits + 22 + 1 + + + FB23 + Filter bits + 23 + 1 + + + FB24 + Filter bits + 24 + 1 + + + FB25 + Filter bits + 25 + 1 + + + FB26 + Filter bits + 26 + 1 + + + FB27 + Filter bits + 27 + 1 + + + FB28 + Filter bits + 28 + 1 + + + FB29 + Filter bits + 29 + 1 + + + FB30 + Filter bits + 30 + 1 + + + FB31 + Filter bits + 31 + 1 + + + + + + + CAN2 + 0x40006800 + + CAN2_TX + CAN2 TX interrupts + 63 + + + CAN2_RX0 + CAN2 RX0 interrupts + 64 + + + CAN2_RX1 + CAN2 RX1 interrupts + 65 + + + CAN2_SCE + CAN2 SCE interrupt + 66 + + + + FLASH + FLASH + FLASH + 0x40023C00 + + 0x0 + 0x400 + registers + + + FLASH + Flash global interrupt + 4 + + + + ACR + ACR + Flash access control register + 0x0 + 0x20 + 0x00000000 + + + LATENCY + Latency + 0 + 3 + read-write + + + PRFTEN + Prefetch enable + 8 + 1 + read-write + + + ICEN + Instruction cache enable + 9 + 1 + read-write + + + DCEN + Data cache enable + 10 + 1 + read-write + + + ICRST + Instruction cache reset + 11 + 1 + write-only + + + DCRST + Data cache reset + 12 + 1 + read-write + + + + + KEYR + KEYR + Flash key register + 0x4 + 0x20 + write-only + 0x00000000 + + + KEY + FPEC key + 0 + 32 + + + + + OPTKEYR + OPTKEYR + Flash option key register + 0x8 + 0x20 + write-only + 0x00000000 + + + OPTKEY + Option byte key + 0 + 32 + + + + + SR + SR + Status register + 0xC + 0x20 + 0x00000000 + + + EOP + End of operation + 0 + 1 + read-write + + + OPERR + Operation error + 1 + 1 + read-write + + + WRPERR + Write protection error + 4 + 1 + read-write + + + PGAERR + Programming alignment + error + 5 + 1 + read-write + + + PGPERR + Programming parallelism + error + 6 + 1 + read-write + + + PGSERR + Programming sequence error + 7 + 1 + read-write + + + RDERR + Read Protection Error + 8 + 1 + read-write + + + BSY + Busy + 16 + 1 + read-only + + + + + CR + CR + Control register + 0x10 + 0x20 + read-write + 0x80000000 + + + PG + Programming + 0 + 1 + + + SER + Sector Erase + 1 + 1 + + + MER + Mass Erase of sectors 0 to + 11 + 2 + 1 + + + SNB + Sector number + 3 + 4 + + + PSIZE + Program size + 8 + 2 + + + STRT + Start + 16 + 1 + + + EOPIE + End of operation interrupt + enable + 24 + 1 + + + ERRIE + Error interrupt enable + 25 + 1 + + + LOCK + Lock + 31 + 1 + + + + + OPTCR + OPTCR + Flash option control register + 0x14 + 0x20 + read-write + 0x0FFFAAED + + + OPTLOCK + Option lock + 0 + 1 + + + OPTSTRT + Option start + 1 + 1 + + + BOR_LEV + BOR reset Level + 2 + 2 + + + WDG_SW + WDG_SW User option bytes + 5 + 1 + + + nRST_STOP + nRST_STOP User option + bytes + 6 + 1 + + + nRST_STDBY + nRST_STDBY User option + bytes + 7 + 1 + + + RDP + Read protect + 8 + 8 + + + nWRP + Not write protect + 16 + 8 + + + SPRMOD + Selection of Protection Mode of nWPRi + bits + 31 + 1 + + + + + + + EXTI + External interrupt/event + controller + EXTI + 0x40013C00 + + 0x0 + 0x400 + registers + + + PVD + PVD through EXTI line detection + interrupt + 1 + + + TAMP_STAMP + Tamper and TimeStamp interrupts through the + EXTI line + 2 + + + EXTI0 + EXTI Line0 interrupt + 6 + + + EXTI1 + EXTI Line1 interrupt + 7 + + + EXTI2 + EXTI Line2 interrupt + 8 + + + EXTI3 + EXTI Line3 interrupt + 9 + + + EXTI4 + EXTI Line4 interrupt + 10 + + + EXTI9_5 + EXTI Line[9:5] interrupts + 23 + + + EXTI15_10 + EXTI Line[15:10] interrupts + 40 + + + + IMR + IMR + Interrupt mask register + (EXTI_IMR) + 0x0 + 0x20 + read-write + 0x00000000 + + + MR0 + Interrupt Mask on line 0 + 0 + 1 + + + MR1 + Interrupt Mask on line 1 + 1 + 1 + + + MR2 + Interrupt Mask on line 2 + 2 + 1 + + + MR3 + Interrupt Mask on line 3 + 3 + 1 + + + MR4 + Interrupt Mask on line 4 + 4 + 1 + + + MR5 + Interrupt Mask on line 5 + 5 + 1 + + + MR6 + Interrupt Mask on line 6 + 6 + 1 + + + MR7 + Interrupt Mask on line 7 + 7 + 1 + + + MR8 + Interrupt Mask on line 8 + 8 + 1 + + + MR9 + Interrupt Mask on line 9 + 9 + 1 + + + MR10 + Interrupt Mask on line 10 + 10 + 1 + + + MR11 + Interrupt Mask on line 11 + 11 + 1 + + + MR12 + Interrupt Mask on line 12 + 12 + 1 + + + MR13 + Interrupt Mask on line 13 + 13 + 1 + + + MR14 + Interrupt Mask on line 14 + 14 + 1 + + + MR15 + Interrupt Mask on line 15 + 15 + 1 + + + MR16 + Interrupt Mask on line 16 + 16 + 1 + + + MR17 + Interrupt Mask on line 17 + 17 + 1 + + + MR18 + Interrupt Mask on line 18 + 18 + 1 + + + MR19 + Interrupt Mask on line 19 + 19 + 1 + + + MR20 + Interrupt Mask on line 20 + 20 + 1 + + + MR21 + Interrupt Mask on line 21 + 21 + 1 + + + MR22 + Interrupt Mask on line 22 + 22 + 1 + + + + + EMR + EMR + Event mask register (EXTI_EMR) + 0x4 + 0x20 + read-write + 0x00000000 + + + MR0 + Event Mask on line 0 + 0 + 1 + + + MR1 + Event Mask on line 1 + 1 + 1 + + + MR2 + Event Mask on line 2 + 2 + 1 + + + MR3 + Event Mask on line 3 + 3 + 1 + + + MR4 + Event Mask on line 4 + 4 + 1 + + + MR5 + Event Mask on line 5 + 5 + 1 + + + MR6 + Event Mask on line 6 + 6 + 1 + + + MR7 + Event Mask on line 7 + 7 + 1 + + + MR8 + Event Mask on line 8 + 8 + 1 + + + MR9 + Event Mask on line 9 + 9 + 1 + + + MR10 + Event Mask on line 10 + 10 + 1 + + + MR11 + Event Mask on line 11 + 11 + 1 + + + MR12 + Event Mask on line 12 + 12 + 1 + + + MR13 + Event Mask on line 13 + 13 + 1 + + + MR14 + Event Mask on line 14 + 14 + 1 + + + MR15 + Event Mask on line 15 + 15 + 1 + + + MR16 + Event Mask on line 16 + 16 + 1 + + + MR17 + Event Mask on line 17 + 17 + 1 + + + MR18 + Event Mask on line 18 + 18 + 1 + + + MR19 + Event Mask on line 19 + 19 + 1 + + + MR20 + Event Mask on line 20 + 20 + 1 + + + MR21 + Event Mask on line 21 + 21 + 1 + + + MR22 + Event Mask on line 22 + 22 + 1 + + + + + RTSR + RTSR + Rising Trigger selection register + (EXTI_RTSR) + 0x8 + 0x20 + read-write + 0x00000000 + + + TR0 + Rising trigger event configuration of + line 0 + 0 + 1 + + + TR1 + Rising trigger event configuration of + line 1 + 1 + 1 + + + TR2 + Rising trigger event configuration of + line 2 + 2 + 1 + + + TR3 + Rising trigger event configuration of + line 3 + 3 + 1 + + + TR4 + Rising trigger event configuration of + line 4 + 4 + 1 + + + TR5 + Rising trigger event configuration of + line 5 + 5 + 1 + + + TR6 + Rising trigger event configuration of + line 6 + 6 + 1 + + + TR7 + Rising trigger event configuration of + line 7 + 7 + 1 + + + TR8 + Rising trigger event configuration of + line 8 + 8 + 1 + + + TR9 + Rising trigger event configuration of + line 9 + 9 + 1 + + + TR10 + Rising trigger event configuration of + line 10 + 10 + 1 + + + TR11 + Rising trigger event configuration of + line 11 + 11 + 1 + + + TR12 + Rising trigger event configuration of + line 12 + 12 + 1 + + + TR13 + Rising trigger event configuration of + line 13 + 13 + 1 + + + TR14 + Rising trigger event configuration of + line 14 + 14 + 1 + + + TR15 + Rising trigger event configuration of + line 15 + 15 + 1 + + + TR16 + Rising trigger event configuration of + line 16 + 16 + 1 + + + TR17 + Rising trigger event configuration of + line 17 + 17 + 1 + + + TR18 + Rising trigger event configuration of + line 18 + 18 + 1 + + + TR19 + Rising trigger event configuration of + line 19 + 19 + 1 + + + TR20 + Rising trigger event configuration of + line 20 + 20 + 1 + + + TR21 + Rising trigger event configuration of + line 21 + 21 + 1 + + + TR22 + Rising trigger event configuration of + line 22 + 22 + 1 + + + + + FTSR + FTSR + Falling Trigger selection register + (EXTI_FTSR) + 0xC + 0x20 + read-write + 0x00000000 + + + TR0 + Falling trigger event configuration of + line 0 + 0 + 1 + + + TR1 + Falling trigger event configuration of + line 1 + 1 + 1 + + + TR2 + Falling trigger event configuration of + line 2 + 2 + 1 + + + TR3 + Falling trigger event configuration of + line 3 + 3 + 1 + + + TR4 + Falling trigger event configuration of + line 4 + 4 + 1 + + + TR5 + Falling trigger event configuration of + line 5 + 5 + 1 + + + TR6 + Falling trigger event configuration of + line 6 + 6 + 1 + + + TR7 + Falling trigger event configuration of + line 7 + 7 + 1 + + + TR8 + Falling trigger event configuration of + line 8 + 8 + 1 + + + TR9 + Falling trigger event configuration of + line 9 + 9 + 1 + + + TR10 + Falling trigger event configuration of + line 10 + 10 + 1 + + + TR11 + Falling trigger event configuration of + line 11 + 11 + 1 + + + TR12 + Falling trigger event configuration of + line 12 + 12 + 1 + + + TR13 + Falling trigger event configuration of + line 13 + 13 + 1 + + + TR14 + Falling trigger event configuration of + line 14 + 14 + 1 + + + TR15 + Falling trigger event configuration of + line 15 + 15 + 1 + + + TR16 + Falling trigger event configuration of + line 16 + 16 + 1 + + + TR17 + Falling trigger event configuration of + line 17 + 17 + 1 + + + TR18 + Falling trigger event configuration of + line 18 + 18 + 1 + + + TR19 + Falling trigger event configuration of + line 19 + 19 + 1 + + + TR20 + Falling trigger event configuration of + line 20 + 20 + 1 + + + TR21 + Falling trigger event configuration of + line 21 + 21 + 1 + + + TR22 + Falling trigger event configuration of + line 22 + 22 + 1 + + + + + SWIER + SWIER + Software interrupt event register + (EXTI_SWIER) + 0x10 + 0x20 + read-write + 0x00000000 + + + SWIER0 + Software Interrupt on line + 0 + 0 + 1 + + + SWIER1 + Software Interrupt on line + 1 + 1 + 1 + + + SWIER2 + Software Interrupt on line + 2 + 2 + 1 + + + SWIER3 + Software Interrupt on line + 3 + 3 + 1 + + + SWIER4 + Software Interrupt on line + 4 + 4 + 1 + + + SWIER5 + Software Interrupt on line + 5 + 5 + 1 + + + SWIER6 + Software Interrupt on line + 6 + 6 + 1 + + + SWIER7 + Software Interrupt on line + 7 + 7 + 1 + + + SWIER8 + Software Interrupt on line + 8 + 8 + 1 + + + SWIER9 + Software Interrupt on line + 9 + 9 + 1 + + + SWIER10 + Software Interrupt on line + 10 + 10 + 1 + + + SWIER11 + Software Interrupt on line + 11 + 11 + 1 + + + SWIER12 + Software Interrupt on line + 12 + 12 + 1 + + + SWIER13 + Software Interrupt on line + 13 + 13 + 1 + + + SWIER14 + Software Interrupt on line + 14 + 14 + 1 + + + SWIER15 + Software Interrupt on line + 15 + 15 + 1 + + + SWIER16 + Software Interrupt on line + 16 + 16 + 1 + + + SWIER17 + Software Interrupt on line + 17 + 17 + 1 + + + SWIER18 + Software Interrupt on line + 18 + 18 + 1 + + + SWIER19 + Software Interrupt on line + 19 + 19 + 1 + + + SWIER20 + Software Interrupt on line + 20 + 20 + 1 + + + SWIER21 + Software Interrupt on line + 21 + 21 + 1 + + + SWIER22 + Software Interrupt on line + 22 + 22 + 1 + + + + + PR + PR + Pending register (EXTI_PR) + 0x14 + 0x20 + read-write + 0x00000000 + + + PR0 + Pending bit 0 + 0 + 1 + + + PR1 + Pending bit 1 + 1 + 1 + + + PR2 + Pending bit 2 + 2 + 1 + + + PR3 + Pending bit 3 + 3 + 1 + + + PR4 + Pending bit 4 + 4 + 1 + + + PR5 + Pending bit 5 + 5 + 1 + + + PR6 + Pending bit 6 + 6 + 1 + + + PR7 + Pending bit 7 + 7 + 1 + + + PR8 + Pending bit 8 + 8 + 1 + + + PR9 + Pending bit 9 + 9 + 1 + + + PR10 + Pending bit 10 + 10 + 1 + + + PR11 + Pending bit 11 + 11 + 1 + + + PR12 + Pending bit 12 + 12 + 1 + + + PR13 + Pending bit 13 + 13 + 1 + + + PR14 + Pending bit 14 + 14 + 1 + + + PR15 + Pending bit 15 + 15 + 1 + + + PR16 + Pending bit 16 + 16 + 1 + + + PR17 + Pending bit 17 + 17 + 1 + + + PR18 + Pending bit 18 + 18 + 1 + + + PR19 + Pending bit 19 + 19 + 1 + + + PR20 + Pending bit 20 + 20 + 1 + + + PR21 + Pending bit 21 + 21 + 1 + + + PR22 + Pending bit 22 + 22 + 1 + + + + + + + OTG_HS_GLOBAL + USB on the go high speed + USB_OTG_HS + 0x40040000 + + 0x0 + 0x400 + registers + + + OTG_HS_EP1_OUT + USB On The Go HS End Point 1 Out + 74 + + + OTG_HS_EP1_IN + USB On The Go HS End Point 1 In + 75 + + + OTG_HS + USB On The Go HS global + interrupt + 77 + + + + OTG_HS_GOTGCTL + OTG_HS_GOTGCTL + OTG_HS control and status + register + 0x0 + 32 + 0x00000800 + + + SRQSCS + Session request success + 0 + 1 + read-only + + + SRQ + Session request + 1 + 1 + read-write + + + HNGSCS + Host negotiation success + 8 + 1 + read-only + + + HNPRQ + HNP request + 9 + 1 + read-write + + + HSHNPEN + Host set HNP enable + 10 + 1 + read-write + + + DHNPEN + Device HNP enabled + 11 + 1 + read-write + + + CIDSTS + Connector ID status + 16 + 1 + read-only + + + DBCT + Long/short debounce time + 17 + 1 + read-only + + + ASVLD + A-session valid + 18 + 1 + read-only + + + BSVLD + B-session valid + 19 + 1 + read-only + + + + + OTG_HS_GOTGINT + OTG_HS_GOTGINT + OTG_HS interrupt register + 0x4 + 32 + read-write + 0x0 + + + SEDET + Session end detected + 2 + 1 + + + SRSSCHG + Session request success status + change + 8 + 1 + + + HNSSCHG + Host negotiation success status + change + 9 + 1 + + + HNGDET + Host negotiation detected + 17 + 1 + + + ADTOCHG + A-device timeout change + 18 + 1 + + + DBCDNE + Debounce done + 19 + 1 + + + + + OTG_HS_GAHBCFG + OTG_HS_GAHBCFG + OTG_HS AHB configuration + register + 0x8 + 32 + read-write + 0x0 + + + GINT + Global interrupt mask + 0 + 1 + + + HBSTLEN + Burst length/type + 1 + 4 + + + DMAEN + DMA enable + 5 + 1 + + + TXFELVL + TxFIFO empty level + 7 + 1 + + + PTXFELVL + Periodic TxFIFO empty + level + 8 + 1 + + + + + OTG_HS_GUSBCFG + OTG_HS_GUSBCFG + OTG_HS USB configuration + register + 0xC + 32 + 0x00000A00 + + + TOCAL + FS timeout calibration + 0 + 3 + read-write + + + PHYSEL + USB 2.0 high-speed ULPI PHY or USB 1.1 + full-speed serial transceiver select + 6 + 1 + write-only + + + SRPCAP + SRP-capable + 8 + 1 + read-write + + + HNPCAP + HNP-capable + 9 + 1 + read-write + + + TRDT + USB turnaround time + 10 + 4 + read-write + + + PHYLPCS + PHY Low-power clock select + 15 + 1 + read-write + + + ULPIFSLS + ULPI FS/LS select + 17 + 1 + read-write + + + ULPIAR + ULPI Auto-resume + 18 + 1 + read-write + + + ULPICSM + ULPI Clock SuspendM + 19 + 1 + read-write + + + ULPIEVBUSD + ULPI External VBUS Drive + 20 + 1 + read-write + + + ULPIEVBUSI + ULPI external VBUS + indicator + 21 + 1 + read-write + + + TSDPS + TermSel DLine pulsing + selection + 22 + 1 + read-write + + + PCCI + Indicator complement + 23 + 1 + read-write + + + PTCI + Indicator pass through + 24 + 1 + read-write + + + ULPIIPD + ULPI interface protect + disable + 25 + 1 + read-write + + + FHMOD + Forced host mode + 29 + 1 + read-write + + + FDMOD + Forced peripheral mode + 30 + 1 + read-write + + + CTXPKT + Corrupt Tx packet + 31 + 1 + read-write + + + + + OTG_HS_GRSTCTL + OTG_HS_GRSTCTL + OTG_HS reset register + 0x10 + 32 + 0x20000000 + + + CSRST + Core soft reset + 0 + 1 + read-write + + + HSRST + HCLK soft reset + 1 + 1 + read-write + + + FCRST + Host frame counter reset + 2 + 1 + read-write + + + RXFFLSH + RxFIFO flush + 4 + 1 + read-write + + + TXFFLSH + TxFIFO flush + 5 + 1 + read-write + + + TXFNUM + TxFIFO number + 6 + 5 + read-write + + + DMAREQ + DMA request signal + 30 + 1 + read-only + + + AHBIDL + AHB master idle + 31 + 1 + read-only + + + + + OTG_HS_GINTSTS + OTG_HS_GINTSTS + OTG_HS core interrupt register + 0x14 + 32 + 0x04000020 + + + CMOD + Current mode of operation + 0 + 1 + read-only + + + MMIS + Mode mismatch interrupt + 1 + 1 + read-write + + + OTGINT + OTG interrupt + 2 + 1 + read-only + + + SOF + Start of frame + 3 + 1 + read-write + + + RXFLVL + RxFIFO nonempty + 4 + 1 + read-only + + + NPTXFE + Nonperiodic TxFIFO empty + 5 + 1 + read-only + + + GINAKEFF + Global IN nonperiodic NAK + effective + 6 + 1 + read-only + + + BOUTNAKEFF + Global OUT NAK effective + 7 + 1 + read-only + + + ESUSP + Early suspend + 10 + 1 + read-write + + + USBSUSP + USB suspend + 11 + 1 + read-write + + + USBRST + USB reset + 12 + 1 + read-write + + + ENUMDNE + Enumeration done + 13 + 1 + read-write + + + ISOODRP + Isochronous OUT packet dropped + interrupt + 14 + 1 + read-write + + + EOPF + End of periodic frame + interrupt + 15 + 1 + read-write + + + IEPINT + IN endpoint interrupt + 18 + 1 + read-only + + + OEPINT + OUT endpoint interrupt + 19 + 1 + read-only + + + IISOIXFR + Incomplete isochronous IN + transfer + 20 + 1 + read-write + + + PXFR_INCOMPISOOUT + Incomplete periodic + transfer + 21 + 1 + read-write + + + DATAFSUSP + Data fetch suspended + 22 + 1 + read-write + + + HPRTINT + Host port interrupt + 24 + 1 + read-only + + + HCINT + Host channels interrupt + 25 + 1 + read-only + + + PTXFE + Periodic TxFIFO empty + 26 + 1 + read-only + + + CIDSCHG + Connector ID status change + 28 + 1 + read-write + + + DISCINT + Disconnect detected + interrupt + 29 + 1 + read-write + + + SRQINT + Session request/new session detected + interrupt + 30 + 1 + read-write + + + WKUINT + Resume/remote wakeup detected + interrupt + 31 + 1 + read-write + + + + + OTG_HS_GINTMSK + OTG_HS_GINTMSK + OTG_HS interrupt mask register + 0x18 + 32 + 0x0 + + + MMISM + Mode mismatch interrupt + mask + 1 + 1 + read-write + + + OTGINT + OTG interrupt mask + 2 + 1 + read-write + + + SOFM + Start of frame mask + 3 + 1 + read-write + + + RXFLVLM + Receive FIFO nonempty mask + 4 + 1 + read-write + + + NPTXFEM + Nonperiodic TxFIFO empty + mask + 5 + 1 + read-write + + + GINAKEFFM + Global nonperiodic IN NAK effective + mask + 6 + 1 + read-write + + + GONAKEFFM + Global OUT NAK effective + mask + 7 + 1 + read-write + + + ESUSPM + Early suspend mask + 10 + 1 + read-write + + + USBSUSPM + USB suspend mask + 11 + 1 + read-write + + + USBRST + USB reset mask + 12 + 1 + read-write + + + ENUMDNEM + Enumeration done mask + 13 + 1 + read-write + + + ISOODRPM + Isochronous OUT packet dropped interrupt + mask + 14 + 1 + read-write + + + EOPFM + End of periodic frame interrupt + mask + 15 + 1 + read-write + + + EPMISM + Endpoint mismatch interrupt + mask + 17 + 1 + read-write + + + IEPINT + IN endpoints interrupt + mask + 18 + 1 + read-write + + + OEPINT + OUT endpoints interrupt + mask + 19 + 1 + read-write + + + IISOIXFRM + Incomplete isochronous IN transfer + mask + 20 + 1 + read-write + + + PXFRM_IISOOXFRM + Incomplete periodic transfer + mask + 21 + 1 + read-write + + + FSUSPM + Data fetch suspended mask + 22 + 1 + read-write + + + PRTIM + Host port interrupt mask + 24 + 1 + read-only + + + HCIM + Host channels interrupt + mask + 25 + 1 + read-write + + + PTXFEM + Periodic TxFIFO empty mask + 26 + 1 + read-write + + + CIDSCHGM + Connector ID status change + mask + 28 + 1 + read-write + + + DISCINT + Disconnect detected interrupt + mask + 29 + 1 + read-write + + + SRQIM + Session request/new session detected + interrupt mask + 30 + 1 + read-write + + + WUIM + Resume/remote wakeup detected interrupt + mask + 31 + 1 + read-write + + + + + OTG_HS_GRXSTSR_Host + OTG_HS_GRXSTSR_Host + OTG_HS Receive status debug read register + (host mode) + 0x1C + 32 + read-only + 0x0 + + + CHNUM + Channel number + 0 + 4 + + + BCNT + Byte count + 4 + 11 + + + DPID + Data PID + 15 + 2 + + + PKTSTS + Packet status + 17 + 4 + + + + + OTG_HS_GRXSTSP_Host + OTG_HS_GRXSTSP_Host + OTG_HS status read and pop register (host + mode) + 0x20 + 32 + read-only + 0x0 + + + CHNUM + Channel number + 0 + 4 + + + BCNT + Byte count + 4 + 11 + + + DPID + Data PID + 15 + 2 + + + PKTSTS + Packet status + 17 + 4 + + + + + OTG_HS_GRXFSIZ + OTG_HS_GRXFSIZ + OTG_HS Receive FIFO size + register + 0x24 + 32 + read-write + 0x00000200 + + + RXFD + RxFIFO depth + 0 + 16 + + + + + OTG_HS_GNPTXFSIZ_Host + OTG_HS_GNPTXFSIZ_Host + OTG_HS nonperiodic transmit FIFO size + register (host mode) + 0x28 + 32 + read-write + 0x00000200 + + + NPTXFSA + Nonperiodic transmit RAM start + address + 0 + 16 + + + NPTXFD + Nonperiodic TxFIFO depth + 16 + 16 + + + + + OTG_HS_TX0FSIZ_Peripheral + OTG_HS_TX0FSIZ_Peripheral + Endpoint 0 transmit FIFO size (peripheral + mode) + OTG_HS_GNPTXFSIZ_Host + 0x28 + 32 + read-write + 0x00000200 + + + TX0FSA + Endpoint 0 transmit RAM start + address + 0 + 16 + + + TX0FD + Endpoint 0 TxFIFO depth + 16 + 16 + + + + + OTG_HS_GNPTXSTS + OTG_HS_GNPTXSTS + OTG_HS nonperiodic transmit FIFO/queue + status register + 0x2C + 32 + read-only + 0x00080200 + + + NPTXFSAV + Nonperiodic TxFIFO space + available + 0 + 16 + + + NPTQXSAV + Nonperiodic transmit request queue space + available + 16 + 8 + + + NPTXQTOP + Top of the nonperiodic transmit request + queue + 24 + 7 + + + + + OTG_HS_GCCFG + OTG_HS_GCCFG + OTG_HS general core configuration + register + 0x38 + 32 + read-write + 0x0 + + + PWRDWN + Power down + 16 + 1 + + + I2CPADEN + Enable I2C bus connection for the + external I2C PHY interface + 17 + 1 + + + VBUSASEN + Enable the VBUS sensing + device + 18 + 1 + + + VBUSBSEN + Enable the VBUS sensing + device + 19 + 1 + + + SOFOUTEN + SOF output enable + 20 + 1 + + + NOVBUSSENS + VBUS sensing disable + option + 21 + 1 + + + + + OTG_HS_CID + OTG_HS_CID + OTG_HS core ID register + 0x3C + 32 + read-write + 0x00001200 + + + PRODUCT_ID + Product ID field + 0 + 32 + + + + + OTG_HS_HPTXFSIZ + OTG_HS_HPTXFSIZ + OTG_HS Host periodic transmit FIFO size + register + 0x100 + 32 + read-write + 0x02000600 + + + PTXSA + Host periodic TxFIFO start + address + 0 + 16 + + + PTXFD + Host periodic TxFIFO depth + 16 + 16 + + + + + OTG_HS_DIEPTXF1 + OTG_HS_DIEPTXF1 + OTG_HS device IN endpoint transmit FIFO size + register + 0x104 + 32 + read-write + 0x02000400 + + + INEPTXSA + IN endpoint FIFOx transmit RAM start + address + 0 + 16 + + + INEPTXFD + IN endpoint TxFIFO depth + 16 + 16 + + + + + OTG_HS_DIEPTXF2 + OTG_HS_DIEPTXF2 + OTG_HS device IN endpoint transmit FIFO size + register + 0x108 + 32 + read-write + 0x02000400 + + + INEPTXSA + IN endpoint FIFOx transmit RAM start + address + 0 + 16 + + + INEPTXFD + IN endpoint TxFIFO depth + 16 + 16 + + + + + OTG_HS_DIEPTXF3 + OTG_HS_DIEPTXF3 + OTG_HS device IN endpoint transmit FIFO size + register + 0x11C + 32 + read-write + 0x02000400 + + + INEPTXSA + IN endpoint FIFOx transmit RAM start + address + 0 + 16 + + + INEPTXFD + IN endpoint TxFIFO depth + 16 + 16 + + + + + OTG_HS_DIEPTXF4 + OTG_HS_DIEPTXF4 + OTG_HS device IN endpoint transmit FIFO size + register + 0x120 + 32 + read-write + 0x02000400 + + + INEPTXSA + IN endpoint FIFOx transmit RAM start + address + 0 + 16 + + + INEPTXFD + IN endpoint TxFIFO depth + 16 + 16 + + + + + OTG_HS_DIEPTXF5 + OTG_HS_DIEPTXF5 + OTG_HS device IN endpoint transmit FIFO size + register + 0x124 + 32 + read-write + 0x02000400 + + + INEPTXSA + IN endpoint FIFOx transmit RAM start + address + 0 + 16 + + + INEPTXFD + IN endpoint TxFIFO depth + 16 + 16 + + + + + OTG_HS_DIEPTXF6 + OTG_HS_DIEPTXF6 + OTG_HS device IN endpoint transmit FIFO size + register + 0x128 + 32 + read-write + 0x02000400 + + + INEPTXSA + IN endpoint FIFOx transmit RAM start + address + 0 + 16 + + + INEPTXFD + IN endpoint TxFIFO depth + 16 + 16 + + + + + OTG_HS_DIEPTXF7 + OTG_HS_DIEPTXF7 + OTG_HS device IN endpoint transmit FIFO size + register + 0x12C + 32 + read-write + 0x02000400 + + + INEPTXSA + IN endpoint FIFOx transmit RAM start + address + 0 + 16 + + + INEPTXFD + IN endpoint TxFIFO depth + 16 + 16 + + + + + OTG_HS_GRXSTSR_Peripheral + OTG_HS_GRXSTSR_Peripheral + OTG_HS Receive status debug read register + (peripheral mode mode) + OTG_HS_GRXSTSR_Host + 0x1C + 32 + read-only + 0x0 + + + EPNUM + Endpoint number + 0 + 4 + + + BCNT + Byte count + 4 + 11 + + + DPID + Data PID + 15 + 2 + + + PKTSTS + Packet status + 17 + 4 + + + FRMNUM + Frame number + 21 + 4 + + + + + OTG_HS_GRXSTSP_Peripheral + OTG_HS_GRXSTSP_Peripheral + OTG_HS status read and pop register + (peripheral mode) + OTG_HS_GRXSTSP_Host + 0x20 + 32 + read-only + 0x0 + + + EPNUM + Endpoint number + 0 + 4 + + + BCNT + Byte count + 4 + 11 + + + DPID + Data PID + 15 + 2 + + + PKTSTS + Packet status + 17 + 4 + + + FRMNUM + Frame number + 21 + 4 + + + + + + + OTG_HS_HOST + USB on the go high speed + USB_OTG_HS + 0x40040400 + + 0x0 + 0x400 + registers + + + + OTG_HS_HCFG + OTG_HS_HCFG + OTG_HS host configuration + register + 0x0 + 32 + 0x0 + + + FSLSPCS + FS/LS PHY clock select + 0 + 2 + read-write + + + FSLSS + FS- and LS-only support + 2 + 1 + read-only + + + + + OTG_HS_HFIR + OTG_HS_HFIR + OTG_HS Host frame interval + register + 0x4 + 32 + read-write + 0x0000EA60 + + + FRIVL + Frame interval + 0 + 16 + + + RLDCTRL + Reload control + 16 + 1 + + + + + OTG_HS_HFNUM + OTG_HS_HFNUM + OTG_HS host frame number/frame time + remaining register + 0x8 + 32 + read-only + 0x00003FFF + + + FRNUM + Frame number + 0 + 16 + + + FTREM + Frame time remaining + 16 + 16 + + + + + OTG_HS_HPTXSTS + OTG_HS_HPTXSTS + OTG_HS_Host periodic transmit FIFO/queue + status register + 0x10 + 32 + 0x00080100 + + + PTXFSAVL + Periodic transmit data FIFO space + available + 0 + 16 + read-write + + + PTXQSAV + Periodic transmit request queue space + available + 16 + 8 + read-only + + + PTXQTOP + Top of the periodic transmit request + queue + 24 + 8 + read-only + + + + + OTG_HS_HAINT + OTG_HS_HAINT + OTG_HS Host all channels interrupt + register + 0x14 + 32 + read-only + 0x0 + + + HAINT + Channel interrupts + 0 + 16 + + + + + OTG_HS_HAINTMSK + OTG_HS_HAINTMSK + OTG_HS host all channels interrupt mask + register + 0x18 + 32 + read-write + 0x0 + + + HAINTM + Channel interrupt mask + 0 + 16 + + + + + OTG_HS_HPRT + OTG_HS_HPRT + OTG_HS host port control and status + register + 0x40 + 32 + 0x0 + + + PCSTS + Port connect status + 0 + 1 + read-only + + + PCDET + Port connect detected + 1 + 1 + read-write + + + PENA + Port enable + 2 + 1 + read-write + + + PENCHNG + Port enable/disable change + 3 + 1 + read-write + + + POCA + Port overcurrent active + 4 + 1 + read-only + + + POCCHNG + Port overcurrent change + 5 + 1 + read-write + + + PRES + Port resume + 6 + 1 + read-write + + + PSUSP + Port suspend + 7 + 1 + read-write + + + PRST + Port reset + 8 + 1 + read-write + + + PLSTS + Port line status + 10 + 2 + read-only + + + PPWR + Port power + 12 + 1 + read-write + + + PTCTL + Port test control + 13 + 4 + read-write + + + PSPD + Port speed + 17 + 2 + read-only + + + + + OTG_HS_HCCHAR0 + OTG_HS_HCCHAR0 + OTG_HS host channel-0 characteristics + register + 0x100 + 32 + read-write + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multi Count (MC) / Error Count + (EC) + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + OTG_HS_HCCHAR1 + OTG_HS_HCCHAR1 + OTG_HS host channel-1 characteristics + register + 0x120 + 32 + read-write + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multi Count (MC) / Error Count + (EC) + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + OTG_HS_HCCHAR2 + OTG_HS_HCCHAR2 + OTG_HS host channel-2 characteristics + register + 0x140 + 32 + read-write + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multi Count (MC) / Error Count + (EC) + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + OTG_HS_HCCHAR3 + OTG_HS_HCCHAR3 + OTG_HS host channel-3 characteristics + register + 0x160 + 32 + read-write + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multi Count (MC) / Error Count + (EC) + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + OTG_HS_HCCHAR4 + OTG_HS_HCCHAR4 + OTG_HS host channel-4 characteristics + register + 0x180 + 32 + read-write + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multi Count (MC) / Error Count + (EC) + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + OTG_HS_HCCHAR5 + OTG_HS_HCCHAR5 + OTG_HS host channel-5 characteristics + register + 0x1A0 + 32 + read-write + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multi Count (MC) / Error Count + (EC) + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + OTG_HS_HCCHAR6 + OTG_HS_HCCHAR6 + OTG_HS host channel-6 characteristics + register + 0x1C0 + 32 + read-write + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multi Count (MC) / Error Count + (EC) + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + OTG_HS_HCCHAR7 + OTG_HS_HCCHAR7 + OTG_HS host channel-7 characteristics + register + 0x1E0 + 32 + read-write + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multi Count (MC) / Error Count + (EC) + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + OTG_HS_HCCHAR8 + OTG_HS_HCCHAR8 + OTG_HS host channel-8 characteristics + register + 0x200 + 32 + read-write + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multi Count (MC) / Error Count + (EC) + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + OTG_HS_HCCHAR9 + OTG_HS_HCCHAR9 + OTG_HS host channel-9 characteristics + register + 0x220 + 32 + read-write + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multi Count (MC) / Error Count + (EC) + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + OTG_HS_HCCHAR10 + OTG_HS_HCCHAR10 + OTG_HS host channel-10 characteristics + register + 0x240 + 32 + read-write + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multi Count (MC) / Error Count + (EC) + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + OTG_HS_HCCHAR11 + OTG_HS_HCCHAR11 + OTG_HS host channel-11 characteristics + register + 0x260 + 32 + read-write + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multi Count (MC) / Error Count + (EC) + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + OTG_HS_HCCHAR12 + OTG_HS_HCCHAR12 + OTG_HS host channel-12 characteristics + register + 0x280 + 32 + read-write + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multi Count (MC) / Error Count + (EC) + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + OTG_HS_HCCHAR13 + OTG_HS_HCCHAR13 + OTG_HS host channel-13 characteristics + register + 0x2A0 + 32 + read-write + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multi Count (MC) / Error Count + (EC) + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + OTG_HS_HCCHAR14 + OTG_HS_HCCHAR14 + OTG_HS host channel-14 characteristics + register + 0x2C0 + 32 + read-write + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multi Count (MC) / Error Count + (EC) + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + OTG_HS_HCCHAR15 + OTG_HS_HCCHAR15 + OTG_HS host channel-15 characteristics + register + 0x2E0 + 32 + read-write + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + + + EPNUM + Endpoint number + 11 + 4 + + + EPDIR + Endpoint direction + 15 + 1 + + + LSDEV + Low-speed device + 17 + 1 + + + EPTYP + Endpoint type + 18 + 2 + + + MCNT + Multi Count (MC) / Error Count + (EC) + 20 + 2 + + + DAD + Device address + 22 + 7 + + + ODDFRM + Odd frame + 29 + 1 + + + CHDIS + Channel disable + 30 + 1 + + + CHENA + Channel enable + 31 + 1 + + + + + OTG_HS_HCSPLT0 + OTG_HS_HCSPLT0 + OTG_HS host channel-0 split control + register + 0x104 + 32 + read-write + 0x0 + + + PRTADDR + Port address + 0 + 7 + + + HUBADDR + Hub address + 7 + 7 + + + XACTPOS + XACTPOS + 14 + 2 + + + COMPLSPLT + Do complete split + 16 + 1 + + + SPLITEN + Split enable + 31 + 1 + + + + + OTG_HS_HCSPLT1 + OTG_HS_HCSPLT1 + OTG_HS host channel-1 split control + register + 0x124 + 32 + read-write + 0x0 + + + PRTADDR + Port address + 0 + 7 + + + HUBADDR + Hub address + 7 + 7 + + + XACTPOS + XACTPOS + 14 + 2 + + + COMPLSPLT + Do complete split + 16 + 1 + + + SPLITEN + Split enable + 31 + 1 + + + + + OTG_HS_HCSPLT2 + OTG_HS_HCSPLT2 + OTG_HS host channel-2 split control + register + 0x144 + 32 + read-write + 0x0 + + + PRTADDR + Port address + 0 + 7 + + + HUBADDR + Hub address + 7 + 7 + + + XACTPOS + XACTPOS + 14 + 2 + + + COMPLSPLT + Do complete split + 16 + 1 + + + SPLITEN + Split enable + 31 + 1 + + + + + OTG_HS_HCSPLT3 + OTG_HS_HCSPLT3 + OTG_HS host channel-3 split control + register + 0x164 + 32 + read-write + 0x0 + + + PRTADDR + Port address + 0 + 7 + + + HUBADDR + Hub address + 7 + 7 + + + XACTPOS + XACTPOS + 14 + 2 + + + COMPLSPLT + Do complete split + 16 + 1 + + + SPLITEN + Split enable + 31 + 1 + + + + + OTG_HS_HCSPLT4 + OTG_HS_HCSPLT4 + OTG_HS host channel-4 split control + register + 0x184 + 32 + read-write + 0x0 + + + PRTADDR + Port address + 0 + 7 + + + HUBADDR + Hub address + 7 + 7 + + + XACTPOS + XACTPOS + 14 + 2 + + + COMPLSPLT + Do complete split + 16 + 1 + + + SPLITEN + Split enable + 31 + 1 + + + + + OTG_HS_HCSPLT5 + OTG_HS_HCSPLT5 + OTG_HS host channel-5 split control + register + 0x1A4 + 32 + read-write + 0x0 + + + PRTADDR + Port address + 0 + 7 + + + HUBADDR + Hub address + 7 + 7 + + + XACTPOS + XACTPOS + 14 + 2 + + + COMPLSPLT + Do complete split + 16 + 1 + + + SPLITEN + Split enable + 31 + 1 + + + + + OTG_HS_HCSPLT6 + OTG_HS_HCSPLT6 + OTG_HS host channel-6 split control + register + 0x1C4 + 32 + read-write + 0x0 + + + PRTADDR + Port address + 0 + 7 + + + HUBADDR + Hub address + 7 + 7 + + + XACTPOS + XACTPOS + 14 + 2 + + + COMPLSPLT + Do complete split + 16 + 1 + + + SPLITEN + Split enable + 31 + 1 + + + + + OTG_HS_HCSPLT7 + OTG_HS_HCSPLT7 + OTG_HS host channel-7 split control + register + 0x1E4 + 32 + read-write + 0x0 + + + PRTADDR + Port address + 0 + 7 + + + HUBADDR + Hub address + 7 + 7 + + + XACTPOS + XACTPOS + 14 + 2 + + + COMPLSPLT + Do complete split + 16 + 1 + + + SPLITEN + Split enable + 31 + 1 + + + + + OTG_HS_HCSPLT8 + OTG_HS_HCSPLT8 + OTG_HS host channel-8 split control + register + 0x204 + 32 + read-write + 0x0 + + + PRTADDR + Port address + 0 + 7 + + + HUBADDR + Hub address + 7 + 7 + + + XACTPOS + XACTPOS + 14 + 2 + + + COMPLSPLT + Do complete split + 16 + 1 + + + SPLITEN + Split enable + 31 + 1 + + + + + OTG_HS_HCSPLT9 + OTG_HS_HCSPLT9 + OTG_HS host channel-9 split control + register + 0x224 + 32 + read-write + 0x0 + + + PRTADDR + Port address + 0 + 7 + + + HUBADDR + Hub address + 7 + 7 + + + XACTPOS + XACTPOS + 14 + 2 + + + COMPLSPLT + Do complete split + 16 + 1 + + + SPLITEN + Split enable + 31 + 1 + + + + + OTG_HS_HCSPLT10 + OTG_HS_HCSPLT10 + OTG_HS host channel-10 split control + register + 0x244 + 32 + read-write + 0x0 + + + PRTADDR + Port address + 0 + 7 + + + HUBADDR + Hub address + 7 + 7 + + + XACTPOS + XACTPOS + 14 + 2 + + + COMPLSPLT + Do complete split + 16 + 1 + + + SPLITEN + Split enable + 31 + 1 + + + + + OTG_HS_HCSPLT11 + OTG_HS_HCSPLT11 + OTG_HS host channel-11 split control + register + 0x264 + 32 + read-write + 0x0 + + + PRTADDR + Port address + 0 + 7 + + + HUBADDR + Hub address + 7 + 7 + + + XACTPOS + XACTPOS + 14 + 2 + + + COMPLSPLT + Do complete split + 16 + 1 + + + SPLITEN + Split enable + 31 + 1 + + + + + OTG_HS_HCSPLT12 + OTG_HS_HCSPLT12 + OTG_HS host channel-12 split control + register + 0x284 + 32 + read-write + 0x0 + + + PRTADDR + Port address + 0 + 7 + + + HUBADDR + Hub address + 7 + 7 + + + XACTPOS + XACTPOS + 14 + 2 + + + COMPLSPLT + Do complete split + 16 + 1 + + + SPLITEN + Split enable + 31 + 1 + + + + + OTG_HS_HCSPLT13 + OTG_HS_HCSPLT13 + OTG_HS host channel-13 split control + register + 0x2A4 + 32 + read-write + 0x0 + + + PRTADDR + Port address + 0 + 7 + + + HUBADDR + Hub address + 7 + 7 + + + XACTPOS + XACTPOS + 14 + 2 + + + COMPLSPLT + Do complete split + 16 + 1 + + + SPLITEN + Split enable + 31 + 1 + + + + + OTG_HS_HCSPLT14 + OTG_HS_HCSPLT14 + OTG_HS host channel-14 split control + register + 0x2C4 + 32 + read-write + 0x0 + + + PRTADDR + Port address + 0 + 7 + + + HUBADDR + Hub address + 7 + 7 + + + XACTPOS + XACTPOS + 14 + 2 + + + COMPLSPLT + Do complete split + 16 + 1 + + + SPLITEN + Split enable + 31 + 1 + + + + + OTG_HS_HCSPLT15 + OTG_HS_HCSPLT15 + OTG_HS host channel-15 split control + register + 0x2E4 + 32 + read-write + 0x0 + + + PRTADDR + Port address + 0 + 7 + + + HUBADDR + Hub address + 7 + 7 + + + XACTPOS + XACTPOS + 14 + 2 + + + COMPLSPLT + Do complete split + 16 + 1 + + + SPLITEN + Split enable + 31 + 1 + + + + + OTG_HS_HCINT0 + OTG_HS_HCINT0 + OTG_HS host channel-11 interrupt + register + 0x108 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + OTG_HS_HCINT1 + OTG_HS_HCINT1 + OTG_HS host channel-1 interrupt + register + 0x128 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + AHBERR + AHB error + 2 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + NYET + Response received + interrupt + 6 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + OTG_HS_HCINT2 + OTG_HS_HCINT2 + OTG_HS host channel-2 interrupt + register + 0x148 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + AHBERR + AHB error + 2 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + NYET + Response received + interrupt + 6 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + OTG_HS_HCINT3 + OTG_HS_HCINT3 + OTG_HS host channel-3 interrupt + register + 0x168 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + AHBERR + AHB error + 2 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + NYET + Response received + interrupt + 6 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + OTG_HS_HCINT4 + OTG_HS_HCINT4 + OTG_HS host channel-4 interrupt + register + 0x188 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + AHBERR + AHB error + 2 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + NYET + Response received + interrupt + 6 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + OTG_HS_HCINT5 + OTG_HS_HCINT5 + OTG_HS host channel-5 interrupt + register + 0x1A8 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + AHBERR + AHB error + 2 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + NYET + Response received + interrupt + 6 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + OTG_HS_HCINT6 + OTG_HS_HCINT6 + OTG_HS host channel-6 interrupt + register + 0x1C8 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + AHBERR + AHB error + 2 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + NYET + Response received + interrupt + 6 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + OTG_HS_HCINT7 + OTG_HS_HCINT7 + OTG_HS host channel-7 interrupt + register + 0x1E8 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + AHBERR + AHB error + 2 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + NYET + Response received + interrupt + 6 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + OTG_HS_HCINT8 + OTG_HS_HCINT8 + OTG_HS host channel-8 interrupt + register + 0x208 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + AHBERR + AHB error + 2 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + NYET + Response received + interrupt + 6 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + OTG_HS_HCINT9 + OTG_HS_HCINT9 + OTG_HS host channel-9 interrupt + register + 0x228 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + AHBERR + AHB error + 2 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + NYET + Response received + interrupt + 6 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + OTG_HS_HCINT10 + OTG_HS_HCINT10 + OTG_HS host channel-10 interrupt + register + 0x248 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + AHBERR + AHB error + 2 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + NYET + Response received + interrupt + 6 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + OTG_HS_HCINT11 + OTG_HS_HCINT11 + OTG_HS host channel-11 interrupt + register + 0x268 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + AHBERR + AHB error + 2 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + NYET + Response received + interrupt + 6 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + OTG_HS_HCINT12 + OTG_HS_HCINT12 + OTG_HS host channel-12 interrupt + register + 0x288 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + AHBERR + AHB error + 2 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + NYET + Response received + interrupt + 6 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + OTG_HS_HCINT13 + OTG_HS_HCINT13 + OTG_HS host channel-13 interrupt + register + 0x2A8 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + AHBERR + AHB error + 2 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + NYET + Response received + interrupt + 6 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + OTG_HS_HCINT14 + OTG_HS_HCINT14 + OTG_HS host channel-14 interrupt + register + 0x2C8 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + AHBERR + AHB error + 2 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + NYET + Response received + interrupt + 6 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + OTG_HS_HCINT15 + OTG_HS_HCINT15 + OTG_HS host channel-15 interrupt + register + 0x2E8 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + 0 + 1 + + + CHH + Channel halted + 1 + 1 + + + AHBERR + AHB error + 2 + 1 + + + STALL + STALL response received + interrupt + 3 + 1 + + + NAK + NAK response received + interrupt + 4 + 1 + + + ACK + ACK response received/transmitted + interrupt + 5 + 1 + + + NYET + Response received + interrupt + 6 + 1 + + + TXERR + Transaction error + 7 + 1 + + + BBERR + Babble error + 8 + 1 + + + FRMOR + Frame overrun + 9 + 1 + + + DTERR + Data toggle error + 10 + 1 + + + + + OTG_HS_HCINTMSK0 + OTG_HS_HCINTMSK0 + OTG_HS host channel-11 interrupt mask + register + 0x10C + 32 + read-write + 0x0 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + AHBERRM + AHB error + 2 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + OTG_HS_HCINTMSK1 + OTG_HS_HCINTMSK1 + OTG_HS host channel-1 interrupt mask + register + 0x12C + 32 + read-write + 0x0 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + AHBERRM + AHB error + 2 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + OTG_HS_HCINTMSK2 + OTG_HS_HCINTMSK2 + OTG_HS host channel-2 interrupt mask + register + 0x14C + 32 + read-write + 0x0 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + AHBERRM + AHB error + 2 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + OTG_HS_HCINTMSK3 + OTG_HS_HCINTMSK3 + OTG_HS host channel-3 interrupt mask + register + 0x16C + 32 + read-write + 0x0 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + AHBERRM + AHB error + 2 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + OTG_HS_HCINTMSK4 + OTG_HS_HCINTMSK4 + OTG_HS host channel-4 interrupt mask + register + 0x18C + 32 + read-write + 0x0 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + AHBERRM + AHB error + 2 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + OTG_HS_HCINTMSK5 + OTG_HS_HCINTMSK5 + OTG_HS host channel-5 interrupt mask + register + 0x1AC + 32 + read-write + 0x0 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + AHBERRM + AHB error + 2 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + OTG_HS_HCINTMSK6 + OTG_HS_HCINTMSK6 + OTG_HS host channel-6 interrupt mask + register + 0x1CC + 32 + read-write + 0x0 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + AHBERRM + AHB error + 2 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + OTG_HS_HCINTMSK7 + OTG_HS_HCINTMSK7 + OTG_HS host channel-7 interrupt mask + register + 0x1EC + 32 + read-write + 0x0 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + AHBERRM + AHB error + 2 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + OTG_HS_HCINTMSK8 + OTG_HS_HCINTMSK8 + OTG_HS host channel-8 interrupt mask + register + 0x20C + 32 + read-write + 0x0 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + AHBERRM + AHB error + 2 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + OTG_HS_HCINTMSK9 + OTG_HS_HCINTMSK9 + OTG_HS host channel-9 interrupt mask + register + 0x22C + 32 + read-write + 0x0 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + AHBERRM + AHB error + 2 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + OTG_HS_HCINTMSK10 + OTG_HS_HCINTMSK10 + OTG_HS host channel-10 interrupt mask + register + 0x24C + 32 + read-write + 0x0 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + AHBERRM + AHB error + 2 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + OTG_HS_HCINTMSK11 + OTG_HS_HCINTMSK11 + OTG_HS host channel-11 interrupt mask + register + 0x26C + 32 + read-write + 0x0 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + AHBERRM + AHB error + 2 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + OTG_HS_HCINTMSK12 + OTG_HS_HCINTMSK12 + OTG_HS host channel-12 interrupt mask + register + 0x28C + 32 + read-write + 0x0 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + AHBERRM + AHB error + 2 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + OTG_HS_HCINTMSK13 + OTG_HS_HCINTMSK13 + OTG_HS host channel-13 interrupt mask + register + 0x2AC + 32 + read-write + 0x0 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + AHBERRM + AHB error + 2 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + OTG_HS_HCINTMSK14 + OTG_HS_HCINTMSK14 + OTG_HS host channel-14 interrupt mask + register + 0x2CC + 32 + read-write + 0x0 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + AHBERRM + AHB error + 2 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + OTG_HS_HCINTMSK15 + OTG_HS_HCINTMSK15 + OTG_HS host channel-15 interrupt mask + register + 0x2EC + 32 + read-write + 0x0 + + + XFRCM + Transfer completed mask + 0 + 1 + + + CHHM + Channel halted mask + 1 + 1 + + + AHBERRM + AHB error + 2 + 1 + + + STALLM + STALL response received interrupt + mask + 3 + 1 + + + NAKM + NAK response received interrupt + mask + 4 + 1 + + + ACKM + ACK response received/transmitted + interrupt mask + 5 + 1 + + + NYET + response received interrupt + mask + 6 + 1 + + + TXERRM + Transaction error mask + 7 + 1 + + + BBERRM + Babble error mask + 8 + 1 + + + FRMORM + Frame overrun mask + 9 + 1 + + + DTERRM + Data toggle error mask + 10 + 1 + + + + + OTG_HS_HCTSIZ0 + OTG_HS_HCTSIZ0 + OTG_HS host channel-11 transfer size + register + 0x110 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + OTG_HS_HCTSIZ1 + OTG_HS_HCTSIZ1 + OTG_HS host channel-1 transfer size + register + 0x130 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + OTG_HS_HCTSIZ2 + OTG_HS_HCTSIZ2 + OTG_HS host channel-2 transfer size + register + 0x150 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + OTG_HS_HCTSIZ3 + OTG_HS_HCTSIZ3 + OTG_HS host channel-3 transfer size + register + 0x170 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + OTG_HS_HCTSIZ4 + OTG_HS_HCTSIZ4 + OTG_HS host channel-4 transfer size + register + 0x190 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + OTG_HS_HCTSIZ5 + OTG_HS_HCTSIZ5 + OTG_HS host channel-5 transfer size + register + 0x1B0 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + OTG_HS_HCTSIZ6 + OTG_HS_HCTSIZ6 + OTG_HS host channel-6 transfer size + register + 0x1D0 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + OTG_HS_HCTSIZ7 + OTG_HS_HCTSIZ7 + OTG_HS host channel-7 transfer size + register + 0x1F0 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + OTG_HS_HCTSIZ8 + OTG_HS_HCTSIZ8 + OTG_HS host channel-8 transfer size + register + 0x210 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + OTG_HS_HCTSIZ9 + OTG_HS_HCTSIZ9 + OTG_HS host channel-9 transfer size + register + 0x230 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + OTG_HS_HCTSIZ10 + OTG_HS_HCTSIZ10 + OTG_HS host channel-10 transfer size + register + 0x250 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + OTG_HS_HCTSIZ11 + OTG_HS_HCTSIZ11 + OTG_HS host channel-11 transfer size + register + 0x270 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + OTG_HS_HCTSIZ12 + OTG_HS_HCTSIZ12 + OTG_HS host channel-12 transfer size + register + 0x290 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + OTG_HS_HCTSIZ13 + OTG_HS_HCTSIZ13 + OTG_HS host channel-13 transfer size + register + 0x2B0 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + OTG_HS_HCTSIZ14 + OTG_HS_HCTSIZ14 + OTG_HS host channel-14 transfer size + register + 0x2D0 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + OTG_HS_HCTSIZ15 + OTG_HS_HCTSIZ15 + OTG_HS host channel-15 transfer size + register + 0x2F0 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + DPID + Data PID + 29 + 2 + + + + + OTG_HS_HCDMA0 + OTG_HS_HCDMA0 + OTG_HS host channel-0 DMA address + register + 0x114 + 32 + read-write + 0x0 + + + DMAADDR + DMA address + 0 + 32 + + + + + OTG_HS_HCDMA1 + OTG_HS_HCDMA1 + OTG_HS host channel-1 DMA address + register + 0x134 + 32 + read-write + 0x0 + + + DMAADDR + DMA address + 0 + 32 + + + + + OTG_HS_HCDMA2 + OTG_HS_HCDMA2 + OTG_HS host channel-2 DMA address + register + 0x154 + 32 + read-write + 0x0 + + + DMAADDR + DMA address + 0 + 32 + + + + + OTG_HS_HCDMA3 + OTG_HS_HCDMA3 + OTG_HS host channel-3 DMA address + register + 0x174 + 32 + read-write + 0x0 + + + DMAADDR + DMA address + 0 + 32 + + + + + OTG_HS_HCDMA4 + OTG_HS_HCDMA4 + OTG_HS host channel-4 DMA address + register + 0x194 + 32 + read-write + 0x0 + + + DMAADDR + DMA address + 0 + 32 + + + + + OTG_HS_HCDMA5 + OTG_HS_HCDMA5 + OTG_HS host channel-5 DMA address + register + 0x1B4 + 32 + read-write + 0x0 + + + DMAADDR + DMA address + 0 + 32 + + + + + OTG_HS_HCDMA6 + OTG_HS_HCDMA6 + OTG_HS host channel-6 DMA address + register + 0x1D4 + 32 + read-write + 0x0 + + + DMAADDR + DMA address + 0 + 32 + + + + + OTG_HS_HCDMA7 + OTG_HS_HCDMA7 + OTG_HS host channel-7 DMA address + register + 0x1F4 + 32 + read-write + 0x0 + + + DMAADDR + DMA address + 0 + 32 + + + + + OTG_HS_HCDMA8 + OTG_HS_HCDMA8 + OTG_HS host channel-8 DMA address + register + 0x214 + 32 + read-write + 0x0 + + + DMAADDR + DMA address + 0 + 32 + + + + + OTG_HS_HCDMA9 + OTG_HS_HCDMA9 + OTG_HS host channel-9 DMA address + register + 0x234 + 32 + read-write + 0x0 + + + DMAADDR + DMA address + 0 + 32 + + + + + OTG_HS_HCDMA10 + OTG_HS_HCDMA10 + OTG_HS host channel-10 DMA address + register + 0x254 + 32 + read-write + 0x0 + + + DMAADDR + DMA address + 0 + 32 + + + + + OTG_HS_HCDMA11 + OTG_HS_HCDMA11 + OTG_HS host channel-11 DMA address + register + 0x274 + 32 + read-write + 0x0 + + + DMAADDR + DMA address + 0 + 32 + + + + + OTG_HS_HCDMA12 + OTG_HS_HCDMA12 + OTG_HS host channel-12 DMA address + register + 0x294 + 32 + read-write + 0x0 + + + DMAADDR + DMA address + 0 + 32 + + + + + OTG_HS_HCDMA13 + OTG_HS_HCDMA13 + OTG_HS host channel-13 DMA address + register + 0x2B4 + 32 + read-write + 0x0 + + + DMAADDR + DMA address + 0 + 32 + + + + + OTG_HS_HCDMA14 + OTG_HS_HCDMA14 + OTG_HS host channel-14 DMA address + register + 0x2D4 + 32 + read-write + 0x0 + + + DMAADDR + DMA address + 0 + 32 + + + + + OTG_HS_HCDMA15 + OTG_HS_HCDMA15 + OTG_HS host channel-15 DMA address + register + 0x2F4 + 32 + read-write + 0x0 + + + DMAADDR + DMA address + 0 + 32 + + + + + + + OTG_HS_DEVICE + USB on the go high speed + USB_OTG_HS + 0x40040800 + + 0x0 + 0x400 + registers + + + + OTG_HS_DCFG + OTG_HS_DCFG + OTG_HS device configuration + register + 0x0 + 32 + read-write + 0x02200000 + + + DSPD + Device speed + 0 + 2 + + + NZLSOHSK + Nonzero-length status OUT + handshake + 2 + 1 + + + DAD + Device address + 4 + 7 + + + PFIVL + Periodic (micro)frame + interval + 11 + 2 + + + PERSCHIVL + Periodic scheduling + interval + 24 + 2 + + + XCVRDLY + Transceiver delay + 14 + 1 + + + ERRATIM + Erratic error interrupt + mask + 15 + 1 + + + + + OTG_HS_DCTL + OTG_HS_DCTL + OTG_HS device control register + 0x4 + 32 + 0x0 + + + RWUSIG + Remote wakeup signaling + 0 + 1 + read-write + + + SDIS + Soft disconnect + 1 + 1 + read-write + + + GINSTS + Global IN NAK status + 2 + 1 + read-only + + + GONSTS + Global OUT NAK status + 3 + 1 + read-only + + + TCTL + Test control + 4 + 3 + read-write + + + SGINAK + Set global IN NAK + 7 + 1 + write-only + + + CGINAK + Clear global IN NAK + 8 + 1 + write-only + + + SGONAK + Set global OUT NAK + 9 + 1 + write-only + + + CGONAK + Clear global OUT NAK + 10 + 1 + write-only + + + POPRGDNE + Power-on programming done + 11 + 1 + read-write + + + + + OTG_HS_DSTS + OTG_HS_DSTS + OTG_HS device status register + 0x8 + 32 + read-only + 0x00000010 + + + SUSPSTS + Suspend status + 0 + 1 + + + ENUMSPD + Enumerated speed + 1 + 2 + + + EERR + Erratic error + 3 + 1 + + + FNSOF + Frame number of the received + SOF + 8 + 14 + + + + + OTG_HS_DIEPMSK + OTG_HS_DIEPMSK + OTG_HS device IN endpoint common interrupt + mask register + 0x10 + 32 + read-write + 0x0 + + + XFRCM + Transfer completed interrupt + mask + 0 + 1 + + + EPDM + Endpoint disabled interrupt + mask + 1 + 1 + + + TOM + Timeout condition mask (nonisochronous + endpoints) + 3 + 1 + + + ITTXFEMSK + IN token received when TxFIFO empty + mask + 4 + 1 + + + INEPNMM + IN token received with EP mismatch + mask + 5 + 1 + + + INEPNEM + IN endpoint NAK effective + mask + 6 + 1 + + + TXFURM + FIFO underrun mask + 8 + 1 + + + BIM + BNA interrupt mask + 9 + 1 + + + + + OTG_HS_DOEPMSK + OTG_HS_DOEPMSK + OTG_HS device OUT endpoint common interrupt + mask register + 0x14 + 32 + read-write + 0x0 + + + XFRCM + Transfer completed interrupt + mask + 0 + 1 + + + EPDM + Endpoint disabled interrupt + mask + 1 + 1 + + + STUPM + SETUP phase done mask + 3 + 1 + + + OTEPDM + OUT token received when endpoint + disabled mask + 4 + 1 + + + B2BSTUP + Back-to-back SETUP packets received + mask + 6 + 1 + + + OPEM + OUT packet error mask + 8 + 1 + + + BOIM + BNA interrupt mask + 9 + 1 + + + + + OTG_HS_DAINT + OTG_HS_DAINT + OTG_HS device all endpoints interrupt + register + 0x18 + 32 + read-only + 0x0 + + + IEPINT + IN endpoint interrupt bits + 0 + 16 + + + OEPINT + OUT endpoint interrupt + bits + 16 + 16 + + + + + OTG_HS_DAINTMSK + OTG_HS_DAINTMSK + OTG_HS all endpoints interrupt mask + register + 0x1C + 32 + read-write + 0x0 + + + IEPM + IN EP interrupt mask bits + 0 + 16 + + + OEPM + OUT EP interrupt mask bits + 16 + 16 + + + + + OTG_HS_DVBUSDIS + OTG_HS_DVBUSDIS + OTG_HS device VBUS discharge time + register + 0x28 + 32 + read-write + 0x000017D7 + + + VBUSDT + Device VBUS discharge time + 0 + 16 + + + + + OTG_HS_DVBUSPULSE + OTG_HS_DVBUSPULSE + OTG_HS device VBUS pulsing time + register + 0x2C + 32 + read-write + 0x000005B8 + + + DVBUSP + Device VBUS pulsing time + 0 + 12 + + + + + OTG_HS_DTHRCTL + OTG_HS_DTHRCTL + OTG_HS Device threshold control + register + 0x30 + 32 + read-write + 0x0 + + + NONISOTHREN + Nonisochronous IN endpoints threshold + enable + 0 + 1 + + + ISOTHREN + ISO IN endpoint threshold + enable + 1 + 1 + + + TXTHRLEN + Transmit threshold length + 2 + 9 + + + RXTHREN + Receive threshold enable + 16 + 1 + + + RXTHRLEN + Receive threshold length + 17 + 9 + + + ARPEN + Arbiter parking enable + 27 + 1 + + + + + OTG_HS_DIEPEMPMSK + OTG_HS_DIEPEMPMSK + OTG_HS device IN endpoint FIFO empty + interrupt mask register + 0x34 + 32 + read-write + 0x0 + + + INEPTXFEM + IN EP Tx FIFO empty interrupt mask + bits + 0 + 16 + + + + + OTG_HS_DEACHINT + OTG_HS_DEACHINT + OTG_HS device each endpoint interrupt + register + 0x38 + 32 + read-write + 0x0 + + + IEP1INT + IN endpoint 1interrupt bit + 1 + 1 + + + OEP1INT + OUT endpoint 1 interrupt + bit + 17 + 1 + + + + + OTG_HS_DEACHINTMSK + OTG_HS_DEACHINTMSK + OTG_HS device each endpoint interrupt + register mask + 0x3C + 32 + read-write + 0x0 + + + IEP1INTM + IN Endpoint 1 interrupt mask + bit + 1 + 1 + + + OEP1INTM + OUT Endpoint 1 interrupt mask + bit + 17 + 1 + + + + + OTG_HS_DIEPEACHMSK1 + OTG_HS_DIEPEACHMSK1 + OTG_HS device each in endpoint-1 interrupt + register + 0x44 + 32 + read-write + 0x0 + + + XFRCM + Transfer completed interrupt + mask + 0 + 1 + + + EPDM + Endpoint disabled interrupt + mask + 1 + 1 + + + TOM + Timeout condition mask (nonisochronous + endpoints) + 3 + 1 + + + ITTXFEMSK + IN token received when TxFIFO empty + mask + 4 + 1 + + + INEPNMM + IN token received with EP mismatch + mask + 5 + 1 + + + INEPNEM + IN endpoint NAK effective + mask + 6 + 1 + + + TXFURM + FIFO underrun mask + 8 + 1 + + + BIM + BNA interrupt mask + 9 + 1 + + + NAKM + NAK interrupt mask + 13 + 1 + + + + + OTG_HS_DOEPEACHMSK1 + OTG_HS_DOEPEACHMSK1 + OTG_HS device each OUT endpoint-1 interrupt + register + 0x84 + 32 + read-write + 0x0 + + + XFRCM + Transfer completed interrupt + mask + 0 + 1 + + + EPDM + Endpoint disabled interrupt + mask + 1 + 1 + + + TOM + Timeout condition mask + 3 + 1 + + + ITTXFEMSK + IN token received when TxFIFO empty + mask + 4 + 1 + + + INEPNMM + IN token received with EP mismatch + mask + 5 + 1 + + + INEPNEM + IN endpoint NAK effective + mask + 6 + 1 + + + TXFURM + OUT packet error mask + 8 + 1 + + + BIM + BNA interrupt mask + 9 + 1 + + + BERRM + Bubble error interrupt + mask + 12 + 1 + + + NAKM + NAK interrupt mask + 13 + 1 + + + NYETM + NYET interrupt mask + 14 + 1 + + + + + OTG_HS_DIEPCTL0 + OTG_HS_DIEPCTL0 + OTG device endpoint-0 control + register + 0x100 + 32 + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + read-write + + + USBAEP + USB active endpoint + 15 + 1 + read-write + + + EONUM_DPID + Even/odd frame + 16 + 1 + read-only + + + NAKSTS + NAK status + 17 + 1 + read-only + + + EPTYP + Endpoint type + 18 + 2 + read-write + + + Stall + STALL handshake + 21 + 1 + read-write + + + TXFNUM + TxFIFO number + 22 + 4 + read-write + + + CNAK + Clear NAK + 26 + 1 + write-only + + + SNAK + Set NAK + 27 + 1 + write-only + + + SD0PID_SEVNFRM + Set DATA0 PID + 28 + 1 + write-only + + + SODDFRM + Set odd frame + 29 + 1 + write-only + + + EPDIS + Endpoint disable + 30 + 1 + read-write + + + EPENA + Endpoint enable + 31 + 1 + read-write + + + + + OTG_HS_DIEPCTL1 + OTG_HS_DIEPCTL1 + OTG device endpoint-1 control + register + 0x120 + 32 + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + read-write + + + USBAEP + USB active endpoint + 15 + 1 + read-write + + + EONUM_DPID + Even/odd frame + 16 + 1 + read-only + + + NAKSTS + NAK status + 17 + 1 + read-only + + + EPTYP + Endpoint type + 18 + 2 + read-write + + + Stall + STALL handshake + 21 + 1 + read-write + + + TXFNUM + TxFIFO number + 22 + 4 + read-write + + + CNAK + Clear NAK + 26 + 1 + write-only + + + SNAK + Set NAK + 27 + 1 + write-only + + + SD0PID_SEVNFRM + Set DATA0 PID + 28 + 1 + write-only + + + SODDFRM + Set odd frame + 29 + 1 + write-only + + + EPDIS + Endpoint disable + 30 + 1 + read-write + + + EPENA + Endpoint enable + 31 + 1 + read-write + + + + + OTG_HS_DIEPCTL2 + OTG_HS_DIEPCTL2 + OTG device endpoint-2 control + register + 0x140 + 32 + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + read-write + + + USBAEP + USB active endpoint + 15 + 1 + read-write + + + EONUM_DPID + Even/odd frame + 16 + 1 + read-only + + + NAKSTS + NAK status + 17 + 1 + read-only + + + EPTYP + Endpoint type + 18 + 2 + read-write + + + Stall + STALL handshake + 21 + 1 + read-write + + + TXFNUM + TxFIFO number + 22 + 4 + read-write + + + CNAK + Clear NAK + 26 + 1 + write-only + + + SNAK + Set NAK + 27 + 1 + write-only + + + SD0PID_SEVNFRM + Set DATA0 PID + 28 + 1 + write-only + + + SODDFRM + Set odd frame + 29 + 1 + write-only + + + EPDIS + Endpoint disable + 30 + 1 + read-write + + + EPENA + Endpoint enable + 31 + 1 + read-write + + + + + OTG_HS_DIEPCTL3 + OTG_HS_DIEPCTL3 + OTG device endpoint-3 control + register + 0x160 + 32 + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + read-write + + + USBAEP + USB active endpoint + 15 + 1 + read-write + + + EONUM_DPID + Even/odd frame + 16 + 1 + read-only + + + NAKSTS + NAK status + 17 + 1 + read-only + + + EPTYP + Endpoint type + 18 + 2 + read-write + + + Stall + STALL handshake + 21 + 1 + read-write + + + TXFNUM + TxFIFO number + 22 + 4 + read-write + + + CNAK + Clear NAK + 26 + 1 + write-only + + + SNAK + Set NAK + 27 + 1 + write-only + + + SD0PID_SEVNFRM + Set DATA0 PID + 28 + 1 + write-only + + + SODDFRM + Set odd frame + 29 + 1 + write-only + + + EPDIS + Endpoint disable + 30 + 1 + read-write + + + EPENA + Endpoint enable + 31 + 1 + read-write + + + + + OTG_HS_DIEPCTL4 + OTG_HS_DIEPCTL4 + OTG device endpoint-4 control + register + 0x180 + 32 + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + read-write + + + USBAEP + USB active endpoint + 15 + 1 + read-write + + + EONUM_DPID + Even/odd frame + 16 + 1 + read-only + + + NAKSTS + NAK status + 17 + 1 + read-only + + + EPTYP + Endpoint type + 18 + 2 + read-write + + + Stall + STALL handshake + 21 + 1 + read-write + + + TXFNUM + TxFIFO number + 22 + 4 + read-write + + + CNAK + Clear NAK + 26 + 1 + write-only + + + SNAK + Set NAK + 27 + 1 + write-only + + + SD0PID_SEVNFRM + Set DATA0 PID + 28 + 1 + write-only + + + SODDFRM + Set odd frame + 29 + 1 + write-only + + + EPDIS + Endpoint disable + 30 + 1 + read-write + + + EPENA + Endpoint enable + 31 + 1 + read-write + + + + + OTG_HS_DIEPCTL5 + OTG_HS_DIEPCTL5 + OTG device endpoint-5 control + register + 0x1A0 + 32 + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + read-write + + + USBAEP + USB active endpoint + 15 + 1 + read-write + + + EONUM_DPID + Even/odd frame + 16 + 1 + read-only + + + NAKSTS + NAK status + 17 + 1 + read-only + + + EPTYP + Endpoint type + 18 + 2 + read-write + + + Stall + STALL handshake + 21 + 1 + read-write + + + TXFNUM + TxFIFO number + 22 + 4 + read-write + + + CNAK + Clear NAK + 26 + 1 + write-only + + + SNAK + Set NAK + 27 + 1 + write-only + + + SD0PID_SEVNFRM + Set DATA0 PID + 28 + 1 + write-only + + + SODDFRM + Set odd frame + 29 + 1 + write-only + + + EPDIS + Endpoint disable + 30 + 1 + read-write + + + EPENA + Endpoint enable + 31 + 1 + read-write + + + + + OTG_HS_DIEPCTL6 + OTG_HS_DIEPCTL6 + OTG device endpoint-6 control + register + 0x1C0 + 32 + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + read-write + + + USBAEP + USB active endpoint + 15 + 1 + read-write + + + EONUM_DPID + Even/odd frame + 16 + 1 + read-only + + + NAKSTS + NAK status + 17 + 1 + read-only + + + EPTYP + Endpoint type + 18 + 2 + read-write + + + Stall + STALL handshake + 21 + 1 + read-write + + + TXFNUM + TxFIFO number + 22 + 4 + read-write + + + CNAK + Clear NAK + 26 + 1 + write-only + + + SNAK + Set NAK + 27 + 1 + write-only + + + SD0PID_SEVNFRM + Set DATA0 PID + 28 + 1 + write-only + + + SODDFRM + Set odd frame + 29 + 1 + write-only + + + EPDIS + Endpoint disable + 30 + 1 + read-write + + + EPENA + Endpoint enable + 31 + 1 + read-write + + + + + OTG_HS_DIEPCTL7 + OTG_HS_DIEPCTL7 + OTG device endpoint-7 control + register + 0x1E0 + 32 + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + read-write + + + USBAEP + USB active endpoint + 15 + 1 + read-write + + + EONUM_DPID + Even/odd frame + 16 + 1 + read-only + + + NAKSTS + NAK status + 17 + 1 + read-only + + + EPTYP + Endpoint type + 18 + 2 + read-write + + + Stall + STALL handshake + 21 + 1 + read-write + + + TXFNUM + TxFIFO number + 22 + 4 + read-write + + + CNAK + Clear NAK + 26 + 1 + write-only + + + SNAK + Set NAK + 27 + 1 + write-only + + + SD0PID_SEVNFRM + Set DATA0 PID + 28 + 1 + write-only + + + SODDFRM + Set odd frame + 29 + 1 + write-only + + + EPDIS + Endpoint disable + 30 + 1 + read-write + + + EPENA + Endpoint enable + 31 + 1 + read-write + + + + + OTG_HS_DIEPINT0 + OTG_HS_DIEPINT0 + OTG device endpoint-0 interrupt + register + 0x108 + 32 + 0x00000080 + + + XFRC + Transfer completed + interrupt + 0 + 1 + read-write + + + EPDISD + Endpoint disabled + interrupt + 1 + 1 + read-write + + + TOC + Timeout condition + 3 + 1 + read-write + + + ITTXFE + IN token received when TxFIFO is + empty + 4 + 1 + read-write + + + INEPNE + IN endpoint NAK effective + 6 + 1 + read-write + + + TXFE + Transmit FIFO empty + 7 + 1 + read-only + + + TXFIFOUDRN + Transmit Fifo Underrun + 8 + 1 + read-write + + + BNA + Buffer not available + interrupt + 9 + 1 + read-write + + + PKTDRPSTS + Packet dropped status + 11 + 1 + read-write + + + BERR + Babble error interrupt + 12 + 1 + read-write + + + NAK + NAK interrupt + 13 + 1 + read-write + + + + + OTG_HS_DIEPINT1 + OTG_HS_DIEPINT1 + OTG device endpoint-1 interrupt + register + 0x128 + 32 + 0x0 + + + XFRC + Transfer completed + interrupt + 0 + 1 + read-write + + + EPDISD + Endpoint disabled + interrupt + 1 + 1 + read-write + + + TOC + Timeout condition + 3 + 1 + read-write + + + ITTXFE + IN token received when TxFIFO is + empty + 4 + 1 + read-write + + + INEPNE + IN endpoint NAK effective + 6 + 1 + read-write + + + TXFE + Transmit FIFO empty + 7 + 1 + read-only + + + TXFIFOUDRN + Transmit Fifo Underrun + 8 + 1 + read-write + + + BNA + Buffer not available + interrupt + 9 + 1 + read-write + + + PKTDRPSTS + Packet dropped status + 11 + 1 + read-write + + + BERR + Babble error interrupt + 12 + 1 + read-write + + + NAK + NAK interrupt + 13 + 1 + read-write + + + + + OTG_HS_DIEPINT2 + OTG_HS_DIEPINT2 + OTG device endpoint-2 interrupt + register + 0x148 + 32 + 0x0 + + + XFRC + Transfer completed + interrupt + 0 + 1 + read-write + + + EPDISD + Endpoint disabled + interrupt + 1 + 1 + read-write + + + TOC + Timeout condition + 3 + 1 + read-write + + + ITTXFE + IN token received when TxFIFO is + empty + 4 + 1 + read-write + + + INEPNE + IN endpoint NAK effective + 6 + 1 + read-write + + + TXFE + Transmit FIFO empty + 7 + 1 + read-only + + + TXFIFOUDRN + Transmit Fifo Underrun + 8 + 1 + read-write + + + BNA + Buffer not available + interrupt + 9 + 1 + read-write + + + PKTDRPSTS + Packet dropped status + 11 + 1 + read-write + + + BERR + Babble error interrupt + 12 + 1 + read-write + + + NAK + NAK interrupt + 13 + 1 + read-write + + + + + OTG_HS_DIEPINT3 + OTG_HS_DIEPINT3 + OTG device endpoint-3 interrupt + register + 0x168 + 32 + 0x0 + + + XFRC + Transfer completed + interrupt + 0 + 1 + read-write + + + EPDISD + Endpoint disabled + interrupt + 1 + 1 + read-write + + + TOC + Timeout condition + 3 + 1 + read-write + + + ITTXFE + IN token received when TxFIFO is + empty + 4 + 1 + read-write + + + INEPNE + IN endpoint NAK effective + 6 + 1 + read-write + + + TXFE + Transmit FIFO empty + 7 + 1 + read-only + + + TXFIFOUDRN + Transmit Fifo Underrun + 8 + 1 + read-write + + + BNA + Buffer not available + interrupt + 9 + 1 + read-write + + + PKTDRPSTS + Packet dropped status + 11 + 1 + read-write + + + BERR + Babble error interrupt + 12 + 1 + read-write + + + NAK + NAK interrupt + 13 + 1 + read-write + + + + + OTG_HS_DIEPINT4 + OTG_HS_DIEPINT4 + OTG device endpoint-4 interrupt + register + 0x188 + 32 + 0x0 + + + XFRC + Transfer completed + interrupt + 0 + 1 + read-write + + + EPDISD + Endpoint disabled + interrupt + 1 + 1 + read-write + + + TOC + Timeout condition + 3 + 1 + read-write + + + ITTXFE + IN token received when TxFIFO is + empty + 4 + 1 + read-write + + + INEPNE + IN endpoint NAK effective + 6 + 1 + read-write + + + TXFE + Transmit FIFO empty + 7 + 1 + read-only + + + TXFIFOUDRN + Transmit Fifo Underrun + 8 + 1 + read-write + + + BNA + Buffer not available + interrupt + 9 + 1 + read-write + + + PKTDRPSTS + Packet dropped status + 11 + 1 + read-write + + + BERR + Babble error interrupt + 12 + 1 + read-write + + + NAK + NAK interrupt + 13 + 1 + read-write + + + + + OTG_HS_DIEPINT5 + OTG_HS_DIEPINT5 + OTG device endpoint-5 interrupt + register + 0x1A8 + 32 + 0x0 + + + XFRC + Transfer completed + interrupt + 0 + 1 + read-write + + + EPDISD + Endpoint disabled + interrupt + 1 + 1 + read-write + + + TOC + Timeout condition + 3 + 1 + read-write + + + ITTXFE + IN token received when TxFIFO is + empty + 4 + 1 + read-write + + + INEPNE + IN endpoint NAK effective + 6 + 1 + read-write + + + TXFE + Transmit FIFO empty + 7 + 1 + read-only + + + TXFIFOUDRN + Transmit Fifo Underrun + 8 + 1 + read-write + + + BNA + Buffer not available + interrupt + 9 + 1 + read-write + + + PKTDRPSTS + Packet dropped status + 11 + 1 + read-write + + + BERR + Babble error interrupt + 12 + 1 + read-write + + + NAK + NAK interrupt + 13 + 1 + read-write + + + + + OTG_HS_DIEPINT6 + OTG_HS_DIEPINT6 + OTG device endpoint-6 interrupt + register + 0x1C8 + 32 + 0x0 + + + XFRC + Transfer completed + interrupt + 0 + 1 + read-write + + + EPDISD + Endpoint disabled + interrupt + 1 + 1 + read-write + + + TOC + Timeout condition + 3 + 1 + read-write + + + ITTXFE + IN token received when TxFIFO is + empty + 4 + 1 + read-write + + + INEPNE + IN endpoint NAK effective + 6 + 1 + read-write + + + TXFE + Transmit FIFO empty + 7 + 1 + read-only + + + TXFIFOUDRN + Transmit Fifo Underrun + 8 + 1 + read-write + + + BNA + Buffer not available + interrupt + 9 + 1 + read-write + + + PKTDRPSTS + Packet dropped status + 11 + 1 + read-write + + + BERR + Babble error interrupt + 12 + 1 + read-write + + + NAK + NAK interrupt + 13 + 1 + read-write + + + + + OTG_HS_DIEPINT7 + OTG_HS_DIEPINT7 + OTG device endpoint-7 interrupt + register + 0x1E8 + 32 + 0x0 + + + XFRC + Transfer completed + interrupt + 0 + 1 + read-write + + + EPDISD + Endpoint disabled + interrupt + 1 + 1 + read-write + + + TOC + Timeout condition + 3 + 1 + read-write + + + ITTXFE + IN token received when TxFIFO is + empty + 4 + 1 + read-write + + + INEPNE + IN endpoint NAK effective + 6 + 1 + read-write + + + TXFE + Transmit FIFO empty + 7 + 1 + read-only + + + TXFIFOUDRN + Transmit Fifo Underrun + 8 + 1 + read-write + + + BNA + Buffer not available + interrupt + 9 + 1 + read-write + + + PKTDRPSTS + Packet dropped status + 11 + 1 + read-write + + + BERR + Babble error interrupt + 12 + 1 + read-write + + + NAK + NAK interrupt + 13 + 1 + read-write + + + + + OTG_HS_DIEPTSIZ0 + OTG_HS_DIEPTSIZ0 + OTG_HS device IN endpoint 0 transfer size + register + 0x110 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 7 + + + PKTCNT + Packet count + 19 + 2 + + + + + OTG_HS_DIEPDMA1 + OTG_HS_DIEPDMA1 + OTG_HS device endpoint-1 DMA address + register + 0x114 + 32 + read-write + 0x0 + + + DMAADDR + DMA address + 0 + 32 + + + + + OTG_HS_DIEPDMA2 + OTG_HS_DIEPDMA2 + OTG_HS device endpoint-2 DMA address + register + 0x134 + 32 + read-write + 0x0 + + + DMAADDR + DMA address + 0 + 32 + + + + + OTG_HS_DIEPDMA3 + OTG_HS_DIEPDMA3 + OTG_HS device endpoint-3 DMA address + register + 0x154 + 32 + read-write + 0x0 + + + DMAADDR + DMA address + 0 + 32 + + + + + OTG_HS_DIEPDMA4 + OTG_HS_DIEPDMA4 + OTG_HS device endpoint-4 DMA address + register + 0x174 + 32 + read-write + 0x0 + + + DMAADDR + DMA address + 0 + 32 + + + + + OTG_HS_DIEPDMA5 + OTG_HS_DIEPDMA5 + OTG_HS device endpoint-5 DMA address + register + 0x194 + 32 + read-write + 0x0 + + + DMAADDR + DMA address + 0 + 32 + + + + + OTG_HS_DTXFSTS0 + OTG_HS_DTXFSTS0 + OTG_HS device IN endpoint transmit FIFO + status register + 0x118 + 32 + read-only + 0x0 + + + INEPTFSAV + IN endpoint TxFIFO space + avail + 0 + 16 + + + + + OTG_HS_DTXFSTS1 + OTG_HS_DTXFSTS1 + OTG_HS device IN endpoint transmit FIFO + status register + 0x138 + 32 + read-only + 0x0 + + + INEPTFSAV + IN endpoint TxFIFO space + avail + 0 + 16 + + + + + OTG_HS_DTXFSTS2 + OTG_HS_DTXFSTS2 + OTG_HS device IN endpoint transmit FIFO + status register + 0x158 + 32 + read-only + 0x0 + + + INEPTFSAV + IN endpoint TxFIFO space + avail + 0 + 16 + + + + + OTG_HS_DTXFSTS3 + OTG_HS_DTXFSTS3 + OTG_HS device IN endpoint transmit FIFO + status register + 0x178 + 32 + read-only + 0x0 + + + INEPTFSAV + IN endpoint TxFIFO space + avail + 0 + 16 + + + + + OTG_HS_DTXFSTS4 + OTG_HS_DTXFSTS4 + OTG_HS device IN endpoint transmit FIFO + status register + 0x198 + 32 + read-only + 0x0 + + + INEPTFSAV + IN endpoint TxFIFO space + avail + 0 + 16 + + + + + OTG_HS_DTXFSTS5 + OTG_HS_DTXFSTS5 + OTG_HS device IN endpoint transmit FIFO + status register + 0x1B8 + 32 + read-only + 0x0 + + + INEPTFSAV + IN endpoint TxFIFO space + avail + 0 + 16 + + + + + OTG_HS_DIEPTSIZ1 + OTG_HS_DIEPTSIZ1 + OTG_HS device endpoint transfer size + register + 0x130 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + MCNT + Multi count + 29 + 2 + + + + + OTG_HS_DIEPTSIZ2 + OTG_HS_DIEPTSIZ2 + OTG_HS device endpoint transfer size + register + 0x150 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + MCNT + Multi count + 29 + 2 + + + + + OTG_HS_DIEPTSIZ3 + OTG_HS_DIEPTSIZ3 + OTG_HS device endpoint transfer size + register + 0x170 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + MCNT + Multi count + 29 + 2 + + + + + OTG_HS_DIEPTSIZ4 + OTG_HS_DIEPTSIZ4 + OTG_HS device endpoint transfer size + register + 0x190 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + MCNT + Multi count + 29 + 2 + + + + + OTG_HS_DIEPTSIZ5 + OTG_HS_DIEPTSIZ5 + OTG_HS device endpoint transfer size + register + 0x1B0 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + MCNT + Multi count + 29 + 2 + + + + + OTG_HS_DOEPCTL0 + OTG_HS_DOEPCTL0 + OTG_HS device control OUT endpoint 0 control + register + 0x300 + 32 + 0x00008000 + + + MPSIZ + Maximum packet size + 0 + 2 + read-only + + + USBAEP + USB active endpoint + 15 + 1 + read-only + + + NAKSTS + NAK status + 17 + 1 + read-only + + + EPTYP + Endpoint type + 18 + 2 + read-only + + + SNPM + Snoop mode + 20 + 1 + read-write + + + Stall + STALL handshake + 21 + 1 + read-write + + + CNAK + Clear NAK + 26 + 1 + write-only + + + SNAK + Set NAK + 27 + 1 + write-only + + + EPDIS + Endpoint disable + 30 + 1 + read-only + + + EPENA + Endpoint enable + 31 + 1 + write-only + + + + + OTG_HS_DOEPCTL1 + OTG_HS_DOEPCTL1 + OTG device endpoint-1 control + register + 0x320 + 32 + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + read-write + + + USBAEP + USB active endpoint + 15 + 1 + read-write + + + EONUM_DPID + Even odd frame/Endpoint data + PID + 16 + 1 + read-only + + + NAKSTS + NAK status + 17 + 1 + read-only + + + EPTYP + Endpoint type + 18 + 2 + read-write + + + SNPM + Snoop mode + 20 + 1 + read-write + + + Stall + STALL handshake + 21 + 1 + read-write + + + CNAK + Clear NAK + 26 + 1 + write-only + + + SNAK + Set NAK + 27 + 1 + write-only + + + SD0PID_SEVNFRM + Set DATA0 PID/Set even + frame + 28 + 1 + write-only + + + SODDFRM + Set odd frame + 29 + 1 + write-only + + + EPDIS + Endpoint disable + 30 + 1 + read-write + + + EPENA + Endpoint enable + 31 + 1 + read-write + + + + + OTG_HS_DOEPCTL2 + OTG_HS_DOEPCTL2 + OTG device endpoint-2 control + register + 0x340 + 32 + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + read-write + + + USBAEP + USB active endpoint + 15 + 1 + read-write + + + EONUM_DPID + Even odd frame/Endpoint data + PID + 16 + 1 + read-only + + + NAKSTS + NAK status + 17 + 1 + read-only + + + EPTYP + Endpoint type + 18 + 2 + read-write + + + SNPM + Snoop mode + 20 + 1 + read-write + + + Stall + STALL handshake + 21 + 1 + read-write + + + CNAK + Clear NAK + 26 + 1 + write-only + + + SNAK + Set NAK + 27 + 1 + write-only + + + SD0PID_SEVNFRM + Set DATA0 PID/Set even + frame + 28 + 1 + write-only + + + SODDFRM + Set odd frame + 29 + 1 + write-only + + + EPDIS + Endpoint disable + 30 + 1 + read-write + + + EPENA + Endpoint enable + 31 + 1 + read-write + + + + + OTG_HS_DOEPCTL3 + OTG_HS_DOEPCTL3 + OTG device endpoint-3 control + register + 0x360 + 32 + 0x0 + + + MPSIZ + Maximum packet size + 0 + 11 + read-write + + + USBAEP + USB active endpoint + 15 + 1 + read-write + + + EONUM_DPID + Even odd frame/Endpoint data + PID + 16 + 1 + read-only + + + NAKSTS + NAK status + 17 + 1 + read-only + + + EPTYP + Endpoint type + 18 + 2 + read-write + + + SNPM + Snoop mode + 20 + 1 + read-write + + + Stall + STALL handshake + 21 + 1 + read-write + + + CNAK + Clear NAK + 26 + 1 + write-only + + + SNAK + Set NAK + 27 + 1 + write-only + + + SD0PID_SEVNFRM + Set DATA0 PID/Set even + frame + 28 + 1 + write-only + + + SODDFRM + Set odd frame + 29 + 1 + write-only + + + EPDIS + Endpoint disable + 30 + 1 + read-write + + + EPENA + Endpoint enable + 31 + 1 + read-write + + + + + OTG_HS_DOEPINT0 + OTG_HS_DOEPINT0 + OTG_HS device endpoint-0 interrupt + register + 0x308 + 32 + read-write + 0x00000080 + + + XFRC + Transfer completed + interrupt + 0 + 1 + + + EPDISD + Endpoint disabled + interrupt + 1 + 1 + + + STUP + SETUP phase done + 3 + 1 + + + OTEPDIS + OUT token received when endpoint + disabled + 4 + 1 + + + B2BSTUP + Back-to-back SETUP packets + received + 6 + 1 + + + NYET + NYET interrupt + 14 + 1 + + + + + OTG_HS_DOEPINT1 + OTG_HS_DOEPINT1 + OTG_HS device endpoint-1 interrupt + register + 0x328 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + interrupt + 0 + 1 + + + EPDISD + Endpoint disabled + interrupt + 1 + 1 + + + STUP + SETUP phase done + 3 + 1 + + + OTEPDIS + OUT token received when endpoint + disabled + 4 + 1 + + + B2BSTUP + Back-to-back SETUP packets + received + 6 + 1 + + + NYET + NYET interrupt + 14 + 1 + + + + + OTG_HS_DOEPINT2 + OTG_HS_DOEPINT2 + OTG_HS device endpoint-2 interrupt + register + 0x348 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + interrupt + 0 + 1 + + + EPDISD + Endpoint disabled + interrupt + 1 + 1 + + + STUP + SETUP phase done + 3 + 1 + + + OTEPDIS + OUT token received when endpoint + disabled + 4 + 1 + + + B2BSTUP + Back-to-back SETUP packets + received + 6 + 1 + + + NYET + NYET interrupt + 14 + 1 + + + + + OTG_HS_DOEPINT3 + OTG_HS_DOEPINT3 + OTG_HS device endpoint-3 interrupt + register + 0x368 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + interrupt + 0 + 1 + + + EPDISD + Endpoint disabled + interrupt + 1 + 1 + + + STUP + SETUP phase done + 3 + 1 + + + OTEPDIS + OUT token received when endpoint + disabled + 4 + 1 + + + B2BSTUP + Back-to-back SETUP packets + received + 6 + 1 + + + NYET + NYET interrupt + 14 + 1 + + + + + OTG_HS_DOEPINT4 + OTG_HS_DOEPINT4 + OTG_HS device endpoint-4 interrupt + register + 0x388 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + interrupt + 0 + 1 + + + EPDISD + Endpoint disabled + interrupt + 1 + 1 + + + STUP + SETUP phase done + 3 + 1 + + + OTEPDIS + OUT token received when endpoint + disabled + 4 + 1 + + + B2BSTUP + Back-to-back SETUP packets + received + 6 + 1 + + + NYET + NYET interrupt + 14 + 1 + + + + + OTG_HS_DOEPINT5 + OTG_HS_DOEPINT5 + OTG_HS device endpoint-5 interrupt + register + 0x3A8 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + interrupt + 0 + 1 + + + EPDISD + Endpoint disabled + interrupt + 1 + 1 + + + STUP + SETUP phase done + 3 + 1 + + + OTEPDIS + OUT token received when endpoint + disabled + 4 + 1 + + + B2BSTUP + Back-to-back SETUP packets + received + 6 + 1 + + + NYET + NYET interrupt + 14 + 1 + + + + + OTG_HS_DOEPINT6 + OTG_HS_DOEPINT6 + OTG_HS device endpoint-6 interrupt + register + 0x3C8 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + interrupt + 0 + 1 + + + EPDISD + Endpoint disabled + interrupt + 1 + 1 + + + STUP + SETUP phase done + 3 + 1 + + + OTEPDIS + OUT token received when endpoint + disabled + 4 + 1 + + + B2BSTUP + Back-to-back SETUP packets + received + 6 + 1 + + + NYET + NYET interrupt + 14 + 1 + + + + + OTG_HS_DOEPINT7 + OTG_HS_DOEPINT7 + OTG_HS device endpoint-7 interrupt + register + 0x3E8 + 32 + read-write + 0x0 + + + XFRC + Transfer completed + interrupt + 0 + 1 + + + EPDISD + Endpoint disabled + interrupt + 1 + 1 + + + STUP + SETUP phase done + 3 + 1 + + + OTEPDIS + OUT token received when endpoint + disabled + 4 + 1 + + + B2BSTUP + Back-to-back SETUP packets + received + 6 + 1 + + + NYET + NYET interrupt + 14 + 1 + + + + + OTG_HS_DOEPTSIZ0 + OTG_HS_DOEPTSIZ0 + OTG_HS device endpoint-1 transfer size + register + 0x310 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 7 + + + PKTCNT + Packet count + 19 + 1 + + + STUPCNT + SETUP packet count + 29 + 2 + + + + + OTG_HS_DOEPTSIZ1 + OTG_HS_DOEPTSIZ1 + OTG_HS device endpoint-2 transfer size + register + 0x330 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + RXDPID_STUPCNT + Received data PID/SETUP packet + count + 29 + 2 + + + + + OTG_HS_DOEPTSIZ2 + OTG_HS_DOEPTSIZ2 + OTG_HS device endpoint-3 transfer size + register + 0x350 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + RXDPID_STUPCNT + Received data PID/SETUP packet + count + 29 + 2 + + + + + OTG_HS_DOEPTSIZ3 + OTG_HS_DOEPTSIZ3 + OTG_HS device endpoint-4 transfer size + register + 0x370 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + RXDPID_STUPCNT + Received data PID/SETUP packet + count + 29 + 2 + + + + + OTG_HS_DOEPTSIZ4 + OTG_HS_DOEPTSIZ4 + OTG_HS device endpoint-5 transfer size + register + 0x390 + 32 + read-write + 0x0 + + + XFRSIZ + Transfer size + 0 + 19 + + + PKTCNT + Packet count + 19 + 10 + + + RXDPID_STUPCNT + Received data PID/SETUP packet + count + 29 + 2 + + + + + + + OTG_HS_PWRCLK + USB on the go high speed + USB_OTG_HS + 0x40040E00 + + 0x0 + 0x3F200 + registers + + + OTG_HS_WKUP + USB On The Go HS Wakeup + 76 + + + + OTG_HS_PCGCR + OTG_HS_PCGCR + Power and clock gating control + register + 0x0 + 32 + read-write + 0x0 + + + STPPCLK + Stop PHY clock + 0 + 1 + + + GATEHCLK + Gate HCLK + 1 + 1 + + + PHYSUSP + PHY suspended + 4 + 1 + + + + + + + SAI1 + Serial audio interface + SAI + 0x40015800 + + 0x0 + 0x400 + registers + + + SAI1 + SAI1 global interrupt + 87 + + + + BCR1 + BCR1 + BConfiguration register 1 + 0x24 + 0x20 + read-write + 0x00000040 + + + MCJDIV + Master clock divider + 20 + 4 + + + NODIV + No divider + 19 + 1 + + + DMAEN + DMA enable + 17 + 1 + + + SAIBEN + Audio block B enable + 16 + 1 + + + OutDri + Output drive + 13 + 1 + + + MONO + Mono mode + 12 + 1 + + + SYNCEN + Synchronization enable + 10 + 2 + + + CKSTR + Clock strobing edge + 9 + 1 + + + LSBFIRST + Least significant bit + first + 8 + 1 + + + DS + Data size + 5 + 3 + + + PRTCFG + Protocol configuration + 2 + 2 + + + MODE + Audio block mode + 0 + 2 + + + + + BCR2 + BCR2 + BConfiguration register 2 + 0x28 + 0x20 + read-write + 0x00000000 + + + COMP + Companding mode + 14 + 2 + + + CPL + Complement bit + 13 + 1 + + + MUTECN + Mute counter + 7 + 6 + + + MUTEVAL + Mute value + 6 + 1 + + + MUTE + Mute + 5 + 1 + + + TRIS + Tristate management on data + line + 4 + 1 + + + FFLUS + FIFO flush + 3 + 1 + + + FTH + FIFO threshold + 0 + 3 + + + + + BFRCR + BFRCR + BFRCR + 0x2C + 0x20 + read-write + 0x00000007 + + + FSOFF + Frame synchronization + offset + 18 + 1 + + + FSPOL + Frame synchronization + polarity + 17 + 1 + + + FSDEF + Frame synchronization + definition + 16 + 1 + + + FSALL + Frame synchronization active level + length + 8 + 7 + + + FRL + Frame length + 0 + 8 + + + + + BSLOTR + BSLOTR + BSlot register + 0x30 + 0x20 + read-write + 0x00000000 + + + SLOTEN + Slot enable + 16 + 16 + + + NBSLOT + Number of slots in an audio + frame + 8 + 4 + + + SLOTSZ + Slot size + 6 + 2 + + + FBOFF + First bit offset + 0 + 5 + + + + + BIM + BIM + BInterrupt mask register2 + 0x34 + 0x20 + read-write + 0x00000000 + + + LFSDETIE + Late frame synchronization detection + interrupt enable + 6 + 1 + + + AFSDETIE + Anticipated frame synchronization + detection interrupt enable + 5 + 1 + + + CNRDYIE + Codec not ready interrupt + enable + 4 + 1 + + + FREQIE + FIFO request interrupt + enable + 3 + 1 + + + WCKCFG + Wrong clock configuration interrupt + enable + 2 + 1 + + + MUTEDET + Mute detection interrupt + enable + 1 + 1 + + + OVRUDRIE + Overrun/underrun interrupt + enable + 0 + 1 + + + + + BSR + BSR + BStatus register + 0x38 + 0x20 + read-only + 0x00000000 + + + FLVL + FIFO level threshold + 16 + 3 + + + LFSDET + Late frame synchronization + detection + 6 + 1 + + + AFSDET + Anticipated frame synchronization + detection + 5 + 1 + + + CNRDY + Codec not ready + 4 + 1 + + + FREQ + FIFO request + 3 + 1 + + + WCKCFG + Wrong clock configuration + flag + 2 + 1 + + + MUTEDET + Mute detection + 1 + 1 + + + OVRUDR + Overrun / underrun + 0 + 1 + + + + + BCLRFR + BCLRFR + BClear flag register + 0x3C + 0x20 + write-only + 0x00000000 + + + LFSDET + Clear late frame synchronization + detection flag + 6 + 1 + + + CAFSDET + Clear anticipated frame synchronization + detection flag + 5 + 1 + + + CNRDY + Clear codec not ready flag + 4 + 1 + + + WCKCFG + Clear wrong clock configuration + flag + 2 + 1 + + + MUTEDET + Mute detection flag + 1 + 1 + + + OVRUDR + Clear overrun / underrun + 0 + 1 + + + + + BDR + BDR + BData register + 0x40 + 0x20 + read-write + 0x00000000 + + + DATA + Data + 0 + 32 + + + + + ACR1 + ACR1 + AConfiguration register 1 + 0x4 + 0x20 + read-write + 0x00000040 + + + MCJDIV + Master clock divider + 20 + 4 + + + NODIV + No divider + 19 + 1 + + + DMAEN + DMA enable + 17 + 1 + + + SAIAEN + Audio block A enable + 16 + 1 + + + OutDri + Output drive + 13 + 1 + + + MONO + Mono mode + 12 + 1 + + + SYNCEN + Synchronization enable + 10 + 2 + + + CKSTR + Clock strobing edge + 9 + 1 + + + LSBFIRST + Least significant bit + first + 8 + 1 + + + DS + Data size + 5 + 3 + + + PRTCFG + Protocol configuration + 2 + 2 + + + MODE + Audio block mode + 0 + 2 + + + + + ACR2 + ACR2 + AConfiguration register 2 + 0x8 + 0x20 + read-write + 0x00000000 + + + COMP + Companding mode + 14 + 2 + + + CPL + Complement bit + 13 + 1 + + + MUTECN + Mute counter + 7 + 6 + + + MUTEVAL + Mute value + 6 + 1 + + + MUTE + Mute + 5 + 1 + + + TRIS + Tristate management on data + line + 4 + 1 + + + FFLUS + FIFO flush + 3 + 1 + + + FTH + FIFO threshold + 0 + 3 + + + + + AFRCR + AFRCR + AFRCR + 0xC + 0x20 + read-write + 0x00000007 + + + FSOFF + Frame synchronization + offset + 18 + 1 + + + FSPOL + Frame synchronization + polarity + 17 + 1 + + + FSDEF + Frame synchronization + definition + 16 + 1 + + + FSALL + Frame synchronization active level + length + 8 + 7 + + + FRL + Frame length + 0 + 8 + + + + + ASLOTR + ASLOTR + ASlot register + 0x10 + 0x20 + read-write + 0x00000000 + + + SLOTEN + Slot enable + 16 + 16 + + + NBSLOT + Number of slots in an audio + frame + 8 + 4 + + + SLOTSZ + Slot size + 6 + 2 + + + FBOFF + First bit offset + 0 + 5 + + + + + AIM + AIM + AInterrupt mask register2 + 0x14 + 0x20 + read-write + 0x00000000 + + + LFSDET + Late frame synchronization detection + interrupt enable + 6 + 1 + + + AFSDETIE + Anticipated frame synchronization + detection interrupt enable + 5 + 1 + + + CNRDYIE + Codec not ready interrupt + enable + 4 + 1 + + + FREQIE + FIFO request interrupt + enable + 3 + 1 + + + WCKCFG + Wrong clock configuration interrupt + enable + 2 + 1 + + + MUTEDET + Mute detection interrupt + enable + 1 + 1 + + + OVRUDRIE + Overrun/underrun interrupt + enable + 0 + 1 + + + + + ASR + ASR + AStatus register + 0x18 + 0x20 + read-write + 0x00000000 + + + FLVL + FIFO level threshold + 16 + 3 + + + LFSDET + Late frame synchronization + detection + 6 + 1 + + + AFSDET + Anticipated frame synchronization + detection + 5 + 1 + + + CNRDY + Codec not ready + 4 + 1 + + + FREQ + FIFO request + 3 + 1 + + + WCKCFG + Wrong clock configuration flag. This bit + is read only. + 2 + 1 + + + MUTEDET + Mute detection + 1 + 1 + + + OVRUDR + Overrun / underrun + 0 + 1 + + + + + ACLRFR + ACLRFR + AClear flag register + 0x1C + 0x20 + read-write + 0x00000000 + + + LFSDET + Clear late frame synchronization + detection flag + 6 + 1 + + + CAFSDET + Clear anticipated frame synchronization + detection flag. + 5 + 1 + + + CNRDY + Clear codec not ready flag + 4 + 1 + + + WCKCFG + Clear wrong clock configuration + flag + 2 + 1 + + + MUTEDET + Mute detection flag + 1 + 1 + + + OVRUDR + Clear overrun / underrun + 0 + 1 + + + + + ADR + ADR + AData register + 0x20 + 0x20 + read-write + 0x00000000 + + + DATA + Data + 0 + 32 + + + + + GCR + GCR + Global configuration register + 0x0 + 0x20 + read-write + 0x00000000 + + + SYNCIN + Synchronization inputs + 0 + 2 + + + SYNCOUT + Synchronization outputs + 4 + 2 + + + + + + + SAI2 + 0x40015C00 + + SAI2 + SAI2 global interrupt + 91 + + + + PWR + Power control + PWR + 0x40007000 + + 0x0 + 0x400 + registers + + + + CR + CR + power control register + 0x0 + 0x20 + read-write + 0x0000C000 + + + LPDS + Low-power deep sleep + 0 + 1 + + + PDDS + Power down deepsleep + 1 + 1 + + + CWUF + Clear wakeup flag + 2 + 1 + + + CSBF + Clear standby flag + 3 + 1 + + + PVDE + Power voltage detector + enable + 4 + 1 + + + PLS + PVD level selection + 5 + 3 + + + DBP + Disable backup domain write + protection + 8 + 1 + + + FPDS + Flash power down in Stop + mode + 9 + 1 + + + LPLVDS + Low-Power Regulator Low Voltage in + deepsleep + 10 + 1 + + + MRLVDS + Main regulator low voltage in deepsleep + mode + 11 + 1 + + + ADCDC1 + ADCDC1 + 13 + 1 + + + VOS + Regulator voltage scaling output + selection + 14 + 2 + + + ODEN + Over-drive enable + 16 + 1 + + + ODSWEN + Over-drive switching + enabled + 17 + 1 + + + UDEN + Under-drive enable in stop + mode + 18 + 2 + + + FMSSR + Flash Memory Stop while System + Run + 20 + 1 + + + FISSR + Flash Interface Stop while System + Run + 21 + 1 + + + + + CSR + CSR + power control/status register + 0x4 + 0x20 + 0x00000000 + + + WUF + Wakeup flag + 0 + 1 + read-only + + + SBF + Standby flag + 1 + 1 + read-only + + + PVDO + PVD output + 2 + 1 + read-only + + + BRR + Backup regulator ready + 3 + 1 + read-only + + + EWUP2 + Enable WKUP2 pin + 7 + 1 + read-write + + + EWUP + Enable WKUP pin + 8 + 1 + read-write + + + BRE + Backup regulator enable + 9 + 1 + read-write + + + VOSRDY + Regulator voltage scaling output + selection ready bit + 14 + 1 + read-only + + + ODRDY + Over-drive mode ready + 16 + 1 + read-only + + + ODSWRDY + Over-drive mode switching + ready + 17 + 1 + read-only + + + UDRDY + Under-drive ready flag + 18 + 2 + read-write + + + + + + + QUADSPI + QuadSPI interface + QUADSPI + 0xA0001000 + + 0x0 + 0x400 + registers + + + QuadSPI + QuadSPI global interrupt + 92 + + + + CR + CR + control register + 0x0 + 0x20 + read-write + 0x00000000 + + + PRESCALER + Clock prescaler + 24 + 8 + + + PMM + Polling match mode + 23 + 1 + + + APMS + Automatic poll mode stop + 22 + 1 + + + TOIE + TimeOut interrupt enable + 20 + 1 + + + SMIE + Status match interrupt + enable + 19 + 1 + + + FTIE + FIFO threshold interrupt + enable + 18 + 1 + + + TCIE + Transfer complete interrupt + enable + 17 + 1 + + + TEIE + Transfer error interrupt + enable + 16 + 1 + + + FTHRES + IFO threshold level + 8 + 5 + + + FSEL + FLASH memory selection + 7 + 1 + + + DFM + Dual-flash mode + 6 + 1 + + + SSHIFT + Sample shift + 4 + 1 + + + TCEN + Timeout counter enable + 3 + 1 + + + DMAEN + DMA enable + 2 + 1 + + + ABORT + Abort request + 1 + 1 + + + EN + Enable + 0 + 1 + + + + + DCR + DCR + device configuration register + 0x4 + 0x20 + read-write + 0x00000000 + + + FSIZE + FLASH memory size + 16 + 5 + + + CSHT + Chip select high time + 8 + 3 + + + CKMODE + Mode 0 / mode 3 + 0 + 1 + + + + + SR + SR + status register + 0x8 + 0x20 + read-only + 0x00000000 + + + FLEVEL + FIFO level + 8 + 7 + + + BUSY + Busy + 5 + 1 + + + TOF + Timeout flag + 4 + 1 + + + SMF + Status match flag + 3 + 1 + + + FTF + FIFO threshold flag + 2 + 1 + + + TCF + Transfer complete flag + 1 + 1 + + + TEF + Transfer error flag + 0 + 1 + + + + + FCR + FCR + flag clear register + 0xC + 0x20 + read-write + 0x00000000 + + + CTOF + Clear timeout flag + 4 + 1 + + + CSMF + Clear status match flag + 3 + 1 + + + CTCF + Clear transfer complete + flag + 1 + 1 + + + CTEF + Clear transfer error flag + 0 + 1 + + + + + DLR + DLR + data length register + 0x10 + 0x20 + read-write + 0x00000000 + + + DL + Data length + 0 + 32 + + + + + CCR + CCR + communication configuration + register + 0x14 + 0x20 + read-write + 0x00000000 + + + DDRM + Double data rate mode + 31 + 1 + + + DHHC + DDR hold half cycle + 30 + 1 + + + SIOO + Send instruction only once + mode + 28 + 1 + + + FMODE + Functional mode + 26 + 2 + + + DMODE + Data mode + 24 + 2 + + + DCYC + Number of dummy cycles + 18 + 5 + + + ABSIZE + Alternate bytes size + 16 + 2 + + + ABMODE + Alternate bytes mode + 14 + 2 + + + ADSIZE + Address size + 12 + 2 + + + ADMODE + Address mode + 10 + 2 + + + IMODE + Instruction mode + 8 + 2 + + + INSTRUCTION + Instruction + 0 + 8 + + + + + AR + AR + address register + 0x18 + 0x20 + read-write + 0x00000000 + + + ADDRESS + Address + 0 + 32 + + + + + ABR + ABR + ABR + 0x1C + 0x20 + read-write + 0x00000000 + + + ALTERNATE + ALTERNATE + 0 + 32 + + + + + DR + DR + data register + 0x20 + 0x20 + read-write + 0x00000000 + + + DATA + Data + 0 + 32 + + + + + PSMKR + PSMKR + polling status mask register + 0x24 + 0x20 + read-write + 0x00000000 + + + MASK + Status mask + 0 + 32 + + + + + PSMAR + PSMAR + polling status match register + 0x28 + 0x20 + read-write + 0x00000000 + + + MATCH + Status match + 0 + 32 + + + + + PIR + PIR + polling interval register + 0x2C + 0x20 + read-write + 0x00000000 + + + INTERVAL + Polling interval + 0 + 16 + + + + + LPTR + LPTR + low-power timeout register + 0x30 + 0x20 + read-write + 0x00000000 + + + TIMEOUT + Timeout period + 0 + 16 + + + + + + + SPDIF_RX + Receiver Interface + SPDIF_RX + 0x40004000 + + 0x0 + 0x400 + registers + + + SPDIF_Rx + SPDIF-Rx global interrupt + 94 + + + + CR + CR + Control register + 0x0 + 0x20 + read-write + 0x00000000 + + + SPDIFEN + Peripheral Block Enable + 0 + 2 + + + RXDMAEN + Receiver DMA ENable for data + flow + 2 + 1 + + + RXSTEO + STerEO Mode + 3 + 1 + + + DRFMT + RX Data format + 4 + 2 + + + PMSK + Mask Parity error bit + 6 + 1 + + + VMSK + Mask of Validity bit + 7 + 1 + + + CUMSK + Mask of channel status and user + bits + 8 + 1 + + + PTMSK + Mask of Preamble Type bits + 9 + 1 + + + CBDMAEN + Control Buffer DMA ENable for control + flow + 10 + 1 + + + CHSEL + Channel Selection + 11 + 1 + + + NBTR + Maximum allowed re-tries during + synchronization phase + 12 + 2 + + + WFA + Wait For Activity + 14 + 1 + + + INSEL + input selection + 16 + 3 + + + + + IMR + IMR + Interrupt mask register + 0x4 + 0x20 + read-write + 0x00000000 + + + RXNEIE + RXNE interrupt enable + 0 + 1 + + + CSRNEIE + Control Buffer Ready Interrupt + Enable + 1 + 1 + + + PERRIE + Parity error interrupt + enable + 2 + 1 + + + OVRIE + Overrun error Interrupt + Enable + 3 + 1 + + + SBLKIE + Synchronization Block Detected Interrupt + Enable + 4 + 1 + + + SYNCDIE + Synchronization Done + 5 + 1 + + + IFEIE + Serial Interface Error Interrupt + Enable + 6 + 1 + + + + + SR + SR + Status register + 0x8 + 0x20 + read-only + 0x00000000 + + + RXNE + Read data register not + empty + 0 + 1 + + + CSRNE + Control Buffer register is not + empty + 1 + 1 + + + PERR + Parity error + 2 + 1 + + + OVR + Overrun error + 3 + 1 + + + SBD + Synchronization Block + Detected + 4 + 1 + + + SYNCD + Synchronization Done + 5 + 1 + + + FERR + Framing error + 6 + 1 + + + SERR + Synchronization error + 7 + 1 + + + TERR + Time-out error + 8 + 1 + + + WIDTH5 + Duration of 5 symbols counted with + SPDIF_CLK + 16 + 15 + + + + + IFCR + IFCR + Interrupt Flag Clear register + 0xC + 0x20 + write-only + 0x00000000 + + + PERRCF + Clears the Parity error + flag + 2 + 1 + + + OVRCF + Clears the Overrun error + flag + 3 + 1 + + + SBDCF + Clears the Synchronization Block + Detected flag + 4 + 1 + + + SYNCDCF + Clears the Synchronization Done + flag + 5 + 1 + + + + + DR + DR + Data input register + 0x10 + 0x20 + read-only + 0x00000000 + + + DR + Parity Error bit + 0 + 24 + + + PE + Parity Error bit + 24 + 1 + + + V + Validity bit + 25 + 1 + + + U + User bit + 26 + 1 + + + C + Channel Status bit + 27 + 1 + + + PT + Preamble Type + 28 + 2 + + + + + CSR + CSR + Channel Status register + 0x14 + 0x20 + read-only + 0x00000000 + + + USR + User data information + 0 + 16 + + + CS + Channel A status + information + 16 + 8 + + + SOB + Start Of Block + 24 + 1 + + + + + DIR + DIR + Debug Information register + 0x18 + 0x20 + read-only + 0x00000000 + + + THI + Threshold HIGH + 0 + 13 + + + TLO + Threshold LOW + 16 + 13 + + + + + + + HDMI_CEC + HDMI-CEC controller + HDMI_CEC + 0x40006C00 + + 0x0 + 0x400 + registers + + + HDMI_CEC + HDMI-CEC global interrupt + 93 + + + + CEC_CR + CEC_CR + CEC control register + 0x0 + 0X20 + 0x00000000 + + + TXEOM + Tx End Of Message + 2 + 1 + read-only + + + TXSOM + Tx Start Of Message + 1 + 1 + read-only + + + CECEN + CEC Enable + 0 + 1 + read-write + + + + + CEC_CFGR + CEC_CFGR + CEC configuration register + 0x4 + 0X20 + read-write + 0x00000000 + + + LSTN + Listen mode + 31 + 1 + + + OAR + Own addresses + configuration + 16 + 15 + + + SFTOP + SFT Option Bit + 8 + 1 + + + BRDNOGEN + Avoid Error-Bit Generation in + Broadcast + 7 + 1 + + + LBPEGEN + Generate Error-Bit on Long Bit Period + Error + 6 + 1 + + + BREGEN + Generate Error-Bit on Bit Rising + Error + 5 + 1 + + + BRESTP + Rx-Stop on Bit Rising + Error + 4 + 1 + + + RXTOL + Rx-Tolerance + 3 + 1 + + + SFT + Signal Free Time + 0 + 3 + + + + + CEC_TXDR + CEC_TXDR + CEC Tx data register + 0x8 + 0X20 + write-only + 0x00000000 + + + TXD + Tx Data register + 0 + 8 + + + + + CEC_RXDR + CEC_RXDR + CEC Rx Data Register + 0xC + 0X20 + read-only + 0x00000000 + + + RXD + Rx Data register + 0 + 8 + + + + + CEC_ISR + CEC_ISR + CEC Interrupt and Status + Register + 0x10 + 0X20 + read-write + 0x00000000 + + + TXACKE + Tx-Missing Acknowledge + Error + 12 + 1 + + + TXERR + Tx-Error + 11 + 1 + + + TXUDR + Tx-Buffer Underrun + 10 + 1 + + + TXEND + End of Transmission + 9 + 1 + + + TXBR + Tx-Byte Request + 8 + 1 + + + ARBLST + Arbitration Lost + 7 + 1 + + + RXACKE + Rx-Missing Acknowledge + 6 + 1 + + + LBPE + Rx-Long Bit Period Error + 5 + 1 + + + SBPE + Rx-Short Bit Period Error + 4 + 1 + + + BRE + Rx-Bit Rising Error + 3 + 1 + + + RXOVR + Rx-Overrun + 2 + 1 + + + RXEND + End Of Reception + 1 + 1 + + + RXBR + Rx-Byte Received + 0 + 1 + + + + + CEC_IER + CEC_IER + CEC interrupt enable register + 0x14 + 0X20 + read-write + 0x00000000 + + + TXACKIE + Tx-Missing Acknowledge Error Interrupt + Enable + 12 + 1 + + + TXERRIE + Tx-Error Interrupt Enable + 11 + 1 + + + TXUDRIE + Tx-Underrun Interrupt + Enable + 10 + 1 + + + TXENDIE + Tx-End Of Message Interrupt + Enable + 9 + 1 + + + TXBRIE + Tx-Byte Request Interrupt + Enable + 8 + 1 + + + ARBLSTIE + Arbitration Lost Interrupt + Enable + 7 + 1 + + + RXACKIE + Rx-Missing Acknowledge Error Interrupt + Enable + 6 + 1 + + + LBPEIE + Long Bit Period Error Interrupt + Enable + 5 + 1 + + + SBPEIE + Short Bit Period Error Interrupt + Enable + 4 + 1 + + + BREIE + Bit Rising Error Interrupt + Enable + 3 + 1 + + + RXOVRIE + Rx-Buffer Overrun Interrupt + Enable + 2 + 1 + + + RXENDIE + End Of Reception Interrupt + Enable + 1 + 1 + + + RXBRIE + Rx-Byte Received Interrupt + Enable + 0 + 1 + + + + + + + SDIO + Secure digital input/output + interface + SDIO + 0x40012C00 + + 0x0 + 0x400 + registers + + + SDIO + SDIO global interrupt + 49 + + + + POWER + POWER + power control register + 0x0 + 0x20 + read-write + 0x00000000 + + + PWRCTRL + PWRCTRL + 0 + 2 + + + + + CLKCR + CLKCR + SDI clock control register + 0x4 + 0x20 + read-write + 0x00000000 + + + HWFC_EN + HW Flow Control enable + 14 + 1 + + + NEGEDGE + SDIO_CK dephasing selection + bit + 13 + 1 + + + WIDBUS + Wide bus mode enable bit + 11 + 2 + + + BYPASS + Clock divider bypass enable + bit + 10 + 1 + + + PWRSAV + Power saving configuration + bit + 9 + 1 + + + CLKEN + Clock enable bit + 8 + 1 + + + CLKDIV + Clock divide factor + 0 + 8 + + + + + ARG + ARG + argument register + 0x8 + 0x20 + read-write + 0x00000000 + + + CMDARG + Command argument + 0 + 32 + + + + + CMD + CMD + command register + 0xC + 0x20 + read-write + 0x00000000 + + + CE_ATACMD + CE-ATA command + 14 + 1 + + + nIEN + not Interrupt Enable + 13 + 1 + + + ENCMDcompl + Enable CMD completion + 12 + 1 + + + SDIOSuspend + SD I/O suspend command + 11 + 1 + + + CPSMEN + Command path state machine (CPSM) Enable + bit + 10 + 1 + + + WAITPEND + CPSM Waits for ends of data transfer + (CmdPend internal signal). + 9 + 1 + + + WAITINT + CPSM waits for interrupt + request + 8 + 1 + + + WAITRESP + Wait for response bits + 6 + 2 + + + CMDINDEX + Command index + 0 + 6 + + + + + RESPCMD + RESPCMD + command response register + 0x10 + 0x20 + read-only + 0x00000000 + + + RESPCMD + Response command index + 0 + 6 + + + + + RESP1 + RESP1 + response 1..4 register + 0x14 + 0x20 + read-only + 0x00000000 + + + CARDSTATUS1 + Card Status + 0 + 32 + + + + + RESP2 + RESP2 + response 1..4 register + 0x18 + 0x20 + read-only + 0x00000000 + + + CARDSTATUS2 + Card Status + 0 + 32 + + + + + RESP3 + RESP3 + response 1..4 register + 0x1C + 0x20 + read-only + 0x00000000 + + + CARDSTATUS3 + Card Status + 0 + 32 + + + + + RESP4 + RESP4 + response 1..4 register + 0x20 + 0x20 + read-only + 0x00000000 + + + CARDSTATUS4 + Card Status + 0 + 32 + + + + + DTIMER + DTIMER + data timer register + 0x24 + 0x20 + read-write + 0x00000000 + + + DATATIME + Data timeout period + 0 + 32 + + + + + DLEN + DLEN + data length register + 0x28 + 0x20 + read-write + 0x00000000 + + + DATALENGTH + Data length value + 0 + 25 + + + + + DCTRL + DCTRL + data control register + 0x2C + 0x20 + read-write + 0x00000000 + + + SDIOEN + SD I/O enable functions + 11 + 1 + + + RWMOD + Read wait mode + 10 + 1 + + + RWSTOP + Read wait stop + 9 + 1 + + + RWSTART + Read wait start + 8 + 1 + + + DBLOCKSIZE + Data block size + 4 + 4 + + + DMAEN + DMA enable bit + 3 + 1 + + + DTMODE + Data transfer mode selection 1: Stream + or SDIO multibyte data transfer. + 2 + 1 + + + DTDIR + Data transfer direction + selection + 1 + 1 + + + DTEN + DTEN + 0 + 1 + + + + + DCOUNT + DCOUNT + data counter register + 0x30 + 0x20 + read-only + 0x00000000 + + + DATACOUNT + Data count value + 0 + 25 + + + + + STA + STA + status register + 0x34 + 0x20 + read-only + 0x00000000 + + + CEATAEND + CE-ATA command completion signal + received for CMD61 + 23 + 1 + + + SDIOIT + SDIO interrupt received + 22 + 1 + + + RXDAVL + Data available in receive + FIFO + 21 + 1 + + + TXDAVL + Data available in transmit + FIFO + 20 + 1 + + + RXFIFOE + Receive FIFO empty + 19 + 1 + + + TXFIFOE + Transmit FIFO empty + 18 + 1 + + + RXFIFOF + Receive FIFO full + 17 + 1 + + + TXFIFOF + Transmit FIFO full + 16 + 1 + + + RXFIFOHF + Receive FIFO half full: there are at + least 8 words in the FIFO + 15 + 1 + + + TXFIFOHE + Transmit FIFO half empty: at least 8 + words can be written into the FIFO + 14 + 1 + + + RXACT + Data receive in progress + 13 + 1 + + + TXACT + Data transmit in progress + 12 + 1 + + + CMDACT + Command transfer in + progress + 11 + 1 + + + DBCKEND + Data block sent/received (CRC check + passed) + 10 + 1 + + + STBITERR + Start bit not detected on all data + signals in wide bus mode + 9 + 1 + + + DATAEND + Data end (data counter, SDIDCOUNT, is + zero) + 8 + 1 + + + CMDSENT + Command sent (no response + required) + 7 + 1 + + + CMDREND + Command response received (CRC check + passed) + 6 + 1 + + + RXOVERR + Received FIFO overrun + error + 5 + 1 + + + TXUNDERR + Transmit FIFO underrun + error + 4 + 1 + + + DTIMEOUT + Data timeout + 3 + 1 + + + CTIMEOUT + Command response timeout + 2 + 1 + + + DCRCFAIL + Data block sent/received (CRC check + failed) + 1 + 1 + + + CCRCFAIL + Command response received (CRC check + failed) + 0 + 1 + + + + + ICR + ICR + interrupt clear register + 0x38 + 0x20 + read-write + 0x00000000 + + + CEATAENDC + CEATAEND flag clear bit + 23 + 1 + + + SDIOITC + SDIOIT flag clear bit + 22 + 1 + + + DBCKENDC + DBCKEND flag clear bit + 10 + 1 + + + STBITERRC + STBITERR flag clear bit + 9 + 1 + + + DATAENDC + DATAEND flag clear bit + 8 + 1 + + + CMDSENTC + CMDSENT flag clear bit + 7 + 1 + + + CMDRENDC + CMDREND flag clear bit + 6 + 1 + + + RXOVERRC + RXOVERR flag clear bit + 5 + 1 + + + TXUNDERRC + TXUNDERR flag clear bit + 4 + 1 + + + DTIMEOUTC + DTIMEOUT flag clear bit + 3 + 1 + + + CTIMEOUTC + CTIMEOUT flag clear bit + 2 + 1 + + + DCRCFAILC + DCRCFAIL flag clear bit + 1 + 1 + + + CCRCFAILC + CCRCFAIL flag clear bit + 0 + 1 + + + + + MASK + MASK + mask register + 0x3C + 0x20 + read-write + 0x00000000 + + + CEATAENDIE + CE-ATA command completion signal + received interrupt enable + 23 + 1 + + + SDIOITIE + SDIO mode interrupt received interrupt + enable + 22 + 1 + + + RXDAVLIE + Data available in Rx FIFO interrupt + enable + 21 + 1 + + + TXDAVLIE + Data available in Tx FIFO interrupt + enable + 20 + 1 + + + RXFIFOEIE + Rx FIFO empty interrupt + enable + 19 + 1 + + + TXFIFOEIE + Tx FIFO empty interrupt + enable + 18 + 1 + + + RXFIFOFIE + Rx FIFO full interrupt + enable + 17 + 1 + + + TXFIFOFIE + Tx FIFO full interrupt + enable + 16 + 1 + + + RXFIFOHFIE + Rx FIFO half full interrupt + enable + 15 + 1 + + + TXFIFOHEIE + Tx FIFO half empty interrupt + enable + 14 + 1 + + + RXACTIE + Data receive acting interrupt + enable + 13 + 1 + + + TXACTIE + Data transmit acting interrupt + enable + 12 + 1 + + + CMDACTIE + Command acting interrupt + enable + 11 + 1 + + + DBCKENDIE + Data block end interrupt + enable + 10 + 1 + + + STBITERRIE + Start bit error interrupt + enable + 9 + 1 + + + DATAENDIE + Data end interrupt enable + 8 + 1 + + + CMDSENTIE + Command sent interrupt + enable + 7 + 1 + + + CMDRENDIE + Command response received interrupt + enable + 6 + 1 + + + RXOVERRIE + Rx FIFO overrun error interrupt + enable + 5 + 1 + + + TXUNDERRIE + Tx FIFO underrun error interrupt + enable + 4 + 1 + + + DTIMEOUTIE + Data timeout interrupt + enable + 3 + 1 + + + CTIMEOUTIE + Command timeout interrupt + enable + 2 + 1 + + + DCRCFAILIE + Data CRC fail interrupt + enable + 1 + 1 + + + CCRCFAILIE + Command CRC fail interrupt + enable + 0 + 1 + + + + + FIFOCNT + FIFOCNT + FIFO counter register + 0x48 + 0x20 + read-only + 0x00000000 + + + FIFOCOUNT + Remaining number of words to be written + to or read from the FIFO. + 0 + 24 + + + + + FIFO + FIFO + data FIFO register + 0x80 + 0x20 + read-write + 0x00000000 + + + FIFOData + Receive and transmit FIFO + data + 0 + 32 + + + + + + + diff --git a/sys/allowed_signers.sh b/sys/allowed_signers.sh new file mode 100755 index 0000000..eb4de92 --- /dev/null +++ b/sys/allowed_signers.sh @@ -0,0 +1,70 @@ +#!/bin/sh + +# Скрипт для обновления ключей для проверки подписей коммитов + +if ! git --version > /dev/null 2>&1; then + printf "\n\033[0;31mGIT is not found!\033[0m\n"; exit 1; +fi + +if ! git status > /dev/null 2>&1; then + printf "\n\033[0;31mThis is not a git repo!\033[0m\n"; exit 1; +fi + +domain=$(git remote -v | head -n 1 | tr '\t' ' ' | cut -d ' ' -f2) +domain=$(echo "$domain" | sed 's/.*@//' | sed 's/:.*//') + +echo "Repo domain: $domain" + +login=$1 +password=$2 + +if [ -z "$login" ]; then + printf "Enter login: " + read -r login +fi + +if [ -z "$password" ]; then + stty -echo + printf "Enter password: " + read -r password + stty echo + printf "\n" +fi + +apitest=$(curl -s -u "$login:$password" "https://$domain/api/v1/user") +# echo "apitest: $apitest" + +if echo "$apitest" | grep -- 'user does not exist' >/dev/null 2>&1; then + printf "\033[0;31mERROR: User \"%s\" does not exist on %s\033[0m\n" "$login" "$domain"; exit 1; +fi + +if echo "$apitest" | grep -- 'password is invalid' >/dev/null 2>&1; then + printf "\033[0;31mERROR: Invalid password\033[0m\n"; exit 1; +fi + +allowed_signers_file=~/.ssh/allowed_signers + +if [ ! -f "$allowed_signers_file" ]; then + echo "Create $allowed_signers_file" + touch $allowed_signers_file +fi + +users=$(git shortlog -snc --all | tr '\t' ' ' | sed 's/^ *//' | cut -d ' ' -f2) +echo "Repo users: $users" | tr "\n" ' '; echo + +echo "" > test.txt +for user in $users; do + keys=$(curl -s -u "$login:$password" "https://$domain/api/v1/users/$user/keys") + keys=$(echo "$keys" | tr , '\n' | grep -E -- '^"key":".*' | sed 's/^"key"://' | tr -d '\n') + + IFS='"' + for key in $keys; do + if [ "$key" = "" ]; then continue; fi + if grep -Fq "$key" "$allowed_signers_file"; then continue; fi + echo "New key for $user" + printf "%s %s\n" "$user" "$key" >> $allowed_signers_file + done + unset IFS +done + +echo "$allowed_signers_file updated" \ No newline at end of file diff --git a/sys/changelog.sh b/sys/changelog.sh new file mode 100755 index 0000000..3adaad0 --- /dev/null +++ b/sys/changelog.sh @@ -0,0 +1,38 @@ +#!/bin/sh + +# Скрипт генерирует changelog от последнего релиза. + +CHANGELOG=CHANGELOG.md + +printf "\033[0;32m~~~ %s generation ~~~\033[0m\n" "$CHANGELOG"; + +if ! git --version > /dev/null 2>&1; then + printf "\n\033[0;31mGIT is not found!\033[0m\n"; exit 1; +fi + +if ! git status > /dev/null 2>&1; then + printf "\n\033[0;31mThis is not a git repo!\033[0m\n"; exit 1; +fi + +# Get all tags that points to the HEAD +CURRENT_TAG=$(git tag --points-at HEAD) +echo "Current tag: $CURRENT_TAG" + +LAST_TAG=$(git describe --tags --abbrev=0 HEAD^ 2> /dev/null) +echo "Last tag: $LAST_TAG" + +if [ -n "$CURRENT_TAG" ]; then + printf "
changelog:\n\n" > $CHANGELOG +else + printf "Current commit does not have a release tag.\n\n" > $CHANGELOG +fi + +if [ -n "$LAST_TAG" ]; then + git log --pretty="- %h %s" "$LAST_TAG..HEAD" >> $CHANGELOG +else + git log --pretty="- %h %s" >> $CHANGELOG +fi + +if [ -n "$CURRENT_TAG" ]; then + printf "
" >> $CHANGELOG +fi \ No newline at end of file diff --git a/sys/export.bat b/sys/export.bat new file mode 100644 index 0000000..249d08f --- /dev/null +++ b/sys/export.bat @@ -0,0 +1,4 @@ +@echo off +chcp 65001 > nul +set "PATH=%USERPROFILE%\.xpack-dev-tools\xpack-windows-build-tools-4.4.1-2\bin;%PATH%" +set "PATH=%USERPROFILE%\.xpack-dev-tools\xpack-arm-none-eabi-gcc-12.3.1-1.2\bin;%PATH%" diff --git a/sys/export.ps1 b/sys/export.ps1 new file mode 100644 index 0000000..1c798c5 --- /dev/null +++ b/sys/export.ps1 @@ -0,0 +1,3 @@ +chcp 65001 > $null +$env:PATH = "$env:UserProfile\.xpack-dev-tools\xpack-windows-build-tools-4.4.1-2\bin;" + $env:PATH +$env:PATH = "$env:UserProfile\.xpack-dev-tools\xpack-arm-none-eabi-gcc-12.3.1-1.2\bin;" + $env:PATH diff --git a/sys/export.sh b/sys/export.sh new file mode 100644 index 0000000..19ca6f6 --- /dev/null +++ b/sys/export.sh @@ -0,0 +1,17 @@ +# This script should be sourced, not executed. +# shellcheck disable=SC2148,SC1091,SC3010 + +if echo "$0" | grep -- "bash" >/dev/null; then + if [ -f "$HOME/.bash_profile" ]; then . "$HOME/.bash_profile"; fi +fi + +if uname | grep -- "MINGW64" >/dev/null 2>&1; then + chcp.com 65001 > /dev/null + PATH=~/.xpack-dev-tools/xpack-windows-build-tools-4.4.1-2/bin:$PATH +fi + +if uname | grep -- "Darwin" >/dev/null 2>&1; then + PATH=/opt/homebrew/opt/make/libexec/gnubin:$PATH +fi + +PATH=~/.xpack-dev-tools/xpack-arm-none-eabi-gcc-12.3.1-1.2/bin:$PATH diff --git a/sys/export.zsh b/sys/export.zsh new file mode 100644 index 0000000..14bbc18 --- /dev/null +++ b/sys/export.zsh @@ -0,0 +1,4 @@ +# This script should be sourced, not executed. + +export PATH=/opt/homebrew/opt/make/libexec/gnubin:$PATH +export PATH=~/.xpack-dev-tools/xpack-arm-none-eabi-gcc-12.3.1-1.2/bin:$PATH diff --git a/sys/hex2fw.sh b/sys/hex2fw.sh new file mode 100755 index 0000000..66048fc --- /dev/null +++ b/sys/hex2fw.sh @@ -0,0 +1,184 @@ +#!/bin/sh +# shellcheck disable=SC2034,SC2317 +# Скрипт преобразования hex в fw. +# В качестве параметра принимает путь к файлу hex. + +# https://srecord.sourceforge.net/ +# https://manpages.ubuntu.com/manpages/xenial/man1/srec_cat.1.html +# https://manpages.ubuntu.com/manpages/xenial/man1/srec_examples.1.html + + +# echo -e "\033[0;32m~~~ Hex to FW ~~~\033[0m"; + +PATH=$(pwd)/$(dirname "$0")/srecord:$PATH +PATH="C:/Program Files/Git/usr/bin/":$PATH + +#========================== Functions ========================== +# ByteString - ascii string with bytes separated by spaces like "00 11 22 33" + +HexStringToByteString() { printf "%s" "$1" | od -An -t x1 | tr -d '\n' | tr 'a-f' 'A-F' | awk '{$1=$1};1' | tr -d '\n'; } + +GetRandomByteString() { openssl rand "$1" | od -An -t x1 | tr -d '\n' | tr 'a-f' 'A-F' | awk '{$1=$1};1' | tr -d '\n'; } + +IntelHexFileToByteString() +{ + T=$(srec_cat "$1" -intel -fill 0xFF -over "$1" -intel -address-length=4 -o - -ascii_hex) + res1=0x$(echo "$T" | head -n 1 | cut -f1 -d , | sed "s/.*\$A//") # Output: start addr + T=$(echo "$T" | tr -d '\r' | tr '\n' ' ' | tr '\002\003' ',') + T=$(echo "$T" | cut -f3 -d , | awk '{$1=$1};1') # (awk '{$1=$1};1' - remove leading, trailing and extra spaces between fields) + res2=$(echo "$T" | wc -w) # Output: size in bytes + res3=$T # Output: byte string +} + +# parmeters: addr fieldsnum string +GetFieldsFromByteString() { echo "$3" | cut -d ' ' -f "$1"-$(($1 + $2 - 1)); } + +# parmeters: addr fieldsnum string +GetHexFromByteString() { printf 0x; GetFieldsFromByteString "$1" "$2" "$3" | awk '{print $4,$3,$2,$1}' | tr -d ' '; } + +# parmeters: addr fieldsnum string +GetStringFromByteString() { GetFieldsFromByteString "$1" "$2" "$3" | xxd -r -p | tr -d '\000'; } + +ByteStringToAsciiHex() +{ + printf "\002 \$A%08X,\n" "$1" # Start and Address + echo "$2" | fold -s -w48 | awk '{$1=$1};1' # Data (awk '{$1=$1};1' - remove leading, trailing and extra spaces between fields) + printf "\003" # The End +} + +CRC32_FromByteString() +{ + # CAN прошивка использует кривой MPEG2 CRC32 по историческим причинам + # В будущем надо исправить на нормальный CRC32 от STM32 + T=$(ByteStringToAsciiHex 0x10000000 "$1") + T=$(echo "$T" | srec_cat - -ascii_hex -Bit_Reverse 4 -stm32 0 -Bit_Reverse 4 -xor 0xFF -o -ascii_hex) + echo "$T" | tr -d '\002\003' | head -n 2 | tail -n 1 | cut -d ' ' -f1-4 +} + +HexToByteString() { echo "$1" | sed 's/^0x//' | fold -w2 | tac | tr '\n' ' ' | sed 's/ $//'; } + +#========================== Main code ========================== + +IntelHexFileToByteString "$1" +fw_start_addr=$res1 +# echo "fw_start_addr $fw_start_addr" +fw_size=$res2 +# echo "fw_size $fw_size" +fw_data=$res3 +# echo "fw_data: $fw_data" + +# выкидываем последние 4 байта и дописываем наше CRC +fw_data=$(GetFieldsFromByteString 1 $((fw_size - 4)) "$fw_data") +crc=$(CRC32_FromByteString "$fw_data") +fw_data="$fw_data $crc" +# echo "fw_data: $fw_data" + +struct_addr=$(GetHexFromByteString 1 4 "$fw_data") +# echo "struct_addr $struct_addr" +struct_offset=$(( struct_addr - fw_start_addr )) +# echo "struct_offset $struct_offset" + +# // Структура массива информации о CAN-прошивке +# struct TCanFwInfo { +# TVersion Version; // Версия ПО +# uint32_t Build; // Хеш коммита в репозитории git +# uint32_t const * pCRC32; // Адрес, где расположена CRC32 +# uint32_t reserved2; +# uint8_t TextInfo[64]; // Текстовая информация +# } __attribute__((packed, aligned(4))); + +# // описание прошивки +# const TCanFwInfo gCanFwInfo = +# { +# (CAN_FW_VERSION << 24) | BUILD_DATE, // Version - Версия ПО +# GIT_BUILD, // Хеш коммита в репозитории git +# &CanChksum, // *pCRC32 - Адрес, где расположена CRC32 +# 0, // reserved2 +# M_NAME CAN_FW_DESCRIPTION "_" GIT_VERSION // TextInfo[64] - Текстовая информация +# }; + +index=$(( struct_offset + 1 )) +day=$(GetFieldsFromByteString "$index" 1 "$fw_data") +# echo "day: $day" + +index=$(( index + 1 )) +mounth=$(GetFieldsFromByteString "$index" 1 "$fw_data") +# echo "mounth: $mounth" + +index=$(( index + 1 )) +year=$(GetFieldsFromByteString "$index" 1 "$fw_data") +# echo "year: $year" + +index=$(( index + 1 )) +can_fw_version=$(GetFieldsFromByteString "$index" 1 "$fw_data") +# echo "can_fw_version: $can_fw_version" + +index=$(( index + 1 )) +git_build=$(GetFieldsFromByteString "$index" 4 "$fw_data") +# echo "git_build: $git_build" + +index=$(( index + 4 )) +CRC_addr=$(GetHexFromByteString "$index" 4 "$fw_data") +# echo "CRC_addr: $CRC_addr" + +index=$(( index + 8 )) +text_info=$(GetStringFromByteString "$index" 64 "$fw_data") +# echo "text_info: $text_info" + +# Версия git в последнем поле после '_' +git_version=$(echo "$text_info" | awk -F '_' '{print $NF}') +# echo "git_version: $git_version" + +# struct TFirmwareHdr { +# uint32_t ChckSum; // вычисляется по всем нижеследующим полям и данным +# uint32_t Type; // тип прошивки +# uint32_t Version; // версия/дата +# uint32_t Build; // Билд прошивки +# uint32_t Len; // длина данных +# uint32_t Offset; // смещение прошивки во flash +# uint8_t InitVect[8]; // Случайное число, используется при дешифровании +# }; // sizeof() = 32 + +# struct TFirmwareFileHdr { +# uint8_t Sign[8]; // fixed to 'MOBICAR ' +# uint8_t Desc[64]; // текстовое описание +# uint8_t pad1[24]; // дополнение до 96 байт +# TFirmwareHdr bin_hdr; +# }; // sizeof() = 128 + +# hdr1 - заголовок до CRC +hdr1="MOBICAR version $can_fw_version$year$mounth$day, $day.$mounth.$year, GIT = $git_version" +# echo "hdr1: $hdr1" +length=$(( ${#hdr1} )) +# echo "length: $length" +hdr1=$(HexStringToByteString "$hdr1") + +# Добиваем остаток до TFirmwarehdr (8+64+24=96) +for i in $(seq $(( length + 1 )) 96); do + hdr1="$hdr1 00" +done +# printf "hdr1:\n%s\n" "$hdr1" + +# hdr2 - заголовок после CRC +hdr2="02 00 00 00" # тип прошивки (CAN) +hdr2="$hdr2 $day $mounth $year $can_fw_version" # версия/дата +hdr2="$hdr2 $git_build" # Хеш коммита в репозитории git +len=$(printf "%08X" "$fw_size") # Len (Длина данных) +len=$(HexToByteString "$len") +hdr2="$hdr2 $len" +offset=$(printf "%08X" "$fw_start_addr") # offset (смещение прошивки во flash) +offset=$(HexToByteString "$offset") +hdr2="$hdr2 $offset" +rand=$(GetRandomByteString 8) +# echo "rand: $rand" +hdr2="$hdr2 $rand" +# printf "hdr2:\n%s\n" "$hdr2" + +crc=$(CRC32_FromByteString "$hdr2 $fw_data") +# printf "crc:\n%s\n" "$crc" +fw="$hdr1 $crc $hdr2 $fw_data" +# printf "fw:\n%s\n" "$fw" | fold -w48 + +fw_path="$(dirname "$1")/$text_info.fw" +printf "Generate \033[0;32m%s\033[0m\n" "$fw_path" +ByteStringToAsciiHex 0 "$fw" | srec_cat - -ascii_hex -o "$fw_path" -binary diff --git a/sys/info/JLink_drivers_install.png b/sys/info/JLink_drivers_install.png new file mode 100644 index 0000000000000000000000000000000000000000..3b1bbbdf5f4b2003f46159277228f3f87af789a5 GIT binary patch literal 6191 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 b*8dQ6pb+nQQkbOiB0r#_sG(3LXA$y0d<^@n literal 0 HcmV?d00001 diff --git a/sys/info/install.md b/sys/info/install.md new file mode 100644 index 0000000..2d5f304 --- /dev/null +++ b/sys/info/install.md @@ -0,0 +1,108 @@ +## Подготовка к работе + +Предварительно должен быть установлен и настроен [Git for Windows 64-bit](https://git-scm.com/download/win). + +Также должны быть установлены 64-bit драйверы J-Link в папку `C:/Program Files/SEGGER/JLink/` +* Update existing installation +* Install for all users + +![alt text](JLink_drivers_install.png) + +--- + +### Установка Dev Tools +Запускаем скрипт [sys/install.sh](../../sys/install.sh) + +Произойдет скачивание и распаковка архивов с build tools и toolchain в папку `С:/xpack-dev-tools`. Никакие переменные среды не меняются, установка полностью независима (портативная) и не затрагивает никакие другие программы. + +После установки Dev Tools необходимо перезапустить VSCode если он был запущен. + +--- + +### Установка VSCode + +Скачиваем и устанавливаем [стабильную версию](https://code.visualstudio.com/). +- Открываем папку с нашим проектом в VSCode. +- Открываем расширения `Ctrl+Shift+X`. +- Устанавливаем расширения рекомендованные нашим `workspace`. Они помечены текстом `This extension is recommended by users of the current workspace.` +- [C/C++](vscode:extension/ms-vscode.cpptools) и [Cortex-Debug](vscode:extension/marus25.cortex-debug) обязательны к установке, остальные по желанию. + +Дополнительные расширения: +- [Git Graph](vscode:extension/mhutchie.git-graph) - рекомендую для работы с git. +- [LinkerScript](vscode:extension/ZixuanWang.linkerscript) - Linker Script files syntax. +- [GNU Linker Map files](vscode:extension/trond-snekvik.gnu-mapfiles) - Linker Map files syntax. +- [Intel HEX format](vscode:extension/keroc.hex-fmt) - Intel Hex files syntax. +- [Hex Editor](vscode:extension/ms-vscode.hexeditor) - Hex editor for binary files. +- [Arm Assembly](vscode:extension/dan-c-underwood.arm) - ARM Assembly files syntax. +- [Material Icon Theme](vscode:extension/pkief.material-icon-theme) - Симпатичные иконки файлов и папок в Explorer слева. +- [EditorConfig for VS Code](vscode:extension/EditorConfig.EditorConfig) - Следит за табами/пробелами/отступами/кодировкой для всех файлов проекта. +- [Open in External App](vscode:extension/YuTengjing.open-in-external-app) - Позволяет открывать файлы проекта в системных приложениях прямо из VSCode. +- [Task Buttons](vscode:extension/spencerwmiles.vscode-task-buttons) - Отображает кнопки для запуска тасков в статусбаре. + +Рекомендации всех расширений находятся в файле [.vscode/extensions.json](../../.vscode/extensions.json). + +--- + +### Сборка проекта в консоли +Сборка осуществяется с помощью `make`. + +В папке `settings` находятся скрипты экспорта переменных окружения: +- [sys/export.sh](../../sys/export.sh) - для bash +- [sys/export.bat](../../sys/export.bat) - для cmd +- [sys/export.ps1](../../sys/export.ps1) - для powershell + +Чтобы все наши компиляторы/линкеры/утилиты да и сам `make` стали доступными, вначале необходимо запустить соответствующий скрипт экспорта. + +Для bash запускаем через точку `. sys/export.sh`. Для остальных достаточно просто запустить скрипт. + +Далее просто запускаем нужный `make` таргет. + +#### Команды `make` +- `make -e MODEL=M2 debug` - сборка дебага M2 +- `make -e MODEL=M3 debug` - сборка дебага M3 +- `make -e MODEL=M2 release` - сборка релиза M2 +- `make -e MODEL=M3 release` - сборка релиза M3 + +Релизные сборки отличаются отключеным дефайном `DEBUG` и оптимизацией кода по размеру. + +--- + +### Сборка проекта в консоли VSCode +Тут проще: +- Открываем папку с нашим проектом в VSCode. +- Открываем консоль `Ctrl+~`. (запустится терминал по молчанию) +- Можете выбрать свой любимый терминал. Я предпочитаю `Git Bash`. +- И сразу можем набирать команды `make`. + +В файле [.vscode/settings.json](../../.vscode/settings.json) находятся конфигурации встроенных терминалов которые автоматически подгружают скрипты экспорта при открытии. + +--- + +### Сборка проекта с помощью VSCode Tasks. +- Открываем папку с нашим проектом в VSCode. +- Нажимаем `Ctrl+Shift+B` и выбираем нужный Task. + +Таски находятся в файле [.vscode/tasks.json](../../.vscode/tasks.json). Они автоматически загружают экспорт окружения и запускают нужные команды `make`. + +Если установлено расширение [Task Buttons](vscode:extension/spencerwmiles.vscode-task-buttons), то в строке статуса появятся кнопки для удобного запуска тасков `M2 Release`, `M3 Release`, `M2 Debug`, `M3 Debug`, `Clean`. + +--- + +### Отладка VSCode +В разделе `Run and Debug` слева выбираем конфигурацию отладки `Debug M2` или `Debug M3` и нажимаем зеленую стрелочку `Start Debugging` или `F5`. + +Проект автоматически соберется (preLaunchTask), прошьется МК и запустится отладка. + +Вывод логов доступен в терминале `SWO:ITM`. + +В дальнейшем если конфигурация ранее уже была выбрана, то для запуска компиляции и отладки достаточно просто нажимать `F5`. + +--- + +### PowerShell (если возникает ошибка) +В PowerShell по умолчанию отключено выполнение скриптов. Для исправления: +- Открываем PowerShell от имени администратора. +- Пишем и запускаем: `Set-ExecutionPolicy RemoteSigned` +- На вопрос отвечаем: A (Да для всех) + +--- \ No newline at end of file diff --git a/sys/install.sh b/sys/install.sh new file mode 100755 index 0000000..fd51325 --- /dev/null +++ b/sys/install.sh @@ -0,0 +1,103 @@ +#!/bin/sh +# shellcheck disable=SC2034 + +# This script installs dev tools (build tools & toolchain) + +# https://github.com/xpack-dev-tools/windows-build-tools-xpack/releases +# https://github.com/xpack-dev-tools/arm-none-eabi-gcc-xpack/releases + + +build_tools_version="4.4.1-2" # For Windows only +toolchain_version="12.3.1-1.2" # For all OS + +############################################################################################### + +install_path=~/.xpack-dev-tools # For all OS +api_build_tools_url=https://api.github.com/repos/xpack-dev-tools/windows-build-tools-xpack/releases +api_toolchain_url=https://api.github.com/repos/xpack-dev-tools/arm-none-eabi-gcc-xpack/releases + +Extract() { + archive="$1" + + if echo "$archive" | grep -E -- ".zip$" >/dev/null 2>&1; then + unzip -o "$archive" + fi + + if echo "$archive" | grep -E -- ".tar.gz$" >/dev/null 2>&1; then + tar xvf "$archive" + fi +} + +# Usage: Install [api_url] [version] [file_ending] +Install() { + api_url="$1" + version="$2" + file_ending="$3" + + install_folder="xpack-"$(echo "$api_url" | cut -d '/' -f6 | sed "s/xpack/$version/") + # echo "Install folder: $install_folder" + + if [ -d "$install_path/$install_folder" ]; then + echo "Use: $install_folder" + return + fi + + url=$(curl --ssl-no-revoke -s -L "$api_url" | grep -- "browser_download_url" | grep -- "$version" | grep -- "$file_ending\"" | cut -d '"' -f4) + # echo "Download URL: $url" + archive=$(basename "$url") + # echo "Archive: $archive" + + mkdir -p "$install_path" + cd "$install_path" || exit 1 + + curl --ssl-no-revoke -L -O "$url" + Extract "$archive" + rm "$archive" +} + +# Windows +if uname | grep -- "MINGW64" >/dev/null 2>&1; then + Install "$api_build_tools_url" "$build_tools_version" "win32-x64.zip" + Install "$api_toolchain_url" "$toolchain_version" "win32-x64.zip" + exit +fi + +# Linux +if uname | grep -- "Linux" >/dev/null 2>&1; then + if uname -a | grep -- "x86_64" >/dev/null 2>&1; then + Install "$api_toolchain_url" "$toolchain_version" "linux-x64.tar.gz" + elif uname -a | grep -- "aarch64" >/dev/null 2>&1; then + Install "$api_toolchain_url" "$toolchain_version" "linux-arm64.tar.gz" + elif uname -a | grep -- "arm" >/dev/null 2>&1; then + Install "$api_toolchain_url" "$toolchain_version" "linux-arm.tar.gz" + else + echo "Unknown Linux architecture"; exit 1 + fi + if ( ! xxd --version > /dev/null 2>&1 ) || ( ! srec_cat --version > /dev/null 2>&1 ); then + sudo apt update + fi + if ! xxd --version > /dev/null 2>&1; then + sudo apt install -y xxd + else + echo "Use: xxd" + fi + if ! srec_cat --version > /dev/null 2>&1; then + sudo apt install -y srecord + else + echo "Use: srecord" + fi + exit +fi + +# MAC +if uname | grep -- "Darwin" >/dev/null 2>&1; then + if uname -a | grep -- "arm64" >/dev/null 2>&1; then + Install "$api_toolchain_url" "$toolchain_version" "darwin-arm64.tar.gz" + elif uname -a | grep -- "x86_64" >/dev/null 2>&1; then + Install "$api_toolchain_url" "$toolchain_version" "darwin-x64.tar.gz" + else + echo "Unknown Darwin architecture"; exit 1 + fi + brew install make srecord coreutils + exit +fi \ No newline at end of file diff --git a/sys/srecord/libgcrypt-20.dll b/sys/srecord/libgcrypt-20.dll new file mode 100644 index 0000000000000000000000000000000000000000..e12250e6d79f13c9bac02ed5e2bdced28b227e1b GIT binary patch literal 1294922 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 z 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ξ{l)p!HhxA)w8TG*L_U2-Sz;5% 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
~GgK8~k-M>PCA}`lE*CRd=JVFx2-1QySV@{nN8 z`J2_s-+7w6MPhH;8(QqW3@)^Sdl1dY!lK&=DAB#zJp|jC&re#+E%Qpwllq-nZ+g?Uxz8v8Q>dpiZ)jR1{4FL=dj2`W;cIS~r_%wz}TbaNb$QaHx z(W}owukc8J0T>m*wSzXb2s)PLlu$#{l4ab7uL*0%s!GRk_kpdiC{hq(xzQS9*wvvQ zrc$_Xw-l;p#VJ%XS6d+Hw)27#ZbZcd373eaPrd7>=R{}bA3b)yh3a_P{`Dva1I!?# ze{QLf`85(xn3^LfYHJ?+i_yW%OzICBZFi8$d4r~H?#+C`XX?2?_EcQw8&vBagIp7l zKTBu^$?ZB{rZajHASNOtTcNr)y;MYtoEg>6zeD@F6on7l|gu3uYEI6U>#F zKH=h&fE1$6bMzc z&4cQ+WVviwUb5Uq1`}}=!E}-?N7Qrj!ekN9$jg9yM?=mB`f$vFmv zO!h{Y4!cCaw)QbHsm4yQjfyAhk62C5v~1b%M9@*Eg?Z?>W_==CuZ~-$ERGLjXm+!d zLc}sINjs>ArqerDI91LS^7z#%1*MG- z_vbRaf;~FvWSLUjaxZ&CscOzmC<*|p_FlW(nIsmfzl`dYlu-J}SEy6HzAN>4rN2I? zv|0l~dhS<2xfn#Wea~C%Rm$mJf9rZR8#mvA(9@U7G3^+KqGI8ig%gwZe5|(@GS9i3 zs}|j^l)EhqBj?4e(4LsJ<8#Luy*Hg(U|42__nqeH>;(Ny<8#~|?uzH0$g4%qn2o+{kREXm&e)Uqg#T_^4Dl*h-tCc{Bo195K? z*IXVQ*ORmx%VXKo&l0O7Xgr7=auF^dO>*DJnXF*?dPQ+8Qk+l<&5+XpA1YxX9LOb3 zXGc;{EXET#hqp@RH4wL6WMQo{iXt&cx)u@_o{SQP7OZOoi~HGu3hQ~GAGT*wS+J=! z7Cz0$J_tOi@Vn^|sqlMI5!H7x^tN!{Q1wrjOk%(j>eY4;Kd4CaWMdbtnV?QtdDZDY;VkZ$$gT!MDahc z8LiVn3h<@B23vw{PPSjyJvjudoE9u~523j{J*x@m6{k%huCYA#tfybaFbeDf_FA>S z*0x7Tqn6ptxN9PnXQ!!cJLC=YirKx$+{eCM%KBJ(O_%AoGGJ|0l9#T_Mq#aURaAzF zFE!VBn9xI!5+OfV&5VrPEBlX(n`F07)|>mIRmQ(gaC%t&F_QHf9@rO zig+?QL+xx#g%H3W#SaKp|e~ zT*(Y5>O~ohksTdy{*9zo^OQ1N-hqr(sR@R!Jev#zonKJ_2lcDQsCX51j~7*`U2AYG zj#FMTxi5#&qNr&~B|->SxpJe>?>~D}s724nZqrn?r{#iRnQg~7Z+c&q&WqkxwPY)C z)(}+M5R3a`L}$&&L1))Ed$&JcI%cKpCsa8Fqe%SgH->IzkMc%V0h_!MmX!E<6Y(*tiFl@H ztjAlOtvJH*kdQtzX-}zUqEFxKDRl2VBf7?`k}v$asNl^!*)9AkR%*3B`U{GCISyAj zZh9L67>niQ^Rr69zNyM%Y8I3ant9wV*1g&3L!2K>$&=QUYEgDaC`D;nwRHEVD9r+@ zJ5$NL$bRS1e}?*%hmaQ3dGw2r26_6=@8;Ip4^}M(|1tYlRrm9&4*xvQ3>34T%Y1Cy zaweo&DW?uvNJPpyyT_9`TXtGJy!DpJF)M|XSXHa%&Z6^za-DxEC8V_I4_*Z#UaFn1 zd?R1QqJJbBSIIF4_TgnGg;k#vZKtT@#Xr-@vV1`B4QeQVKT>Hlw{Dvw+B@fk<;oJp zVAGcgmL}0BIL~ZyhUqbKVBmg7RlG#q^p>L{C=F&d)Ri0U$tTXM>H8-0$?x4a;WGJ? z6l0~%EhJ8@PmuSEjJu>Nl6v@&KcSjKI8#-I#g~R88l^^##V|u(%bfFW5EV$y@e#g? z@H?FUY*lcH=GvTuRb+Y9de$gythuICMrC1Dvz)-)jzSeR;@vT%Cyo-BJDddiu~-Ka zjeAY&aU~VxR*rl-G|nme^jG_}No^iyq$FPU9KgjEk~5!8Y`U7-Wbb(%_wLp%xleP#M1#?L!A+lR;oPC=Wy zNoFC&e+vPbJDNpno#*`S7ZSWBWZzgCV?tOM3)592doV3Tv(tm>*fF~&M!b`X`Y7u( zz;|-)rGo$-5Eh|giPo2_TF7oN4M@B{|9f`SLO&EHzXY`2gmZ>h)~tL3etllR#od8~|j)E%;IsE7+?NLAI=>O^== z6GzaPu=e2>f(P5{>qD%<%Z5-OTX7Tt_T!J`$2snVyu9_$3K9Zp#h`$aTXhh|l99+A zIkxl=^^sAKB7fq8r9*wG=nuV5iQeRWC&P~`k~dms0C&SXKemmJAlayvZh3}T4@5M#m?cVnZ z!>Ced#k8KRYTNb(*?8@+F42+0`^i8q8s0Vp1uZN77A@h6r19o+mAxA=_pcc za?#8uP=E{KqW_>a#Vp$w3-Y8_Z$ST0F|=-ji@#4M-&2+ zJ z4`J$qL8NI8(w9f6r%?yRen__)!p}{%%KpY9iqou6pOM_9B*M`}^Ofw!ss4K#6FU-k zC5VSVH156#X&@BkAvtC3KqZ}JvNW0#USlNtP#zzz>IY`$#}VmztD0}x_AENdY;08t z-Z^(5Tue5xz5c>sqTLLwqoWOguGp9CG!E)mi(yn3+0qkzA{ z`z_^!NXB)bQ!>0qh5vM&OMY$Lh z?2t~#WVw7I|JC#mTB5S~OaMZcM~FFDi$Kz!k#xvI22)BuOjyA~x1^>((=-~FT7pli zb~BGCkT}8V^>^_YWUbG804I4P`~x^Tqv0|A+S0i3)Oe0TSke#S$p#viKcCx(s`H|x zhKRsMF@eYHZq1#l9S<}*9}PZhEW1;8hXtnJ?#AsbQ}5<_c);3KvzL4@m_mt{0i&1k zek~G`E;*^R3M6>iRCWs^@ zB|E3+J18lw@FUgpBUSSwH9L1ob#2NZGz&A2bf-miN3*4{xsZqmkcbdD;`o&)2YLy6 zGLAFHl3MEzv;-=hDmlCE$qX(TuktDZqbNq}1gVP8c^M&3?e# zB2|jM6tgkF%1r}6?J(}z%f>MHkm2f}3BCT2IYhE0g$uGqANL34^atCw&#_CI1pRq7kf>jyb(9W4c=2k_J z26aM)7(7^xJDneDeMZS;s9D;;4Au0cc(H4UbFRljAIuma4O7~ja_z^+SA&!VSB&Go z{)ym{`4sG_^OE4XwFWja8<(hxIaJE>@I?l&1G?26iiIHvI{3JIDuxqOIu3QQ&lQWh$6MC<8E&8h0 zuy`yJgt1*bw^oUf9zwn!v)sXq3xU^#@33R;Ne{P|Jh+sA^TyZ6CZ2G@uivs6Sfm)r zz9;bMb9{-OA^u9nmM7KZFP^m)k`GD$IR8^h5Dm>P6dXN7l#gGdErfC^bf#uKb&!&Y zai25%$1;(23IBwNKp7!X-W*g4ANl$+I7e@#z*%CMeA4!BQY zBnLS%(|Aoi5s?nlQJKVQIyq~(@%>oPVfImSihmDOdyL1N|`bch9*Od z$Sx_#r%<&!gA`ebHKf9BS}x)(Iy}+X<6ol_S?H@>n)&ZOR)&-2MVyO3)7<1xE#!|J zQgcIPGUz&o94cC&LC6qC?KqA!bFN-( z$5p#GU^(#Q(|_8Jn=VENwI6o^xRia)|HI@bu}?hE+B%(5Kz3n+I?TCgDP8ha2xW1SmL2l0H>%7qzT8h7sb zYToe2MU*wpsPQ1Ru^Y%3NX6He#U!c-2(&;ri{d7s+Zm9AXsPv0<`Usu=1xbIF z^t`QCK4KV08TRyPCXN-Nc#M+8OE%eCnmbgF6ZDUc8R4#W+K@L@*ssemYi@`Jd%04& zviSaw2!$4D(|TU6k*~&;iKrhX_PM22IR|g_hDhVHusZJx8nG@&NBq-I>N10!ZQE}; z$a43-Vm7WNL``aP>}Wa+%P5ybsg_&LtV8~XFK5`PYU71tj_E~sWu)wgy_?O(?VNZW zOG8YPXV8^YcECJHB9)D;@7Loqy&NO9StCmb#LVbXrm@bn>ifk}#9Q`I=q#DE z*0JwVp8KNEL#8W;9I=L`OIp5$KPb7(b};;swAMNed&DHLMcL8)yXH=AtOCuQ1zA#_ zyjlcnv`aqF^xvCf)_VB6qc3j(Y))@ixr(d9BNN0nc? zaU0x(FsyHnm1WFY5Ns@dlsrj%!UWgl4lnRCSO_Yw!|hUqvFuQA&zZm04e57{W$U7U z|BUDlj3?JdH@+Pk_iFU-B2MLd1m6SR_wlbr7ayAGAGYWWmOcIE{hjVm98(4NC9)g~ zi(2av_}og?^lEzFdnmenDKDrueYp1(u08kc&GZksWehN+%gy`SqkBd(5jX-<(+A>z zuCX`cgra+AjQTW(04UmT5g93-cgnerozXijZ+=B)ix$8NIDc6#5^^hhgBS57`%D}= zPze`SH!?Mz7N$NpA^oXFGc-Y6Dx}FnZI9X;wxOeG0FBC6B|1o zPC1g3>c^T{yqwF<)lLMHY_69f3&&?K7!FBV0xX;L>Z+a4zbtJN;+m`j<1b6EY5_nB z4?)u$l($7v#NW9nP_z83G9R(ODC!V9TDZl>A3CcAcCS0BQ*z0WIgk4piuPWG-U|Cs zNEPLsVrATVMmwmGMRfL>;ho!uaxi592N;he96spXc-EbhPyff$)v0VWnE9x5zPYC> zWV8tjAYaR2-O|ikLt=|Z=s20~s#Q-KWdjAcr*eeF{WgpQQoT(!_tsPJkCL+4+!`_6 zPL}sivy!9wlN>NhWZvqh&EUF3O%I>6cf%j}=9&)zRfI2{N-4W9!spRm+dlGD415mRqAH+cU~PnPklv^@)2fFikf8 zHlzHr*%I-Y8xd|V@biB97qs$t)l%BybPEKVvR3gxh3uH!A{SSuSMO$LH9gMeL^GcbHCmI16zfyInG%*_0F5e7h=fa;(%I?5VR2_`jZC|%#aF%DK4*CftsAZ1 zCb#qMtJAwD5+PRdVf6WrG@#{x-=v*y^0$2XP5y{7@o{^kJ)`x0X+QJn5TjMv z;ftYshRiZ^wXNhs*yWl&fd=)g+nk^~GeNST*qQ5bSJFA$1ZH*O_geyBl?EP(7ph8H z@4_nMPid+k7^^}y%$5Ic@s660ujRZxWwN1vV2EQe_Zg25MKk{j#}D17=MR3duufikJJc)qTVO zSd$zhZxWMrCEw!qzI7vs?E68|ui2qnCmoD? z5s+jo7DGi;yW2;ixbXCZB*4oM8X@y>A+LskcsDb%2_|Uawy0No-!>5mr1pTZ3 ztmtE0NABl(K3xuT1#y;~p`Q(AW?;B+`w;pf6QDgaL}x0^%xWadPDIcqI{bmL zY?akvx85o}o^){NPjTywXlHH=r`O9nx5$!a&lLOgKTSFKafOrEh(1hAyOEdG#G6u}X@ zo6lcS3GkS^VFbo9!NWMytkD6kP9i5ejkanTav7_gkb+ooy8q;JNBUr)-AB9yAx&L zZ~e0;;J5RR1;l2$@y@qu2+SSJo;^Hnbqk-foKynDB!lyIm0)0v)gQ;nMBM7%yD8c| zr4(ERc!*3fKCg)d)RW%A!!iqpUo>tziQicEJHxX#2ctEsq5o3dZwq&|%gU`)bgo;sL*d&D;^ z_AGRSb^TG%0$aNPFpBLZ{Nnr<_+`7_y%O@wd`qfctw?9RKAnNKr%I|435+Oz<$!T0k znnvRqYbO$;^dIG4z&oGI>AJ_2iBOJ$a%qr5u`eXCCtgL3QTtkMy6=gy`Id#0SYC0q zwaN5EC9ZVR7iT_Zvigfqz{kv0;%_SRF;nT)2s|a;G9TkI>4!uYlnU?YZUn15EpjDb z+cJ8m#cx{&zAIK!bJPDaBuQGWQn{RFOrT7>to@AE4-qM7FI6%NH_(vGA$9z=)G-JA zjSpGFUC&x18Sb9{O+6kDSMDBIJ_$J8`FiN#2X1%{XIg`2s-(m@^iyR?hIbmbCCR4R z2M!Iwztvt0nSD6sD$$1E*y{Ym(PAq~GjLs%l5G2RIZtoU;BbW;(T%-+Y=#sBh>J2^ zLlh8Z_+{g^Zekho0xE=QLE7x76{>Qs03aV0*#{Axr{ym6{Hh_&Fb||Z9tTLYlASa} z%Uf;fqW^_zsj{20peNuQqH0~KF#Q8+#qLlgg8WQ+YdjVB2}-2Zn@wJZDlmE!ARDbI zawP@aqXhTXTbzGBD7q$8bqZ_JDo#WjZ3j_SDB<>F$&vm3$ExL$8K;HRGM!|}65o2)fE-y4$3 zj(*?j53gKsIfgLawD|ccD61^?_r8ikf1Z;2NHM(WS?j44g^P1xquVoE4Paj!T|6Ti zj4m#Visd=H^2Qgj$g2fZO+O|!-u24H0z<@DkqCB0*9>9$#9ep|qVEfwqjf&Szz9co zAq4dN^2=Ke$VY?5(c!j(M-}Pkd@k9|z_JJ!p*Tc*9#O5Var5tMOkt3_P7XDXT1 zLL%MlbRI)fi?-Y>+Etb)O-QmcEG%QRmXh0KFXA?Nr9;LXyI-#eb5~xS^Yl5@V* zz+FZD_T{zcUvzZ{WIX9J_ifc8^q8GgsQ6KetBNOj6{Cadihn?ahFd{!J3&SGFuRfY zE+My!|CC(;`1^R<)`P!Pq$+?16)4af<QxgD37rS7DP+ zHwrUh{J}u8hB;wCf+Zx#L7+_UfV1=+&G_cgn(;FoA$NdE7)WJ?75?_$1(PwYB%k7M zH-~DX`=M&)1`jpoeubm>0XGXu3iDf$J*>gh{wP_sBBU{fsdcYBg2t(S&ZA&w;Hln;O3f$_MyAAzLf)I|$U5 zWmXPn0iFnNzTqn44z^~{E#FF5o5yWew8ISxiY%TUBnGG)ot-96ehg8enwkHT<&&k{0rM-F|GA_HFl{$$Hm9p~mHr zBlNiBGMe6;qln;)d2ZEUVBE>yXSLtnZuQE|p!8W>17$;>H#SGFPv908C(q_*oEmLD zHr2S6`%P=jjEgxb!ohDWf^KPIFP6-;OyxxKWE(j7_-q(eKIa;y&A9iD2ip! zSp2HAn?3upR3nnu1CcdrDNSOUqtY4X-c9(`(LSEBJg0apmP%)t*`v!5=|lPx);3|i zYT>0h0!BmbvI0NLmhl!U6BC$Rw%F>dxRI(kX;Ga%GA@@+Xctplj%zj?@*}5n^#U>w z=pZoFI@(EOwg>5oIG0#_GT_F-k0`_$cb`Q_jAeC+%(hZAW0s+!x)BqBNJ3`!O2}hC zy5E|X4@{NzFmvx7ZWORBCJt8izMV7F_?cn6t-KmAYp@cpyOHArlPQo0hsGM2Fkb>- zBDib*Cii4QV%PHrhJ(&2I|W_L=)e-T-ne}f<0q#8Wo*SdBi%@5M?aUz4QW1wX9TR* z%$iMR=hmTkfL_h6kDl*<9-`uEV(1_twM6*orfs&agd@bKgAS=Lk)7I)MOQA}pzRA0 zBx>}2P!hYFqDx3JO7V3~+Y?r~ph7l=VZLkL)+yF*og5%AmxL-%<+;0YZ(lqRz24hU~1U7yDGz!%^W<935_ z@_LZHbj+t{Sc^LaD?DA&_!<`csI^MY40RA^?tL>iLHODJCIhmAo~&((rh@D(x<=;b zlA&9k2_6s|ptYGUY(@a(f~nw(W@bHi@tfyx7G@C-7%B?~c%lLxGqu)nN>t&OvvpjQ z=uPZ>mrZjbJ^9Aw^o_%tDpKK13)mQU&`f%T9aTGh7z9aH^B%$G>Deh*MHvtc0jkU|q!2;eH-eS;bAh7pPI2IG!@Q8J&Fur{V@ zHYSh2&)lo-Go;+`<(Sovx2@*m_V@dW-*&E>n_>P-Z(DEzjKuK-?>@%W^U+LUeW6fk z(k($p$d8k|ml@kRV_+A))I^>MtWRT+K?qKbvNOQ;DMtv_!3FatGu%&0r-=UyB00&t zUy&Rx!c*DMP}yK%KE!MVyg<^%6`21d2b0t6>kzw)|hbEXw~GnuVYk!JStQkMFQOy2S;O$Oh~ z9p{bbaw(FIPPIZ`lzmc3Hp6eGE0gvi($0c6mC=L|e8qX?1}sxA`E-!cuETu$J=Zi9 zX4O5T=kb)CdqnHOpu2IilccPBjbh?fX%X-cQ+HiRjGljx3yhOoKvU;2HZ|=~ez{51 z`S-KuvY-E?l7h&4b!k&fx?FsSF>T1<4UzKc??jc( z&xsBA-PU>5e~jGAUZXbH>(yigWC-2yh`Q5<$dM%lEzW2~$~5>nW+4dixDVu2A|(ZK zu0H}iSIC*t#mDO$$A$9c8r&SSQI!|>t$F*0@Ft`XRnw&7mT6 zl?!wZ24J$p8RHCb2Hfvlah-0bo&#EBtrJ^7FWih^QHWA~tdk=-f@r77%U);Jux-pa zbp@HY$o9Jdsqb?ZAqny|$$kwq0S@uwEgj>LE%bxc5f>Du6-y$^MldEcYZOp&17o`EqH&4}s?&&S?7$d367N zs-S5By8kquR~9wno~*KKc_DP8;q|C35AUDpmBNZ^DfH?50^M!0(dAbEf26$$eALy| z|DTXV5)4ivpeR}=8Y-!1p=wJMA2N{OcVGrl6nCY@QmeKi&L}R$;3SplI7q9tw%Vt5 zeXQ;C)b_Co)M~;K!lJS$i?{%8cZedmu&Lzt{@nYW$pmQs{r&#DUSz&^Klj{o&pr3t zbI+v~z4w(RZRiNmE045?`)yvA33lV(qGpF(>wM()AzM%6&I41~m`p2y{PU_j|E7^t zpWNkm$LxO(2Hac9;l>>-L6+O=oL}5Nw9e=DA4k$dZKOE4xc#_v!+tM)8_zmjyR@S7 zIIUyzR49h-p}iEIe~NO3Yd`79@2$1^Mw7YmU-Nsd-PW0&dGm%Gzc<%V%4_`8zYHzI zZMjXGh|)q&PIXpf=`|JU&1xgf6@DmdS7Gl&p)+&q!2$dp;~6O-t+B^Tps!NZ?-Y$sj~p5<{4|mZNc(y$fZ3sB7c1^w*vT^8h>cBg zJ2_b9%pSVoIgXy&$=YY?khAbI8*MbJKZ`VeJT6`AunhSRLFDg6#0NsF<^y|+k%h9c ztgk-9LYJ_-WrMZl#{A2iq}7KhQ0HNqc7~+tCR^6=Yxr#WVz0J*q4?}H+c6mCX5GGB zaJ}?p@X?*FMxTi;f(8*3=Uh&#h;|4|2Pcg1QTbuE2JE=6+Yv4N6cTmrqb8(}+b)X6 zd<(end||#s-LhThFdyu&Re?FO%Iq`^Hi0bR8Z@x1N7_nA#2w+#470Q~gbVkYFcZg> z_X~G?M|mlXYjOPaQ&PM#J3kNRmqRRsYS*&LB*m@9QP;@x9SmMUIDHYUG0Q_LnXj_4 zas2Tdk{$mzoi8817F^8fH3V~+dSL1dI}EVl!%3nI`Ud1tY*;4~&g4eW<+$x_(AQU@CqF!+HN2f%INC z{HjYSp;FZ}dbr#Pf!i7b*EQGes2&c!0y{@&^RX%-X{crwCxY^P9b6@T% zED9v-s}xJ!`YTl{bb@Dvoz}m3W;O^w|B~;2n~V4ENC3AKDi!2{A>Ktb)~O@O$Y4Rgl<86HLZCH@C^g1}q>M1YZ8XzuA_*@tBf z0DyzVC1$2pzS|r#a`fuo?-yTAg$GK%RGOL;G%Xb7odixqY(#~L*$6aan_{EfzTq`5 zHOO9rSDrrdR}?f8$fY=2&c;=kvxw8a|41OCczg*x(7kD=H|gO&Ws2A6c7fr>4cVc< zWAdAcF9LUum1NDM%8A8Ox;L|nu-7PaOG%1h2{e~5ItVZMn}&TaX?}Lz>gYo1!(p<) z7tIyE9^rFHZf~TI5!7RMwRPDKFZ(f3A7(j!#CI1$q2W~hc6n*d2g$XgdG^(*THlM` zVEM9}m2mnhEnhGj@k&-IlsVfwtL*r?^=o)`?Q;7Sc0uK0{{Eh2lXX{NeS-|9>Q23H z$#o3NNA3RPtKTB_SzDi2r>+y{y(=I;7}o8lSGytpAzE>n*k$QI>#tP%kH_huuD3nL zuUuBA&SR5?L83g;GuVOVUxMZO+MD_Z?o0E9!3Nx0b{aV8w7^&vainzfjUUwWau91) zxNy5yxE=4Jf&2d?1g0(?h-;ugv!2_fs_MXfI&)z@+RAR_JFl|UW(oHqxRpH6u^*DC z&(vM(Dnc8KzTzuhQ7@T3htrcwF??ygA(?xF=+8i7q7-*WGl>aj$h9uD;PhW~1T z>|mYqT~Gunn|}n%cAfZ4Ri%1c{w-Im4mm7OxVEP)>64jp=64VW@FE2W7e2gm8(n_j z^$Igyk@a2`PEW`KH_)=1mfX9JpV@aE$N!Ue9g&kAE68)M13lne$8@0kI5&OQsW63| z^~t*{%(=xmzJ-2~2E?eYAy<9!rv6^?TuzM`!Z~(<0q8u;qfL@5JQ?(7zDl3meqXM& z>|3rJW{sAA>p+V{TAe`0-^jzBN@V`QpYHVsf7`BX)*pDtl`jL)y6p94=F5C_=NIRg zT_i3G%rx|qh2{^auCst=Mw2^rF*sjsRuiAs?Vy=RIiFp}zNs$jq7o%JH#~PB_m^C+ zAJjU~y}#_)f0Tr_|C|hE?joaxTVw1-TO)n8SZXDG6r^wT%B=^Ta~2E%)6VAl-4Y!? z^v=9U75UnbxpOB)QpeBuMhSFO@~a~XA^K%lc}HtjglpO)VtyG<-4ZTH@6YAB{)-}2 z%cE7VM#|8|XCDb^jc>giX6pF4oyVz?!BmM&wue4bR^zDw^;C|c$E#V7R(obR+_=;F z-dQ#-)qe%v6q2jQ7nOI^1%A9FQn*^z2E3|$UR9e{wj3*)HRF^0SLm!TT(%8mYJ5ec zYL$2}jlx;&S8o0C?F~~Uzxg^4$dtIez07Oq-Iw*dzX^(Gj zse{L^E={1nfcJmE@KFE*hDQNHLvp#@gsel=hVoQM9vN=jljR5Cd6AbYM+`#Gw;^1$ zI$YHe0pV4vqh&$|Vm&@%vV3%D{3Tk>cVKVZ8}R!xZF?`3XGav&v%`^X9v1}H@OY5g zJ;RP`F<`Jb!@|N{;oYlrJX6~d3jCBl@1a>NMOZ`D%8uHrU3XA>J=V`*y6~QSK~HWh zH5U|o)WsF?h30nHl)UWhnmNE4DMP5pp;pCjUhhDsB;OnL>1mt<&Ab}(CwxSOEZO2; z1mBhtV^UY3#9G@a5+6SWPWTq2a2$3h$Q666fU!l=#g3~aarkke;mF!sbPqXbz75%j z659)J`IR$?_AM^0aYWu;QE~<9)0t!ROj#N)BiNr;*a_S{KS2-omayu1uuY2Hf5g?C9=WvRj$X392A}m_y5x?-3k!1dBVYe0-)SFs=~GAGEYy2m)S{!7NP6(e z1B(m%ceWZ*L!V+XE}TD*B=aBO)S0JZcRZYcYV?0og*ujC5X!0YH`87pL+P4S^&cuxfw3njrdqDe9Ba8bCv zx>O&wy4*W;xT4}n!Tf^qolEm@s^_IJ`a7{_N^yzakdo#vSpJOsPEtyc91!ZZ1j{P zP4!4!3W}B0gX*DoYcE9EOvx+pb z_VK7$h*wB&P}QNNj&5V4xPEjatCukQ z)NIiDqEfr|Diae&=hm^&<_pF{73A9Y8bifA>vGF-FLi!JnCk|d0a5Eh8C1GzGG)}7 zKoo?76FB=;1?U63Y9+| zjGwLkK3*I@3G0t)bD38D-MHp5ERyjr1G^x>+f~))oH3X|{Ox=*2aij`H&EX-{V;)k zo#y7|kt_4HZ<2(}gRf~w>k2eqEe!zz#{>wW!t!?n2#0hJ0lfnzc9;3fXFJ(=;*MKB zxp@>3S@g#0idk!-mubY-*=>&|& zQ7QA2yNGTMF0HE&1}!4ahs)VlJ1zaB`?eiP2Ul*|iDZypb2l%`_Rqcj1YruzT-W0< zji2n>*_FOZ=lPsa0ObfXi5PZqdV1~5tdpx{rtc!LTo#rs)_;l^jNs2KVNl#WdStIH z*NLN9y630M$k)jWn*8>8MeYf$;i^%nG|3Z@A+d=e8l{Lj@eKxJE=8D^KEJX>Vv*E0 z?S-amQkQbsZ&~tKo#}J!Wee5!`4JpxF1MY2ASdp*)T z(&j^q*~|`H>t4>NTi=Q=B`20U3~N56!o`ml#?Lp$u|MYlsz~FQ;^aiO*5&ody5huE zWtIr=VuU6mDG!@y*H83h9LSaP3=vn4SlK?zRq4jdjHkl9_t(uI9iHqx0nKB^lR<=J z0;o`D&SCqa7pkxzw<9{&&i_73LzaAX|0dn{mXKt%9x#XGnDQ*g(0Xg@k>Ls$5r1o26X}peu~## zH_bfSK5HQVfb2oaSLNt|_g=%Cn-wQEzhwECV=fLX#?!gfn=EAg#pgq{z-Q_Kt4CIU zJ>xj!cC3KmY1R?6Kc6)IK*?Rb6UiCsh##56s ztF!Z>e=BF2i@d7k;i`?1G9GYtcii2*!^w91imP6&>Ij{L{;3RY9|99Dr>i!U!Cnwr zq?O99w7~lS@S3Z@O8)YL{=vyZz{$1=hH{f79;|+ttf$-Y(a`{MUdyJOB*y%*t!44+ zgfiEEE54d`P~6$(kH;U%Y5A#Fy2m3wzgutCeY(@hnT(5BMnKehUxj5p|_D1)nB30J+yo;y<27A^af{a-XWROh(d z!_zw=i{dZIa&T*X)e8+(i`k6SSGCrcy;HV|3B$cNbO~HntFKxpXUJ_0O75tyYAah+ zU$#1lB4Mmgky#av7TiIHLmlleLzi~F<#uOsRdV(4HSENq@GiJ4IuLK|)^J(>Hs-re zujxxiIm&tTW39S8l;idgxWxUp_7FM!M^=8Pnog}_2i8CGQ1$=YdxW|Izy32n$<_b= zC138tUBw~g%eI{$$^4zahmC14sy%H%UlzijyiuiP` zVW*<7lN?j}IA_vn$isLaX-#uSM;WuNbAOl2Ox*m&fY#6N*87oIFW9_Wm~!@H1b^M_ z(hhM+jkV8d{WB#%ZO4}p|5>TeIsLSst!4$u)^GmkDzr;J>y7!$0b{QRcaIMY+ur{A z1@PWBh)r~Ca$;X`{Om-y+=_BJefz9^y6+V0b8A1o5CY-@%O*Lo1um4nrvPUEhc1N2 z7;Yr`{sYL&S!)0%M<0>~3gdsm*@1+=WT>3`?;vf2F!m6a9gD$wXkLGK6_*`vQqR(T zr>mL=R;kAY05r@;1msm$AjTRWXZO@5NY{KBTk?|RBMd~d{J;F=p6g&gEA+DKc4*B2 zrp~u9UIYj1A4M1Q=4znnDe%OqZ#z~vIYV6t#t%zu{t)n0T6FGXqtEU&Rp+}%kO3b4 z(1m;#%g~D_d((?k8JqkC!`4r&f#!rTUnR`nnAq1Vele}InO>Og*cNi*>BG|J)}#Cu ztA@9pbbh&127+WRqZl7#%a&xz<^zHw*S;qUkl$K#g1=CCHlL*@TNL5IZ`Q%L_psZJ zX8WBknQ)SrWpM{8TX(B^5!$eH-wzL?#tW#C?;_PcmT#x0)c(uLgx4i*FYb*IcKoKq z9mT!l-w7pV@N{bkz)(gJBz9g9bf521uFW@-a z!s8yBwRf!i{gIRRJkV9l4WsxipsP6kU7@R(M|*ji+q3ApR_J0XT6D<_?XTm7B6&o1 z@w(}Xm!1gNG?PiQ;K4_>I&`V1iv2x<;2c{wZmgyE_zX_;YARA`g|dg?PEZ{1ulgJQFUum`96N zfysJ1wpe(Y&SRD%7vX;ce%R!ckZ?WlX!T7x%07wr*!1AGH9TdM))p~J|FNX6 z-=~}PzTBxfw(wG*Wh!cBv4%j)6?|Ft5NMGNOC;@IQHSou8yq(f<6!0V(z2sS|EanO zkj?it14Q~k=W{TbVN85Kvi_*yg>W7#R2K<&RHB3%8V%qSJEkN&XwA&{c+?u+Ye=UB zDmk4FRN~R!tCG_s{){k{qG%f1K|LB}+lH&qeCmeNS|y+j7gEjYb2Y@WRLIRy^AE+b zYvVX+hh=oi$u<{RI?V8LUb#(_a2>IB{HJ9LYq(uGCwzW#5v#W2$NB4*7;>OR zS9Hbo0xdzlEMw+@Q9kV&ChqL0R72_gUF62UyB)n|%!=17`7veX24sXCn^6LIp7;QG zEv^RFun|6azA#*M1rG)MK08M6_I@_ArKqdvxyy|&aw`u9Xy*88iaG!5Pua`qZa35Nw7GFwj9otWO07O zTL&$_pLZ1%nA1Ci?72REb-ta$uVgItOCfs*gFJ2Cn<3MPmK|zN&}B$#Z`G&r90&a{4JbWV!oht6W1}_ob}7jPrgiQCb;i@oouvC*;d*YX5TG zWje6EE6MZEAhqoQ+lU2?wj+2E#7Bw@c6Bt6m<(z%7 z@&}@(&cSq7>*fekbca-%v8y8(W8h27ODts%f=9VYF8=`%Oy=?cJ;5B|Gr%b@h5WfI#bHoKmtEfpI5Vu{HvrQ4m8hZar2T7 zxgPu3T)MR4f#yqGy6b+AbPTOXAL7y-CVHd?ZTcR%Lj4XYJ<^BR^bVK4na<_FRQvU- zhQUYitD^MO1Q>=zp43^#iXEgT7MnA8y3GIPXJC>$p{WTpo0p}sN0y+nq{mK+r0o!A z=bP`+te>Ng)>8D|$#KQF1d6}o%cEDiZLNRr=z01Kqb*taSrI>HegPks2rzjo_7dkz=m$GA$kP;=5xD{)iI6_iB2*ryThWZ%%k05(P8FB!aev)_xn4jzOOSwf2MJtP+?AD zZRKO2Io5pyO(h?Z)Ks2nc{?@=y>qqcVlBw&!DZHGK2Qu_-8x9~Dp3rAl#&%dP+)2{ zvyn_q7-m|PlA2oAUE%*6RNu-8x#In#(Upf;8eS)m{Pe8eeKEYrvGt01dyq(z65p^S~g$#mPO#mTq*PvPWpzAa8R3t_f z5{wxwW!$Hhm7?h%mbXfW2WU-nz*wVF{7E{fIg5pE#UlSvb~)Ed=L07;5Iee z(+OZS@mOBNZa@^>vkgjTA(0%DN+_dW79!B;nPgMTM{GL>f*~|@&hhz&Z;#--t=VH| z=(y7I&nW&t%0<`+6s7=%D&9AU2-Yh}!9lA4&b$kk^4FDYT-NWF-Cv96gp=#26_Z;; zYcrSvVFVTG-Dw8;0qV?{!wL9x`}*TQyqc#!cKdZ#A2nguhF=6kN&FBXCY4tsNW{)I zlWmPmMZD?6&cJj46Hlz2p-L!n=+Fp7n!%|NficfrSq2UsfZ><{tn&0rf**I zdHxnd`cKCL>q4^hvxa&L_JC3BN3bt6cVZXeUkSxGCua0qt#%uGY}G_4*}cA4h5|#( z3{F^FC(zMxx*fW*+dkv~`|#ZUB!ZpzJZg|frB>CHbxMI7LasBhV|hW8GcAftb_4QW zj1y1`rZb3L@(mfpwj-v-uCzy_^1o6s0_VH<%N)k_5o_vh-L1EAz9uvMpjm}QxhKa@ zOeASKyCuu+C1T#NCT8jzIr=y-Yi2wS`twAB9_#b5<^?Wk7(3m;G9t77n$L20$`jy8HaC9%GZeLKlYKm9i@f}86#-uV z{*Aw`hm$Xav4(;7$qy9-y}~TG!Ak$lKc?+ekxsEs!J}-T`5ve)^sICnETiT+l0q1g8>=8l?q?k?AthwRR5j1~oL#{O%) z7~B|b%tEllVzsTEu9@Q}$dQ6>7;h#rRY#_VVz)GkpPgz?RgybZ)0MdbleLW65<6{) zv3?1fr0b>`_%d?2<&O&>{{;r<`0#)6<@vx{lH&^SK2zue|0}R#HA=d9Vp6j;DbZN( z?RsE`k2iLiLb&cR-ny}FE+%zs3+RT^(G78nGwY1(1A&FmFadikY z*V0kFNPdO=#eWRH_KItEzNY*BVLSW0l~0Ks?qdh`tb!jrqpifG3c^n+{5s*xSD~TY zem33rW+gmGIYx|p%?kdlyW9+gf2VS1fj&op_GNLn+!WF{_q^8r^tCxxP|@7(IqKFc zv{KQUr!D4IDd*+?UgyzZ?=WOo4b>9!`I{_H zvbo*>R@h+5vHjzpJ1TpU%n00!p!xJ^b!Uqi{D>8^AmT0U^~EP#YF_gb%3XpeQVExt zMK&R0E~hCC!X$pBixt%FWDe&*nm@MwpZL`*`S}6$-{mL#$t85x-$=qC>JyMn+lhcC6G(^kdnkjLmApROTpfW1d87szBa?ALnQCAvRqkKx5fPC zz^n{af%%2aidDTuzlOcl%>SW^H$oF*2Kt4kQW#q7=3uUNZBzUlFJIIXl1S>?tR3jG z?TWL-R3B8sw=0~&-LK%5Z}x1$7ECp=FI}Zs@b*1Dlj)zvB7z$rHjK)#kQ|ngXK`UW z_$>Uz&)bcQpB_}%$v$aPk??x!K^Yn$EIZU$ptqQ|DLotXQr{3l+?kvC&86~nHyQJ_ zHL(-B`6oG8Pvz>t{OUsGm|zXu3<#fL*AryLEoRrOo>jXu+8wOg^hG;Cb=vl4i&=g^ zUXO=U?H=BOtA++zP{z_wYwUP`eQ|KGCVga%0S>^x%x)W_CMp+^`NMMKA!|=q7+g0N zz`^LJSpOs3CF@bY?dSYSWEgADF*3K?9QEozz=KmBE80Mt~&D4~4F zX~12SyGkhR_j|4$)Hc8MBCpqt!DaD$F(;5orE7d{FPb zN5vfDHZm3#E(lI_g{}!pQI$HvOa?W4Q{#kE6LtY=(~(a;e3{co%Id>W4(M%; zXsUsEg#&2bo3%L@{=NA*W*{TAv}vi9Sc1QsHR{(>)lE>i)F;zqZ9GGBx}I^jlS)U2 z%qQOr*-kibq6l{;gxeK=&k^q5Ue(b6+DV6I_n@kn{Yn&rQTD=`6@Z6eWx2|lY?<3f(r!e99wg_lB$*6Vegk)!`9`%-Bi>Wo+Wt&lvcp8P)V-HX}IZ{Ynl? zEebQ)*%D5DNtMkbkMg$itE0A4FA#}Lf<)G6sjJJ*3wxkGEULsYB(}!ii*it{(&5xm z*(E(=wzHNU*v_N&JX?*a5jCb_YOM8q)i<8{mT49?5#6J`)(GT0iIp*)QEN}yWT(sW zQF_Ed{c_XnFjhP}U9$)iSzBnCvd6F_XQ3B3k5jK--*dMg4F6RyH}|f6KJ3N74(LFR z`=M_BVewQdxUJzq#y&W4iHL8?=J$Ss6Rs7LMYb+=ua4UJHcCCMUljZ59-)Yy!DShAP72NSS zcFb@=?SB8Nh&PGo{3ZLzTbEELy1*&+MgeQxPf2DYd*WvO^eyDa^!hz(op1kTtuWXz zlkF0Ue(*Qj0SiyGAhDe*Ar+?0!YruvnZMa@m(ChIvBLaDF@SM7 zq^q6;WrF%_b(5VHPuZnWFJ6k5oApR>IvK_Fnc^N(+@f3@HkghHm_O&@JjIFOm`8GP z=tX@GwfFjQsKuJCk)eqbqx;Asq%)$OVM@^qHJ{R>pKHZZsQhyp!vUSRtf3oAI#qE41=^P=1my9l~JE&m|fILqG0zO3T4c5E<=32 zPB=C4$J;*e)F(X}VgfFth1(SIEq}6?ShWEi$(YSJGtyy%Ww?kjj{%0x5rk*;Xo!Go zX=EOD%a6*xS@}2@sMABxo;=hTzXas#GeRPpl#Oa<`-#JpsPR|bLBaIZMH-8p=45^a zanKy^f7O|O{?`yw=6`vnYoR}?=2Lx9!v}uMF!L5)!r3PKn?W>g^0hW~ z%}z}09~S3wqU-P{+7sl2OI}MU*jHDq4=%m2y=?4FFzrT7yFW~TA5#vbe(Z%?`HYad znO{@7S;$AloH1X#>3{AtA7wxHn)mdn2_vS38l2N>GpW_Z+2COqF9GBfS&TC|1G8^t z-4!(jBdOn7go(b`RJrFtble07xJ&Hf#_H=jkIkb;%6pOIyV2w)V$yX?XXp&ZYJNRV z1aArSMtKiyO)iZ}qw!rDvXdvoj7Xea7-Mz1mpDGsF0Na`ARqc~QsQs-yM@|#?og-}OkJ&_=lfy-l&PKLea_bmAu8V)W% zv*J?|86sGcT_5iynMm8n7IQlxQCeLBS7K-v0E}UW<68>C*`OOMg24ovnU-Z=C_i+h zF*kQUC!rTw6z6LNud?`T;y1*l9f$9F20UnvbTBC|1OJroPu%S^11+-i7ww8Ki0Nq_ z(=k9a8xc+9j;$D3Va~`BPKMLt@IZHR=wp?NJrj0Fq2Wuc}^3KH>6$#{>U$Dl_LVuz(QIpe@GHfV1Dp8CrdbJnR< z$>u8oegTJYYsGK=A;Qm?NB9+6e87gcn3Tdu>yObPGt&<|uE5QH;7J9pwb?oUQ6w|x zLL1&`B7UaL$~4LkST^=GKVaF{U;@JIwd`dAEq8;=LojgJ3tOq`JrNeKgSP83n5<;B_XoS5{ zuvdc65LdIEMA@2yuIOrWgJ13~aWqRSPA2>KMhlLeK(-J_`s%Yj0A?^>nJ{~8w=5wb zYYhH8!NM^6Ug}c#yaowq^*lAqII~L&v>Xp~P8qP)u7puv8L-5Kq+42GKao#Z&2_%t zXIGs>)J94s&PI&=1;|E3nVn*bZdjU4UIM)D z?)-=Ea~9i?)ps~ndz8%>Xc@6vZ8%Y7x*fQzsB*0fSyAN@zJ)r3W6mOLyW1AJsI|1_&F)3aF+1w$mcZlPr4zg%Up-SQ)eMd`l# zxF=+ee>i(w*>?@W|9B*KTv@2_X@oQ1B!5o70v`l3j$>>F^Ojv?wtkjvSC%|H3u#ucp)uV++Vai(GGdDM=|qvNmDSiiE35U zKha$lt54U_v?(%|rNjufn2$K8lbk@Ig3MM1&e`i~SF?1q=rD837Zy>gSAmI79uj6G zOQ-v8RYbp^=TNmy;UdDB&dR@=s)BQSFa z9+Z)M2_G{3G_8b3`;uC2{MWvVPp{C4#nqW9Od9;3@sQYWt2cu~vjx#iyB>ejvL+X_ z>~N6;H?ga3neH*v5JYJ(e!{0FDOS>uERrkFemFg}&NVeN&BCp2*1)KkHCD~kW!z3; zulY$xiBDNT#5}Axq{V3@b4@EPbi&RK#fpGoZ8ay^N%&hUU6O`BCDz-mrd;{)9CmLs z`Drxyu2ziiJfi`)&uzS}AOMfc+{L8ON~)f#VX?eU-iYn{n->|@_6Ma1*-G$f1>gH= zZq%Ppcs*geu4PWyo5hOx@hfV^AF37tnX!y?1H3%lckD})+DWCk{d@La%8SDITJtTy zmO$QaF899{oAddS`WWd{`kf2Hn*K9RYZz|V!H-F$Bc{{-ZZU81%j*w4)uVcUNEM)^ z?`MnOZhh9+EqX5(@uanp!LJST$lA%g3MOcSP29tblwDO2fp(gEUQ_$=Cf53Aph_z( zNjB0V_w-bY210Hvi=^(XaGJG0F`XGlR=KFOv#r!@I_$bO$=x)|nA@|3eUlGZUeHPi z=m$sm_4-K`8cRAaACN-RlrhJ9DzKAVrGW>Ry7?wo>)rFMN0Mq4x zOL@h1I2<_nJG-9}`ZkUg)aqd7V>q1Kr|V%PH&{E(hF4v;){yG1B7RxS0PvU&QmFL) zR!_7#tzsdWT${>s%Qt%FvE8z$Uv}*wQY2lQKW9^XGRR8Q88i5R+MM?1et1fEi-iZ| z>2C4jY`q6l$jAedT*Y4(vx4#gN`1NaY$xGLS@I=^FRiQ0a6z5?x>C^=Lfyv2ISsYB zdKB=npmg`6?+wiBnfd){ELVrVl*5TBjbtB~NP={hn^p6;bDnbBG4uTNY)=6w;O zkJGmEMk{&5jlB!!CNE-S9ey(XKu`Cda~B;D&fWv_k}FbS?AzDjEAu2PG&Ht#R!p6n z_T0Va@x|PG?h{Vj)ylo+Hts#|JuGnVD5y5jQf6s)LIpQ-dj;kkKH~>P`jnnG=!!lS;|JCE8Hgeg%ciJ&W4yuRcU|Gc>iu3~9iXpAu)Irh z@j3Ur#fymM1TS^!j0H@#nx$Ti30Lh4SMBwxc89B4aX%WV+7K;U7%p4pm0^c}WF$GR z)Jxt`v2;u^a!Nt`Xg-isG1XfZKV0wnt-+0goG$w2p;mrRZd|}drNE4NQiJSc<^F99 z?E+O|^qyH}lX!|7&vf4!Nm}*yJ3Y1RDYJJ1?4^Slx^$2m8f{4{Jced~e}3`L$ESDT zUinSt;KSazHh=wd4xpmIoE!aNO5R=^NgqFTogJd9-Ot1Pc&X_F@r*-z*9?uM#tmZt z+g$2KrOIpPYEQS0+qMN6%pks|j?;_E$z8mD&GRe4Na3nzWrrR~!trakEfb6s9qIKO z&0vnM@G5swe>LytL@HnO60figTwM^Z+2W8RM&2r00yD9F9TV9CJ0_rB2Hdv{j;*18#a%3cLDr~Qu`gUl=lAUFOJ z1nblO`1|MizJC5;+5r6(q15gFuXIovxc6S55442&8)A|&`j_!3PjDfIfA}uOwgnnQ zObsVL4JSVir^XG5rbZ8orpAp3r>-By!<&rr=3q26ow#d)U@xdwlr*SFh$FnV_kz?h zi#qIMUVQ(J?{Jc(6j6@gy97h2JJ_(J!XSLqT1#)|xu4nYr_KFr?a z84(fD8qVoPv&v;401HZ_4DCA_089}DLS4Ab0O^Qm(KXdxa(mxQ4#mPuv2 z1lv&D#Dx=!3Zj*JB9%MCm2F-nPdaYb{-G{{y5y2*(TU-Hca%o^U0)IIcm2R{VqJlE zINCS+3j8YG$O@lw!5PtG_JjwGtBwqkpvJY1Na5D7D$Il{Gm*+2VLI86x&u%@0b4=U z3;Ny*0^HC@8H)k<2)AtyhKsHrMnfaQiI)qaWxK;|?=oRvSL+H$84<1gG}`YPSfLEk z1xC%bsOH6%@G*OtBWZ3DrO#Od*`QT`pm2wmKI3Wcl>WOTgX(vedV?anD*$l!K#w4x z@c7(|dhaUvif6ATs!%xja+D!VEa|e-gmx?8nrk5f4jHWK8~;O;x0Nz)-`p`{@3x=)7E){nm}!( zc52?lU-G-eM^fj!`IN+?{o$HL;oa*ZHG9HUpGT`cj#TaNs=kO;z3x?U5gjJ|Mx<;T z3>!Dhk+Q9kGCIaxD=9z9px*0C-|2^9)oH)AaKFUwa z=%tJtzpq`%e7_L!P3MwX`<;X4`_0Vv`>Hq7Hs%dVx*MU&- zyq*j7dpe|2=EUCez`c0pgAqVDmJyT$=3rC=t9LuLQ1WJ&fmI$|qUC$%3Oh-^0=R@4 z`9YSs1h%0W{UAYfRTpvvga@UFSVV*_`?P%sf7lv~V%M5#yihu82;d_L^x@=ZcH}n;3p#?&rVV&kOwM`NX2}7kbRL!kv*y6RBJnN!>6^ zB7N#~X#(qjhkdR+8yHinm|;;~0jTVV^t-c8wIkSzis`~FG|$!+A$^EF;{iP8dutat zy=dh+%X3!K9WEtc`9Tv6JX>ekT@33Ic#w*tUzO&(@HMaU3$-={2X5NH)oE)tBwF}t zwDLtU23m%x+5@FW76>q#w_4M(EHK zV2_GXZGi#78xn881DKGXc)MQ@*Szlya%W85Am5~95Vx?y$LtBEXA~(@BRZ*}UqGk@ zUd38M;36qK#rmgC{)6 zOcC>|X^+-ymf~8|BzXfin{HA@l8tERZa{v$6Oy`R$kMuE36IvbN9Pfe<3qUh%Xg^r zAv&8wFeG5U&rb6N<&-z=zjGT8F{P5g{m1%D$qJ@V_-UD9V&|e<_ybpR&EjUCA7!Oa zHXrL#=S%3oDQ1=2n0k#1JCDfvL7HUQ41SQ>d_PG0Dg*Z(#!?VJ#hr{bHEAeYP~5-G z$AUVA0{>`D>=;$EFtP8*z`Yw4eWaq4deTr4I)6vb z*OhG*mBmZ{$x-5%Vg;>B@y;BS{~mf6>2#Dr7I<)OqQ!L<}3dfm~78c!n`3Si13?oDV#T_Cg>Wx;K&jluI?KA zg#Y_<|M!Rf?;ZZ{_5SZ={_i;d_bmVSEB^1X{%;@ucOU0~s(+jR`>OxD-2YwR|32aW z{@nllq5aj}LtOd(?Fr3%@tfF*c3;(n0;S}aicRZewGMe;z+44U(!3?rh=2dt*SDkw ztVJ=)V=>9L#GbBLEp~RnWJe;ylR3vN#B;EhjxF3He%yunrIV*!KaPK@`OfO%^embG zJv%|{@c-gs-(}_V&3zL9flZL&&!4-yVew2cWs%Qscf$L zlh{`jI~oN~znoI1`~Hu)0Xv57_^kirR7nx=Cr0#&9k#SUGCDpXWBueEazZXM4vDb$ zP9L8+r39>;xm7>4Z^Yho`%pX?097yWCiPP78}Sc%6wIDam`)av9x2^(!|9!Jq+|Jl zyT3X@Tk%y&*LeIptBWbWQZG|ErBum!V#Mkbtpl_DiKGgm zwVQ9lpA6p8FDMP8wWwVjxaWt!fzAOpKdnPTwHxEeQ(H^{Cu(RIz*C_4T{1vnEz}5! zJmR&zRpb?NR52~MloVhpV%11ZE)UHcrkrWqqNYkNwz+kPl#C1<*frqp3Wh+neV;rC zllAF|t%CsMsZA2JME&xn8rZt3J@s>J=UT z=_;u?#+Ra6^pcY*x(4*82}u6wt^pSWXe{0LbXI%(!dz<=5a2OtLEqVU9z`qRXVn7XuKf4pIflf!@uKjo6-sJu4F|kM@Pp8-&8_5~kRDnZ zKRTTFqA76SVbmMuC0U{a_wNM?9eR8h6?(($({k;lNlhItqvrb5Eya<-z0|)7U)0gU z{fT|SK=WYA1@3*1T=PRX6JbEzk3z2jY9;wTx@Yf#jb_6DCgr^l0+5%wKE^Xp_Ll!bsU>EXTuvuy}O- zm>lEHqjz`nzbjn3Waf7j(%0RMs%yPHSUZhZX{3c~q6Ii1)Gz^*MN(&$vH)h`t4}o+ z*Qf0JuF=9z8j6NiixWI#D;Qc$sp+q0=Ba1tzO{>)BITr5?*W`X5O_$7eMGN2M_ygM%e~p^p9JFUP{@#+e3DLk$W$oWZBB%0(&8q zD%ogR{iVBl%6Kjq2$J04$jv;vBnSEs!#TK8dqTz7cTcme5BPf@fmsqG7HGWW@z?XE zCuO<@cr>3qmjI+iiH@$$pB@B{yqye5m7J|=R{%<1zX%2BHx1Uhs=EeEv`zIbQv)p6 zCl6oKc{n#c1=t{#hg4zh20bkjmt(frm*v>qd~v1SSac0|ma^Rycdub^mia4qjp-Gi zE(A?bi|N?ghEmJKRLQSN7SGmu@k>kQ5@Leomc;CPLagEO&QwXnE90B^TH%@yV$Yk1xz&cJqUd6!q1k#se=s0bka+cdnFv`@q9{ab?Zw!SI?(wzj}Cq5g2@!hwNj!iO;yr&`ge zJc$Ftjv=D6`cxe+-n8+=$Ze%X9s6Z^B5tN@IN(C+XWb!;?g%_HS_9h)j9zdUke}>Bj-8JnFW6OgauD9bkn_$e;xa?3 zSE!90Qu+nF^Wl33!kcRk;n>oVYcCS0Z&gg*d`u0vo$~)azI{~p52r7z7}%iRYt`Bi zO4q@Ii<`jsLcv|18VxhQ;f5>)9Kq8TdGKfHAQMV8&80lBydhFJ0KVm-)boIELi$1FY| z<l#p5QUbf{!hijqUg+tE`L|$?k_%}#A9qJf zo@*BuY>i#2B12f(<`*=zeWhx`HT%6H=`I)iWAq*Gyz=1lXjD4n;ks?x(O$Bj_nkFO z4?T>qxcY`=*CGtV=VvVz4D5isrR-lgxBEqwucrH!{i6tecy=-CR(e1=0oIPL0jDe6 z(&`23OD5_wSuz}8GPl4n^Oh{@-wttfg#ZkiBS;1NU$K^A0Mcl+->U&=ZSmxuFuwH_j3&8aBbj%UivabGi-L3 z{`mpWJbU-as| z*oyIzNk}v!J$-Vuwv5cBtzCD=W3p%D*tu+#^G|}PnfwW38cP3o;qzTxmI4FMuc2W5 ztStpiRPW!*NV2)%JdY*t>7T2sP@x>`*4JwT8X<{>(CF6-H|94dTez1FQ)b3YlbiD{0ZwPQb=<*|FT|;7AyiTd(~~OvUBD__RQ5(k@b(b zmJaV~uZx$a##Gmi88WjUw@sVg4aS3B~iGjYF>azj;RJ$a;%tLFVQ2Kffq^6 zK6HAX|MbNBbrE)F^z>Suq(%w8h+F$oq#KE}i=wKeqIPL=VPL}gme$mm@<4cB?ViB> zuLADUG37wp)zTH1Q;E3K-M_#y7Ztb~yu^}T=KIuwa5P8zXE>TJE~I0{g`GKn$p`f( zQoAemb@pa@^fDgR(Sq#-jw*AZMo-?caxTWNYvqP9uZ zoh#AzP`jkcwcE5L)^!)cKYxabab>+NijB0Jy z;^O$p>Cs$Ss4LIm{Uqehytcqwe-Jbm#I+nH#BHND<(;#9|7NHi|N4y7J$mpPgGR5B zCq4r8o1x5>H8YMi4PkbO$qiDPZvhOwYm@mA7@unv0c7Xfx%mM97}0<(2jo`JOc#Pl zq`kg+=&73N{JElfXehCj%X^p?_epGivmTq`*~Mjg-q%a)EsC3P`h4zrZ>+DuURDjz z8a}sk_O_wj3nlNzj#j0obXVH>2S+!dT?^}C$10KiT(-r|`*QGE2%^c2nOgylb^8GQ z34V!hls`I7-WMhI-V|s)4rbAin!y8Lq0|g+E_a0j;iZYzBX=*=>Ktf!3Siiyme<#A z4h15M(WfL@1D^CKC+_jB_d@fmZlz|iW`8h($paj-`7H`I;21x#C1~aIWUEN3Y85)D zVTsmn)R%QMB-e(T_MH_9j9%oe-8OqH9--F6*GFo%2bzDc!eR!0;{#)$28?HGOsJ++ z*BjfZ{N`x(-Or& z4dHO@r_-x4|4VJzb=#j8S++;bw~k2Z@!Rc%;HHjUL6(=kG3&j8AO-CNiM5-|c|91( z_S-r_=~y-1oZr6tgw9EM_1k%qZGd{Gf1L&nsC=udoQV@#>1NFj^Q)IB@$!R|V2u0J zP+~@~z*<)ZnvX_xgvD}b{vV%s;t7prH1OxPaGR;BFKj({VC^*ue>5G&{sR=cQT9i- zT-Bw z*$h~x{S+$9;yuf^--3K`vZth$*1L`KdnQ=#J&Fo4Vg8724>30eX6MFZz$R>lY8QtB z(fqk_822RHb>S=??Q=kxH>Dr5c(bI}yqQ*fY-C>Md+J=!}+$w}U)_Z|nHZ;VHlV*l&GGXem{uJ~TErZ``f|oXigXXFPIC=Zs9{%vy>~pHFHBCB+$H$9=7*B z)l1*TBe0)NKdJMQEIe8HBg+O!j-AZ_T1Km?>hd`4YoS?h7X)e1vD!su=D0joOVRie zM1szv;eUB@2~keANiKBa6b1*w@O80kNw;|O1`M|8onWlP@z^h`-bvM}Y_X%mL-5!p zI%RuHKVv7i_dZ44%Nz$)(ms;QJaOA_;LocV#;U?qnKmZmTrasFl+*>9KY=jYdk4h` zGluUhf7-n1ps_H{!AbD%@@U6EVnND>I|j*4#W1D=7iP7ZZkIqo*R#cmEvmc6`s>x;V_SpKcIs6^Iq~3 zFZsSzhhLe~=dk-d4JgblAKB6GPHq;&=vT9#U%AKZK39E+Vk5^JU2q*PIv{d(zMQr74)Ks4)^ka{7mpVXD@Q#E z;nvr-2GZZ)!yk6mrHWY0F%@^Ju|Q;;p3ut+{CPQ+x>f1(yRfj?%hqTI5CYj)j!|0P zrV4ghyBAuH(EJL#&P}%1*LJlZ7C+Sm*e_)1rg7&1bfa2ExmtF$Q@fnnCbrh$|B4SN zjFtw_0&J4?hQ|hp4Kz3K*Gu0Jgudqdh{AINPxqcb47i$GW4xoXv@q~o2Tht!ci3xJ zf#yd^vwd9W`uNg!+SR{vF5=&9_^H|8PKUXcbs_+EJ}J0Y7q&5NkUu~zvcmhB^DT~> zsH&j8rZvQ~i-FnCG8`dZYOP%rnDZpxHLLuob{Sx~-V4Z;B&q#C^FocEm^bvzXXZhL znQs*|alXWZ_;_2a!tO`#8)@~Jl7Am|HDX^~yXx+r`U400n%k&C2tF0SOfR~eSxk)O z7n&8a678&V{NtbC=>;YgAlTim0AV?CcIH`nc0GyxZ1zAWX+ukD5 zd+@c)gJhlyG4miCUrO`3lH;Mvz?|_!WU7=NXclYD@=z;%`1tqr1vjYOQ_1Su&FasB zAxn5t)1sAucILcWP`y%@<-p^S;ySQudr!(~)e8 zzaxe;6oqH}h!9$!q0Ec|s~xJZT~(i4+dwKB-z|aY2GsTG@x3_EtnIKD8{BQ8zyv&# zZxnASH|>l>2r~ftdiYRyjG`+rSlJTns|lW1)}WYD^NSC149(i3 zW9Qfz0EDqTh6fAH5|Avd(hC^)X$yUclz-yyOGj5o0qdUM?ELv$S7w9CgqRR2^RxUi zhk)<)zPUJkQu7gZA^u2(bk%UHnZYI0&VG*GHUENSGmRjw$NcK# z*rbm2BtBA|h|p8V{(9E65+0`Xmn&Q+eY=(1eg@`6vCgGg{=-m0uh4`3W~4uNaP%1B z%r3{W;6r)%tYoHkKH!g=+MHKM_r#O}$w5?vKqXO1t3sieedaK}^6pn%g4AzsjVW1@t}8GE0>vHrEAOe#w_AvW$Emm$)rrh=G44mR(}rvr*KIOmRkNSABI^uh>w_ zd5LrMkt_c9Y~Fl0r0K%Q<>T81XRcG*+_MNg1K*lTe@?@C#_7$-5U@@IBtK%-SD4s) zTA=xd6iDnH8p9ddR&yn_cdn;=b8Eaz37k^9p(BEhI8+~rkN~y7< zXkgCG1khIwJ57vqct%03!@$*#CshKu2LEQ^Z7-5BQ(@;1bMww0#?#;P>-5J#(#h5y z<2umT*aH3+Sz(SuA0qV!J~44{T)i!Y6a^YhLTUkj#1D9k{Row+k^VnF&%| z<{K_v^kBuRKfX)kFT2-omRhT2&s?uK&Y!kA`68iwx8?FRaOhK>8Ji0$Ul9D6%a!lE zTzuBt&A+enI9cQtM@&q%Gd!NirPdeCJ7+<4&mA#*4Qi7qaIJ!=JY71M%*jWs=S@9> zeN`dUc!o7p(xcxDo9tf-*#YAw<;GzII}r&pw0q1t8(#LU5%Oceyx1HD<>(nKX*qstPS-M`S! zjW9s-YAo+p=dX+h^8B_lchf1wC(N*sWr2H5Z}E`* zMS*+Y;7i-qmS#mgN1wTui@qh4>IGHL9?BF;7dNHrL#sl`Ufufpz|&*dRBsnYw)VEE z`)to($Fmk|FuPBN>;r-Y+%%Y>_vypwE0DGlT}6TBtEsvnRbEY~SFAsO@o@KN3s+Z3 zytpCow7r@*C9yXiXbzEACyUeQS2+2am+UlsU@4iuTB>C|6Fi~kCAa`p=(%D(GFQ`Q zX2y&r0(tFjq>XT6&vt8a?RtUdI5^=JlJrtweVS_yK0it#+jZvGh-~f&iNuG!tV2t` zOSnV)u!Q!z3z?}RdR<2kkvEhouC`!6X95Z6h^N;-_$A=#;CqVgB92C<(5Syb>ohyx zrV=@$;(5&KEL~xLBQ%x-nlE;sgS-pfSFczfQb6!b!bvn^otYG+MZgwZN+vpj^kv55 z#i&}qS?W?uyUSR^>jTfPMRL&_RF>P>kLg1v%xq5Vrw)A4V?*l40@2i2+qy<&o}$Z;UA#{% z6b}?+RQD`?EEeX^07aS#*YV5QhsIn6&r?jLkUAgvNMkw)H#6drkcpczXnJNlLk zd>Xhs*K;cG+4FDF^G#n7-s|j`(Ews$of(c&ICE*X{_6tGuVw4iveNlse@bK2=~4VJ2xbKV#qF#^WHUdjAus&K6XQ{_o4ZrE)3C3EBj+ zfvZT_3GyERY3KfFes7gtM|!3@o6_G;(LB;}tHj>KS&YpeOo!FOnVV_k%QRwZ+sudd zI8!2w*9cpZh2B~$FrHH=gCC$X9lHz)|5s(TKod*NTVGQG`9{F6!ZEU6d%m~C!ea-&qqWnkb&)DcAD8aXXn}yDQ`aDi0Z&{d;fL0 zQ&C!F{`P-g?iH2$KIL@hH0X1w!nf)jsJI7eWL{q3$(c*-!|C_@_hDc2-JU^i34VKq(1&BwtLIWROVUd3egv&3~Bky=vH;8 zW!b!5tx!P2s?5dAho+gmz7}Y{MgV9*vQyQpdyVeTq&-JEnTw!If21XfC-*e1>?NAY zOd~-m=@zY0Y{2H1Fdl)1)tOIO%#b?W5}DaR!>kT&q0U@DD3QT0ffWrx$v&CaY06C$ zu|@#)8zaDS?k=!q=8;Jlx}BMy*+~6>enz0BL6iFFu|@u>o@g)fdpp}z+AEjP%TKt8 z1nW0i%XelZ&_oe0#CN7-o+iyAg4=>1UrcMGIPuLWZ)kT68JVq2 zb&Kd&vTDgX({c=$!tN`o@5=nA;}n2tyVwop7P5P;WVvgkn+xU5u8?&FkojM-;0h!= z-n}2n&CKbVS}()ma<*gokS$tp_@>0(K{E&1&9pyn3tJH^(-V)bU4GXmsAXEPMN1Ck zEJ22H`Swn}eT_WhB-!=u88q`-wwmFa+`cedPYBiP$5b?uinu^pm>d{*`iMxnu6VXr zjNNDRvKTk#>&5f>&<8DPD+f zD-MG!PP3Lq3U}ZK4Co72$ zjM1TV0|RcWNfmf{D$z@_h4_SG~q|c8@IusZ#81 z2E(F;g1Zq1$kI);Rgglh5-%495~kRzT{3-ph%5R1VGbwQbhm0o zMIj&w#f}0>L=<~j3u{^HD)z1v#kz`OVXfE`(G~0!{-3#bE^TFZf8X!^-v9GH&l|m* zJ2PkIoH=vmOrKlvzLditA*jn;^$dF^gc%VfS&MN&n-yM>C!qx1WQ4??!MzL%FDBh% zoFR;F;|Oo=LKFDd;e+1!S40{;0&8H=RuG?qnxZL)du)KQq9n2_3}t*Wyf85Vh5n=$ zHBn&7QI_D+x>=_QFO@_<&RfNOGKjoM%s6Obc9nh|Cb`bQr8wz?g=W-iKAAtKq5DSc z8T3q?)bcPy0plu)`zD-W4870L!$yahAGGe~=%OZz+mv8_+K^mc0$PrPWa;k7qs(!+ z0936uQ#!sDCt*pA)Ur$iv1Y(G?1NUlB!}%B$&M&@)E7zeaFp>?_CgDZpf7e_e$vNQ z(qx0V1p+cpfMP`FIsPtWCr%17)7-{9iYvY+_)H?ZBhrjA6A4a;*PCZNGQ^U7VGC=F zjz4SLH6+L(ZNwN?l94MUnXm&1xF-3Uk(safwxobyXGtK5@BvvxmYRd_*XPN(+zj$3 zU4*#?ayiW#LHi4u^f!Xhbu5<<`vVa%v(BR@(Z?Obu8c=Q5A5>7cG8cx5lsoiafVM8 zS7Q)?g<^r^+8cqlVLtpsvtD$CiG(u)(u&Qlb=yXq12qf|oVVAcU&4Q;c4KCJx5$Sk0 zB93?#rMzN6h>&8P4~vLm5r_69nnxVn(G7=L=Imv8d~}lu{t*_RD55T+6i;-vzZoH* z>xqU1>?YCBn|b6~N=rQ8$hd>@*WaAHs7Obq?^gp>uE4X8%Y zQcr92$$;ibC_z%_?R~tBDyl}95K~-&xywj>`-CeEx*)!2R{D1UY>k`s=_5vHg5~Lm z;uVL!Cu-|FWB4rCge3yvVL(P?gbPefzzYe6i?M*kb;`*M2i7v6h706~MYU3c^_FpM zVzln)9wG@36LOnP46zp8N&RaJmS?u|0x_&Vf~MLErS8Qp=U}|(o)P!dhL0lCAOqRg&{CqH9`>)Gbz#tF zQX_D!s;ES=5;U4+fUh88*-qo54DhJa0ZG3RbWA6wPQBj9B%J)PB3>SCc+7``xcUTrp*Z~7*c9)U}i}Mxj7~BCU!a}NS+0@P{FXR`87Ty zmWkv>UnE5N^!t{S5wHLOe#s|5|IUOU~!9uA0!4a9sn zmc@HIskLO-;tlFh2Z<2m6ZO&Dp1erCe>Rps!@w4WjXcry8%MDG3+pW$FA; zLx??wzmWJN2kAs@Jc!XaO)SiY1*`zi#bs2(oh&5F+K;5u1cuqgG@?wr7DXZ%R!iAd z9=s5;Xz9pBwH^fOmQi|aKg8Akj&&yLho5c_+bp2Ifj(=mE(Qo}&rPW=hz~+P4;P1f z>gjy&mI8B)w7dwb$bwLJ1rcGc1&K1q3KTf1UK84y;jykyE84y|D#YMbHqYOl7 zVf4h-4{2p_x;nicsn0@D@__Gg53wnx6Vf0xPfxIbO!XjbGCWozt4^7M`Q-GKb*4yj zgZM+=67`{P2=}AuLAF@5xd9&i*i(mGRa^jj!;6TmjaYt6cs0XREsey8w-hO2R9(?4Q^!4K*HL5 zP=l2tH9kiB7OQsT`mPvp5{FDOBes5lJF1abDUWLH3oKv8ebqxSd;OJKur!Mm1MXlI ztV?g11^NpYz>FautR}_Z5hNUk)nVI>Q!T&->6s-Y0Yz;6fXv_e#l1F&d)`8%_X&47 z5e3qGK_6*G3o&biiDbmuO=wb+xCWC5MvQh}talqNSS>PBJ_n(oFGlT4M0~=JzF>V8 z*=3S20CkTR!a`dR1wZj^0jXcY8CXrEfwLM%VW=4G7$OKF6$}Q?XnUgVA$D^;un;4h zt%q^xWHct0#KBbRWmmIDR@ur%SlNLA8wQ+ea#~co4i3_eEC(cabE8W{tSdTY*~n!h z;$_Eo$Ppr`SzWghb*H@PlO=Jc?*g%ZWJew`eJ?oE_edzInFBjv=*A%_alc2W48dGg zO;S-t)#*dLS*vv$IRlq$yaWl&#b0?bZ zFNacG%nzZq;2vz;&w^_g_7)Oh?rM0bx=aF(9v<9$*P z5H<1vF2v|~i*;n{8QODFG@j7h_&Y>>)I?bmHbJowgVj<|lB*f2u4E@O7u)W1 zo4^>>XEL;jSZQVL8|f%CMQdGaTpM8|jyIqm`+>oPaSiy9^%IHa0ignQ_R<$596+)z zi4)0`j0aXYNJT-P9iGrIqP?hNjCKvu<{i*LRFgqY?*#ESP+x5a|7Zms1 zNe~~4EJ9KXmLUo$U?K9E9A-~qY*UM1=>CK zBL6|)F@6sc!-W|5=o2fr4DHw2gb}uJMTzO$*oMZ1(GEv^NC?8w-Dg!O9%M<@amVjx zttCt+lGAL2K7$V|f0Pyh*Vc)(^+vs^;iD5JbB=LzkK_Rf3 zkK!#G|FU`n_B>cMDrjDgkTwmhBUxH_l}nE7KGP1uJRVBTB{8hTiR;2nJAv{?f?i}C zG7+jQND?TQ$93B|z2^KDc!ibWFm=ja2!8^9zvUY>qpNJgBI@+n<=@znr zi6wI3E46Mmww|ND(T*Nsa&3n$1^zg4XN~@po(N05q_Of4tk0l&Mw+elnekWECfF_{ zShx$5L@YgE`Jt_3t32Oe>MkHug8i7V#to7Z(ffzUNbi9)S@^^CD_PN%4+f+x)K=qB=@yTtU(F^oWZDFAY}ogio1hsvq=ww>`o*-z4Hm^>Gh}f2#8pZ z#wb67EFO}&$QkWFCoKY7qd~AN!Dqmxh1LU{NA3f0FQS}2Xn=_H;~(RNRZ61otU)8) zI^7=FL$;qTtab2{e=T zF3#%6F`9DvKNuu5nJ}mw5Cf7>>!Hf(x|3NtaOsT}Ph6UIHe;`wkHl%hYVB(%BsH&R zb?4bQY{eqHzXu&4vUZQFp;uXRguCz289A%XMYorzAzM`;jD_`4ppiA>o??hJwwKxVjg_uobta~1Vf`~68K6fiDX7Esvj=rat>wh=0ff2cA-)%U2_o)-MsrdykW1esQHka;9cG_xAFx$J zI~mO$8U<1qq{$#t>Z~rG;XGHC31o&fZIsReIWvC^YPR*vcNTMQZFP zqF6Ki2-SqwI+*3SGkWBkPAC~6nlV^tos^r@CNd>I(tvjeK`Z|aD`BK@^&s7~c!te1 z*9jmU#RabLKJWH>tL>xN!J!Bqe>phR6=8LO-KwFjgO(L1=i8XVu48J` zl-3X96!IN$MAV1wO2#uqTt>EIB zb94hCj_hi75U=1M2DPkRsEsxn9R*yy$ki`x6b2h8NLq?9$O%Ndz>*mE?@nq5kn|FQ z3$&tCkDekEe1l3DA~uHH)jGUzHB0P571Uqnv&E1x{R+0MlGnx7ho( z1gp~pt{EBm21r1{k9lMH$f$U_-_aJL%BB;!p`vCA<~{`DNGg*}ANm+RrB-Ck*hjE9 zzXF$+gU%N=j#w962{MRI72ko zN;9X+!^R_5wCP-@iA=k6Vk7VwWlMViqC^_Ie1Lu>TtSiuWOYSHzLtO-dJ*nR)j`)3 z=&TO$i3k?TFoMCHRoqN-1{)7)iRcEw7p;(|t_CDhwq!zYgO`mq)7-#hX2y3zr-B(% zJd&m664|Rk$<5ZdCwJKy_o#&+em2A>PBJ+q1SAVGZU)x3M7g>_PFaFE>)?m8*ywkN z(4YK_vZr@y!B;PpX=z9|D0{3L`nr~taj$55q4^Ap_V&!azgcX}I@$G5+m;fnskCTXz7!#bZ#AB!}7&Cs+Q=O)LoEm({` zIqp;^)Yjv+m4f85{vENrvZ1(wM1=K{+9?vOg)}a(E(<5jiQ>|Qn7EFrM-~^M0(g*onG#83W$}iA0-(+PR9L0m)S3tkcoQm(-U0_a&<%VbD0LE^QmktD#=YU z+y{IhsQ+N2Bp^!J@(}oEyPtCnlYxch3wK}+>6?eAn*19>)z z>opxT^flf_n(*3cM+uH(1Cz)NOGETt1+3=R1d>E{QIcf9UfpDaEBWGj^&>GoGzJ$U zF?UYZN|Nh{2*VAk5$;jXtO|CM@eJh!U%$_WW!!b5P7dT_=}N#Z7iU-$#K`zZllH`3yG73@~kr%p_~(i z+$G(h{FPiOWPdVuCuPzkcHK~xhdVTIT%ErkDM>uv97laJaU+{ZL*8){7dmc|i~^z4 z<(U}mJtdc?G!Z$e+tkLry|Qc^%7CXxGcFznld#n0!QSgZKcJpPwt*U9!BJZurHfHN zDY$#3EkD~8C~f{t+4-=CgETL-Pk~*q0s6t-EyAkD2G*7u_M3;?ArV`gjf(3v4KD2D zYG4DX4$yd;OO6p0fbgMm-sI>EZb2dCh@ujWf+xO97K;QlxX|qaTUv3MhP1e%`W>-C zJndvmQxFQ761F2k>Q7v+`WzuoqsY~~zSMOOYr-(f) zzkY~|$0V{~Gl^^pM31|;Z#jLRW%6diaoWaMHPt5qMK_(%UcpovE*Bh> zJji@das4%$vscHJLv>*bAZ5}=ltXzceZh9R3~h$=*Y%qm%Tj%eYNynt1K** z{uVXNHK{IH4Mx+aE&yS4O<_XI>}8U^ILV2u_CaaLa&e}I9*+H{<105B(KoV{N8)rV z`gVVfK?i&*futC{E8)&e6LMxV7925H-BZ^}a{GpJ_PAM5T?oA*Duujp=aBfD9#N<) ze!2bjRvOfW->?jrUrmtE6DpALRUf*fj)s+dI)i8p&YzEgKRhMLHgD$Q2DxOLfr+qg z=IE@)6Y|W}uj>Air0x=2E{Sgc#}8S0>X+;~ygi!cH}z4c<} zd){e3V_C#GqKxZx2%P9gE`n}8!&^y%*yCVnHaC7C^&iNj zpKKJ@E16(oS@#TDTlpE3Ew;&N-U$-iU{^5nQqsT`QFV@R@%e%3=&Z`Q={J}aq_d)_ z!DR>6|D9zsuL~#kiM8WoE-tyjt|)R9Rk~zllG$u+20A)i4aS|3kVWa$WvJ`EC8*{+7AR&%OFu4xH=5qBhusR7oT%@-|Bp5@Z&@CivYc~ls zPonA7o+P8`Zzeg5xf;}}J-Cvt9{k9UOh7I}5@q^V;XWE-S2Z`2+>LP41iE-;8O4U| zkpjK<;^a`QW}hit*FJ-F?MXz=7?zNlwgHJ_O3NI_oEwqvUuZsKUs1+0eR@tdicH&~ zNN~%Rx{bLBkI_Y%iCCheLj1*=>)RFBT>#HE$VJ!uDp@IZ`Ia>D zTkZ>Yr=sWwxHiijTm2fBtH16}=h=%J&}6eU5zFEkJIrE{jMOF+|SY%mv*_EiL5gsyA#6z=FmE1m=8!c&>N8KrEgwP zleJq|m~TWD+i{UJE~Km{b~05LxHiV>|9LD4ldHhE`ceAzAR$RPX|fr+QzqB?tRP`D z>I51)jzY3K`cnqDpVh0rInMr+?k7R#Nf0-RV3yJ{7CRZKp9^NUfo~GN1gFCY3-*F7 zheB|xi7}PP+|Wf+!ixEsA0hoh@;Nc=IUARNmc1W>rp1veEJgwbCKBtMB(qxhE7BMk z5latCBm%(HJy>dtEh-YHv(dQH>l3<6jqN|MSG>Ys>GOhrL>Sq2~sqMCl+C{56Fce)sj??x5q zxufeF_xKxRk0qsRk#%w26B}J139|AIi(2HWk)U+b%Sx5EbL0wBMxeP%YLKSz6hwte zai6TUpRb_*#9pAM&&f}{A8EOtbunYnOEo2{To+_GE?C5shC|Jd2$7_FaxEGhRE|~31z-VPZqlbEE8!P1bY|qfE&=vu;G)KJ z4DNBj9uZh8R9PtD1@xD~LGrCwa6C&45os~eqOQ*hT$76ddhTQR*38R&fs@4Mn3`p+ zUtAuJJq>LJFKk)47C8vpB}KEe4$w!Giq|5ujC@0}rbgVG7C2>99Y%zz46iTt=h;*+ zOu^nPky-8wak5B=1j(3Hy{}(#y#8-6=b9RayApX?r&ma$oPJ2iZvO$8>!_D#8h=e) zS8%W{x1TLTk9b7Bt~mTjA*}_XfMYZ69tOSOpjO+l(m?k& z8T;wkatHn*Adq^2kC#}dW1MIZoX#F?mzZkFa=@&C=1eTHOBMD5vf~|&-cXJJPp|Kf z=$+x|&61gy%p~8;)HWe_)>)E_uLi+)Sc3TQG9jW10#!DB+(r5h6Jt=RWHWcv69eq6 zFy=m5)D=K?Ti83ZkX=0rBbp4<{9dUT>GTf{*0E*l?{y__Co4-b3cT#$%WWHLeH zXn&2&Y=9Z|^ne}vf{~A~q=6rphDI7;dcXtPu}eD_%$#M~1LZI}1mp&KZ(gtH=mD#y z*e=T6x!ysO>wzguZF`b~Y%N(&6CBDFk#FHV#HB-8XOhB7q+!QhF<#ad5W88Sy|%-g z6uTq+qKD>;_9|v~G-tKf0Nj(hw82hA(kmN8h96RVO(U|MZXr0N{XkIA%W~Jtj-6V< z2;%3ETw>3vhtvD0P{E;wt{NS_ze>)S?}W9){ArH+*=&+Et_1~WTn7d%D4!lq_;n~~ zg!VIsU6yp$yBRyppaY}sP0}rwq)t1UOY%m+4)pikHC@`^uCCJd&i$-G8zO3VY&a}f z6p+F~P1*bl&# zk;L_2)WP`tqY?X^6sH_~2`jm;5sQFplF=YKYY84`(k?Z!?1CXoEpmOPHMYIJmt=g$ zzMiKz5b;906w)VsGHfNO2JN)NNRC{#O!68_IAp(5#hNlLX&?y}np#A_4ap#u97}r2 zBnJEW0X91Yb2x5;fsZSib!wDDY5%+Ie%{L*R#RYkB(;?!`4~ygx=|syu|neVbQTJS z>QC^&9^u<-@)X$WDrf}sQ@ zV}053!<20-ykQ;&;kaA?3_FQmia@T9Ob^h&cC#_c^fS?`O)rit*<#(3CrswGg$1$L zuT+r}@Wz`I@Jsp9?q>7Vj3rsHhO@Usy$ExMQ9DWs=4#0Ska9MKom>K^qC`CwL+1}P zGG4~~1UHA~VxP`Ui;$BPy~*Lx-nh7gm>P_fNs~-W8|(wQ-wiea^0PwkoLDrE9jWmBjSBY11v4z`5tDrWiP$$(24dTAe`U6|AE9^20rzxX|mX4 zwFAHj#N7j+OxzeFPMC~|PDq^`Ug<3ni19I;N95*%y=1rtpr;hXK0K84pP%%pHHg&QbbOyO(_BPjHza2SPsDRiK)6@~RE)TglTHjcgn zg{@dvCcjp{a^dwT)Ti(bmER)@uThvu;a&lwC_jZ1%_d^X~r#|L>Flny(7KbnA-c z%!iZmu7LOt9o5jg`m5i6oBn?r|F3xaXJMIo@zvb)jcQz|KHp%lp{dC=!O}V-Yn#`+ zZM4SNruzc>BE_-dT6Eim^G` z@tbY$PO;&ACmE=+BNC$rMAcSbj!c;`Y^K@to6}ZK9uw1S%KfRSA^xFl!k#I&PMk2I zW6&SLY5oziF47NvhZR%gJp+mZ(DpoEu_1*u!JNpd7b){k>e5i}OTHT*mcX z*Dv3z)d=~hUq)(&w;vYbxoc?Q7>BXy(FeUhjdvb5&F7>q^Dr|%{*l{bqh}YM&wo1j ziRtTWe=L1D@|C&vwr)*<&kN!AN8dIT2b5TSdGU4UXXPimw{PC;FN`X3eD~%3@sBe; zxcojl@AU2JcO>`cJ-Bqw)AFEeb@ z!!Pc=@a|l<^D&o>{`T!k@5`}^`lc8x&R&wZe87s@%PucXSwC!@*_xYcSFRkhs@YHX zSEnZX&u_Ef*}|>!CM0##{E?Uz7csj_?1x#0b=| z2Va&y+PKLiIJ)0Zvs#DDed_7|c4<+h=Ce=3V?o#Me*8Y@o^dOebDO%``AWa4x?DMs z(@NPib9#ocZG^KhH++9|zxpO^ch2ZF+-lB=f<7k(+HODm{*1v1XOY{Ooi7_i8&BJ@ zbGU`1)0|p9XOH&3v^V?B?#l}kuXPB`t{?lxIbdOKV$xy5?&+zAosg+5~Fu@U4AU>w(9WQ z^Nm_8sX5kqfOgc^M{=L0n~O|a%s;gv;CrC_+AC>FpOzPXGJikq?ZXW{f9`6u&7t3A zNxJJ@W@g(BP5bzmtbLbhJZ50=4rxH&X;ZrOKh)p4LtOmuX?HZc_njK4cyi`>&91eq zrtUi5^82*ZKc>{S&uO*Ir^WdW+ip$&6t`SI^5p(!!ZsuyttsD*6i%ctFy!0xh7Gzo z##BoQ?(nehwFlF5ZI0ATPftE|w@LiV$@K=bGmTMPzL%6|vu(MLPhQqkrsWSajN}ICmcA{XyD7fw!^>K zcipM9Tes@-%Njn}+1Ddq{cK)+?zf`hb(h7qUv(f*?Y`B2=&pI8`}j$Ba!K0|YC+C&aV2Ixw-6?-UBNDBN}{XiVeN`FDPQU^(*Ayy@+uJ0Fa) zygb??rkzQ_sBRNnAK49Wx#{?r&BeB#wzd4Qd$#IU@ziHmUhON~^~){i@l)om&`+Op zeEHRT^L`$`#!WnN*|7R`v#WnU{n+T;k@(v-f~D^Jj>cQQoOw8_X-2obGj=prCeL+i zX8rNKYVC~$E4O$3q;37H;~Dq%!o)B7vsU#uRkGS-&BUUXyVjjQRx@va&(U*@%x$-+ z1N-dhe4$QrQXcmx-)|_av4PVs_wTtoatsR&?~)a7bGw?@li>0{rGB<+_pfzhN9{QD zHDE)J3Sk7N|CuJ2TYS0lUA;8IZMJk&93QVLDA>|}wB%hM$pyoPffnW~=2wMRl|PxJ zXh!+AqcDiV{XZ9aFjiB3n&}t0ul}{khdUo%7+J61upHkbt9)OnHmZ+=FvGfjmQ?Fh zGjM=+`sEShzO`u8L%*xS&%R?1LB_KBrzYmbR10qyKEY(v@nN%^;wG-{n{~bMla=`o zzbBd>p#%Y4v4kDX)U-ZaO%k&9Y{98*FhN?|p1UOP>wD z#jQTOwu5-%PrG-t)AqT)uI`5}wd(%9XwQ+RZ~l1xZEl;kS(`}yURKHnvym&0BcZC= zX7g>f=gHT`-T$(2(hA4i{*g{oBPV4gH29@Pr#bhB?MvF{UL5~h=!&lsx}Q$}(0hrK4z6^ z?>wQwy;GO=NV=YDydmXvn(5AGc_Wjv4-a})>-0~IN00iiw#dAf4t;u0ZEY2Q^~7cQ zvm=e~N$;*1xncI!X0@&kY0+)0`(fv?Bp*vD-&-l<%fm45w@~KGi)4#~^X^-zYMtnL z^x)$4#zqsZfAddOoJkAy==He$l-F}*Z7tk?J^0AF_qpfU7Rk>V>3x$uY^@*mV4|nm zqPyd&^B-@xgbq$ypB*r=+qWje8S8uRuk_r!jd^uh@BIghPA>Bwbjp3Mb=)*E)!>9_ zZpYP!I|szqwerupBmMQ#Msw?~KD*t%k5lDLXi=wr@%dkdeRZsRAbQW9t4Ctiuh=y< zF8ke}Z$&p}93}Y>ZQ|t5=Yubgvul2;*`>|X#BFnvj;Cqz&D$}{b^G^h)3&NTXTr0M zp+7D1os+uc!r7~)x_pnKo2GT_`j4oY+240m)5xST7p~4*_~G;==j(Hi_^t@n9c)&; z{p*{{EQ6mt>ubKk(BoV9f$!OV$Jki5KS%Jo&$I8EzmaUHsVw7&U@Rfbvo5Me)i-otDDtJnh*H+H0t-6p9jvhc^($)+0Ekdoo&rF zXEfR1v;XGgcH_>(#L6}otq|3#J;dhGuLT9B8&=+{$}Yw3?JGN*v9aKg*^-QVQ?>hl za=ZGj>3}~n>NVBt9{1_(u!$pcy65{^t~?>Q)^hv=i($*24N-mQWBf8{(U_IvV-zc^ zs$Y+%PKX|VZu-$p54L?)`t8Rr_Uk<34LkGA&TS1d{-x{h z{dcY}(Dr`!baa5(!1iPIt<7*WJ2Ke$;6uHQL)ulPPrc^_AByQ|nb5fN4*!(hAzP-b znk6yvWY(M+HBH%KRFA*68JyW==~+}7Qfch@TFkk~wvIUm<+ zOIuy{5L<^UAFC?g=-%5by2YBfB@8-Tkh5sk7VFV9lX`#3X!W~ngxTdAisGuubM}aN zj;qBzO*UPcwQ|)PBj<#|FB_l6e5x_Uw$Hmj>wvLUm7m`e`_UHp2WQrq*LM5G_lIUK zsFmHayVV&pLpK9~$>W(`Rh8FIHA}WMUE1klJDKnC8)-W6sk<`ykQ()u%$qrM_&DdT zkN!`U&qfoynn~GrPPqmPoM)^H6(pV9uyLJK!Ys`35fdJ&Dj!YQo_h0+J!l-{U^?yk z+P8iB@88pKRlTD_h6fF7MdDReJ~Q`S?3$RJ@u6f}@Sy1vuF01u(lS1b55D>`uJa2L zud4D1sp}b}*6X=*Li^)Q_s#a7_Hsf>p7NWX&GX$a$B=kcmCrI=>Ye4nWxwt^`IAjp zo#T(LuPUnd=GvileSVpXy+~E}Z=4fE0XxU9*YD$XqfySjwI`MahTmD!VcGc)?-f@` zynp*wSX76dH_V|hokE^YDs`t&7*3%dg?1D&JfsorUUTXCz2%?_g?1DQDP$-te8b_T zQSe^w$IUXSFrUlEaGA;Z^N{zi3i8PfKmTL;?7}P}$I=AYlPq|5 zS;*0`qkNcF!4HjAC14lC5c=fze@5SvPiYlLKW8}y(OCi~O-T9LlXch1e{ zKb_(kP=?bFaC8fQ=Ah{Y4pOvI;JJ_TxAw>3wzPm_DZSE&^o6JI!Us_N{9RmnIlpqS zkU}2qpTe9gH5`|O&x@OWYhE{nbx4b8eR4%Vj%#7TFeb1~`T5xWRmd>K#q49jSTH8| z#|K;F7c(Y>#f(L9K4Vf`$mHW+A^zoC6f=b;#ih~ni!GSKViTsA|7VfU6q^(>#rYOY zaUuNqwa{7Zw&5Ls}M)mI*J8eE1aNAA<7{jG$6UP{HykQ^8sA z0;!x~nxRt0saVShbA(C>@Dk$@irL?fb)n3+`f6t8*$J-eS04S`sQAIMmSrK_n^8^U zT6IhWruFKZHE3ksxJk3-7A;z~YTc%7J1grB9c^r*qScW_Z{EK9^!eHI=*onO3n418Q|iO}xLh+m^ZKO|m?TJ&Du!*a;eTi?#Kzj&){S8?nC|BVap z?-}E6d9-Pu>kE^WXy0g`N7r;&Yu%UW@;w9TQE6hm3Qxn?T$>kckhotxs*iUye_uG*KT+_BGqu-Lx)Wt3LxQ%d%fLf()#Krl%_*_x19HR`Mv7B?)5g@HR#z1w?$sb2PT~!Z)i~cdYGSQgObK8 zzqYw~LbpQW((h8>@9Uz|w0%$1&?F^3Z#>p<^0`0m{5;LL|FpgW-KThq^Q5qA#?Faz z=N$e4)1-%U!s3KASg_S$vBqMMCVJ7dA`@}P0QwEStT*VQ)NY@KTx2ku!i z>bYS5AIq;b{b|v<*z_|)q<4iI#zYScZdR{J!$(Vw8mFhWf7-KEe!qH68#OnnS*O;U zq_e-;9Nc=u%wpTQQALdtc1PCm_+!<*V;g7segCM}cKx`B_s7KnJ#u0#5}#dHm@uHt^lQg@ecJWeq3&7hpF^9k>ooB0 zUi4z;40{=!@i?c$zJ?*&!jG(~yHxU}zfRt2>$mx*Qw#ev89BXUUaQV2ujjfCKKr}l z)r|QUHWaVCUaQ+L?`K`vJmtRC?L!ON_WAYHrjE{QpLoVBt~0^+(obG9-26Wz*UwDJ zJFK;J`sgz|Yxn#0<6}<-=Pa2PcEe`d70Y`2&h1>)!_<8G7VR3D@=lLqQ-5n4Q&TzG z{N2mdhxFoxtls);nNqR6C!L@#fDocWulNuxy{IzTZI**WxP|N5(MN#}R}x%QONpUf5%)bFXeysh0IhotAbK5X{%)s+5wdak+lVDyML zsy^msmnW;vc0V=z<8Lo~zi%J=pjVh#jQGx+3%lRWIudlcw_}?w9Wyt&_%>{w6>P<4Lz3+bB{wHhXBQsK_UW}LCa5xw)2^pu(IXtTGu$mKY*mc|N zc*;{;eVz8$Y4%T@O6GQ1&`*5&zV4#e)TIu;WVY`0hsUy7eZOQ4HnROW!0Pul zd!xo~a1TwoY8mnAgM3cV%7)iBjk`2nad2@+xWx1Ot0T948n}(xlDsxPC2t2a|9GzP z$0y!~hxfTw&*^Bf@IoJfe#Y(-)%5Dmo9Mi#u4qW$-4`p~T)AAh|Cws}PIas2zjjS{ z^trpXS>yv{|Dq<7np>aIgdOrX*=~Na>9>)+2WDTJEL?pjy*TE#G4ER3+uAv?###G4 z^-M>%i+$z}v3WXW{gU%*UZ>{w7__VX`?PZf$9l#MUnOnS!C=PG=$maH z2Aj!7w5&b-f8D_T4S{T#Z1bmS)8hY#j$ZX)>eS?tH*f0PoH+5s{jjh-i_VKrz_QTsZXwb*Vz@YZBvuB67wQj9go0a8bXKrrQefjdAjSUS2omQ_tU{a$- z%{KMwb!!?M`_qF*k9z%9P|$X8yLQ1d_wN1eMP%gqdNpe{Z5|i5&bwnrb(bbhY`ZmW zYI9eq+`E6wm_Np*rheTtY}kjW9z6yfx_MJNec!&z!>p~R-h2GGw@;@|lj_IEulQy7 z@b^cqUJW8*&Up2zql-}J_xRhl7L)hvId^dE*jLvlOgNc*@uFMc$&vv}Lph33+I(HsXHz8r^JXhB% zy3e0Y4fOS^7tfqIE7jApFs5fuvE};pM+a`*`gp_8p>M};+*lmz;*xH-aN)c@ix>ae za_!pV;f{`yqWA9&WXF#`h(35QWB2Xbk$qdXlnG5u?VgsDH2MDat;wlt*FtCg_M3-! z?b>E->(}p^_3~w>lfJ$WyRKNVAyF*8WZS5b(~{GtM~&FB<;}MlGiFce)vNzGxqRo* z@#CL6G;ZACnM$=R-On$z@vK=Z*9{qRb>rQ;GsUf11$eb@Kch!V%8puziE;DY+%BB` z;}7eJhY#mknVI$6a{vD1<32u*8rG`S{MS2oqVDA9_mDd{j8r>24>mJ4wpi@$ey4Wz z>c)~bZ9)!@8~0>=X6E=4xw*=IJ9oZ5?eG7K)1pON?Uyavl>6jK_cxO#C*64d+#%`Q zxqiy--ACUJ4LzinoIHQejT`bcg9l%8-?lA3FC=9D&XFU(ynXks#+4T@EH5Y&yWdTj zvY`L2T{=@EBlEDMM{g9y#3T-|vD{75%jE+H-jkjgDw<^w_bR9UC@u{u}e~x4|j9bxrpsdJXC5aJThOZM#0J9N~J8 zLnD+MZQb5%n0@H_*uiy1m8jMZI^VJBt#5kawa>K-yT0g7!{>Xl*3G$SG%;qqSL5~G z>&Jbl*U{nNsh6GFYqQ35;>QgpTz|N7`h5RAmIiF19a7L!O}h3r?Vj1jQ2XWe-mEO0@E@d+vyAZZ7-{_eCIx&PF?l-2 z=Gmg4Hz#h?8|&J?!#_!bkRe4*#zbVQM=0IYZuW^`FM};p^hO-ar|^HuoIOp~iPH0=^i!=Xj{nkW!v8jXa~Xm>B6o^M9p7rTX2GbMy0mu`~f5rnz(FZs*ED7dH-;()ouk z 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 literal 0 HcmV?d00001 diff --git a/sys/srecord/libgpg-error-0.dll b/sys/srecord/libgpg-error-0.dll new file mode 100644 index 0000000000000000000000000000000000000000..e09fa33265bec04aabdd01704176588c03288bf3 GIT binary patch literal 207210 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%0D?}uc&!Yr#rKjlZO+?9CyMy8 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 VG_D_^$-(jE)UuwkVyBJj{{Z5thiL!+ literal 0 HcmV?d00001 diff --git a/sys/srecord/srec_cat.exe b/sys/srecord/srec_cat.exe new file mode 100644 index 0000000000000000000000000000000000000000..22cacf97516e3b1f18b79923506f532a8fdfdb25 GIT binary patch literal 1539098 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

Dx`KC=Pq%XdQhzVc?@p?u)9G}_1Cr+=kfm%S=c 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
_;DCvI`axa$hwun1?%-t9Y;q2*_pR~f+ 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˕>-`6BF>1`(>#muPf)n!aa{`=zm!F+@lGMY`x8OAL z@N?}h=)8xYCE(F1i`3UrcdW0dl@U`%+fi>STy)HA`{Wstzh_u@?G8K*HB> z+QV>=sF|Szt1)Dy`FR~kRK>?#GtF{UDg_eL z;(YygWsxwDz%r-SodiPn|4cjf5Lz39<2s|i31tW7}QtntzcAfY|18~POwF1@|r zlzLn_s<{uIO^%QIm7@XR1Y#UkqV}?8%DPJF8if|nOjaK2@0lKFhWl}Ru!v!F)WfpI znT4t?7vntFVoBw3W}a%xA)H9m%(Y0n*`i|2%-)aMtNgfY<`{6Qc=$O9&U_C)4<5i1 zsUCi|gR{)T&jkljrXGG?0f*j&g2F_Zx~D7kd)(8d{J3jo0XX#Tk&66~W`-)EnJ?O! zIdoXZTy0)XCA$M*8CXXXEd{%7n|TOnXO19T0wky*LxJS(srdT)7mCBJ@|?r)tgN^l z$~bWSdqr{BDsTj$D=T-c8>BdFwFb!l!`s)uOEvZ1pWD492}2<&ruS4BBq0n%sW1p3 znqC#X%u^Rd7=#cedI(_B$2G&u|M!dZ2%J2bXu*$3ZfxB zfy5=l=}>OqHU)mNHSQMi<30F!jI*)>*J};$QK7sYPQfkqe1djTAl5#p(aB`xfoVIwdefs>2 zXBaFx%0&|uxacZz(X+>nsPkl~DmjI+GMr5%T=YwDvgG8`ZSf0c$_I2LJ&d)OBplB7 zw}8YXinGqGKcf!&l^jMr0VJoD{vnXWUYzeq2>5;MFJIIy8;~ciWmh>=4g-lxK4xE? zEgVMusB|n*1AiljQ44^Cw9>x<5)d8pUi8S{$)V1JKvIjmwW$81E^-o(tj3uSBs`rh zW_HM}Hlk%#a(3edrsrT^?E_Bg8FI`HIS8EO@8sa4;5`R*o&YDegdD#P_nGd<1h494 zgtqZ0ZTcsavf^x$v~tvccn@f!%-pF!Ic8ltU399U z>wX_N4e`F(a!#upGF^c~?!FbTXPz^9%*64&4-XAg)pL?B7iJu$wdvR&oDlBK6uo66 zkg$f_21MQCDRMpl68omSi*~I?4jo`RkcdPT$A!v^BeH%qIgFYFB&wBu3y|>P^n@g$ z{Vux57xfj8n5NUH2Fj9;*+oYQhxw#|WaX8(IjUoQau{_bkeo!BJ@ZH5Fls;p^q`jW zJRefCSv@DCafSd<@5xdvT%_od*3DtP_wj%QV`-!Myd^<=c^eKmRp>xCDYbq@OKESc{~FgS`` zGJREj8j?HTl|Sq4sFp9&~6>OzZFU2e#RJ<0P>7rxy)pg+Xu;`3xRL_}Z(OCsf z*rIdD7WJGt7M&zGy(~JLH?HTTEIJdw=_5L3UtJE)LW_>_)m#O>dY<^|ka7B5b+=!7 zZHXBtuZ8uY!T!2KIGD>iMLKr_I4RNLjB-y?C$<$i^n_JFlCOK`Y0cKiM_wI|f}+oehxxP(V6<4Gt`ZKT)&hx0l-UoD+lCxQ{k<6*kI1bu z9Ei+ER936kk3J-{Em{Nj#fx4y5r~s0@0o9blUd@8`U^Jvk zJLKWu1V1Ck{2G58I4R3({2RatqgJZyQlFLg12~xqUgNu?Md|F0dDGlevrXr;O0<7d zw2#bgv-{l-j{58)b+*)1zJ}Y?a|T#+E&^w186CR%K+#c-&AF(uMcrfWhpT2qrw34c zNOhg#ca)V89do?~ZeP!75iDP?C%{>1(b;*2dQL}+&Sl^%6CIg0`K(#Pb>MU@qa)W+ z#&E2HY&ewD1|R1*EPZ!rkvQ$p(X|ss_ t1bjG6PTmEn+bDB>LO5^$og$e9c0^x@ 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
=0a3ca4dQC&bAhj`jgcv1a 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 lDsa(r?2OW(lvD^$a^7Y+Q{wd##z47c3b /dev/null 2>&1 + +# echo -e "\033[0;32m~~~ Version generation ~~~\033[0m"; +printf "version: " + +if ! git --version > /dev/null 2>&1; then + printf "\n\033[0;31mGIT is not found!\033[0m\n"; exit 1; +fi + +if ! git status > /dev/null 2>&1; then + printf "\n\033[0;31mThis is not a git repo!\033[0m\n"; exit 1; +fi + +version=$(git describe --tags --always --dirty --abbrev=8 || echo unknown); +# Remove tag prefix from version +# Версия git в последнем поле после '_' +if echo "$version" | grep -q "_"; then + printf "%s => " "$version" + version=$(echo "$version" | awk -F '_' '{print $NF}') +fi +version=$(echo "$version" | sed "s/-g/-/") # Remove 'g' from git hash +echo "$version" + +git_build="0x$(git rev-parse --short=8 HEAD | tr 'a-f' 'A-F')" +date="$(date +0x00%y%m%d)" + +# Пишем в файл. +cat << --- > $OUTFILE +#ifndef __VERSION_H_ +#define __VERSION_H_ + +// Данный файл обновляется автоматически из скрипта version.sh + +// Хеш коммита в репозитории GIT. +#define GIT_BUILD $git_build + +// Дата компиляции, YYMMDD, всё в bcd. +#define BUILD_DATE $date + +// Версия CAN-прошивки. +#define CAN_FW_VERSION 1 + +// Версия из GIT. +#define GIT_VERSION "$version" + +#endif /* __VERSION_H_ */ +--- diff --git a/sys/zdotdir/.gitignore b/sys/zdotdir/.gitignore new file mode 100644 index 0000000..ee1b1ed --- /dev/null +++ b/sys/zdotdir/.gitignore @@ -0,0 +1,3 @@ +* +!.gitignore +!.zshrc diff --git a/sys/zdotdir/.zshrc b/sys/zdotdir/.zshrc new file mode 100644 index 0000000..ca8d046 --- /dev/null +++ b/sys/zdotdir/.zshrc @@ -0,0 +1,6 @@ +# This script should be sourced, not executed. + +unset ZDOTDIR + +. ~/.zshrc +. sys/export.zsh

G(akr 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®ZDT9 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