diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h
index 2ecef71da8..f079912fcc 100644
--- a/Marlin/Configuration.h
+++ b/Marlin/Configuration.h
@@ -916,7 +916,7 @@
* Override with M92
* X, Y, Z [, I [, J [, K]]], E0 [, E1[, E2...]]
*/
-#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 421 }
+#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 400 }
/**
* Default Max Feed Rate (mm/s)
@@ -1110,7 +1110,7 @@
#endif
// Duet Smart Effector (for delta printers) - https://bit.ly/2ul5U7J
-// When the pin is defined you can use M672 to set/reset the probe sensivity.
+// When the pin is defined you can use M672 to set/reset the probe sensitivity.
//#define DUET_SMART_EFFECTOR
#if ENABLED(DUET_SMART_EFFECTOR)
#define SMART_EFFECTOR_MOD_PIN -1 // Connect a GPIO pin to the Smart Effector MOD pin
@@ -2590,11 +2590,33 @@ EEPROM_W25Q
// DGUS Touch Display with DWIN OS. (Choose one.)
// ORIGIN : https://www.aliexpress.com/item/32993409517.html
// FYSETC : https://www.aliexpress.com/item/32961471929.html
+// MKS : https://www.aliexpress.com/item/1005002008179262.html
+//
+// Flash display with DGUS Displays for Marlin:
+// - Format the SD card to FAT32 with an allocation size of 4kb.
+// - Download files as specified for your type of display.
+// - Plug the microSD card into the back of the display.
+// - Boot the display and wait for the update to complete.
+//
+// ORIGIN (Marlin DWIN_SET)
+// - Download https://github.com/coldtobi/Marlin_DGUS_Resources
+// - Copy the downloaded DWIN_SET folder to the SD card.
+//
+// FYSETC (Supplier default)
+// - Download https://github.com/FYSETC/FYSTLCD-2.0
+// - Copy the downloaded SCREEN folder to the SD card.
+//
+// HIPRECY (Supplier default)
+// - Download https://github.com/HiPrecy/Touch-Lcd-LEO
+// - Copy the downloaded DWIN_SET folder to the SD card.
+//
+// MKS (MKS-H43) (Supplier default)
+// - Download https://github.com/makerbase-mks/MKS-H43
+// - Copy the downloaded DWIN_SET folder to the SD card.
//
//#define DGUS_LCD_UI_ORIGIN
//#define DGUS_LCD_UI_FYSETC
//#define DGUS_LCD_UI_HIPRECY
-
//#define DGUS_LCD_UI_MKS
#if ENABLED(DGUS_LCD_UI_MKS)
#define USE_MKS_GREEN_UI
diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h
index 126140cf9d..5bcc0b62ce 100644
--- a/Marlin/Configuration_adv.h
+++ b/Marlin/Configuration_adv.h
@@ -1282,11 +1282,14 @@
//#define LCD_SHOW_E_TOTAL
#endif
-#if EITHER(SDSUPPORT, LCD_SET_PROGRESS_MANUALLY) && ANY(HAS_MARLINUI_U8GLIB, HAS_MARLINUI_HD44780, IS_TFTGLCD_PANEL, EXTENSIBLE_UI)
- //#define SHOW_REMAINING_TIME // Display estimated time to completion
- #if ENABLED(SHOW_REMAINING_TIME)
- //#define USE_M73_REMAINING_TIME // Use remaining time from M73 command instead of estimation
- //#define ROTATE_PROGRESS_DISPLAY // Display (P)rogress, (E)lapsed, and (R)emaining time
+// LCD Print Progress options
+#if EITHER(SDSUPPORT, LCD_SET_PROGRESS_MANUALLY)
+ #if ANY(HAS_MARLINUI_U8GLIB, EXTENSIBLE_UI, HAS_MARLINUI_HD44780, IS_TFTGLCD_PANEL)
+ //#define SHOW_REMAINING_TIME // Display estimated time to completion
+ #if ENABLED(SHOW_REMAINING_TIME)
+ //#define USE_M73_REMAINING_TIME // Use remaining time from M73 command instead of estimation
+ //#define ROTATE_PROGRESS_DISPLAY // Display (P)rogress, (E)lapsed, and (R)emaining time
+ #endif
#endif
#if EITHER(HAS_MARLINUI_U8GLIB, EXTENSIBLE_UI)
@@ -3888,7 +3891,7 @@
*/
#define I2CPE_MIN_UPD_TIME_MS 4 // (ms) Minimum time between encoder checks.
- // Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
+ // Use a rolling average to identify persistent errors that indicate skips, as opposed to vibration and noise.
#define I2CPE_ERR_ROLLING_AVERAGE
#endif // I2C_POSITION_ENCODERS
diff --git a/Marlin/Makefile b/Marlin/Makefile
index 5ff1830822..d09e5828f5 100644
--- a/Marlin/Makefile
+++ b/Marlin/Makefile
@@ -110,7 +110,7 @@ LIQUID_TWI2 ?= 0
WIRE ?= 0
# This defines if Tone is needed (i.e SPEAKER is defined in Configuration.h)
-# Disabling this (and SPEAKER) saves approximatively 350 bytes of memory.
+# Disabling this (and SPEAKER) saves approximately 350 bytes of memory.
TONE ?= 1
# This defines if U8GLIB is needed (may require RELOC_WORKAROUND)
diff --git a/Marlin/src/HAL/AVR/fastio.h b/Marlin/src/HAL/AVR/fastio.h
index cf704179c8..f77d4f666c 100644
--- a/Marlin/src/HAL/AVR/fastio.h
+++ b/Marlin/src/HAL/AVR/fastio.h
@@ -284,7 +284,7 @@ enum ClockSource2 : char {
* PWM availability macros
*/
-// Determine which harware PWMs are already in use
+// Determine which hardware PWMs are already in use
#define _PWM_CHK_FAN_B(P) (P == E0_AUTO_FAN_PIN || P == E1_AUTO_FAN_PIN || P == E2_AUTO_FAN_PIN || P == E3_AUTO_FAN_PIN || P == E4_AUTO_FAN_PIN || P == E5_AUTO_FAN_PIN || P == E6_AUTO_FAN_PIN || P == E7_AUTO_FAN_PIN || P == CHAMBER_AUTO_FAN_PIN || P == COOLER_AUTO_FAN_PIN)
#if PIN_EXISTS(CONTROLLER_FAN)
#define PWM_CHK_FAN_B(P) (_PWM_CHK_FAN_B(P) || P == CONTROLLER_FAN_PIN)
diff --git a/Marlin/src/HAL/DUE/HAL_SPI.cpp b/Marlin/src/HAL/DUE/HAL_SPI.cpp
index 758640285b..d3d76e94e5 100644
--- a/Marlin/src/HAL/DUE/HAL_SPI.cpp
+++ b/Marlin/src/HAL/DUE/HAL_SPI.cpp
@@ -437,7 +437,7 @@
} while (--todo);
}
- // Pointers to generic functions for block tranfers
+ // Pointers to generic functions for block transfers
static pfnSpiTxBlock spiTxBlock = (pfnSpiTxBlock)spiTxBlockX;
static pfnSpiRxBlock spiRxBlock = (pfnSpiRxBlock)spiRxBlockX;
diff --git a/Marlin/src/HAL/DUE/usb/arduino_due_x.h b/Marlin/src/HAL/DUE/usb/arduino_due_x.h
index d3b333fb34..e7b6f3dcb3 100644
--- a/Marlin/src/HAL/DUE/usb/arduino_due_x.h
+++ b/Marlin/src/HAL/DUE/usb/arduino_due_x.h
@@ -71,7 +71,7 @@
/* ------------------------------------------------------------------------ */
/**
- * \page arduino_due_x_board_info "Arduino Due/X - Board informations"
+ * \page arduino_due_x_board_info "Arduino Due/X - Board information"
* This page lists several definition related to the board description.
*
*/
diff --git a/Marlin/src/HAL/DUE/usb/udd.h b/Marlin/src/HAL/DUE/usb/udd.h
index d7394b94a4..319d8842f7 100644
--- a/Marlin/src/HAL/DUE/usb/udd.h
+++ b/Marlin/src/HAL/DUE/usb/udd.h
@@ -90,7 +90,7 @@ typedef struct {
//! This buffer must be word align for DATA IN phase (use prefix COMPILER_WORD_ALIGNED for buffer)
uint8_t *payload;
- //! Size of buffer to send or fill, and content the number of byte transfered
+ //! Size of buffer to send or fill, and content the number of byte transferred
uint16_t payload_size;
//! Callback called after reception of ZLP from setup request
@@ -132,7 +132,7 @@ typedef void (*udd_callback_halt_cleared_t)(void);
*
* \param status UDD_EP_TRANSFER_OK, if transfer is complete
* \param status UDD_EP_TRANSFER_ABORT, if transfer is aborted
- * \param n number of data transfered
+ * \param n number of data transferred
*/
typedef void (*udd_callback_trans_t) (udd_ep_status_t status,
iram_size_t nb_transferred, udd_ep_id_t ep);
@@ -303,7 +303,7 @@ bool udd_ep_wait_stall_clear(udd_ep_id_t ep,
* The driver uses a specific DMA USB to transfer data
* from internal RAM to endpoint, if this one is available.
* When the transfer is finished or aborted (stall, reset, ...), the \a callback is called.
- * The \a callback returns the transfer status and eventually the number of byte transfered.
+ * The \a callback returns the transfer status and eventually the number of byte transferred.
* Note: The control endpoint is not authorized.
*
* \param ep The ID of the endpoint to use
diff --git a/Marlin/src/HAL/DUE/usb/udi_cdc.c b/Marlin/src/HAL/DUE/usb/udi_cdc.c
index cbe23dbb68..89debe57f1 100644
--- a/Marlin/src/HAL/DUE/usb/udi_cdc.c
+++ b/Marlin/src/HAL/DUE/usb/udi_cdc.c
@@ -162,7 +162,7 @@ static void udi_cdc_ctrl_state_notify(uint8_t port, udd_ep_id_t ep);
*
* \param status UDD_EP_TRANSFER_OK, if transfer finished
* \param status UDD_EP_TRANSFER_ABORT, if transfer aborted
- * \param n number of data transfered
+ * \param n number of data transferred
*/
static void udi_cdc_serial_state_msg_sent(udd_ep_status_t status, iram_size_t n, udd_ep_id_t ep);
@@ -200,7 +200,7 @@ static void udi_cdc_data_received(udd_ep_status_t status, iram_size_t n, udd_ep_
*
* \param status UDD_EP_TRANSFER_OK, if transfer finished
* \param status UDD_EP_TRANSFER_ABORT, if transfer aborted
- * \param n number of data transfered
+ * \param n number of data transferred
*/
static void udi_cdc_data_sent(udd_ep_status_t status, iram_size_t n, udd_ep_id_t ep);
diff --git a/Marlin/src/HAL/DUE/usb/udi_cdc_conf.h b/Marlin/src/HAL/DUE/usb/udi_cdc_conf.h
index d406a87743..e61b8cbaad 100644
--- a/Marlin/src/HAL/DUE/usb/udi_cdc_conf.h
+++ b/Marlin/src/HAL/DUE/usb/udi_cdc_conf.h
@@ -106,7 +106,7 @@ extern "C" {
*/
//@{
# if UDI_CDC_PORT_NB > 2
-# error USBB, UDP, UDPHS and UOTGHS interfaces have not enought endpoints.
+# error USBB, UDP, UDPHS and UOTGHS interfaces have not enough endpoints.
# endif
#define UDI_CDC_DATA_EP_IN_0 (1 | USB_EP_DIR_IN) // TX
#define UDI_CDC_DATA_EP_OUT_0 (2 | USB_EP_DIR_OUT) // RX
diff --git a/Marlin/src/HAL/DUE/usb/udi_msc.c b/Marlin/src/HAL/DUE/usb/udi_msc.c
index b7c3bb5ea0..dd34048772 100644
--- a/Marlin/src/HAL/DUE/usb/udi_msc.c
+++ b/Marlin/src/HAL/DUE/usb/udi_msc.c
@@ -173,7 +173,7 @@ static void udi_msc_cbw_wait(void);
*
* \param status UDD_EP_TRANSFER_OK, if transfer is finished
* \param status UDD_EP_TRANSFER_ABORT, if transfer is aborted
- * \param nb_received number of data transfered
+ * \param nb_received number of data transferred
*/
static void udi_msc_cbw_received(udd_ep_status_t status,
iram_size_t nb_received, udd_ep_id_t ep);
@@ -211,7 +211,7 @@ static void udi_msc_data_send(uint8_t * buffer, uint8_t buf_size);
*
* \param status UDD_EP_TRANSFER_OK, if transfer finish
* \param status UDD_EP_TRANSFER_ABORT, if transfer aborted
- * \param nb_sent number of data transfered
+ * \param nb_sent number of data transferred
*/
static void udi_msc_data_sent(udd_ep_status_t status, iram_size_t nb_sent,
udd_ep_id_t ep);
@@ -244,7 +244,7 @@ void udi_msc_csw_send(void);
*
* \param status UDD_EP_TRANSFER_OK, if transfer is finished
* \param status UDD_EP_TRANSFER_ABORT, if transfer is aborted
- * \param nb_sent number of data transfered
+ * \param nb_sent number of data transferred
*/
static void udi_msc_csw_sent(udd_ep_status_t status, iram_size_t nb_sent,
udd_ep_id_t ep);
@@ -463,7 +463,7 @@ uint8_t udi_msc_getsetting(void)
static void udi_msc_cbw_invalid(void)
{
if (!udi_msc_b_cbw_invalid)
- return; // Don't re-stall endpoint if error reseted by setup
+ return; // Don't re-stall endpoint if error reset by setup
udd_ep_set_halt(UDI_MSC_EP_OUT);
// If stall cleared then re-stall it. Only Setup MSC Reset can clear it
udd_ep_wait_stall_clear(UDI_MSC_EP_OUT, udi_msc_cbw_invalid);
@@ -472,7 +472,7 @@ static void udi_msc_cbw_invalid(void)
static void udi_msc_csw_invalid(void)
{
if (!udi_msc_b_cbw_invalid)
- return; // Don't re-stall endpoint if error reseted by setup
+ return; // Don't re-stall endpoint if error reset by setup
udd_ep_set_halt(UDI_MSC_EP_IN);
// If stall cleared then re-stall it. Only Setup MSC Reset can clear it
udd_ep_wait_stall_clear(UDI_MSC_EP_IN, udi_msc_csw_invalid);
diff --git a/Marlin/src/HAL/DUE/usb/uotghs_device_due.c b/Marlin/src/HAL/DUE/usb/uotghs_device_due.c
index e13232a39c..c7e8f8d991 100644
--- a/Marlin/src/HAL/DUE/usb/uotghs_device_due.c
+++ b/Marlin/src/HAL/DUE/usb/uotghs_device_due.c
@@ -325,7 +325,7 @@ static void udd_sleep_mode(bool b_idle)
/**
* \name Control endpoint low level management routine.
*
- * This function performs control endpoint mangement.
+ * This function performs control endpoint management.
* It handle the SETUP/DATA/HANDSHAKE phases of a control transaction.
*/
//@{
@@ -397,9 +397,9 @@ static void udd_ctrl_endofrequest(void);
/**
* \brief Main interrupt routine for control endpoint
*
- * This switchs control endpoint events to correct sub function.
+ * This switches control endpoint events to correct sub function.
*
- * \return \c 1 if an event about control endpoint is occured, otherwise \c 0.
+ * \return \c 1 if an event about control endpoint is occurred, otherwise \c 0.
*/
static bool udd_ctrl_interrupt(void);
@@ -410,7 +410,7 @@ static bool udd_ctrl_interrupt(void);
* \name Management of bulk/interrupt/isochronous endpoints
*
* The UDD manages the data transfer on endpoints:
- * - Start data tranfer on endpoint with USB Device DMA
+ * - Start data transfer on endpoint with USB Device DMA
* - Send a ZLP packet if requested
* - Call callback registered to signal end of transfer
* The transfer abort and stall feature are supported.
@@ -431,7 +431,7 @@ typedef struct {
uint8_t *buf;
//! Size of buffer to send or fill
iram_size_t buf_size;
- //!< Size of data transfered
+ //!< Size of data transferred
iram_size_t buf_cnt;
//!< Size of data loaded (or prepared for DMA) last time
iram_size_t buf_load;
@@ -486,7 +486,7 @@ static void udd_ep_finish_job(udd_ep_job_t * ptr_job, bool b_abort, uint8_t ep_n
#ifdef UDD_EP_DMA_SUPPORTED
/**
- * \brief Start the next transfer if necessary or complet the job associated.
+ * \brief Start the next transfer if necessary or complete the job associated.
*
* \param ep endpoint number without direction flag
*/
@@ -496,9 +496,9 @@ static void udd_ep_finish_job(udd_ep_job_t * ptr_job, bool b_abort, uint8_t ep_n
/**
* \brief Main interrupt routine for bulk/interrupt/isochronous endpoints
*
- * This switchs endpoint events to correct sub function.
+ * This switches endpoint events to correct sub function.
*
- * \return \c 1 if an event about bulk/interrupt/isochronous endpoints has occured, otherwise \c 0.
+ * \return \c 1 if an event about bulk/interrupt/isochronous endpoints has occurred, otherwise \c 0.
*/
static bool udd_ep_interrupt(void);
@@ -520,7 +520,7 @@ static bool udd_ep_interrupt(void);
*
* Note:
* Here, the global interrupt mask is not clear when an USB interrupt is enabled
- * because this one can not be occured during the USB ISR (=during INTX is masked).
+ * because this one can not be occurred during the USB ISR (=during INTX is masked).
* See Technical reference $3.8.3 Masking interrupt requests in peripheral modules.
*/
#ifdef UHD_ENABLE
@@ -787,7 +787,7 @@ void udd_attach(void)
udd_sleep_mode(true);
otg_unfreeze_clock();
- // This section of clock check can be improved with a chek of
+ // This section of clock check can be improved with a check of
// USB clock source via sysclk()
// Check USB clock because the source can be a PLL
while (!Is_otg_clock_usable());
@@ -803,7 +803,7 @@ void udd_attach(void)
#ifdef USB_DEVICE_HS_SUPPORT
udd_enable_msof_interrupt();
#endif
- // Reset following interupts flag
+ // Reset following interrupts flag
udd_ack_reset();
udd_ack_sof();
udd_ack_msof();
@@ -902,7 +902,7 @@ bool udd_ep_alloc(udd_ep_id_t ep, uint8_t bmAttributes,
}
dbg_print("alloc(%x, %d) ", ep, MaxEndpointSize);
- // Bank choise
+ // Bank choice
switch (bmAttributes & USB_EP_TYPE_MASK) {
case USB_EP_TYPE_ISOCHRONOUS:
nb_bank = UDD_ISOCHRONOUS_NB_BANK(ep);
@@ -1228,7 +1228,7 @@ bool udd_ep_wait_stall_clear(udd_ep_id_t ep,
if (Is_udd_endpoint_stall_requested(ep)
|| ptr_job->stall_requested) {
- // Endpoint halted then registes the callback
+ // Endpoint halted then registers the callback
ptr_job->busy = true;
ptr_job->call_nohalt = callback;
} else {
@@ -1386,7 +1386,7 @@ static void udd_ctrl_setup_received(void)
// Decode setup request
if (udc_process_setup() == false) {
- // Setup request unknow then stall it
+ // Setup request unknown then stall it
udd_ctrl_stall_data();
udd_ack_setup_received(0);
return;
@@ -1447,7 +1447,7 @@ static void udd_ctrl_in_sent(void)
udd_ctrl_prev_payload_buf_cnt += udd_ctrl_payload_buf_cnt;
if ((udd_g_ctrlreq.req.wLength == udd_ctrl_prev_payload_buf_cnt)
|| b_shortpacket) {
- // All data requested are transfered or a short packet has been sent
+ // All data requested are transferred or a short packet has been sent
// then it is the end of data phase.
// Generate an OUT ZLP for handshake phase.
udd_ctrl_send_zlp_out();
@@ -1516,7 +1516,7 @@ static void udd_ctrl_out_received(void)
// End of SETUP request:
// - Data IN Phase aborted,
// - or last Data IN Phase hidden by ZLP OUT sending quiclky,
- // - or ZLP OUT received normaly.
+ // - or ZLP OUT received normally.
udd_ctrl_endofrequest();
} else {
// Protocol error during SETUP request
@@ -1544,7 +1544,7 @@ static void udd_ctrl_out_received(void)
(udd_ctrl_prev_payload_buf_cnt +
udd_ctrl_payload_buf_cnt))) {
// End of reception because it is a short packet
- // Before send ZLP, call intermediat calback
+ // Before send ZLP, call intermediate callback
// in case of data receiv generate a stall
udd_g_ctrlreq.payload_size = udd_ctrl_payload_buf_cnt;
if (NULL != udd_g_ctrlreq.over_under_run) {
@@ -1565,7 +1565,7 @@ static void udd_ctrl_out_received(void)
if (udd_g_ctrlreq.payload_size == udd_ctrl_payload_buf_cnt) {
// Overrun then request a new payload buffer
if (!udd_g_ctrlreq.over_under_run) {
- // No callback availabled to request a new payload buffer
+ // No callback available to request a new payload buffer
udd_ctrl_stall_data();
// Ack reception of OUT to replace NAK by a STALL
udd_ack_out_received(0);
@@ -1805,7 +1805,7 @@ static void udd_ep_trans_done(udd_ep_id_t ep)
// transfer size of UDD_ENDPOINT_MAX_TRANS Bytes
next_trans = UDD_ENDPOINT_MAX_TRANS;
- // Set 0 to tranfer the maximum
+ // Set 0 to transfer the maximum
udd_dma_ctrl = UOTGHS_DEVDMACONTROL_BUFF_LENGTH(0);
} else {
udd_dma_ctrl = UOTGHS_DEVDMACONTROL_BUFF_LENGTH(next_trans);
@@ -1850,7 +1850,7 @@ static void udd_ep_trans_done(udd_ep_id_t ep)
}
cpu_irq_restore(flags);
- // Here a ZLP has been recieved
+ // Here a ZLP has been received
// and the DMA transfer must be not started.
// It is the end of transfer
ptr_job->buf_size = ptr_job->buf_cnt;
@@ -1991,13 +1991,13 @@ static bool udd_ep_interrupt(void)
}
dbg_print("dma%x: ", ep);
udd_disable_endpoint_dma_interrupt(ep);
- // Save number of data no transfered
+ // Save number of data no transferred
nb_remaining = (udd_endpoint_dma_get_status(ep) &
UOTGHS_DEVDMASTATUS_BUFF_COUNT_Msk)
>> UOTGHS_DEVDMASTATUS_BUFF_COUNT_Pos;
if (nb_remaining) {
// Transfer no complete (short packet or ZLP) then:
- // Update number of data transfered
+ // Update number of data transferred
ptr_job->buf_cnt -= nb_remaining;
// Set transfer complete to stop the transfer
ptr_job->buf_size = ptr_job->buf_cnt;
@@ -2056,7 +2056,7 @@ static bool udd_ep_interrupt(void)
udd_disable_endpoint_interrupt(ep);
Assert(ptr_job->stall_requested);
- // A stall has been requested during backgound transfer
+ // A stall has been requested during background transfer
ptr_job->stall_requested = false;
udd_disable_endpoint_bank_autoswitch(ep);
udd_enable_stall_handshake(ep);
diff --git a/Marlin/src/HAL/DUE/usb/usb_protocol_msc.h b/Marlin/src/HAL/DUE/usb/usb_protocol_msc.h
index 0fef308046..e1e59237d8 100644
--- a/Marlin/src/HAL/DUE/usb/usb_protocol_msc.h
+++ b/Marlin/src/HAL/DUE/usb/usb_protocol_msc.h
@@ -130,7 +130,7 @@ struct usb_msc_cbw {
struct usb_msc_csw {
le32_t dCSWSignature; //!< Must contain 'USBS'
le32_t dCSWTag; //!< Same as dCBWTag
- le32_t dCSWDataResidue; //!< Number of bytes not transfered
+ le32_t dCSWDataResidue; //!< Number of bytes not transferred
uint8_t bCSWStatus; //!< Status code
};
diff --git a/Marlin/src/HAL/LINUX/hardware/Heater.cpp b/Marlin/src/HAL/LINUX/hardware/Heater.cpp
index 70df816182..44f11986c9 100644
--- a/Marlin/src/HAL/LINUX/hardware/Heater.cpp
+++ b/Marlin/src/HAL/LINUX/hardware/Heater.cpp
@@ -54,7 +54,7 @@ void Heater::update() {
}
void Heater::interrupt(GpioEvent ev) {
- // ununsed
+ // unused
}
#endif // __PLAT_LINUX__
diff --git a/Marlin/src/HAL/LINUX/include/pinmapping.h b/Marlin/src/HAL/LINUX/include/pinmapping.h
index 3751ae0027..cfac5e3b48 100644
--- a/Marlin/src/HAL/LINUX/include/pinmapping.h
+++ b/Marlin/src/HAL/LINUX/include/pinmapping.h
@@ -55,7 +55,7 @@ constexpr bool VALID_PIN(const pin_t p) { return WITHIN(p, 0, NUM_DIGITAL_PINS);
// Test whether the pin is PWM
constexpr bool PWM_PIN(const pin_t p) { return false; }
-// Test whether the pin is interruptable
+// Test whether the pin is interruptible
constexpr bool INTERRUPT_PIN(const pin_t p) { return false; }
// Get the pin number at the given index
diff --git a/Marlin/src/HAL/SAMD51/HAL.cpp b/Marlin/src/HAL/SAMD51/HAL.cpp
index 5aa23cdaeb..8baad31bc7 100644
--- a/Marlin/src/HAL/SAMD51/HAL.cpp
+++ b/Marlin/src/HAL/SAMD51/HAL.cpp
@@ -98,7 +98,7 @@
// Struct must be 32 bits aligned because of DMA accesses but fields needs to be 8 bits packed
typedef struct __attribute__((aligned(4), packed)) {
ADC_INPUTCTRL_Type INPUTCTRL;
- } HAL_DMA_DAC_Registers; // DMA transfered registers
+ } HAL_DMA_DAC_Registers; // DMA transferred registers
#endif
diff --git a/Marlin/src/HAL/SAMD51/fastio.h b/Marlin/src/HAL/SAMD51/fastio.h
index a95b7cac0c..79aede5790 100644
--- a/Marlin/src/HAL/SAMD51/fastio.h
+++ b/Marlin/src/HAL/SAMD51/fastio.h
@@ -131,7 +131,7 @@
*/
#define PWM_PIN(P) (WITHIN(P, 2, 13) || WITHIN(P, 22, 23) || WITHIN(P, 44, 45) || P == 48)
- // Return fullfilled ADCx->INPUTCTRL.reg
+ // Return fulfilled ADCx->INPUTCTRL.reg
#define PIN_TO_INPUTCTRL(P) ( (PIN_TO_AIN(P) == 0) ? ADC_INPUTCTRL_MUXPOS_AIN0 \
: (PIN_TO_AIN(P) == 1) ? ADC_INPUTCTRL_MUXPOS_AIN1 \
: (PIN_TO_AIN(P) == 2) ? ADC_INPUTCTRL_MUXPOS_AIN2 \
diff --git a/Marlin/src/HAL/SAMD51/timers.cpp b/Marlin/src/HAL/SAMD51/timers.cpp
index 5c55d32407..7a535299db 100644
--- a/Marlin/src/HAL/SAMD51/timers.cpp
+++ b/Marlin/src/HAL/SAMD51/timers.cpp
@@ -107,7 +107,7 @@ void HAL_timer_start(const uint8_t timer_num, const uint32_t frequency) {
tc->COUNT32.INTENCLR.reg = TC_INTENCLR_OVF; // disable overflow interrupt
// TCn clock setup
- const uint8_t clockID = GCLK_CLKCTRL_IDs[TCC_INST_NUM + timer_num]; // TC clock are preceeded by TCC ones
+ const uint8_t clockID = GCLK_CLKCTRL_IDs[TCC_INST_NUM + timer_num]; // TC clock are preceded by TCC ones
GCLK->PCHCTRL[clockID].bit.CHEN = false;
SYNC(GCLK->PCHCTRL[clockID].bit.CHEN);
GCLK->PCHCTRL[clockID].reg = GCLK_PCHCTRL_GEN_GCLK0 | GCLK_PCHCTRL_CHEN; // 120MHz startup code programmed
diff --git a/Marlin/src/HAL/STM32/HAL_MinSerial.cpp b/Marlin/src/HAL/STM32/HAL_MinSerial.cpp
index bbd5924d1e..29826a890d 100644
--- a/Marlin/src/HAL/STM32/HAL_MinSerial.cpp
+++ b/Marlin/src/HAL/STM32/HAL_MinSerial.cpp
@@ -125,7 +125,7 @@ static void TX(char c) {
}
regs->DR = c;
#else
- // Let's hope a mystical guru will fix this, one day by writting interrupt-free USB CDC ACM code (or, at least, by polling the registers since interrupt will be queued but will never trigger)
+ // Let's hope a mystical guru will fix this, one day by writing interrupt-free USB CDC ACM code (or, at least, by polling the registers since interrupt will be queued but will never trigger)
// For now, it's completely lost to oblivion.
#endif
}
diff --git a/Marlin/src/HAL/STM32/MarlinSPI.cpp b/Marlin/src/HAL/STM32/MarlinSPI.cpp
index 330c895697..e1be50820f 100644
--- a/Marlin/src/HAL/STM32/MarlinSPI.cpp
+++ b/Marlin/src/HAL/STM32/MarlinSPI.cpp
@@ -19,6 +19,8 @@
* along with this program. If not, see .
*
*/
+#include "../platforms.h"
+
#if defined(HAL_STM32) && !defined(STM32H7xx)
#include "MarlinSPI.h"
diff --git a/Marlin/src/HAL/STM32/Servo.cpp b/Marlin/src/HAL/STM32/Servo.cpp
index 6788b32e60..a00186e0e7 100644
--- a/Marlin/src/HAL/STM32/Servo.cpp
+++ b/Marlin/src/HAL/STM32/Servo.cpp
@@ -39,7 +39,7 @@ static_assert(COUNT(servoDelay) == NUM_SERVOS, "SERVO_DELAY must be an array NUM
// This allows all timer interrupt priorities to be managed from a single location in the HAL.
static uint32_t servo_interrupt_priority = NVIC_EncodePriority(NVIC_GetPriorityGrouping(), TIM_IRQ_PRIO, TIM_IRQ_SUBPRIO);
-// This must be called after the STM32 Servo class has intialized the timer.
+// This must be called after the STM32 Servo class has initialized the timer.
// It may only be needed after the first call to attach(), but it is possible
// that is is necessary after every detach() call. To be safe this is currently
// called after every call to attach().
diff --git a/Marlin/src/HAL/STM32/eeprom_bl24cxx.cpp b/Marlin/src/HAL/STM32/eeprom_bl24cxx.cpp
index 165b3c6bab..5bd4c18577 100644
--- a/Marlin/src/HAL/STM32/eeprom_bl24cxx.cpp
+++ b/Marlin/src/HAL/STM32/eeprom_bl24cxx.cpp
@@ -19,7 +19,9 @@
* along with this program. If not, see .
*
*/
-#ifdef STM32F1
+#include "../platforms.h"
+
+#ifdef HAL_STM32
/**
* PersistentStore for Arduino-style EEPROM interface
@@ -79,4 +81,4 @@ bool PersistentStore::read_data(int &pos, uint8_t *value, size_t size, uint16_t
}
#endif // IIC_BL24CXX_EEPROM
-#endif // STM32F1
+#endif // HAL_STM32
diff --git a/Marlin/src/HAL/STM32/eeprom_flash.cpp b/Marlin/src/HAL/STM32/eeprom_flash.cpp
index 87ba8e0354..e785e59249 100644
--- a/Marlin/src/HAL/STM32/eeprom_flash.cpp
+++ b/Marlin/src/HAL/STM32/eeprom_flash.cpp
@@ -125,7 +125,7 @@ bool PersistentStore::access_start() {
address += sizeof(uint32_t);
}
if (current_slot == -1) {
- // We didn't find anything, so we'll just intialize to empty
+ // We didn't find anything, so we'll just initialize to empty
for (int i = 0; i < MARLIN_EEPROM_SIZE; i++) ram_eeprom[i] = EMPTY_UINT8;
current_slot = EEPROM_SLOTS;
}
diff --git a/Marlin/src/HAL/STM32/eeprom_if_iic.cpp b/Marlin/src/HAL/STM32/eeprom_if_iic.cpp
index 5c6cc802a6..26b3d9044e 100644
--- a/Marlin/src/HAL/STM32/eeprom_if_iic.cpp
+++ b/Marlin/src/HAL/STM32/eeprom_if_iic.cpp
@@ -19,14 +19,15 @@
* along with this program. If not, see .
*
*/
+#include "../platforms.h"
+
+#ifdef HAL_STM32
/**
* Platform-independent Arduino functions for I2C EEPROM.
* Enable USE_SHARED_EEPROM if not supplied by the framework.
*/
-#ifdef STM32F1
-
#include "../../inc/MarlinConfig.h"
#if ENABLED(IIC_BL24CXX_EEPROM)
@@ -51,4 +52,4 @@ uint8_t eeprom_read_byte(uint8_t *pos) {
}
#endif // IIC_BL24CXX_EEPROM
-#endif // STM32F1
+#endif // HAL_STM32
diff --git a/Marlin/src/HAL/STM32/eeprom_spi_w25q.cpp b/Marlin/src/HAL/STM32/eeprom_spi_w25q.cpp
index 164a2d7ddf..ae00bbf020 100644
--- a/Marlin/src/HAL/STM32/eeprom_spi_w25q.cpp
+++ b/Marlin/src/HAL/STM32/eeprom_spi_w25q.cpp
@@ -16,7 +16,7 @@ void eeprom_test(void);
void eeprom_init(void){
DEBUG("Start EEPROM");
- W25QXX.init(SPI_QUARTER_SPEED);
+ W25QXX.init(SPI_EIGHTH_SPEED);
//eeprom_test();
W25QXX.SPI_FLASH_BufferRead((uint8_t *)spi_eeprom,SPI_EEPROM_OFFSET,MARLIN_EEPROM_SIZE);
}
diff --git a/Marlin/src/HAL/STM32/msc_sd.cpp b/Marlin/src/HAL/STM32/msc_sd.cpp
index 2f408081ce..4f85af0d44 100644
--- a/Marlin/src/HAL/STM32/msc_sd.cpp
+++ b/Marlin/src/HAL/STM32/msc_sd.cpp
@@ -62,7 +62,7 @@ public:
return true;
}
- // multi block optmization
+ // multi block optimization
sd2card->writeStart(blkAddr, blkLen);
while (blkLen--) {
watchdog_refresh();
@@ -82,7 +82,7 @@ public:
return true;
}
- // multi block optmization
+ // multi block optimization
sd2card->readStart(blkAddr);
while (blkLen--) {
watchdog_refresh();
diff --git a/Marlin/src/HAL/STM32/tft/tft_fsmc.cpp b/Marlin/src/HAL/STM32/tft/tft_fsmc.cpp
index e9e712d5a3..dacf533224 100644
--- a/Marlin/src/HAL/STM32/tft/tft_fsmc.cpp
+++ b/Marlin/src/HAL/STM32/tft/tft_fsmc.cpp
@@ -36,16 +36,6 @@ LCD_CONTROLLER_TypeDef *TFT_FSMC::LCD;
void TFT_FSMC::Init() {
uint32_t controllerAddress;
-
- #if PIN_EXISTS(TFT_RESET)
- OUT_WRITE(TFT_RESET_PIN, HIGH);
- HAL_Delay(100);
- #endif
-
- #if PIN_EXISTS(TFT_BACKLIGHT)
- OUT_WRITE(TFT_BACKLIGHT_PIN, HIGH);
- #endif
-
FSMC_NORSRAM_TimingTypeDef Timing, ExtTiming;
uint32_t NSBank = (uint32_t)pinmap_peripheral(digitalPinToPinName(TFT_CS_PIN), PinMap_FSMC_CS);
diff --git a/Marlin/src/HAL/STM32F1/HAL.cpp b/Marlin/src/HAL/STM32F1/HAL.cpp
index dcfdc88555..73014945a1 100644
--- a/Marlin/src/HAL/STM32F1/HAL.cpp
+++ b/Marlin/src/HAL/STM32F1/HAL.cpp
@@ -253,7 +253,7 @@ static void NVIC_SetPriorityGrouping(uint32_t PriorityGroup) {
reg_value &= ~(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk); /* clear bits to change */
reg_value = (reg_value |
((uint32_t)0x5FA << SCB_AIRCR_VECTKEY_Pos) |
- (PriorityGroupTmp << 8)); /* Insert write key and priorty group */
+ (PriorityGroupTmp << 8)); /* Insert write key & priority group */
SCB->AIRCR = reg_value;
}
diff --git a/Marlin/src/HAL/STM32F1/SPI.cpp b/Marlin/src/HAL/STM32F1/SPI.cpp
index c0a35b88d1..8bfa3d236a 100644
--- a/Marlin/src/HAL/STM32F1/SPI.cpp
+++ b/Marlin/src/HAL/STM32F1/SPI.cpp
@@ -363,8 +363,8 @@ uint16_t SPIClass::transfer16(uint16_t data) const {
/**
* Roger Clark and Victor Perez, 2015
* Performs a DMA SPI transfer with at least a receive buffer.
- * If a TX buffer is not provided, FF is sent over and over for the lenght of the transfer.
- * On exit TX buffer is not modified, and RX buffer cotains the received data.
+ * If a TX buffer is not provided, FF is sent over and over for the length of the transfer.
+ * On exit TX buffer is not modified, and RX buffer contains the received data.
* Still in progress.
*/
void SPIClass::dmaTransferSet(const void *transmitBuf, void *receiveBuf) {
diff --git a/Marlin/src/HAL/STM32F1/onboard_sd.h b/Marlin/src/HAL/STM32F1/onboard_sd.h
index 1c0a1c5b84..f228d068c9 100644
--- a/Marlin/src/HAL/STM32F1/onboard_sd.h
+++ b/Marlin/src/HAL/STM32F1/onboard_sd.h
@@ -7,8 +7,8 @@
#pragma once
#define _DISKIO_WRITE 1 /* 1: Enable disk_write function */
-#define _DISKIO_IOCTL 1 /* 1: Enable disk_ioctl fucntion */
-#define _DISKIO_ISDIO 0 /* 1: Enable iSDIO control fucntion */
+#define _DISKIO_IOCTL 1 /* 1: Enable disk_ioctl function */
+#define _DISKIO_ISDIO 0 /* 1: Enable iSDIO control function */
typedef unsigned char BYTE;
typedef unsigned short WORD;
@@ -56,7 +56,7 @@ DRESULT disk_read(BYTE pdrv, BYTE* buff, DWORD sector, UINT count);
#define STA_NODISK 0x02 /* No medium in the drive */
#define STA_PROTECT 0x04 /* Write protected */
-/* Command code for disk_ioctrl fucntion */
+/* Command code for disk_ioctrl function */
/* Generic command (Used by FatFs) */
#define CTRL_SYNC 0 /* Complete pending write process (needed at _FS_READONLY == 0) */
diff --git a/Marlin/src/HAL/STM32F1/timers.h b/Marlin/src/HAL/STM32F1/timers.h
index 38a0fc7fa1..c89d55a134 100644
--- a/Marlin/src/HAL/STM32F1/timers.h
+++ b/Marlin/src/HAL/STM32F1/timers.h
@@ -166,7 +166,7 @@ FORCE_INLINE static void HAL_timer_set_compare(const uint8_t timer_num, const ha
case STEP_TIMER_NUM:
// NOTE: WE have set ARPE = 0, which means the Auto reload register is not preloaded
// and there is no need to use any compare, as in the timer mode used, setting ARR to the compare value
- // will result in exactly the same effect, ie trigerring an interrupt, and on top, set counter to 0
+ // will result in exactly the same effect, ie triggering an interrupt, and on top, set counter to 0
timer_set_reload(STEP_TIMER_DEV, compare); // We reload direct ARR as needed during counting up
break;
case TEMP_TIMER_NUM:
diff --git a/Marlin/src/HAL/TEENSY31_32/HAL_SPI.cpp b/Marlin/src/HAL/TEENSY31_32/HAL_SPI.cpp
index b6f01e6c0e..ff84e91f79 100644
--- a/Marlin/src/HAL/TEENSY31_32/HAL_SPI.cpp
+++ b/Marlin/src/HAL/TEENSY31_32/HAL_SPI.cpp
@@ -65,7 +65,7 @@ void spiInit(uint8_t spiRate) {
case SPI_EIGHTH_SPEED: clock = 1250000; break;
case SPI_SPEED_5: clock = 625000; break;
case SPI_SPEED_6: clock = 312500; break;
- default: clock = 4000000; // Default from the SPI libarary
+ default: clock = 4000000; // Default from the SPI library
}
spiConfig = SPISettings(clock, MSBFIRST, SPI_MODE0);
SPI.begin();
diff --git a/Marlin/src/HAL/TEENSY35_36/HAL_SPI.cpp b/Marlin/src/HAL/TEENSY35_36/HAL_SPI.cpp
index 28bca65af5..e63ab1c0e3 100644
--- a/Marlin/src/HAL/TEENSY35_36/HAL_SPI.cpp
+++ b/Marlin/src/HAL/TEENSY35_36/HAL_SPI.cpp
@@ -65,7 +65,7 @@ void spiInit(uint8_t spiRate) {
case SPI_SPEED_5: clock = 625000; break;
case SPI_SPEED_6: clock = 312500; break;
default:
- clock = 4000000; // Default from the SPI libarary
+ clock = 4000000; // Default from the SPI library
}
spiConfig = SPISettings(clock, MSBFIRST, SPI_MODE0);
SPI.begin();
diff --git a/Marlin/src/HAL/TEENSY40_41/HAL_SPI.cpp b/Marlin/src/HAL/TEENSY40_41/HAL_SPI.cpp
index 7e202d724e..610765ad49 100644
--- a/Marlin/src/HAL/TEENSY40_41/HAL_SPI.cpp
+++ b/Marlin/src/HAL/TEENSY40_41/HAL_SPI.cpp
@@ -82,7 +82,7 @@ void spiInit(uint8_t spiRate) {
case SPI_SPEED_5: clock = 625000; break;
case SPI_SPEED_6: clock = 312500; break;
default:
- clock = 4000000; // Default from the SPI libarary
+ clock = 4000000; // Default from the SPI library
}
spiConfig = SPISettings(clock, MSBFIRST, SPI_MODE0);
SPI.begin();
diff --git a/Marlin/src/HAL/shared/backtrace/unwarm.h b/Marlin/src/HAL/shared/backtrace/unwarm.h
index 86dc98c073..edae90650e 100644
--- a/Marlin/src/HAL/shared/backtrace/unwarm.h
+++ b/Marlin/src/HAL/shared/backtrace/unwarm.h
@@ -4,7 +4,7 @@
* This program is PUBLIC DOMAIN.
* This means that there is no copyright and anyone is able to take a copy
* for free and use it as they wish, with or without modifications, and in
- * any context, commerically or otherwise. The only limitation is that I
+ * any context, commercially or otherwise. The only limitation is that I
* don't guarantee that the software is fit for any purpose or accept any
* liability for its use or misuse - this software is without warranty.
***************************************************************************
diff --git a/Marlin/src/HAL/shared/backtrace/unwarmbytab.h b/Marlin/src/HAL/shared/backtrace/unwarmbytab.h
index e2f80db2a5..53aeca2594 100644
--- a/Marlin/src/HAL/shared/backtrace/unwarmbytab.h
+++ b/Marlin/src/HAL/shared/backtrace/unwarmbytab.h
@@ -5,7 +5,7 @@
* This program is PUBLIC DOMAIN.
* This means that there is no copyright and anyone is able to take a copy
* for free and use it as they wish, with or without modifications, and in
- * any context, commerically or otherwise. The only limitation is that I
+ * any context, commercially or otherwise. The only limitation is that I
* don't guarantee that the software is fit for any purpose or accept any
* liability for its use or misuse - this software is without warranty.
***************************************************************************
diff --git a/Marlin/src/HAL/shared/backtrace/unwarmmem.cpp b/Marlin/src/HAL/shared/backtrace/unwarmmem.cpp
index a40d8540ec..24023200e1 100644
--- a/Marlin/src/HAL/shared/backtrace/unwarmmem.cpp
+++ b/Marlin/src/HAL/shared/backtrace/unwarmmem.cpp
@@ -5,7 +5,7 @@
* This program is PUBLIC DOMAIN.
* This means that there is no copyright and anyone is able to take a copy
* for free and use it as they wish, with or without modifications, and in
- * any context, commerically or otherwise. The only limitation is that I
+ * any context, commercially or otherwise. The only limitation is that I
* don't guarantee that the software is fit for any purpose or accept any
* liability for its use or misuse - this software is without warranty.
***************************************************************************
diff --git a/Marlin/src/HAL/shared/backtrace/unwarmmem.h b/Marlin/src/HAL/shared/backtrace/unwarmmem.h
index 1340bbdf0a..eb4579a761 100644
--- a/Marlin/src/HAL/shared/backtrace/unwarmmem.h
+++ b/Marlin/src/HAL/shared/backtrace/unwarmmem.h
@@ -5,7 +5,7 @@
* This program is PUBLIC DOMAIN.
* This means that there is no copyright and anyone is able to take a copy
* for free and use it as they wish, with or without modifications, and in
- * any context, commerically or otherwise. The only limitation is that I
+ * any context, commercially or otherwise. The only limitation is that I
* don't guarantee that the software is fit for any purpose or accept any
* liability for its use or misuse - this software is without warranty.
***************************************************************************
diff --git a/Marlin/src/HAL/shared/backtrace/unwinder.cpp b/Marlin/src/HAL/shared/backtrace/unwinder.cpp
index 0f88e2a7f7..aedfa2404d 100644
--- a/Marlin/src/HAL/shared/backtrace/unwinder.cpp
+++ b/Marlin/src/HAL/shared/backtrace/unwinder.cpp
@@ -28,7 +28,7 @@ extern "C" const UnwTabEntry __exidx_end[];
// Detect if unwind information is present or not
static int HasUnwindTableInfo() {
- // > 16 because there are default entries we can't supress
+ // > 16 because there are default entries we can't suppress
return ((char*)(&__exidx_end) - (char*)(&__exidx_start)) > 16 ? 1 : 0;
}
diff --git a/Marlin/src/HAL/shared/backtrace/unwinder.h b/Marlin/src/HAL/shared/backtrace/unwinder.h
index 8692c7a1aa..9280e2f36e 100644
--- a/Marlin/src/HAL/shared/backtrace/unwinder.h
+++ b/Marlin/src/HAL/shared/backtrace/unwinder.h
@@ -5,7 +5,7 @@
* This program is PUBLIC DOMAIN.
* This means that there is no copyright and anyone is able to take a copy
* for free and use it as they wish, with or without modifications, and in
- * any context, commerically or otherwise. The only limitation is that I
+ * any context, commercially or otherwise. The only limitation is that I
* don't guarantee that the software is fit for any purpose or accept any
* liability for its use or misuse - this software is without warranty.
**************************************************************************/
diff --git a/Marlin/src/HAL/shared/backtrace/unwmemaccess.h b/Marlin/src/HAL/shared/backtrace/unwmemaccess.h
index 562ab3f05d..b911e343dc 100644
--- a/Marlin/src/HAL/shared/backtrace/unwmemaccess.h
+++ b/Marlin/src/HAL/shared/backtrace/unwmemaccess.h
@@ -5,7 +5,7 @@
* This program is PUBLIC DOMAIN.
* This means that there is no copyright and anyone is able to take a copy
* for free and use it as they wish, with or without modifications, and in
- * any context, commerically or otherwise. The only limitation is that I
+ * any context, commercially or otherwise. The only limitation is that I
* don't guarantee that the software is fit for any purpose or accept any
* liability for its use or misuse - this software is without warranty.
***************************************************************************
diff --git a/Marlin/src/HAL/shared/cpu_exception/exception_arm.cpp b/Marlin/src/HAL/shared/cpu_exception/exception_arm.cpp
index edaed9abf8..0f0f7c4807 100644
--- a/Marlin/src/HAL/shared/cpu_exception/exception_arm.cpp
+++ b/Marlin/src/HAL/shared/cpu_exception/exception_arm.cpp
@@ -345,7 +345,7 @@ void hook_cpu_exceptions() {
// We failed to find a valid vector table size, let's abort hooking up
if (vec_size == VECTOR_TABLE_SENTINEL) return;
// Poor method that's wasting RAM here, but allocating with malloc and alignment would be worst
- // 128 bytes alignement is required for writing the VTOR register
+ // 128 bytes alignment is required for writing the VTOR register
alignas(128) static unsigned long vectable[VECTOR_TABLE_SENTINEL];
SERIAL_ECHOPGM("Detected vector table size: ");
diff --git a/Marlin/src/MarlinCore.cpp b/Marlin/src/MarlinCore.cpp
index 724ef594a3..8496d29673 100644
--- a/Marlin/src/MarlinCore.cpp
+++ b/Marlin/src/MarlinCore.cpp
@@ -75,8 +75,8 @@
#endif
#if ENABLED(DWIN_CREALITY_LCD)
- #include "lcd/dwin/e3v2/dwin.h"
- #include "lcd/dwin/e3v2/rotary_encoder.h"
+ #include "lcd/e3v2/creality/dwin.h"
+ #include "lcd/e3v2/creality/rotary_encoder.h"
#endif
#if ENABLED(EXTENSIBLE_UI)
@@ -1310,11 +1310,7 @@ void setup() {
// (because EEPROM code calls the UI).
#if ENABLED(DWIN_CREALITY_LCD)
- delay(800); // Required delay (since boot?)
- SERIAL_ECHOPGM("\nDWIN handshake ");
- if (DWIN_Handshake()) SERIAL_ECHOLNPGM("ok."); else SERIAL_ECHOLNPGM("error.");
- DWIN_Frame_SetDir(1); // Orientation 90°
- DWIN_UpdateLCD(); // Show bootscreen (first image)
+ SETUP_RUN(DWIN_Startup());
#else
SETUP_RUN(ui.init());
#if BOTH(HAS_WIRED_LCD, SHOW_BOOTSCREEN)
@@ -1591,7 +1587,7 @@ void setup() {
#if ENABLED(DWIN_CREALITY_LCD)
Encoder_Configuration();
HMI_Init();
- DWIN_JPG_CacheTo1(Language_English);
+ HMI_SetLanguageCache();
HMI_StartFrame(true);
DWIN_StatusChanged_P(GET_TEXT(WELCOME_MSG));
#endif
diff --git a/Marlin/src/core/boards.h b/Marlin/src/core/boards.h
index 2ed5859199..5d2487d05d 100644
--- a/Marlin/src/core/boards.h
+++ b/Marlin/src/core/boards.h
@@ -392,6 +392,7 @@
#define BOARD_ANET_ET4 4228 // ANET ET4 V1.x (STM32F407VGT6)
#define BOARD_ANET_ET4P 4229 // ANET ET4P V1.x (STM32F407VGT6)
#define BOARD_FYSETC_CHEETAH_V20 4230 // FYSETC Cheetah V2.0
+#define BOARD_MKS_ROBIN_NANO_S_V13 4231 // MKS Robin Nano-S V1.3 (STM32F407VG)
//
// ARM Cortex M7
diff --git a/Marlin/src/core/macros.h b/Marlin/src/core/macros.h
index abcd7b9480..86368bf5e7 100644
--- a/Marlin/src/core/macros.h
+++ b/Marlin/src/core/macros.h
@@ -399,7 +399,7 @@
template struct first_type_of { typedef T type; };
template struct first_type_of { typedef T type; };
}
- // C++11 solution using SFINAE to detect the existance of a member in a class at compile time.
+ // C++11 solution using SFINAE to detect the existence of a member in a class at compile time.
// It creates a HasMember structure containing 'value' set to true if the member exists
#define HAS_MEMBER_IMPL(Member) \
namespace Private { \
diff --git a/Marlin/src/core/serial_hook.h b/Marlin/src/core/serial_hook.h
index dd8e1b94ae..86d6dd3f24 100644
--- a/Marlin/src/core/serial_hook.h
+++ b/Marlin/src/core/serial_hook.h
@@ -110,7 +110,7 @@ struct ConditionalSerial : public SerialBase< ConditionalSerial > {
ConditionalSerial(bool & conditionVariable, SerialT & out, const bool e) : BaseClassT(e), condition(conditionVariable), out(out) {}
};
-// A simple foward class that taking a reference to an existing serial instance (likely created in their respective framework)
+// A simple forward class that taking a reference to an existing serial instance (likely created in their respective framework)
template
struct ForwardSerial : public SerialBase< ForwardSerial > {
typedef SerialBase< ForwardSerial > BaseClassT;
diff --git a/Marlin/src/feature/bedlevel/hilbert_curve.cpp b/Marlin/src/feature/bedlevel/hilbert_curve.cpp
index e4bc3aa618..7474123e3f 100644
--- a/Marlin/src/feature/bedlevel/hilbert_curve.cpp
+++ b/Marlin/src/feature/bedlevel/hilbert_curve.cpp
@@ -35,7 +35,7 @@ constexpr uint8_t dim = _BV(ord);
static inline bool eval_candidate(int8_t x, int8_t y, hilbert_curve::callback_ptr func, void *data) {
// The print bed likely has fewer points than the full Hilbert
- // curve, so cull unecessary points
+ // curve, so cull unnecessary points
return x < (GRID_MAX_POINTS_X) && y < (GRID_MAX_POINTS_Y) ? func(x, y, data) : false;
}
diff --git a/Marlin/src/feature/dac/dac_mcp4728.cpp b/Marlin/src/feature/dac/dac_mcp4728.cpp
index 1278d1bec8..6f5a9ee691 100644
--- a/Marlin/src/feature/dac/dac_mcp4728.cpp
+++ b/Marlin/src/feature/dac/dac_mcp4728.cpp
@@ -81,7 +81,7 @@ uint8_t MCP4728::eepromWrite() {
}
/**
- * Write Voltage reference setting to all input regiters
+ * Write Voltage reference setting to all input registers
*/
uint8_t MCP4728::setVref_all(const uint8_t value) {
Wire.beginTransmission(I2C_ADDRESS(DAC_DEV_ADDRESS));
@@ -89,7 +89,7 @@ uint8_t MCP4728::setVref_all(const uint8_t value) {
return Wire.endTransmission();
}
/**
- * Write Gain setting to all input regiters
+ * Write Gain setting to all input registers
*/
uint8_t MCP4728::setGain_all(const uint8_t value) {
Wire.beginTransmission(I2C_ADDRESS(DAC_DEV_ADDRESS));
@@ -129,7 +129,7 @@ void MCP4728::setDrvPct(xyze_uint_t &pct) {
}
/**
- * FastWrite input register values - All DAC ouput update. refer to DATASHEET 5.6.1
+ * FastWrite input register values - All DAC output update. refer to DATASHEET 5.6.1
* DAC Input and PowerDown bits update.
* No EEPROM update
*/
diff --git a/Marlin/src/feature/encoder_i2c.cpp b/Marlin/src/feature/encoder_i2c.cpp
index c6881591b6..283092e344 100644
--- a/Marlin/src/feature/encoder_i2c.cpp
+++ b/Marlin/src/feature/encoder_i2c.cpp
@@ -94,7 +94,7 @@ void I2CPositionEncoder::update() {
SERIAL_ECHOLNPAIR("Untrusted encoder module on ", AS_CHAR(axis_codes[encoderAxis]), " axis has been fault-free for set duration, reinstating error correction.");
- //the encoder likely lost its place when the error occured, so we'll reset and use the printer's
+ //the encoder likely lost its place when the error occurred, so we'll reset and use the printer's
//idea of where it the axis is to re-initialize
const float pos = planner.get_axis_position_mm(encoderAxis);
int32_t positionInTicks = pos * get_ticks_unit();
diff --git a/Marlin/src/gcode/bedlevel/abl/G29.cpp b/Marlin/src/gcode/bedlevel/abl/G29.cpp
index 8997eeacc5..29009c6e2d 100644
--- a/Marlin/src/gcode/bedlevel/abl/G29.cpp
+++ b/Marlin/src/gcode/bedlevel/abl/G29.cpp
@@ -61,7 +61,7 @@
#endif
#if ENABLED(DWIN_CREALITY_LCD)
- #include "../../../lcd/dwin/e3v2/dwin.h"
+ #include "../../../lcd/e3v2/creality/dwin.h"
#endif
#if HAS_MULTI_HOTEND
@@ -363,8 +363,6 @@ G29_TYPE GcodeSuite::G29() {
#if ABL_USES_GRID
xy_probe_feedrate_mm_s = MMM_TO_MMS(parser.linearval('S', XY_PROBE_FEEDRATE));
- if (!xy_probe_feedrate_mm_s) xy_probe_feedrate_mm_s = PLANNER_XY_FEEDRATE();
- NOLESS(xy_probe_feedrate_mm_s, planner.settings.min_feedrate_mm_s);
const float x_min = probe.min_x(), x_max = probe.max_x(),
y_min = probe.min_y(), y_max = probe.max_y();
diff --git a/Marlin/src/gcode/calibrate/G28.cpp b/Marlin/src/gcode/calibrate/G28.cpp
index ca9cbb8cc9..f78106b56a 100644
--- a/Marlin/src/gcode/calibrate/G28.cpp
+++ b/Marlin/src/gcode/calibrate/G28.cpp
@@ -47,7 +47,7 @@
#include "../../lcd/marlinui.h"
#if ENABLED(DWIN_CREALITY_LCD)
- #include "../../lcd/dwin/e3v2/dwin.h"
+ #include "../../lcd/e3v2/creality/dwin.h"
#endif
#if ENABLED(EXTENSIBLE_UI)
diff --git a/Marlin/src/gcode/calibrate/G76_M192_M871.cpp b/Marlin/src/gcode/calibrate/G76_M192_M871.cpp
index d5266179c7..2d1b9443bf 100644
--- a/Marlin/src/gcode/calibrate/G76_M192_M871.cpp
+++ b/Marlin/src/gcode/calibrate/G76_M192_M871.cpp
@@ -47,7 +47,7 @@
* Compensation values are deltas to first probe measurement at bed temp. = 60°C.
* - The hotend will not be heated at any time.
* - On my Průša MK3S clone I put a piece of paper between the probe and the hotend
- * so the hotend fan would not cool my probe constantly. Alternativly you could just
+ * so the hotend fan would not cool my probe constantly. Alternatively you could just
* make sure the fan is not running while running the calibration process.
*
* Probe calibration:
diff --git a/Marlin/src/gcode/config/M43.cpp b/Marlin/src/gcode/config/M43.cpp
index 4009721a57..84757e7403 100644
--- a/Marlin/src/gcode/config/M43.cpp
+++ b/Marlin/src/gcode/config/M43.cpp
@@ -288,8 +288,8 @@ inline void servo_probe_test() {
* S - Start Pin number. If not given, will default to 0
* L - End Pin number. If not given, will default to last pin defined for this board
* I - Flag to ignore Marlin's pin protection. Use with caution!!!!
- * R - Repeat pulses on each pin this number of times before continueing to next pin
- * W - Wait time (in miliseconds) between pulses. If not given will default to 500
+ * R - Repeat pulses on each pin this number of times before continuing to next pin
+ * W - Wait time (in milliseconds) between pulses. If not given will default to 500
*
* M43 S - Servo probe test
* P - Probe index (optional - defaults to 0
diff --git a/Marlin/src/gcode/config/M575.cpp b/Marlin/src/gcode/config/M575.cpp
index ce5f8fda0e..7739510cf3 100644
--- a/Marlin/src/gcode/config/M575.cpp
+++ b/Marlin/src/gcode/config/M575.cpp
@@ -52,19 +52,25 @@ void GcodeSuite::M575() {
case 2400: case 9600: case 19200: case 38400: case 57600:
case 115200: case 250000: case 500000: case 1000000: {
const int8_t port = parser.intval('P', -99);
- const bool set0 = (port == -99 || port == 0);
- if (set0) SERIAL_ECHO_MSG(" Serial ", '0', " baud rate set to ", baud);
+ const bool set1 = (port == -99 || port == 0);
+ if (set1) SERIAL_ECHO_MSG(" Serial ", AS_CHAR('0'), " baud rate set to ", baud);
#if HAS_MULTI_SERIAL
- const bool set1 = (port == -99 || port == 1);
- if (set1) SERIAL_ECHO_MSG(" Serial ", '1', " baud rate set to ", baud);
+ const bool set2 = (port == -99 || port == 1);
+ if (set2) SERIAL_ECHO_MSG(" Serial ", AS_CHAR('1'), " baud rate set to ", baud);
+ #ifdef SERIAL_PORT_3
+ const bool set3 = (port == -99 || port == 2);
+ if (set3) SERIAL_ECHO_MSG(" Serial ", AS_CHAR('2'), " baud rate set to ", baud);
+ #endif
#endif
SERIAL_FLUSH();
- if (set0) { MYSERIAL1.end(); MYSERIAL1.begin(baud); }
-
+ if (set1) { MYSERIAL1.end(); MYSERIAL1.begin(baud); }
#if HAS_MULTI_SERIAL
- if (set1) { MYSERIAL2.end(); MYSERIAL2.begin(baud); }
+ if (set2) { MYSERIAL2.end(); MYSERIAL2.begin(baud); }
+ #ifdef SERIAL_PORT_3
+ if (set3) { MYSERIAL3.end(); MYSERIAL3.begin(baud); }
+ #endif
#endif
} break;
diff --git a/Marlin/src/gcode/feature/L6470/M906.cpp b/Marlin/src/gcode/feature/L6470/M906.cpp
index dddf7f8aee..b1beed068a 100644
--- a/Marlin/src/gcode/feature/L6470/M906.cpp
+++ b/Marlin/src/gcode/feature/L6470/M906.cpp
@@ -212,7 +212,7 @@ void L64XX_report_current(L64XX &motor, const L64XX_axis_t axis) {
* L6474 - current in mA (4A max)
* All others - 0-255
*
- * Sets KVAL_HOLD wich affects the current being driven through the stepper.
+ * Sets KVAL_HOLD which affects the current being driven through the stepper.
*
* L6470 is used in the STEP-CLOCK mode. KVAL_HOLD is the only KVAL_xxx
* that affects the effective voltage seen by the stepper.
diff --git a/Marlin/src/gcode/feature/L6470/M916-918.cpp b/Marlin/src/gcode/feature/L6470/M916-918.cpp
index 8a1ea48306..3dd21ef985 100644
--- a/Marlin/src/gcode/feature/L6470/M916-918.cpp
+++ b/Marlin/src/gcode/feature/L6470/M916-918.cpp
@@ -177,7 +177,7 @@ void GcodeSuite::M916() {
if ((status_composite & (sh.STATUS_AXIS_TH_WRN | sh.STATUS_AXIS_TH_SD)))
DEBUG_ECHOLNPGM(".\n.\nTest completed normally - Thermal warning/shutdown has occurred");
else if (status_composite)
- DEBUG_ECHOLNPGM(".\n.\nTest completed abnormally - non-thermal error has occured");
+ DEBUG_ECHOLNPGM(".\n.\nTest completed abnormally - non-thermal error has occurred");
else
DEBUG_ECHOLNPGM(".\n.\nTest completed normally - Unable to get to thermal warning/shutdown");
diff --git a/Marlin/src/gcode/lcd/M73.cpp b/Marlin/src/gcode/lcd/M73.cpp
index e94a2825f7..8996e5c88e 100644
--- a/Marlin/src/gcode/lcd/M73.cpp
+++ b/Marlin/src/gcode/lcd/M73.cpp
@@ -40,7 +40,7 @@ void GcodeSuite::M73() {
? parser.value_float() * (PROGRESS_SCALE)
: parser.value_byte()
);
- #if BOTH(LCD_SET_PROGRESS_MANUALLY, USE_M73_REMAINING_TIME)
+ #if ENABLED(USE_M73_REMAINING_TIME)
if (parser.seenval('R')) ui.set_remaining_time(60 * parser.value_ulong());
#endif
}
diff --git a/Marlin/src/inc/Conditionals_LCD.h b/Marlin/src/inc/Conditionals_LCD.h
index 485e8c8b15..137b9fce3e 100644
--- a/Marlin/src/inc/Conditionals_LCD.h
+++ b/Marlin/src/inc/Conditionals_LCD.h
@@ -220,7 +220,7 @@
#define LCD_PROGRESS_BAR
#endif
#if ENABLED(TFTGLCD_PANEL_I2C)
- #define LCD_I2C_ADDRESS 0x33 // Must be 0x33 for STM32 main boards and equal to panel's I2C slave addres
+ #define LCD_I2C_ADDRESS 0x33 // Must be 0x33 for STM32 main boards and equal to panel's I2C slave address
#endif
#define LCD_USE_I2C_BUZZER // Enable buzzer on LCD, used for both I2C and SPI buses (LiquidTWI2 not required)
#define STD_ENCODER_PULSES_PER_STEP 2
@@ -482,10 +482,6 @@
#endif
// Aliases for LCD features
-#if EITHER(IS_ULTRA_LCD, EXTENSIBLE_UI)
- #define HAS_DISPLAY 1
-#endif
-
#if IS_ULTRA_LCD
#define HAS_WIRED_LCD 1
#if ENABLED(DOGLCD)
@@ -497,6 +493,10 @@
#endif
#endif
+#if EITHER(HAS_WIRED_LCD, EXTENSIBLE_UI)
+ #define HAS_DISPLAY 1
+#endif
+
#if ANY(HAS_DISPLAY, DWIN_CREALITY_LCD, GLOBAL_STATUS_MESSAGE)
#define HAS_STATUS_MESSAGE 1
#endif
diff --git a/Marlin/src/inc/Conditionals_post.h b/Marlin/src/inc/Conditionals_post.h
index 8c5b6ef9b0..2fb276b10c 100644
--- a/Marlin/src/inc/Conditionals_post.h
+++ b/Marlin/src/inc/Conditionals_post.h
@@ -3274,10 +3274,9 @@
#endif
#if !BOTH(HAS_BED_PROBE, HAS_EXTRUDERS)
#undef PROBING_ESTEPPERS_OFF
-#endif
-#if BOTH(PROBING_STEPPERS_OFF, PROBING_ESTEPPERS_OFF)
- #undef PROBING_ESTEPPERS_OFF
- #warning "PROBING_STEPPERS_OFF includes PROBING_ESTEPPERS_OFF. Disabling PROBING_ESTEPPERS_OFF."
+#elif ENABLED(PROBING_STEPPERS_OFF)
+ // PROBING_STEPPERS_OFF implies PROBING_ESTEPPERS_OFF, make sure it is defined
+ #define PROBING_ESTEPPERS_OFF
#endif
#if EITHER(ADVANCED_PAUSE_FEATURE, PROBING_HEATERS_OFF)
#define HEATER_IDLE_HANDLER 1
diff --git a/Marlin/src/lcd/HD44780/marlinui_HD44780.cpp b/Marlin/src/lcd/HD44780/marlinui_HD44780.cpp
index 0c87c3dc3f..f4d765e2d3 100644
--- a/Marlin/src/lcd/HD44780/marlinui_HD44780.cpp
+++ b/Marlin/src/lcd/HD44780/marlinui_HD44780.cpp
@@ -1321,7 +1321,7 @@ void MarlinUI::draw_status_screen() {
y_map_pixels = pixels_per_y_mesh_pnt * (GRID_MAX_POINTS_Y); // Directions fit nicely
right_edge = pixels_per_x_mesh_pnt * (GRID_MAX_POINTS_X) + 1; // Find location of right edge within the character cell
- bottom_line = pixels_per_y_mesh_pnt * (GRID_MAX_POINTS_Y) + 1; // Find location of bottome line within the character cell
+ bottom_line = pixels_per_y_mesh_pnt * (GRID_MAX_POINTS_Y) + 1; // Find location of bottom line within the character cell
n_rows = bottom_line / (HD44780_CHAR_HEIGHT) + 1;
n_cols = right_edge / (HD44780_CHAR_WIDTH) + 1;
diff --git a/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp b/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp
index 3324819955..712e76e86f 100644
--- a/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp
+++ b/Marlin/src/lcd/TFTGLCD/marlinui_TFTGLCD.cpp
@@ -98,7 +98,7 @@ TFTGLCD lcd;
#define COLOR_EDIT '#'
#define COLOR_ERROR '!'
-#ifdef CONVERT_TO_EXT_ASCII //use standart pseudographic symbols in ASCII table
+#ifdef CONVERT_TO_EXT_ASCII //use standard pseudographic symbols in ASCII table
#define LR 179 //vertical line
#define TRC 191 //top right corner
#define BLC 192 //bottom left corner
@@ -401,7 +401,7 @@ static void center_text_P(PGM_P pstart, uint8_t y) {
//
uint8_t indent = (LCD_WIDTH - 8) / 2;
// symbols 217 (bottom right corner) and 218 (top left corner) are using for letters in some languages
- // and they should be moved to begining ASCII table as spetial symbols
+ // and they should be moved to beginning ASCII table as special symbols
lcd.setCursor(indent, 0); lcd.write(TLC); lcd_put_u8str_P(PSTR("------")); lcd.write(TRC);
lcd.setCursor(indent, 1); lcd.write(LR); lcd_put_u8str_P(PSTR("Marlin")); lcd.write(LR);
lcd.setCursor(indent, 2); lcd.write(BLC); lcd_put_u8str_P(PSTR("------")); lcd.write(BRC);
@@ -733,7 +733,7 @@ Equal to 20x10 text LCD
| |
| HE BED FAN |
| ttc ttc % | ttc - current temperature
-| tts tts %%% | tts - setted temperature, %%% - percent for FAN
+| tts tts %%% | tts - set temperature, %%% - percent for FAN
| ICO ICO ICO ICO | ICO - icon 48x48, placed in 2 text lines
| ICO ICO ICO ICO | ICO
@@ -791,9 +791,10 @@ void MarlinUI::draw_status_screen() {
//
lcd.setCursor(0, 0);
- _draw_axis_value(X_AXIS, ftostr4sign(LOGICAL_X_POSITION(current_position.x)), blink); lcd.write(' ');
- _draw_axis_value(Y_AXIS, ftostr4sign(LOGICAL_Y_POSITION(current_position.y)), blink); lcd.write(' ');
- _draw_axis_value(Z_AXIS, ftostr52sp(LOGICAL_Z_POSITION(current_position.z)), blink);
+ const xyz_pos_t lpos = current_position.asLogical();
+ _draw_axis_value(X_AXIS, ftostr4sign(lpos.x), blink); lcd.write(' ');
+ _draw_axis_value(Y_AXIS, ftostr4sign(lpos.y), blink); lcd.write(' ');
+ _draw_axis_value(Z_AXIS, ftostr52sp(lpos.z), blink);
#if HAS_LEVELING && !HAS_HEATED_BED
lcd.write(planner.leveling_active || blink ? '_' : ' ');
diff --git a/Marlin/src/lcd/dogm/status_screen_lite_ST7920.cpp b/Marlin/src/lcd/dogm/status_screen_lite_ST7920.cpp
index c76857b6bb..be112c8d54 100644
--- a/Marlin/src/lcd/dogm/status_screen_lite_ST7920.cpp
+++ b/Marlin/src/lcd/dogm/status_screen_lite_ST7920.cpp
@@ -447,7 +447,7 @@ void ST7920_Lite_Status_Screen::draw_static_elements() {
* data buffer (DDRAM) to be used in conjunction with the graphics
* bitmap buffer (CGRAM). The contents of the graphics buffer is
* XORed with the data from the character generator. This allows
- * us to make the progess bar out of graphical data (the bar) and
+ * us to make the progress bar out of graphical data (the bar) and
* text data (the percentage).
*/
void ST7920_Lite_Status_Screen::draw_progress_bar(const uint8_t value) {
diff --git a/Marlin/src/lcd/dogm/u8g_dev_st7920_128x64_HAL.cpp b/Marlin/src/lcd/dogm/u8g_dev_st7920_128x64_HAL.cpp
index aa5f990898..fde6e41792 100644
--- a/Marlin/src/lcd/dogm/u8g_dev_st7920_128x64_HAL.cpp
+++ b/Marlin/src/lcd/dogm/u8g_dev_st7920_128x64_HAL.cpp
@@ -73,7 +73,7 @@ static const uint8_t u8g_dev_st7920_128x64_HAL_init_seq[] PROGMEM = {
0x038, // 8 Bit interface (DL=1), basic instruction set (RE=0)
0x00C, // display on, cursor & blink off; 0x08: all off
0x006, // Entry mode: Cursor move to right, DDRAM address counter (AC) plus 1, no shift
- 0x002, // disable scroll, enable CGRAM adress
+ 0x002, // disable scroll, enable CGRAM address
0x001, // clear RAM, needs 1.6 ms
U8G_ESC_DLY(100), // delay 100 ms
diff --git a/Marlin/src/lcd/dwin/e3v2/README.md b/Marlin/src/lcd/e3v2/creality/README.md
similarity index 100%
rename from Marlin/src/lcd/dwin/e3v2/README.md
rename to Marlin/src/lcd/e3v2/creality/README.md
diff --git a/Marlin/src/lcd/dwin/e3v2/dwin.cpp b/Marlin/src/lcd/e3v2/creality/dwin.cpp
similarity index 96%
rename from Marlin/src/lcd/dwin/e3v2/dwin.cpp
rename to Marlin/src/lcd/e3v2/creality/dwin.cpp
index 38017b64d6..05da343f9e 100644
--- a/Marlin/src/lcd/dwin/e3v2/dwin.cpp
+++ b/Marlin/src/lcd/e3v2/creality/dwin.cpp
@@ -42,10 +42,6 @@
#define JUST_BABYSTEP 1
#endif
-#include
-#include
-#include
-
#include "../../fontutils.h"
#include "../../marlinui.h"
@@ -85,6 +81,10 @@
#include "../../../feature/powerloss.h"
#endif
+#include
+#include
+#include
+
#ifndef MACHINE_SIZE
#define MACHINE_SIZE STRINGIFY(X_BED_SIZE) "x" STRINGIFY(Y_BED_SIZE) "x" STRINGIFY(Z_MAX_POS)
#endif
@@ -97,10 +97,6 @@
#define USE_STRING_HEADINGS
//#define USE_STRING_TITLES
-#define DWIN_FONT_MENU font8x16
-#define DWIN_FONT_STAT font10x20
-#define DWIN_FONT_HEAD font10x20
-
#define MENU_CHAR_LIMIT 24
#define STATUS_Y 360
@@ -135,6 +131,9 @@ constexpr uint16_t TROWS = 6, MROWS = TROWS - 1, // Total rows, and other
#define BABY_Z_VAR TERN(HAS_BED_PROBE, probe.offset.z, dwin_zoffset)
+#define DWIN_BOTTOM (DWIN_HEIGHT-1)
+#define DWIN_RIGHT (DWIN_WIDTH-1)
+
/* Value Init */
HMI_value_t HMI_ValueStruct;
HMI_Flag_t HMI_flag{0};
@@ -220,11 +219,11 @@ void HMI_ToggleLanguage() {
void DWIN_Draw_Signed_Float(uint8_t size, uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, long value) {
if (value < 0) {
- DWIN_Draw_String(false, true, size, Color_White, bColor, x - 6, y, F("-"));
+ DWIN_Draw_String(true, size, Color_White, bColor, x - 6, y, F("-"));
DWIN_Draw_FloatValue(true, true, 0, size, Color_White, bColor, iNum, fNum, x, y, -value);
}
else {
- DWIN_Draw_String(false, true, size, Color_White, bColor, x - 6, y, F(" "));
+ DWIN_Draw_String(true, size, Color_White, bColor, x - 6, y, F(" "));
DWIN_Draw_FloatValue(true, true, 0, size, Color_White, bColor, iNum, fNum, x, y, value);
}
}
@@ -391,20 +390,20 @@ void ICON_Stop() {
}
}
-void Clear_Title_Bar() {
- DWIN_Draw_Rectangle(1, Color_Bg_Blue, 0, 0, DWIN_WIDTH, 30);
+inline void Clear_Title_Bar() {
+ DWIN_Draw_Box(1, Color_Bg_Blue, 0, 0, DWIN_WIDTH, TITLE_HEIGHT);
}
void Draw_Title(const char * const title) {
- DWIN_Draw_String(false, false, DWIN_FONT_HEAD, Color_White, Color_Bg_Blue, 14, 4, (char*)title);
+ DWIN_Draw_String(false, DWIN_FONT_HEAD, Color_White, Color_Bg_Blue, 14, 4, (char*)title);
}
void Draw_Title(const __FlashStringHelper * title) {
- DWIN_Draw_String(false, false, DWIN_FONT_HEAD, Color_White, Color_Bg_Blue, 14, 4, (char*)title);
+ DWIN_Draw_String(false, DWIN_FONT_HEAD, Color_White, Color_Bg_Blue, 14, 4, (char*)title);
}
-void Clear_Menu_Area() {
- DWIN_Draw_Rectangle(1, Color_Bg_Black, 0, 31, DWIN_WIDTH, STATUS_Y - 1);
+inline void Clear_Menu_Area() {
+ DWIN_Draw_Box(1, Color_Bg_Black, 0, TITLE_HEIGHT, DWIN_WIDTH, STATUS_Y - TITLE_HEIGHT);
}
void Clear_Main_Window() {
@@ -465,7 +464,7 @@ void Erase_Menu_Text(const uint8_t line) {
}
void Draw_Menu_Item(const uint8_t line, const uint8_t icon=0, const char * const label=nullptr, bool more=false) {
- if (label) DWIN_Draw_String(false, false, font8x16, Color_White, Color_Bg_Black, LBLX, MBASE(line) - 1, (char*)label);
+ if (label) DWIN_Draw_String(false, font8x16, Color_White, Color_Bg_Black, LBLX, MBASE(line) - 1, (char*)label);
if (icon) Draw_Menu_Icon(line, icon);
if (more) Draw_More_Icon(line);
}
@@ -494,7 +493,8 @@ void Draw_Back_First(const bool is_sel=true) {
if (is_sel) Draw_Menu_Cursor(0);
}
-inline bool Apply_Encoder(const ENCODER_DiffState &encoder_diffState, auto &valref) {
+template
+inline bool Apply_Encoder(const ENCODER_DiffState &encoder_diffState, T &valref) {
if (encoder_diffState == ENCODER_DIFF_CW)
valref += EncoderRate.encoderMoveValue;
else if (encoder_diffState == ENCODER_DIFF_CCW)
@@ -563,7 +563,7 @@ inline bool Apply_Encoder(const ENCODER_DiffState &encoder_diffState, auto &valr
//
void DWIN_Draw_Label(const uint16_t y, char *string) {
- DWIN_Draw_String(false, true, font8x16, Color_White, Color_Bg_Black, LBLX, y, string);
+ DWIN_Draw_String(true, font8x16, Color_White, Color_Bg_Black, LBLX, y, string);
}
void DWIN_Draw_Label(const uint16_t y, const __FlashStringHelper *title) {
DWIN_Draw_Label(y, (char*)title);
@@ -577,7 +577,9 @@ void draw_move_en(const uint16_t line) {
#endif
}
-void DWIN_Frame_TitleCopy(uint8_t id, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2) { DWIN_Frame_AreaCopy(id, x1, y1, x2, y2, 14, 8); }
+inline void DWIN_Frame_TitleCopy(uint8_t id, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2) {
+ DWIN_Frame_AreaCopy(id, x1, y1, x2, y2, 14, 8);
+}
void Item_Prepare_Move(const uint8_t row) {
if (HMI_IsChinese())
@@ -703,7 +705,7 @@ void Item_Prepare_Lang(const uint8_t row) {
DWIN_Frame_AreaCopy(1, 0, 194, 121, 207, LBLX, MBASE(row)); // "Language selection"
#endif
}
- DWIN_Draw_String(false, false, font8x16, Color_White, Color_Bg_Black, 226, MBASE(row), HMI_IsChinese() ? F("CN") : F("EN"));
+ DWIN_Draw_String(false, font8x16, Color_White, Color_Bg_Black, 226, MBASE(row), HMI_IsChinese() ? F("CN") : F("EN"));
Draw_Menu_Icon(row, ICON_Language);
}
@@ -849,7 +851,7 @@ void Draw_Tune_Menu() {
Clear_Main_Window();
if (HMI_IsChinese()) {
- DWIN_Frame_AreaCopy(1, 73, 2, 100, 13, 14, 9);
+ DWIN_Frame_TitleCopy(1, 73, 2, 100, 13);
DWIN_Frame_AreaCopy(1, 116, 164, 171, 176, LBLX, MBASE(TUNE_CASE_SPEED));
#if HAS_HOTEND
DWIN_Frame_AreaCopy(1, 1, 134, 56, 146, LBLX, MBASE(TUNE_CASE_TEMP));
@@ -883,6 +885,7 @@ void Draw_Tune_Menu() {
#endif
DWIN_Draw_Label(MBASE(TUNE_CASE_ZOFF), GET_TEXT_F(MSG_ZPROBE_ZOFFSET));
#else
+ DWIN_Frame_TitleCopy(1, 94, 2, 126, 12);
DWIN_Frame_AreaCopy(1, 1, 179, 92, 190, LBLX, MBASE(TUNE_CASE_SPEED)); // Print speed
#if HAS_HOTEND
DWIN_Frame_AreaCopy(1, 197, 104, 238, 114, LBLX, MBASE(TUNE_CASE_TEMP)); // Hotend...
@@ -1008,6 +1011,7 @@ void Draw_Motion_Menu() {
//
// Draw Popup Windows
//
+
#if HAS_HOTEND || HAS_HEATED_BED
void DWIN_Popup_Temperature(const bool toohigh) {
@@ -1021,8 +1025,8 @@ void Draw_Motion_Menu() {
DWIN_Frame_AreaCopy(1, 189, 389, 271, 402, 95, 310);
}
else {
- DWIN_Draw_String(false, true, font8x16, Popup_Text_Color, Color_Bg_Window, 36, 300, F("Nozzle or Bed temperature"));
- DWIN_Draw_String(false, true, font8x16, Popup_Text_Color, Color_Bg_Window, 92, 300, F("is too high"));
+ DWIN_Draw_String(true, font8x16, Popup_Text_Color, Color_Bg_Window, 36, 300, F("Nozzle or Bed temperature"));
+ DWIN_Draw_String(true, font8x16, Popup_Text_Color, Color_Bg_Window, 92, 300, F("is too high"));
}
}
else {
@@ -1032,8 +1036,8 @@ void Draw_Motion_Menu() {
DWIN_Frame_AreaCopy(1, 189, 389, 271, 402, 95, 310);
}
else {
- DWIN_Draw_String(false, true, font8x16, Popup_Text_Color, Color_Bg_Window, 36, 300, F("Nozzle or Bed temperature"));
- DWIN_Draw_String(false, true, font8x16, Popup_Text_Color, Color_Bg_Window, 92, 300, F("is too low"));
+ DWIN_Draw_String(true, font8x16, Popup_Text_Color, Color_Bg_Window, 36, 300, F("Nozzle or Bed temperature"));
+ DWIN_Draw_String(true, font8x16, Popup_Text_Color, Color_Bg_Window, 92, 300, F("is too low"));
}
}
}
@@ -1052,11 +1056,11 @@ void Draw_Popup_Bkgd_60() {
DWIN_ICON_Show(ICON, ICON_TempTooLow, 102, 105);
if (HMI_IsChinese()) {
DWIN_Frame_AreaCopy(1, 103, 371, 136, 386, 69, 240);
- DWIN_Frame_AreaCopy(1, 170, 371, 270, 386, 102, 240);
+ DWIN_Frame_AreaCopy(1, 170, 371, 270, 386, 69 + 33, 240);
DWIN_ICON_Show(ICON, ICON_Confirm_C, 86, 280);
}
else {
- DWIN_Draw_String(false, true, font8x16, Popup_Text_Color, Color_Bg_Window, 20, 235, F("Nozzle is too cold"));
+ DWIN_Draw_String(true, font8x16, Popup_Text_Color, Color_Bg_Window, 20, 235, F("Nozzle is too cold"));
DWIN_ICON_Show(ICON, ICON_Confirm_E, 86, 280);
}
}
@@ -1073,9 +1077,9 @@ void Popup_Window_Resume() {
DWIN_ICON_Show(ICON, ICON_Continue_C, 146, 307);
}
else {
- DWIN_Draw_String(false, true, font8x16, Popup_Text_Color, Color_Bg_Window, (272 - 8 * 14) / 2, 115, F("Continue Print"));
- DWIN_Draw_String(false, true, font8x16, Popup_Text_Color, Color_Bg_Window, (272 - 8 * 22) / 2, 192, F("It looks like the last"));
- DWIN_Draw_String(false, true, font8x16, Popup_Text_Color, Color_Bg_Window, (272 - 8 * 22) / 2, 212, F("file was interrupted."));
+ DWIN_Draw_String(true, font8x16, Popup_Text_Color, Color_Bg_Window, (272 - 8 * 14) / 2, 115, F("Continue Print"));
+ DWIN_Draw_String(true, font8x16, Popup_Text_Color, Color_Bg_Window, (272 - 8 * 22) / 2, 192, F("It looks like the last"));
+ DWIN_Draw_String(true, font8x16, Popup_Text_Color, Color_Bg_Window, (272 - 8 * 22) / 2, 212, F("file was interrupted."));
DWIN_ICON_Show(ICON, ICON_Cancel_E, 26, 307);
DWIN_ICON_Show(ICON, ICON_Continue_E, 146, 307);
}
@@ -1091,8 +1095,8 @@ void Popup_Window_Home(const bool parking/*=false*/) {
DWIN_Frame_AreaCopy(1, 0, 389, 150, 402, 61, 280);
}
else {
- DWIN_Draw_String(false, true, font8x16, Popup_Text_Color, Color_Bg_Window, (272 - 8 * (parking ? 7 : 10)) / 2, 230, parking ? F("Parking") : F("Homing XYZ"));
- DWIN_Draw_String(false, true, font8x16, Popup_Text_Color, Color_Bg_Window, (272 - 8 * 23) / 2, 260, F("Please wait until done."));
+ DWIN_Draw_String(true, font8x16, Popup_Text_Color, Color_Bg_Window, (272 - 8 * (parking ? 7 : 10)) / 2, 230, parking ? F("Parking") : F("Homing XYZ"));
+ DWIN_Draw_String(true, font8x16, Popup_Text_Color, Color_Bg_Window, (272 - 8 * 23) / 2, 260, F("Please wait until done."));
}
}
@@ -1107,8 +1111,8 @@ void Popup_Window_Home(const bool parking/*=false*/) {
DWIN_Frame_AreaCopy(1, 0, 389, 150, 402, 61, 280);
}
else {
- DWIN_Draw_String(false, true, font8x16, Popup_Text_Color, Color_Bg_Window, (272 - 8 * 13) / 2, 230, GET_TEXT_F(MSG_BED_LEVELING));
- DWIN_Draw_String(false, true, font8x16, Popup_Text_Color, Color_Bg_Window, (272 - 8 * 23) / 2, 260, F("Please wait until done."));
+ DWIN_Draw_String(true, font8x16, Popup_Text_Color, Color_Bg_Window, (272 - 8 * 13) / 2, 230, GET_TEXT_F(MSG_BED_LEVELING));
+ DWIN_Draw_String(true, font8x16, Popup_Text_Color, Color_Bg_Window, (272 - 8 * 23) / 2, 260, F("Please wait until done."));
}
}
@@ -1135,8 +1139,8 @@ void Popup_window_PauseOrStop() {
DWIN_ICON_Show(ICON, ICON_Cancel_C, 146, 280);
}
else {
- if (select_print.now == 1) DWIN_Draw_String(false, true, font8x16, Popup_Text_Color, Color_Bg_Window, (272 - 8 * 11) / 2, 150, GET_TEXT_F(MSG_PAUSE_PRINT));
- else if (select_print.now == 2) DWIN_Draw_String(false, true, font8x16, Popup_Text_Color, Color_Bg_Window, (272 - 8 * 10) / 2, 150, GET_TEXT_F(MSG_STOP_PRINT));
+ if (select_print.now == 1) DWIN_Draw_String(true, font8x16, Popup_Text_Color, Color_Bg_Window, (272 - 8 * 11) / 2, 150, GET_TEXT_F(MSG_PAUSE_PRINT));
+ else if (select_print.now == 2) DWIN_Draw_String(true, font8x16, Popup_Text_Color, Color_Bg_Window, (272 - 8 * 10) / 2, 150, GET_TEXT_F(MSG_STOP_PRINT));
DWIN_ICON_Show(ICON, ICON_Confirm_E, 26, 280);
DWIN_ICON_Show(ICON, ICON_Cancel_E, 146, 280);
}
@@ -1160,19 +1164,19 @@ void Draw_Print_ProgressBar() {
DWIN_ICON_Show(ICON, ICON_Bar, 15, 93);
DWIN_Draw_Rectangle(1, BarFill_Color, 16 + _card_percent * 240 / 100, 93, 256, 113);
DWIN_Draw_IntValue(true, true, 0, font8x16, Percent_Color, Color_Bg_Black, 2, 117, 133, _card_percent);
- DWIN_Draw_String(false, false, font8x16, Percent_Color, Color_Bg_Black, 133, 133, F("%"));
+ DWIN_Draw_String(false, font8x16, Percent_Color, Color_Bg_Black, 133, 133, F("%"));
}
void Draw_Print_ProgressElapsed() {
duration_t elapsed = print_job_timer.duration(); // print timer
DWIN_Draw_IntValue(true, true, 1, font8x16, Color_White, Color_Bg_Black, 2, 42, 212, elapsed.value / 3600);
- DWIN_Draw_String(false, false, font8x16, Color_White, Color_Bg_Black, 58, 212, F(":"));
+ DWIN_Draw_String(false, font8x16, Color_White, Color_Bg_Black, 58, 212, F(":"));
DWIN_Draw_IntValue(true, true, 1, font8x16, Color_White, Color_Bg_Black, 2, 66, 212, (elapsed.value % 3600) / 60);
}
void Draw_Print_ProgressRemain() {
DWIN_Draw_IntValue(true, true, 1, font8x16, Color_White, Color_Bg_Black, 2, 176, 212, _remain_time / 3600);
- DWIN_Draw_String(false, false, font8x16, Color_White, Color_Bg_Black, 192, 212, F(":"));
+ DWIN_Draw_String(false, font8x16, Color_White, Color_Bg_Black, 192, 212, F(":"));
DWIN_Draw_IntValue(true, true, 1, font8x16, Color_White, Color_Bg_Black, 2, 200, 212, (_remain_time % 3600) / 60);
}
@@ -1189,7 +1193,7 @@ void Goto_PrintProcess() {
// Copy into filebuf string before entry
char * const name = card.longest_filename();
const int8_t npos = _MAX(0U, DWIN_WIDTH - strlen(name) * MENU_CHR_W) / 2;
- DWIN_Draw_String(false, false, font8x16, Color_White, Color_Bg_Black, npos, 60, name);
+ DWIN_Draw_String(false, font8x16, Color_White, Color_Bg_Black, npos, 60, name);
DWIN_ICON_Show(ICON, ICON_PrintTime, 17, 193);
DWIN_ICON_Show(ICON, ICON_RemainTime, 150, 191);
@@ -1204,14 +1208,13 @@ void Goto_MainMenu() {
Clear_Main_Window();
- if (HMI_IsChinese()) {
- DWIN_Frame_AreaCopy(1, 2, 2, 27, 14, 14, 9); // "Home"
- }
+ if (HMI_IsChinese())
+ DWIN_Frame_TitleCopy(1, 2, 2, 27, 14); // "Home"
else {
#ifdef USE_STRING_HEADINGS
Draw_Title(GET_TEXT_F(MSG_MAIN));
#else
- DWIN_Frame_AreaCopy(1, 0, 2, 39, 12, 14, 9);
+ DWIN_Frame_TitleCopy(1, 0, 2, 39, 12);
#endif
}
@@ -1588,9 +1591,9 @@ void _update_axis_value(const AxisEnum axis, const uint16_t x, const uint16_t y,
if (force || changed || draw_qmark || draw_empty) {
if (blink && draw_qmark)
- DWIN_Draw_String(false, true, font8x16, Color_White, Color_Bg_Black, x, y, F("???.?"));
+ DWIN_Draw_String(true, font8x16, Color_White, Color_Bg_Black, x, y, F("???.?"));
else if (blink && draw_empty)
- DWIN_Draw_String(false, true, font8x16, Color_White, Color_Bg_Black, x, y, F(" "));
+ DWIN_Draw_String(true, font8x16, Color_White, Color_Bg_Black, x, y, F(" "));
else
DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, x, y, p * 10);
}
@@ -1706,11 +1709,11 @@ void update_variable() {
_offset = BABY_Z_VAR;
if (BABY_Z_VAR < 0) {
DWIN_Draw_FloatValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 2, 2, 207, 417, -_offset * 100);
- DWIN_Draw_String(false, true, font8x16, Color_White, Color_Bg_Black, 205, 419, F("-"));
+ DWIN_Draw_String(true, font8x16, Color_White, Color_Bg_Black, 205, 419, F("-"));
}
else {
DWIN_Draw_FloatValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 2, 2, 207, 417, _offset * 100);
- DWIN_Draw_String(false, true, font8x16, Color_White, Color_Bg_Black, 205, 419, F(" "));
+ DWIN_Draw_String(true, font8x16, Color_White, Color_Bg_Black, 205, 419, F(" "));
}
}
@@ -1853,7 +1856,7 @@ void Redraw_SD_List() {
}
else {
DWIN_Draw_Rectangle(1, Color_Bg_Red, 10, MBASE(3) - 10, DWIN_WIDTH - 10, MBASE(4));
- DWIN_Draw_String(false, false, font16x32, Color_Yellow, Color_Bg_Red, ((DWIN_WIDTH) - 8 * 16) / 2, MBASE(3), F("No Media"));
+ DWIN_Draw_String(false, font16x32, Color_Yellow, Color_Bg_Red, ((DWIN_WIDTH) - 8 * 16) / 2, MBASE(3), F("No Media"));
}
}
@@ -1911,24 +1914,24 @@ void Draw_Status_Area(const bool with_update) {
#if HAS_HOTEND
DWIN_ICON_Show(ICON, ICON_HotendTemp, 10, 383);
DWIN_Draw_IntValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 3, 28, 384, thermalManager.wholeDegHotend(0));
- DWIN_Draw_String(false, false, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 25 + 3 * STAT_CHR_W + 5, 384, F("/"));
+ DWIN_Draw_String(false, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 25 + 3 * STAT_CHR_W + 5, 384, F("/"));
DWIN_Draw_IntValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 3, 25 + 4 * STAT_CHR_W + 6, 384, thermalManager.degTargetHotend(0));
DWIN_ICON_Show(ICON, ICON_StepE, 112, 417);
DWIN_Draw_IntValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 3, 116 + 2 * STAT_CHR_W, 417, planner.flow_percentage[0]);
- DWIN_Draw_String(false, false, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 116 + 5 * STAT_CHR_W + 2, 417, F("%"));
+ DWIN_Draw_String(false, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 116 + 5 * STAT_CHR_W + 2, 417, F("%"));
#endif
#if HAS_HEATED_BED
DWIN_ICON_Show(ICON, ICON_BedTemp, 10, 416);
DWIN_Draw_IntValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 3, 28, 417, thermalManager.wholeDegBed());
- DWIN_Draw_String(false, false, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 25 + 3 * STAT_CHR_W + 5, 417, F("/"));
+ DWIN_Draw_String(false, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 25 + 3 * STAT_CHR_W + 5, 417, F("/"));
DWIN_Draw_IntValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 3, 25 + 4 * STAT_CHR_W + 6, 417, thermalManager.degTargetBed());
#endif
DWIN_ICON_Show(ICON, ICON_Speed, 113, 383);
DWIN_Draw_IntValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 3, 116 + 2 * STAT_CHR_W, 384, feedrate_percentage);
- DWIN_Draw_String(false, false, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 116 + 5 * STAT_CHR_W + 2, 384, F("%"));
+ DWIN_Draw_String(false, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 116 + 5 * STAT_CHR_W + 2, 384, F("%"));
#if HAS_FAN
DWIN_ICON_Show(ICON, ICON_FanSpeed, 187, 383);
@@ -1941,11 +1944,11 @@ void Draw_Status_Area(const bool with_update) {
if (BABY_Z_VAR < 0) {
DWIN_Draw_FloatValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 2, 2, 207, 417, -BABY_Z_VAR * 100);
- DWIN_Draw_String(false, true, font8x16, Color_White, Color_Bg_Black, 205, 419, F("-"));
+ DWIN_Draw_String(true, font8x16, Color_White, Color_Bg_Black, 205, 419, F("-"));
}
else {
DWIN_Draw_FloatValue(true, true, 0, DWIN_FONT_STAT, Color_White, Color_Bg_Black, 2, 2, 207, 417, BABY_Z_VAR * 100);
- DWIN_Draw_String(false, true, font8x16, Color_White, Color_Bg_Black, 205, 419, F(" "));
+ DWIN_Draw_String(true, font8x16, Color_White, Color_Bg_Black, 205, 419, F(" "));
}
DWIN_Draw_Rectangle(1, Line_Color, 0, 449, DWIN_WIDTH, 451);
@@ -1969,8 +1972,8 @@ void HMI_StartFrame(const bool with_update) {
void Draw_Info_Menu() {
Clear_Main_Window();
- DWIN_Draw_String(false, false, font8x16, Color_White, Color_Bg_Black, (DWIN_WIDTH - strlen(MACHINE_SIZE) * MENU_CHR_W) / 2, 122, F(MACHINE_SIZE));
- DWIN_Draw_String(false, false, font8x16, Color_White, Color_Bg_Black, (DWIN_WIDTH - strlen(SHORT_BUILD_VERSION) * MENU_CHR_W) / 2, 195, F(SHORT_BUILD_VERSION));
+ DWIN_Draw_String(false, font8x16, Color_White, Color_Bg_Black, (DWIN_WIDTH - strlen(MACHINE_SIZE) * MENU_CHR_W) / 2, 122, F(MACHINE_SIZE));
+ DWIN_Draw_String(false, font8x16, Color_White, Color_Bg_Black, (DWIN_WIDTH - strlen(SHORT_BUILD_VERSION) * MENU_CHR_W) / 2, 195, F(SHORT_BUILD_VERSION));
if (HMI_IsChinese()) {
DWIN_Frame_TitleCopy(1, 30, 17, 57, 29); // "Info"
@@ -1990,7 +1993,7 @@ void Draw_Info_Menu() {
DWIN_Frame_AreaCopy(1, 146, 151, 254, 161, 82, 175);
DWIN_Frame_AreaCopy(1, 0, 165, 94, 175, 89, 248);
}
- DWIN_Draw_String(false, false, font8x16, Color_White, Color_Bg_Black, (DWIN_WIDTH - strlen(CORP_WEBSITE) * MENU_CHR_W) / 2, 268, F(CORP_WEBSITE));
+ DWIN_Draw_String(false, font8x16, Color_White, Color_Bg_Black, (DWIN_WIDTH - strlen(CORP_WEBSITE) * MENU_CHR_W) / 2, 268, F(CORP_WEBSITE));
Draw_Back_First();
LOOP_L_N(i, 3) {
@@ -4007,7 +4010,7 @@ void EachMomentUpdate() {
//(void)recovery.interrupted_file_exists();
char * const name = card.longest_filename();
const int8_t npos = _MAX(0U, DWIN_WIDTH - strlen(name) * (MENU_CHR_W)) / 2;
- DWIN_Draw_String(false, true, font8x16, Popup_Text_Color, Color_Bg_Window, npos, 252, name);
+ DWIN_Draw_String(true, font8x16, Popup_Text_Color, Color_Bg_Window, npos, 252, name);
DWIN_UpdateLCD();
while (recovery_flag) {
@@ -4033,7 +4036,7 @@ void EachMomentUpdate() {
Goto_PrintProcess();
Draw_Status_Area(true);
}
- #endif
+ #endif // POWER_LOSS_RECOVERY
DWIN_UpdateLCD();
}
@@ -4124,7 +4127,7 @@ void DWIN_CompletedLeveling() {
void DWIN_StatusChanged(const char *text) {
DWIN_Draw_Rectangle(1, Color_Bg_Blue, 0, STATUS_Y, DWIN_WIDTH, STATUS_Y + 20);
const int8_t x = _MAX(0U, DWIN_WIDTH - strlen_P(text) * MENU_CHR_W) / 2;
- DWIN_Draw_String(false, false, font8x16, Color_White, Color_Bg_Blue, x, STATUS_Y + 2, F(text));
+ DWIN_Draw_String(false, font8x16, Color_White, Color_Bg_Blue, x, STATUS_Y + 2, F(text));
DWIN_UpdateLCD();
}
@@ -4136,8 +4139,8 @@ void DWIN_StatusChanged_P(PGM_P const pstr) {
// GUI extension
void DWIN_Draw_Checkbox(uint16_t color, uint16_t bcolor, uint16_t x, uint16_t y, bool mode=false) {
- DWIN_Draw_String(false,true,font8x16,Select_Color,bcolor,x+4,y,F(mode ? "x" : " "));
- DWIN_Draw_Rectangle(0,color,x+2,y+2,x+17,y+17);
+ DWIN_Draw_String(true, font8x16, Select_Color, bcolor, x + 4, y, F(mode ? "x" : " "));
+ DWIN_Draw_Rectangle(0, color, x + 2, y + 2, x + 17, y + 17);
}
#endif // DWIN_CREALITY_LCD
diff --git a/Marlin/src/lcd/dwin/e3v2/dwin.h b/Marlin/src/lcd/e3v2/creality/dwin.h
similarity index 54%
rename from Marlin/src/lcd/dwin/e3v2/dwin.h
rename to Marlin/src/lcd/e3v2/creality/dwin.h
index 4b3460aae5..2808fea99c 100644
--- a/Marlin/src/lcd/dwin/e3v2/dwin.h
+++ b/Marlin/src/lcd/e3v2/creality/dwin.h
@@ -25,7 +25,7 @@
* DWIN by Creality3D
*/
-#include "../dwin_lcd.h"
+#include "dwin_lcd.h"
#include "rotary_encoder.h"
#include "../../../libs/BL24CXX.h"
@@ -103,151 +103,6 @@ enum processID : uint8_t {
Popup_Window
};
-// Picture ID
-#define Start_Process 0
-#define Language_English 1
-#define Language_Chinese 2
-
-// ICON ID
-#define ICON 0x09
-#define ICON_LOGO 0
-#define ICON_Print_0 1
-#define ICON_Print_1 2
-#define ICON_Prepare_0 3
-#define ICON_Prepare_1 4
-#define ICON_Control_0 5
-#define ICON_Control_1 6
-#define ICON_Leveling_0 7
-#define ICON_Leveling_1 8
-#define ICON_HotendTemp 9
-#define ICON_BedTemp 10
-#define ICON_Speed 11
-#define ICON_Zoffset 12
-#define ICON_Back 13
-#define ICON_File 14
-#define ICON_PrintTime 15
-#define ICON_RemainTime 16
-#define ICON_Setup_0 17
-#define ICON_Setup_1 18
-#define ICON_Pause_0 19
-#define ICON_Pause_1 20
-#define ICON_Continue_0 21
-#define ICON_Continue_1 22
-#define ICON_Stop_0 23
-#define ICON_Stop_1 24
-#define ICON_Bar 25
-#define ICON_More 26
-
-#define ICON_Axis 27
-#define ICON_CloseMotor 28
-#define ICON_Homing 29
-#define ICON_SetHome 30
-#define ICON_PLAPreheat 31
-#define ICON_ABSPreheat 32
-#define ICON_Cool 33
-#define ICON_Language 34
-
-#define ICON_MoveX 35
-#define ICON_MoveY 36
-#define ICON_MoveZ 37
-#define ICON_Extruder 38
-
-#define ICON_Temperature 40
-#define ICON_Motion 41
-#define ICON_WriteEEPROM 42
-#define ICON_ReadEEPROM 43
-#define ICON_ResumeEEPROM 44
-#define ICON_Info 45
-
-#define ICON_SetEndTemp 46
-#define ICON_SetBedTemp 47
-#define ICON_FanSpeed 48
-#define ICON_SetPLAPreheat 49
-#define ICON_SetABSPreheat 50
-
-#define ICON_MaxSpeed 51
-#define ICON_MaxAccelerated 52
-#define ICON_MaxJerk 53
-#define ICON_Step 54
-#define ICON_PrintSize 55
-#define ICON_Version 56
-#define ICON_Contact 57
-#define ICON_StockConfiguraton 58
-#define ICON_MaxSpeedX 59
-#define ICON_MaxSpeedY 60
-#define ICON_MaxSpeedZ 61
-#define ICON_MaxSpeedE 62
-#define ICON_MaxAccX 63
-#define ICON_MaxAccY 64
-#define ICON_MaxAccZ 65
-#define ICON_MaxAccE 66
-#define ICON_MaxSpeedJerkX 67
-#define ICON_MaxSpeedJerkY 68
-#define ICON_MaxSpeedJerkZ 69
-#define ICON_MaxSpeedJerkE 70
-#define ICON_StepX 71
-#define ICON_StepY 72
-#define ICON_StepZ 73
-#define ICON_StepE 74
-#define ICON_Setspeed 75
-#define ICON_SetZOffset 76
-#define ICON_Rectangle 77
-#define ICON_BLTouch 78
-#define ICON_TempTooLow 79
-#define ICON_AutoLeveling 80
-#define ICON_TempTooHigh 81
-#define ICON_NoTips_C 82
-#define ICON_NoTips_E 83
-#define ICON_Continue_C 84
-#define ICON_Continue_E 85
-#define ICON_Cancel_C 86
-#define ICON_Cancel_E 87
-#define ICON_Confirm_C 88
-#define ICON_Confirm_E 89
-#define ICON_Info_0 90
-#define ICON_Info_1 91
-
-#define ICON_AdvSet ICON_Language
-#define ICON_HomeOff ICON_AdvSet
-#define ICON_HomeOffX ICON_StepX
-#define ICON_HomeOffY ICON_StepY
-#define ICON_HomeOffZ ICON_StepZ
-#define ICON_ProbeOff ICON_AdvSet
-#define ICON_ProbeOffX ICON_StepX
-#define ICON_ProbeOffY ICON_StepY
-#define ICON_PIDNozzle ICON_SetEndTemp
-#define ICON_PIDbed ICON_SetBedTemp
-
-/**
- * 3-.0:The font size, 0x00-0x09, corresponds to the font size below:
- * 0x00=6*12 0x01=8*16 0x02=10*20 0x03=12*24 0x04=14*28
- * 0x05=16*32 0x06=20*40 0x07=24*48 0x08=28*56 0x09=32*64
- */
-#define font6x12 0x00
-#define font8x16 0x01
-#define font10x20 0x02
-#define font12x24 0x03
-#define font14x28 0x04
-#define font16x32 0x05
-#define font20x40 0x06
-#define font24x48 0x07
-#define font28x56 0x08
-#define font32x64 0x09
-
-// Color
-#define Color_White 0xFFFF
-#define Color_Yellow 0xFF0F
-#define Color_Bg_Window 0x31E8 // Popup background color
-#define Color_Bg_Blue 0x1125 // Dark blue background color
-#define Color_Bg_Black 0x0841 // Black background color
-#define Color_Bg_Red 0xF00F // Red background color
-#define Popup_Text_Color 0xD6BA // Popup font background color
-#define Line_Color 0x3A6A // Split line color
-#define Rectangle_Color 0xEE2F // Blue square cursor color
-#define Percent_Color 0xFE29 // Percentage color
-#define BarFill_Color 0x10E4 // Fill color of progress bar
-#define Select_Color 0x33BB // Selected color
-
extern uint8_t checkkey;
extern float zprobe_zoffset;
extern char print_filename[16];
@@ -360,6 +215,7 @@ void HMI_MaxFeedspeedXYZE();
void HMI_MaxAccelerationXYZE();
void HMI_MaxJerkXYZE();
void HMI_StepXYZE();
+void HMI_SetLanguageCache();
void update_variable();
void DWIN_Draw_Signed_Float(uint8_t size, uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, long value);
diff --git a/Marlin/src/lcd/dwin/dwin_lcd.cpp b/Marlin/src/lcd/e3v2/creality/dwin_lcd.cpp
similarity index 93%
rename from Marlin/src/lcd/dwin/dwin_lcd.cpp
rename to Marlin/src/lcd/e3v2/creality/dwin_lcd.cpp
index 59bc46925a..1ce95bd729 100644
--- a/Marlin/src/lcd/dwin/dwin_lcd.cpp
+++ b/Marlin/src/lcd/e3v2/creality/dwin_lcd.cpp
@@ -21,24 +21,24 @@
*/
/********************************************************************************
- * @file dwin_lcd.cpp
+ * @file lcd/e3v2/creality/dwin_lcd.cpp
* @author LEO / Creality3D
* @date 2019/07/18
* @version 2.0.1
* @brief DWIN screen control functions
********************************************************************************/
-#include "../../inc/MarlinConfigPre.h"
+#include "../../../inc/MarlinConfigPre.h"
#if ENABLED(DWIN_CREALITY_LCD)
-#include "../../inc/MarlinConfig.h"
+#include "../../../inc/MarlinConfig.h"
#include "dwin_lcd.h"
#include // for memset
//#define DEBUG_OUT 1
-#include "../../core/debug_out.h"
+#include "../../../core/debug_out.h"
// Make sure DWIN_SendBuf is large enough to hold the largest string plus draw command and tail.
// Assume the narrowest (6 pixel) font and 2-byte gb2312-encoded characters.
@@ -122,6 +122,17 @@ bool DWIN_Handshake(void) {
&& databuf[3] == 'K' );
}
+void DWIN_Startup(void) {
+ DEBUG_ECHOPGM("\r\nDWIN handshake ");
+ delay(750); // Delay here or init later in the boot process
+ if (DWIN_Handshake()) DEBUG_ECHOLNPGM("ok."); else DEBUG_ECHOLNPGM("error.");
+ DWIN_Frame_SetDir(1);
+ #if DISABLED(SHOW_BOOTSCREEN)
+ DWIN_Frame_Clear(Color_Bg_Black); // MarlinUI handles the bootscreen so just clear here
+ #endif
+ DWIN_UpdateLCD();
+}
+
// Set the backlight luminance
// luminance: (0x00-0xFF)
void DWIN_Backlight_SetLuminance(const uint8_t luminance) {
@@ -164,9 +175,10 @@ void DWIN_Frame_Clear(const uint16_t color) {
// width: point width 0x01-0x0F
// height: point height 0x01-0x0F
// x,y: upper left point
-void DWIN_Draw_Point(uint8_t width, uint8_t height, uint16_t x, uint16_t y) {
+void DWIN_Draw_Point(uint16_t color, uint8_t width, uint8_t height, uint16_t x, uint16_t y) {
size_t i = 0;
DWIN_Byte(i, 0x02);
+ DWIN_Word(i, color);
DWIN_Byte(i, width);
DWIN_Byte(i, height);
DWIN_Word(i, x);
@@ -238,8 +250,8 @@ void DWIN_Frame_AreaMove(uint8_t mode, uint8_t dir, uint16_t dis,
// bColor: Background color
// x/y: Upper-left coordinate of the string
// *string: The string
-void DWIN_Draw_String(bool widthAdjust, bool bShow, uint8_t size,
- uint16_t color, uint16_t bColor, uint16_t x, uint16_t y, char *string) {
+void DWIN_Draw_String(bool bShow, uint8_t size, uint16_t color, uint16_t bColor, uint16_t x, uint16_t y, char *string) {
+ uint8_t widthAdjust = 0;
size_t i = 0;
DWIN_Byte(i, 0x11);
// Bit 7: widthAdjust
@@ -356,6 +368,7 @@ void DWIN_ICON_Show(uint8_t libID, uint8_t picID, uint16_t x, uint16_t y) {
DWIN_Word(i, x);
DWIN_Word(i, y);
DWIN_Byte(i, 0x80 | libID);
+ //DWIN_Byte(i, libID);
DWIN_Byte(i, picID);
DWIN_Send(i);
}
@@ -421,7 +434,7 @@ void DWIN_ICON_Animation(uint8_t animID, bool animate, uint8_t libID, uint8_t pi
// state: 16 bits, each bit is the state of an animation id
void DWIN_ICON_AnimationControl(uint16_t state) {
size_t i = 0;
- DWIN_Byte(i, 0x28);
+ DWIN_Byte(i, 0x29);
DWIN_Word(i, state);
DWIN_Send(i);
}
diff --git a/Marlin/src/lcd/dwin/dwin_lcd.h b/Marlin/src/lcd/e3v2/creality/dwin_lcd.h
similarity index 55%
rename from Marlin/src/lcd/dwin/dwin_lcd.h
rename to Marlin/src/lcd/e3v2/creality/dwin_lcd.h
index 9ae6d076d5..e5e79df0fd 100644
--- a/Marlin/src/lcd/dwin/dwin_lcd.h
+++ b/Marlin/src/lcd/e3v2/creality/dwin_lcd.h
@@ -42,6 +42,163 @@
#define DWIN_WIDTH 272
#define DWIN_HEIGHT 480
+// Character matrix width x height
+//#define LCD_WIDTH ((DWIN_WIDTH) / 8)
+//#define LCD_HEIGHT ((DWIN_HEIGHT) / 12)
+
+// Picture ID
+#define DWIN_Boot_Screen 0
+#define Language_English 1
+#define Language_Chinese 2
+
+// ICON ID
+#define ICON 0x09
+
+#define ICON_LOGO 0
+#define ICON_Print_0 1
+#define ICON_Print_1 2
+#define ICON_Prepare_0 3
+#define ICON_Prepare_1 4
+#define ICON_Control_0 5
+#define ICON_Control_1 6
+#define ICON_Leveling_0 7
+#define ICON_Leveling_1 8
+#define ICON_HotendTemp 9
+#define ICON_BedTemp 10
+#define ICON_Speed 11
+#define ICON_Zoffset 12
+#define ICON_Back 13
+#define ICON_File 14
+#define ICON_PrintTime 15
+#define ICON_RemainTime 16
+#define ICON_Setup_0 17
+#define ICON_Setup_1 18
+#define ICON_Pause_0 19
+#define ICON_Pause_1 20
+#define ICON_Continue_0 21
+#define ICON_Continue_1 22
+#define ICON_Stop_0 23
+#define ICON_Stop_1 24
+#define ICON_Bar 25
+#define ICON_More 26
+
+#define ICON_Axis 27
+#define ICON_CloseMotor 28
+#define ICON_Homing 29
+#define ICON_SetHome 30
+#define ICON_PLAPreheat 31
+#define ICON_ABSPreheat 32
+#define ICON_Cool 33
+#define ICON_Language 34
+
+#define ICON_MoveX 35
+#define ICON_MoveY 36
+#define ICON_MoveZ 37
+#define ICON_Extruder 38
+
+#define ICON_Temperature 40
+#define ICON_Motion 41
+#define ICON_WriteEEPROM 42
+#define ICON_ReadEEPROM 43
+#define ICON_ResumeEEPROM 44
+#define ICON_Info 45
+
+#define ICON_SetEndTemp 46
+#define ICON_SetBedTemp 47
+#define ICON_FanSpeed 48
+#define ICON_SetPLAPreheat 49
+#define ICON_SetABSPreheat 50
+
+#define ICON_MaxSpeed 51
+#define ICON_MaxAccelerated 52
+#define ICON_MaxJerk 53
+#define ICON_Step 54
+#define ICON_PrintSize 55
+#define ICON_Version 56
+#define ICON_Contact 57
+#define ICON_StockConfiguraton 58
+#define ICON_MaxSpeedX 59
+#define ICON_MaxSpeedY 60
+#define ICON_MaxSpeedZ 61
+#define ICON_MaxSpeedE 62
+#define ICON_MaxAccX 63
+#define ICON_MaxAccY 64
+#define ICON_MaxAccZ 65
+#define ICON_MaxAccE 66
+#define ICON_MaxSpeedJerkX 67
+#define ICON_MaxSpeedJerkY 68
+#define ICON_MaxSpeedJerkZ 69
+#define ICON_MaxSpeedJerkE 70
+#define ICON_StepX 71
+#define ICON_StepY 72
+#define ICON_StepZ 73
+#define ICON_StepE 74
+#define ICON_Setspeed 75
+#define ICON_SetZOffset 76
+#define ICON_Rectangle 77
+#define ICON_BLTouch 78
+#define ICON_TempTooLow 79
+#define ICON_AutoLeveling 80
+#define ICON_TempTooHigh 81
+#define ICON_NoTips_C 82
+#define ICON_NoTips_E 83
+#define ICON_Continue_C 84
+#define ICON_Continue_E 85
+#define ICON_Cancel_C 86
+#define ICON_Cancel_E 87
+#define ICON_Confirm_C 88
+#define ICON_Confirm_E 89
+#define ICON_Info_0 90
+#define ICON_Info_1 91
+
+#define ICON_AdvSet ICON_Language
+#define ICON_HomeOff ICON_AdvSet
+#define ICON_HomeOffX ICON_StepX
+#define ICON_HomeOffY ICON_StepY
+#define ICON_HomeOffZ ICON_StepZ
+#define ICON_ProbeOff ICON_AdvSet
+#define ICON_ProbeOffX ICON_StepX
+#define ICON_ProbeOffY ICON_StepY
+#define ICON_PIDNozzle ICON_SetEndTemp
+#define ICON_PIDbed ICON_SetBedTemp
+
+/**
+ * 3-.0:The font size, 0x00-0x09, corresponds to the font size below:
+ * 0x00=6*12 0x01=8*16 0x02=10*20 0x03=12*24 0x04=14*28
+ * 0x05=16*32 0x06=20*40 0x07=24*48 0x08=28*56 0x09=32*64
+ */
+#define font6x12 0x00
+#define font8x16 0x01
+#define font10x20 0x02
+#define font12x24 0x03
+#define font14x28 0x04
+#define font16x32 0x05
+#define font20x40 0x06
+#define font24x48 0x07
+#define font28x56 0x08
+#define font32x64 0x09
+
+#define DWIN_FONT_MENU font10x20
+#define DWIN_FONT_STAT font10x20
+#define DWIN_FONT_HEAD font10x20
+#define DWIN_FONT_ALERT font14x28
+
+// Color
+#define Color_White 0xFFFF
+#define Color_Yellow 0xFF0F
+#define Color_Error_Red 0xB000 // Error!
+#define Color_Bg_Red 0xF00F // Red background color
+#define Color_Bg_Window 0x31E8 // Popup background color
+#define Color_Bg_Blue 0x1125 // Dark blue background color
+#define Color_Bg_Black 0x0841 // Black background color
+#define Color_IconBlue 0x45FA // Lighter blue that matches icons/accents
+#define Popup_Text_Color 0xD6BA // Popup font background color
+#define Line_Color 0x3A6A // Split line color
+#define Rectangle_Color 0xEE2F // Blue square cursor color
+#define Percent_Color 0xFE29 // Percentage color
+#define BarFill_Color 0x10E4 // Fill color of progress bar
+#define Select_Color 0x33BB // Selected color
+
/*-------------------------------------- System variable function --------------------------------------*/
// Handshake (1: Success, 0: Fail)
@@ -68,10 +225,11 @@ void DWIN_UpdateLCD(void);
void DWIN_Frame_Clear(const uint16_t color);
// Draw a point
+// color: point color
// width: point width 0x01-0x0F
// height: point height 0x01-0x0F
// x,y: upper left point
-void DWIN_Draw_Point(uint8_t width, uint8_t height, uint16_t x, uint16_t y);
+void DWIN_Draw_Point(uint16_t color, uint8_t width, uint8_t height, uint16_t x, uint16_t y);
// Draw a line
// color: Line segment color
@@ -125,20 +283,18 @@ void DWIN_Frame_AreaMove(uint8_t mode, uint8_t dir, uint16_t dis,
/*---------------------------------------- Text related functions ----------------------------------------*/
// Draw a string
-// widthAdjust: true=self-adjust character width; false=no adjustment
// bShow: true=display background color; false=don't display background color
// size: Font size
// color: Character color
// bColor: Background color
// x/y: Upper-left coordinate of the string
// *string: The string
-void DWIN_Draw_String(bool widthAdjust, bool bShow, uint8_t size,
- uint16_t color, uint16_t bColor, uint16_t x, uint16_t y, char *string);
+void DWIN_Draw_String(bool bShow, uint8_t size, uint16_t color, uint16_t bColor, uint16_t x, uint16_t y, char *string);
class __FlashStringHelper;
-inline void DWIN_Draw_String(bool widthAdjust, bool bShow, uint8_t size, uint16_t color, uint16_t bColor, uint16_t x, uint16_t y, const __FlashStringHelper *title) {
- DWIN_Draw_String(widthAdjust, bShow, size, color, bColor, x, y, (char *)title);
+inline void DWIN_Draw_String(bool bShow, uint8_t size, uint16_t color, uint16_t bColor, uint16_t x, uint16_t y, const __FlashStringHelper *title) {
+ DWIN_Draw_String(bShow, size, color, bColor, x, y, (char *)title);
}
// Draw a positive integer
diff --git a/Marlin/src/lcd/dwin/e3v2/rotary_encoder.cpp b/Marlin/src/lcd/e3v2/creality/rotary_encoder.cpp
similarity index 99%
rename from Marlin/src/lcd/dwin/e3v2/rotary_encoder.cpp
rename to Marlin/src/lcd/e3v2/creality/rotary_encoder.cpp
index 97e516e70a..4fc10393b9 100644
--- a/Marlin/src/lcd/dwin/e3v2/rotary_encoder.cpp
+++ b/Marlin/src/lcd/e3v2/creality/rotary_encoder.cpp
@@ -21,7 +21,7 @@
*/
/*****************************************************************************
- * @file rotary_encoder.cpp
+ * @file lcd/e3v2/creality/rotary_encoder.cpp
* @author LEO / Creality3D
* @date 2019/07/06
* @version 2.0.1
diff --git a/Marlin/src/lcd/dwin/e3v2/rotary_encoder.h b/Marlin/src/lcd/e3v2/creality/rotary_encoder.h
similarity index 98%
rename from Marlin/src/lcd/dwin/e3v2/rotary_encoder.h
rename to Marlin/src/lcd/e3v2/creality/rotary_encoder.h
index 7de80dfe01..f73577b3b0 100644
--- a/Marlin/src/lcd/dwin/e3v2/rotary_encoder.h
+++ b/Marlin/src/lcd/e3v2/creality/rotary_encoder.h
@@ -22,7 +22,7 @@
#pragma once
/*****************************************************************************
- * @file rotary_encoder.h
+ * @file lcd/e3v2/creality/rotary_encoder.h
* @author LEO / Creality3D
* @date 2019/07/06
* @version 2.0.1
diff --git a/Marlin/src/lcd/extui/anycubic_chiron/chiron_tft.cpp b/Marlin/src/lcd/extui/anycubic_chiron/chiron_tft.cpp
index 14d394db72..0ecb138bd5 100644
--- a/Marlin/src/lcd/extui/anycubic_chiron/chiron_tft.cpp
+++ b/Marlin/src/lcd/extui/anycubic_chiron/chiron_tft.cpp
@@ -208,7 +208,7 @@ void ChironTFT::ConfirmationRequest(const char * const msg) {
case AC_printer_resuming_from_power_outage:
case AC_printer_printing:
case AC_printer_paused: {
- // Heater timout, send acknowledgement
+ // Heater timeout, send acknowledgement
if (strcmp_P(msg, MARLIN_msg_heater_timeout) == 0) {
pause_state = AC_paused_heater_timed_out;
SendtoTFTLN(AC_msg_paused); // enable continue button
@@ -248,7 +248,7 @@ void ChironTFT::StatusChange(const char * const msg) {
printer_state = AC_printer_idle;
msg_matched = true;
}
- // If probing fails dont save the mesh raise the probe above the bad point
+ // If probing fails don't save the mesh raise the probe above the bad point
if (strcmp_P(msg, MARLIN_msg_probing_failed) == 0) {
PlayTune(BEEPER_PIN, BeepBeepBeeep, 1);
injectCommands_P(PSTR("G1 Z50 F500"));
@@ -622,7 +622,7 @@ void ChironTFT::PanelAction(uint8_t req) {
break;
case 14: { // A14 Start Printing
- // Allows printer to restart the job if we dont want to recover
+ // Allows printer to restart the job if we don't want to recover
if (printer_state == AC_printer_resuming_from_power_outage) {
injectCommands_P(PSTR("M1000 C")); // Cancel recovery
printer_state = AC_printer_idle;
diff --git a/Marlin/src/lcd/extui/dgus/DGUSDisplay.h b/Marlin/src/lcd/extui/dgus/DGUSDisplay.h
index ed8178449d..e486a00145 100644
--- a/Marlin/src/lcd/extui/dgus/DGUSDisplay.h
+++ b/Marlin/src/lcd/extui/dgus/DGUSDisplay.h
@@ -93,7 +93,7 @@ public:
// Helper for users of this class to estimate if an interaction would be blocking.
static size_t GetFreeTxBuffer();
- // Checks two things: Can we confirm the presence of the display and has we initiliazed it.
+ // Checks two things: Can we confirm the presence of the display and has we initialized it.
// (both boils down that the display answered to our chatting)
static inline bool isInitialized() { return Initialized; }
diff --git a/Marlin/src/lcd/extui/dgus/fysetc/DGUSDisplayDef.cpp b/Marlin/src/lcd/extui/dgus/fysetc/DGUSDisplayDef.cpp
index 39cb6e2bef..d73a7ea552 100644
--- a/Marlin/src/lcd/extui/dgus/fysetc/DGUSDisplayDef.cpp
+++ b/Marlin/src/lcd/extui/dgus/fysetc/DGUSDisplayDef.cpp
@@ -466,7 +466,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
VPHELPER(VP_WAITING_STATUS, nullptr, nullptr, ScreenHandler.DGUSLCD_SendWaitingStatusToDisplay),
#endif
- // Messages for the User, shared by the popup and the kill screen. They cant be autouploaded as we do not buffer content.
+ // Messages for the User, shared by the popup and the kill screen. They can't be autouploaded as we do not buffer content.
{ .VP = VP_MSGSTR1, .memadr = nullptr, .size = VP_MSGSTR1_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = ScreenHandler.DGUSLCD_SendStringToDisplayPGM },
{ .VP = VP_MSGSTR2, .memadr = nullptr, .size = VP_MSGSTR2_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = ScreenHandler.DGUSLCD_SendStringToDisplayPGM },
{ .VP = VP_MSGSTR3, .memadr = nullptr, .size = VP_MSGSTR3_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = ScreenHandler.DGUSLCD_SendStringToDisplayPGM },
diff --git a/Marlin/src/lcd/extui/dgus/fysetc/DGUSDisplayDef.h b/Marlin/src/lcd/extui/dgus/fysetc/DGUSDisplayDef.h
index 79aee9a576..2543d20b76 100644
--- a/Marlin/src/lcd/extui/dgus/fysetc/DGUSDisplayDef.h
+++ b/Marlin/src/lcd/extui/dgus/fysetc/DGUSDisplayDef.h
@@ -282,7 +282,7 @@ constexpr uint16_t VP_BED_PID_P = 0x3710;
constexpr uint16_t VP_BED_PID_I = 0x3712;
constexpr uint16_t VP_BED_PID_D = 0x3714;
-// Wating screen status
+// Waiting screen status
constexpr uint16_t VP_WAITING_STATUS = 0x3800;
// SPs for certain variables...
diff --git a/Marlin/src/lcd/extui/dgus/fysetc/DGUSScreenHandler.cpp b/Marlin/src/lcd/extui/dgus/fysetc/DGUSScreenHandler.cpp
index 0012a0e5e0..ae6a31fb05 100644
--- a/Marlin/src/lcd/extui/dgus/fysetc/DGUSScreenHandler.cpp
+++ b/Marlin/src/lcd/extui/dgus/fysetc/DGUSScreenHandler.cpp
@@ -161,7 +161,7 @@ void DGUSScreenHandler::HandleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
}
#endif
char axiscode;
- unsigned int speed = 1500; // FIXME: get default feedrate for manual moves, dont hardcode.
+ unsigned int speed = 1500; // FIXME: get default feedrate for manual moves, don't hardcode.
switch (var.VP) {
default: return;
diff --git a/Marlin/src/lcd/extui/dgus/fysetc/DGUSScreenHandler.h b/Marlin/src/lcd/extui/dgus/fysetc/DGUSScreenHandler.h
index d8e25a8f77..ee0af013a8 100644
--- a/Marlin/src/lcd/extui/dgus/fysetc/DGUSScreenHandler.h
+++ b/Marlin/src/lcd/extui/dgus/fysetc/DGUSScreenHandler.h
@@ -36,7 +36,7 @@ public:
static bool loop();
// Send all 4 strings that are displayed on the infoscreen, confirmation screen and kill screen
- // The bools specifing whether the strings are in RAM or FLASH.
+ // The bools specifying whether the strings are in RAM or FLASH.
static void sendinfoscreen(const char *line1, const char *line2, const char *line3, const char *line4, bool l1inflash, bool l2inflash, bool l3inflash, bool liinflash);
static void HandleUserConfirmationPopUp(uint16_t ConfirmVP, const char *line1, const char *line2, const char *line3, const char *line4, bool l1inflash, bool l2inflash, bool l3inflash, bool liinflash);
diff --git a/Marlin/src/lcd/extui/dgus/hiprecy/DGUSDisplayDef.cpp b/Marlin/src/lcd/extui/dgus/hiprecy/DGUSDisplayDef.cpp
index f1f4308d22..bdcff47ae8 100644
--- a/Marlin/src/lcd/extui/dgus/hiprecy/DGUSDisplayDef.cpp
+++ b/Marlin/src/lcd/extui/dgus/hiprecy/DGUSDisplayDef.cpp
@@ -465,7 +465,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
VPHELPER(VP_WAITING_STATUS, nullptr, nullptr, ScreenHandler.DGUSLCD_SendWaitingStatusToDisplay),
#endif
- // Messages for the User, shared by the popup and the kill screen. They cant be autouploaded as we do not buffer content.
+ // Messages for the User, shared by the popup and the kill screen. They can't be autouploaded as we do not buffer content.
{ .VP = VP_MSGSTR1, .memadr = nullptr, .size = VP_MSGSTR1_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = ScreenHandler.DGUSLCD_SendStringToDisplayPGM },
{ .VP = VP_MSGSTR2, .memadr = nullptr, .size = VP_MSGSTR2_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = ScreenHandler.DGUSLCD_SendStringToDisplayPGM },
{ .VP = VP_MSGSTR3, .memadr = nullptr, .size = VP_MSGSTR3_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = ScreenHandler.DGUSLCD_SendStringToDisplayPGM },
diff --git a/Marlin/src/lcd/extui/dgus/hiprecy/DGUSDisplayDef.h b/Marlin/src/lcd/extui/dgus/hiprecy/DGUSDisplayDef.h
index 0c3a6aa352..e958155381 100644
--- a/Marlin/src/lcd/extui/dgus/hiprecy/DGUSDisplayDef.h
+++ b/Marlin/src/lcd/extui/dgus/hiprecy/DGUSDisplayDef.h
@@ -278,7 +278,7 @@ constexpr uint16_t VP_BED_PID_P = 0x3710;
constexpr uint16_t VP_BED_PID_I = 0x3712;
constexpr uint16_t VP_BED_PID_D = 0x3714;
-// Wating screen status
+// Waiting screen status
constexpr uint16_t VP_WAITING_STATUS = 0x3800;
// SPs for certain variables...
diff --git a/Marlin/src/lcd/extui/dgus/hiprecy/DGUSScreenHandler.cpp b/Marlin/src/lcd/extui/dgus/hiprecy/DGUSScreenHandler.cpp
index 2100febc32..c67ec73f61 100644
--- a/Marlin/src/lcd/extui/dgus/hiprecy/DGUSScreenHandler.cpp
+++ b/Marlin/src/lcd/extui/dgus/hiprecy/DGUSScreenHandler.cpp
@@ -161,7 +161,7 @@ void DGUSScreenHandler::HandleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
}
#endif
char axiscode;
- unsigned int speed = 1500; // FIXME: get default feedrate for manual moves, dont hardcode.
+ unsigned int speed = 1500; // FIXME: get default feedrate for manual moves, don't hardcode.
switch (var.VP) {
default: return;
diff --git a/Marlin/src/lcd/extui/dgus/hiprecy/DGUSScreenHandler.h b/Marlin/src/lcd/extui/dgus/hiprecy/DGUSScreenHandler.h
index d8e25a8f77..ee0af013a8 100644
--- a/Marlin/src/lcd/extui/dgus/hiprecy/DGUSScreenHandler.h
+++ b/Marlin/src/lcd/extui/dgus/hiprecy/DGUSScreenHandler.h
@@ -36,7 +36,7 @@ public:
static bool loop();
// Send all 4 strings that are displayed on the infoscreen, confirmation screen and kill screen
- // The bools specifing whether the strings are in RAM or FLASH.
+ // The bools specifying whether the strings are in RAM or FLASH.
static void sendinfoscreen(const char *line1, const char *line2, const char *line3, const char *line4, bool l1inflash, bool l2inflash, bool l3inflash, bool liinflash);
static void HandleUserConfirmationPopUp(uint16_t ConfirmVP, const char *line1, const char *line2, const char *line3, const char *line4, bool l1inflash, bool l2inflash, bool l3inflash, bool liinflash);
diff --git a/Marlin/src/lcd/extui/dgus/mks/DGUSDisplayDef.cpp b/Marlin/src/lcd/extui/dgus/mks/DGUSDisplayDef.cpp
index c60d6e8bc4..9ecfb57397 100644
--- a/Marlin/src/lcd/extui/dgus/mks/DGUSDisplayDef.cpp
+++ b/Marlin/src/lcd/extui/dgus/mks/DGUSDisplayDef.cpp
@@ -785,7 +785,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
VPHELPER(VP_WAITING_STATUS, nullptr, nullptr, ScreenHandler.DGUSLCD_SendWaitingStatusToDisplay),
#endif
- // Messages for the User, shared by the popup and the kill screen. They cant be autouploaded as we do not buffer content.
+ // Messages for the User, shared by the popup and the kill screen. They can't be autouploaded as we do not buffer content.
//{.VP = VP_MSGSTR1, .memadr = nullptr, .size = VP_MSGSTR1_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = ScreenHandler.DGUSLCD_SendStringToDisplayPGM},
//{.VP = VP_MSGSTR2, .memadr = nullptr, .size = VP_MSGSTR2_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = ScreenHandler.DGUSLCD_SendStringToDisplayPGM},
//{.VP = VP_MSGSTR3, .memadr = nullptr, .size = VP_MSGSTR3_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = ScreenHandler.DGUSLCD_SendStringToDisplayPGM},
diff --git a/Marlin/src/lcd/extui/dgus/mks/DGUSDisplayDef.h b/Marlin/src/lcd/extui/dgus/mks/DGUSDisplayDef.h
index 5c9ff02bfe..c78e35e75b 100644
--- a/Marlin/src/lcd/extui/dgus/mks/DGUSDisplayDef.h
+++ b/Marlin/src/lcd/extui/dgus/mks/DGUSDisplayDef.h
@@ -266,7 +266,7 @@ constexpr uint16_t VP_MOVE_OPTION = 0x3500;
// constexpr uint16_t VP_BED_PID_I = 0x3712;
// constexpr uint16_t VP_BED_PID_D = 0x3714;
-// Wating screen status
+// Waiting screen status
constexpr uint16_t VP_WAITING_STATUS = 0x3800;
// SPs for certain variables...
diff --git a/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.cpp b/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.cpp
index 0c022d3e88..8c806f0ecd 100644
--- a/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.cpp
+++ b/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.cpp
@@ -762,7 +762,7 @@ void DGUSScreenHandler::HandleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
return;
char axiscode;
- unsigned int speed = 1500; // FIXME: get default feedrate for manual moves, dont hardcode.
+ unsigned int speed = 1500; // FIXME: get default feedrate for manual moves, don't hardcode.
switch (var.VP) { // switch X Y Z or Home
default: return;
diff --git a/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.h b/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.h
index 7d5263c6b8..8d5d9066f4 100644
--- a/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.h
+++ b/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.h
@@ -36,7 +36,7 @@ public:
static bool loop();
// Send all 4 strings that are displayed on the infoscreen, confirmation screen and kill screen
- // The bools specifing whether the strings are in RAM or FLASH.
+ // The bools specifying whether the strings are in RAM or FLASH.
static void sendinfoscreen(const char *line1, const char *line2, const char *line3, const char *line4, bool l1inflash, bool l2inflash, bool l3inflash, bool liinflash);
static void HandleUserConfirmationPopUp(uint16_t ConfirmVP, const char *line1, const char *line2, const char *line3, const char *line4, bool l1inflash, bool l2inflash, bool l3inflash, bool liinflash);
diff --git a/Marlin/src/lcd/extui/dgus/origin/DGUSDisplayDef.cpp b/Marlin/src/lcd/extui/dgus/origin/DGUSDisplayDef.cpp
index 39d89fc174..2f5e2787d6 100644
--- a/Marlin/src/lcd/extui/dgus/origin/DGUSDisplayDef.cpp
+++ b/Marlin/src/lcd/extui/dgus/origin/DGUSDisplayDef.cpp
@@ -267,7 +267,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
VPHELPER(VP_WAITING_STATUS, nullptr, nullptr, ScreenHandler.DGUSLCD_SendWaitingStatusToDisplay),
#endif
- // Messages for the User, shared by the popup and the kill screen. They cant be autouploaded as we do not buffer content.
+ // Messages for the User, shared by the popup and the kill screen. They can't be autouploaded as we do not buffer content.
{ .VP = VP_MSGSTR1, .memadr = nullptr, .size = VP_MSGSTR1_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = ScreenHandler.DGUSLCD_SendStringToDisplayPGM },
{ .VP = VP_MSGSTR2, .memadr = nullptr, .size = VP_MSGSTR2_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = ScreenHandler.DGUSLCD_SendStringToDisplayPGM },
{ .VP = VP_MSGSTR3, .memadr = nullptr, .size = VP_MSGSTR3_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = ScreenHandler.DGUSLCD_SendStringToDisplayPGM },
diff --git a/Marlin/src/lcd/extui/dgus/origin/DGUSDisplayDef.h b/Marlin/src/lcd/extui/dgus/origin/DGUSDisplayDef.h
index 06f0dcf001..f5fb986bde 100644
--- a/Marlin/src/lcd/extui/dgus/origin/DGUSDisplayDef.h
+++ b/Marlin/src/lcd/extui/dgus/origin/DGUSDisplayDef.h
@@ -268,7 +268,7 @@ constexpr uint16_t VP_BED_PID_P = 0x3710;
constexpr uint16_t VP_BED_PID_I = 0x3712;
constexpr uint16_t VP_BED_PID_D = 0x3714;
-// Wating screen status
+// Waiting screen status
constexpr uint16_t VP_WAITING_STATUS = 0x3800;
// SPs for certain variables...
diff --git a/Marlin/src/lcd/extui/dgus/origin/DGUSScreenHandler.cpp b/Marlin/src/lcd/extui/dgus/origin/DGUSScreenHandler.cpp
index 827d74967a..b0759c63af 100644
--- a/Marlin/src/lcd/extui/dgus/origin/DGUSScreenHandler.cpp
+++ b/Marlin/src/lcd/extui/dgus/origin/DGUSScreenHandler.cpp
@@ -161,7 +161,7 @@ void DGUSScreenHandler::HandleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
}
#endif
char axiscode;
- unsigned int speed = 1500; // FIXME: get default feedrate for manual moves, dont hardcode.
+ unsigned int speed = 1500; // FIXME: get default feedrate for manual moves, don't hardcode.
switch (var.VP) {
default: return;
diff --git a/Marlin/src/lcd/extui/dgus/origin/DGUSScreenHandler.h b/Marlin/src/lcd/extui/dgus/origin/DGUSScreenHandler.h
index d8e25a8f77..ee0af013a8 100644
--- a/Marlin/src/lcd/extui/dgus/origin/DGUSScreenHandler.h
+++ b/Marlin/src/lcd/extui/dgus/origin/DGUSScreenHandler.h
@@ -36,7 +36,7 @@ public:
static bool loop();
// Send all 4 strings that are displayed on the infoscreen, confirmation screen and kill screen
- // The bools specifing whether the strings are in RAM or FLASH.
+ // The bools specifying whether the strings are in RAM or FLASH.
static void sendinfoscreen(const char *line1, const char *line2, const char *line3, const char *line4, bool l1inflash, bool l2inflash, bool l3inflash, bool liinflash);
static void HandleUserConfirmationPopUp(uint16_t ConfirmVP, const char *line1, const char *line2, const char *line3, const char *line4, bool l1inflash, bool l2inflash, bool l3inflash, bool liinflash);
diff --git a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/archim2-flash/flash_storage.cpp b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/archim2-flash/flash_storage.cpp
index 1d4711c0e2..a28318335c 100644
--- a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/archim2-flash/flash_storage.cpp
+++ b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/archim2-flash/flash_storage.cpp
@@ -206,7 +206,7 @@ bool UIFlashStorage::is_present = false;
/* In order to provide some degree of wear leveling, each data write to the
* SPI Flash chip is appended to data that was already written before, until
- * the data storage area is completely filled. New data is written preceeded
+ * the data storage area is completely filled. New data is written preceded
* with a 32-bit delimiter 'LULZ', so that we can distinguish written and
* unwritten data:
*
diff --git a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/basic/commands.cpp b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/basic/commands.cpp
index 48d60a37ac..a10fdc3ede 100644
--- a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/basic/commands.cpp
+++ b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/basic/commands.cpp
@@ -1079,7 +1079,7 @@ void CLCD::CommandFifo::str(progmem_str data) {
void CLCD::init() {
spi_init(); // Set Up I/O Lines for SPI and FT800/810 Control
- ftdi_reset(); // Power down/up the FT8xx with the apropriate delays
+ ftdi_reset(); // Power down/up the FT8xx with the appropriate delays
host_cmd(Use_Crystal ? CLKEXT : CLKINT, 0);
host_cmd(FTDI::ACTIVE, 0); // Activate the System Clock
diff --git a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/basic/commands.h b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/basic/commands.h
index 5ce628fd36..9fc5195fd4 100644
--- a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/basic/commands.h
+++ b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/basic/commands.h
@@ -70,7 +70,7 @@
*
* CommandFifo::fgcolor Set Graphic Item Foreground Color *
* CommandFifo::bgcolor Set Graphic Item Background Color *
- * CommandFifo::begin() Begin Drawing a Primative *
+ * CommandFifo::begin() Begin Drawing a Primitive *
* CommandFifo::mem_copy() Copy a Block of Memory *
* CommandFifo::append() Append Commands to Current DL *
* CommandFifo::gradient_color() Set 3D Button Highlight Color *
diff --git a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/command_processor.h b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/command_processor.h
index 639f2cd990..7504a1387d 100644
--- a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/command_processor.h
+++ b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/command_processor.h
@@ -65,7 +65,7 @@ class CommandProcessor : public CLCD::CommandFifo {
uint8_t _style = 0;
protected:
- // Returns the cannonical thickness of a widget (i.e. the height of a toggle element)
+ // Returns the canonical thickness of a widget (i.e. the height of a toggle element)
uint16_t widget_thickness() {
CLCD::FontMetrics fm(_font);
return fm.height * 20.0/16;
@@ -249,7 +249,7 @@ class CommandProcessor : public CLCD::CommandFifo {
return toggle(x, y, w, h, text, state, options);
}
- // Contrained drawing routines. These constrain the widget inside a box for easier layout.
+ // Constrained drawing routines. These constrain the widget inside a box for easier layout.
// The FORCEDINLINE ensures that the code is inlined so that all the math is done at compile time.
FORCEDINLINE CommandProcessor& track_linear(int16_t x, int16_t y, int16_t w, int16_t h, int16_t tag) {
diff --git a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/event_loop.cpp b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/event_loop.cpp
index ac8f49a055..7fccb309f5 100644
--- a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/event_loop.cpp
+++ b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/event_loop.cpp
@@ -108,7 +108,7 @@ namespace FTDI {
* - Dispatches onTouchStart and onTouchEnd events to the active screen.
* - Handles auto-repetition by sending onTouchHeld to the active screen periodically.
* - Plays touch feedback "click" sounds when appropriate.
- * - Performs debouncing to supress spurious touch events.
+ * - Performs debouncing to suppress spurious touch events.
*/
void EventLoop::process_events() {
// If the LCD is processing commands, don't check
diff --git a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/poly_ui.h b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/poly_ui.h
index 2e74ec3a47..809e729a8f 100644
--- a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/poly_ui.h
+++ b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/poly_ui.h
@@ -272,7 +272,7 @@ class GenericPolyUI {
if (clip) {
// Clipping reduces the number of pixels that are
// filled, allowing more complex shapes to be drawn
- // in the alloted time.
+ // in the allotted time.
bounds(r, x, y, w, h);
cmd.cmd(SAVE_CONTEXT());
cmd.cmd(SCISSOR_XY(x, y));
diff --git a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/polygon.h b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/polygon.h
index 6aa52f09c9..3dc80bb3bb 100644
--- a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/polygon.h
+++ b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/polygon.h
@@ -41,7 +41,7 @@
* ...
* p.end_fill();
*
- * Based on the example from "Applicaton Note AN_334, FT801 Polygon Application":
+ * Based on the example from "Application Note AN_334, FT801 Polygon Application":
*
* https://brtchip.com/wp-content/uploads/Support/Documentation/Application_Notes/ICs/EVE/AN_334-FT801_Polygon_Application.pdf
*/
diff --git a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/screen_types.h b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/screen_types.h
index 94d6d4e26c..486c4fe562 100644
--- a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/screen_types.h
+++ b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/screen_types.h
@@ -152,7 +152,7 @@ class UIScreen {
#define AT_SCREEN(screen) (current_screen.getType() == current_screen.lookupScreen(screen::onRedraw))
#define IS_PARENT_SCREEN(screen) (current_screen.peek() == current_screen.lookupScreen(screen::onRedraw))
-/************************** CACHED VS UNCHACHED SCREENS ***************************/
+/************************** CACHED VS UNCACHED SCREENS ***************************/
class UncachedScreen {
public:
diff --git a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/tiny_timer.h b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/tiny_timer.h
index f64d033d52..576567cf4d 100644
--- a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/tiny_timer.h
+++ b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/tiny_timer.h
@@ -28,7 +28,7 @@
/* tiny_interval_t downsamples a 32-bit millis() value
into a 8-bit value which can record periods of
- a few seconds with a rougly 1/16th of second
+ a few seconds with a roughly 1/16th of second
resolution. This allows us to measure small
intervals without needing to use four-byte counters.
*/
diff --git a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/scripts/svg2cpp.py b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/scripts/svg2cpp.py
index aa702ca4b4..cfc2625453 100644
--- a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/scripts/svg2cpp.py
+++ b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/scripts/svg2cpp.py
@@ -164,7 +164,7 @@ class Parser:
def process_svg_path_data_cmd(self, id, cmd, a, b):
"""Converts the various types of moves into L or M commands
- and dispatches to process_svg_path_L_or_M for futher processing."""
+ and dispatches to process_svg_path_L_or_M for further processing."""
if cmd == "Z" or cmd == "z":
self.process_svg_path_L_or_M("L", self.initial_x, self.initial_y)
elif cmd == "H":
diff --git a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/lock_screen.h b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/lock_screen.h
index 05ab8bf80f..b73424fc5a 100644
--- a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/lock_screen.h
+++ b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/lock_screen.h
@@ -44,8 +44,8 @@ class LockScreen : public BaseScreen, public CachedScreen {
static void enable();
static void disable();
- static void set_hash(uint16_t pass) {passcode = pass;};
- static uint16_t get_hash() {return passcode;};
+ static void set_hash(uint16_t pass) { passcode = pass; }
+ static uint16_t get_hash() { return passcode; }
static void onEntry();
static void onRedraw(draw_mode_t);
diff --git a/Marlin/src/lcd/extui/mks_ui/SPIFlashStorage.cpp b/Marlin/src/lcd/extui/mks_ui/SPIFlashStorage.cpp
index 5f5608472c..6f3d6bbb6b 100644
--- a/Marlin/src/lcd/extui/mks_ui/SPIFlashStorage.cpp
+++ b/Marlin/src/lcd/extui/mks_ui/SPIFlashStorage.cpp
@@ -204,7 +204,7 @@ void SPIFlashStorage::flushPage() {
return;
}
- // Part of the m_pageData was compressed, so ajust the pointers, freeing what was processed, shift the buffer
+ // Part of the m_pageData was compressed, so adjust the pointers, freeing what was processed, shift the buffer
// TODO: To avoid this copy, use a circular buffer
memmove(m_pageData, m_pageData + inputProcessed, m_pageDataUsed - inputProcessed);
m_pageDataUsed -= inputProcessed;
diff --git a/Marlin/src/lcd/extui/mks_ui/SPIFlashStorage.h b/Marlin/src/lcd/extui/mks_ui/SPIFlashStorage.h
index f2ce8e44ba..4683ff9351 100644
--- a/Marlin/src/lcd/extui/mks_ui/SPIFlashStorage.h
+++ b/Marlin/src/lcd/extui/mks_ui/SPIFlashStorage.h
@@ -55,7 +55,7 @@
*
* When reading, it loads a full page from SPI Flash at once and
* keeps it in a private SRAM buffer. Data is loaded as needed to
- * fullfill requests. Sequential reads are optimal.
+ * fulfill requests. Sequential reads are optimal.
*
* SPIFlashStorage.beginRead(myStartAddress);
* while (there is data to read)
diff --git a/Marlin/src/lcd/extui/mks_ui/draw_ui.cpp b/Marlin/src/lcd/extui/mks_ui/draw_ui.cpp
index aae6e62a66..7dfbea5bae 100644
--- a/Marlin/src/lcd/extui/mks_ui/draw_ui.cpp
+++ b/Marlin/src/lcd/extui/mks_ui/draw_ui.cpp
@@ -237,7 +237,7 @@ void update_spi_flash() {
uint8_t command_buf[512];
W25QXX.init(SPI_QUARTER_SPEED);
- //read back the gcode command befor erase spi flash
+ //read back the gcode command before erase spi flash
W25QXX.SPI_FLASH_BufferRead((uint8_t *)&command_buf, GCODE_COMMAND_ADDR, sizeof(command_buf));
W25QXX.SPI_FLASH_SectorErase(VAR_INF_ADDR);
W25QXX.SPI_FLASH_BufferWrite((uint8_t *)&gCfgItems, VAR_INF_ADDR, sizeof(gCfgItems));
@@ -248,7 +248,7 @@ void update_gcode_command(int addr,uint8_t *s) {
uint8_t command_buf[512];
W25QXX.init(SPI_QUARTER_SPEED);
- //read back the gcode command befor erase spi flash
+ //read back the gcode command before erase spi flash
W25QXX.SPI_FLASH_BufferRead((uint8_t *)&command_buf, GCODE_COMMAND_ADDR, sizeof(command_buf));
W25QXX.SPI_FLASH_SectorErase(VAR_INF_ADDR);
W25QXX.SPI_FLASH_BufferWrite((uint8_t *)&gCfgItems, VAR_INF_ADDR, sizeof(gCfgItems));
diff --git a/Marlin/src/lcd/extui/mks_ui/pic_manager.cpp b/Marlin/src/lcd/extui/mks_ui/pic_manager.cpp
index 68344e770c..0a5f5cd550 100644
--- a/Marlin/src/lcd/extui/mks_ui/pic_manager.cpp
+++ b/Marlin/src/lcd/extui/mks_ui/pic_manager.cpp
@@ -503,7 +503,7 @@ uint32_t Pic_Info_Write(uint8_t *P_name, uint32_t P_size) {
disp_assets_update_progress("Reading files...");
dir_t d;
while (dir.readDir(&d, card.longFilename) > 0) {
- // If we dont get a long name, but gets a short one, try it
+ // If we don't get a long name, but gets a short one, try it
if (card.longFilename[0] == 0 && d.name[0] != 0)
dosName2LongName((const char*)d.name, card.longFilename);
if (card.longFilename[0] == 0) continue;
diff --git a/Marlin/src/lcd/extui/mks_ui/printer_operation.cpp b/Marlin/src/lcd/extui/mks_ui/printer_operation.cpp
index 5e359c4091..1bb17bb4f2 100644
--- a/Marlin/src/lcd/extui/mks_ui/printer_operation.cpp
+++ b/Marlin/src/lcd/extui/mks_ui/printer_operation.cpp
@@ -54,7 +54,7 @@ void printer_state_polling() {
gcode.process_subcommands_now_P(PSTR("M25"));
- //save the positon
+ //save the position
uiCfg.current_x_position_bak = current_position.x;
uiCfg.current_y_position_bak = current_position.y;
uiCfg.current_z_position_bak = current_position.z;
diff --git a/Marlin/src/lcd/extui/mks_ui/wifiSerial_STM32.cpp b/Marlin/src/lcd/extui/mks_ui/wifiSerial_STM32.cpp
index e96f275c57..6607e7531f 100644
--- a/Marlin/src/lcd/extui/mks_ui/wifiSerial_STM32.cpp
+++ b/Marlin/src/lcd/extui/mks_ui/wifiSerial_STM32.cpp
@@ -200,7 +200,7 @@ void WifiSerial::flush() {
// nop, the interrupt handler will free up space for us
}
// If we get here, nothing is queued anymore (DRIE is disabled) and
- // the hardware finished tranmission (TXC is set).
+ // the hardware finished transmission (TXC is set).
}
bool WifiSerial::isHalfDuplex() const { return _serial.pin_rx == NC; }
diff --git a/Marlin/src/lcd/fontutils.cpp b/Marlin/src/lcd/fontutils.cpp
index 65c8c06409..90fcb2ae7c 100644
--- a/Marlin/src/lcd/fontutils.cpp
+++ b/Marlin/src/lcd/fontutils.cpp
@@ -149,7 +149,7 @@ uint8_t* get_utf8_value_cb(uint8_t *pstart, read_byte_cb_t cb_read_byte, wchar_t
static inline uint8_t utf8_strlen_cb(const char *pstart, read_byte_cb_t cb_read_byte) {
uint8_t cnt = 0;
uint8_t *p = (uint8_t *)pstart;
- for (;;) {
+ if (p) for (;;) {
const uint8_t b = cb_read_byte(p);
if (!b) break;
if (utf8_is_start_byte_of_char(b)) cnt++;
diff --git a/Marlin/src/lcd/lcdprint.h b/Marlin/src/lcd/lcdprint.h
index 105a66085f..32d958bf7f 100644
--- a/Marlin/src/lcd/lcdprint.h
+++ b/Marlin/src/lcd/lcdprint.h
@@ -76,8 +76,9 @@
#define INFO_FONT_HEIGHT (INFO_FONT_ASCENT + INFO_FONT_DESCENT)
#define INFO_FONT_WIDTH 6
+ // Graphical LCD uses the menu font size for cursor positioning
#define LCD_COL_X(col) (( (col)) * (MENU_FONT_WIDTH))
- #define LCD_ROW_Y(row) ((1 + (row)) * (MENU_FONT_HEIGHT))
+ #define LCD_ROW_Y(row) ((1 + (row)) * (MENU_LINE_HEIGHT))
#else
@@ -94,13 +95,17 @@
#define LCD_PIXEL_WIDTH LCD_WIDTH
#define LCD_PIXEL_HEIGHT LCD_HEIGHT
+ // Character LCD uses direct cursor positioning
#define LCD_COL_X(col) (col)
#define LCD_ROW_Y(row) (row)
#endif
+#ifndef MENU_LINE_HEIGHT
+ #define MENU_LINE_HEIGHT MENU_FONT_HEIGHT
+#endif
+
#define LCD_COL_X_RJ(len) (LCD_PIXEL_WIDTH - LCD_COL_X(len))
-#define LCD_BOTTOM_ROW (LCD_PIXEL_HEIGHT - 1)
#define SETCURSOR(col, row) lcd_moveto(LCD_COL_X(col), LCD_ROW_Y(row))
#define SETCURSOR_RJ(len, row) lcd_moveto(LCD_COL_X_RJ(len), LCD_ROW_Y(row))
#define SETCURSOR_X(col) SETCURSOR(col, _lcdLineNr)
diff --git a/Marlin/src/lcd/marlinui.cpp b/Marlin/src/lcd/marlinui.cpp
index e38a05c55d..438a7eeaa1 100644
--- a/Marlin/src/lcd/marlinui.cpp
+++ b/Marlin/src/lcd/marlinui.cpp
@@ -47,7 +47,7 @@ MarlinUI ui;
#endif
#if ENABLED(DWIN_CREALITY_LCD)
- #include "dwin/e3v2/dwin.h"
+ #include "e3v2/creality/dwin.h"
#endif
#if ENABLED(LCD_PROGRESS_BAR) && !IS_TFTGLCD_PANEL
@@ -65,15 +65,8 @@ MarlinUI ui;
constexpr uint8_t epps = ENCODER_PULSES_PER_STEP;
#if HAS_STATUS_MESSAGE
- #if HAS_WIRED_LCD
- #if ENABLED(STATUS_MESSAGE_SCROLLING)
- uint8_t MarlinUI::status_scroll_offset; // = 0
- constexpr uint8_t MAX_MESSAGE_LENGTH = _MAX(LONG_FILENAME_LENGTH, MAX_LANG_CHARSIZE * 2 * (LCD_WIDTH));
- #else
- constexpr uint8_t MAX_MESSAGE_LENGTH = MAX_LANG_CHARSIZE * (LCD_WIDTH);
- #endif
- #else
- constexpr uint8_t MAX_MESSAGE_LENGTH = 63;
+ #if BOTH(HAS_WIRED_LCD, STATUS_MESSAGE_SCROLLING)
+ uint8_t MarlinUI::status_scroll_offset; // = 0
#endif
char MarlinUI::status_message[MAX_MESSAGE_LENGTH + 1];
uint8_t MarlinUI::alert_level; // = 0
@@ -719,7 +712,7 @@ constexpr uint8_t epps = ENCODER_PULSES_PER_STEP;
* This is used to achieve more rapid stepping on kinematic machines.
*
* Currently used by the _lcd_move_xyz function in menu_motion.cpp
- * and the ubl_map_move_to_xy funtion in menu_ubl.cpp.
+ * and the ubl_map_move_to_xy function in menu_ubl.cpp.
*/
void ManualMove::task() {
diff --git a/Marlin/src/lcd/marlinui.h b/Marlin/src/lcd/marlinui.h
index a50e85af1d..e01f7d74c4 100644
--- a/Marlin/src/lcd/marlinui.h
+++ b/Marlin/src/lcd/marlinui.h
@@ -312,6 +312,17 @@ public:
#endif
#if HAS_STATUS_MESSAGE
+
+ #if HAS_WIRED_LCD
+ #if ENABLED(STATUS_MESSAGE_SCROLLING)
+ #define MAX_MESSAGE_LENGTH _MAX(LONG_FILENAME_LENGTH, MAX_LANG_CHARSIZE * 2 * (LCD_WIDTH))
+ #else
+ #define MAX_MESSAGE_LENGTH (MAX_LANG_CHARSIZE * (LCD_WIDTH))
+ #endif
+ #else
+ #define MAX_MESSAGE_LENGTH 63
+ #endif
+
static char status_message[];
static uint8_t alert_level; // Higher levels block lower levels
diff --git a/Marlin/src/lcd/menu/menu_bed_corners.cpp b/Marlin/src/lcd/menu/menu_bed_corners.cpp
index e0c694673e..82f25ea6f3 100644
--- a/Marlin/src/lcd/menu/menu_bed_corners.cpp
+++ b/Marlin/src/lcd/menu/menu_bed_corners.cpp
@@ -187,7 +187,7 @@ static void _lcd_level_bed_corners_get_next_position() {
}
--cy;
- y -= MENU_FONT_HEIGHT;
+ y -= MENU_LINE_HEIGHT;
// Display the Last Z value
if (PAGE_CONTAINS(y - (MENU_FONT_HEIGHT), y)) {
diff --git a/Marlin/src/lcd/tft/canvas.cpp b/Marlin/src/lcd/tft/canvas.cpp
index 3c2cda4fd5..e8b89bad70 100644
--- a/Marlin/src/lcd/tft/canvas.cpp
+++ b/Marlin/src/lcd/tft/canvas.cpp
@@ -50,7 +50,7 @@ bool CANVAS::ToScreen() {
}
void CANVAS::SetBackground(uint16_t color) {
- /* TODO: test and optimize perfomance */
+ /* TODO: test and optimize performance */
/*
uint32_t count = (endLine - startLine) * width;
uint16_t *pixel = buffer;
diff --git a/Marlin/src/lcd/tft_io/tft_io.cpp b/Marlin/src/lcd/tft_io/tft_io.cpp
index 29c7da235c..ded711b577 100644
--- a/Marlin/src/lcd/tft_io/tft_io.cpp
+++ b/Marlin/src/lcd/tft_io/tft_io.cpp
@@ -65,13 +65,13 @@ if (lcd_id != 0xFFFFFFFF) return;
#if PIN_EXISTS(TFT_RESET)
OUT_WRITE(TFT_RESET_PIN, HIGH);
delay(10);
- OUT_WRITE(TFT_RESET_PIN, LOW);
+ WRITE(TFT_RESET_PIN, LOW);
delay(10);
- OUT_WRITE(TFT_RESET_PIN, HIGH);
+ WRITE(TFT_RESET_PIN, HIGH);
#endif
#if PIN_EXISTS(TFT_BACKLIGHT)
- OUT_WRITE(TFT_BACKLIGHT_PIN, DISABLED(DELAYED_BACKLIGHT_INIT));
+ WRITE(TFT_BACKLIGHT_PIN, DISABLED(DELAYED_BACKLIGHT_INIT));
#endif
// io.Init();
@@ -149,7 +149,7 @@ if (lcd_id != 0xFFFFFFFF) return;
#endif
#if PIN_EXISTS(TFT_BACKLIGHT) && ENABLED(DELAYED_BACKLIGHT_INIT)
- OUT_WRITE(TFT_BACKLIGHT_PIN, HIGH);
+ WRITE(TFT_BACKLIGHT_PIN, HIGH);
#endif
}
diff --git a/Marlin/src/libs/MAX31865.cpp b/Marlin/src/libs/MAX31865.cpp
index 590dea5ca5..909adb3807 100644
--- a/Marlin/src/libs/MAX31865.cpp
+++ b/Marlin/src/libs/MAX31865.cpp
@@ -257,7 +257,7 @@ void MAX31865::oneShot() {
// From the datasheet:
// Note that a single conversion requires approximately 52ms in 60Hz filter
// mode or 62.5ms in 50Hz filter mode to complete. 1-Shot is a self-clearing bit.
- // TODO: switch this out depeding on the filter mode.
+ // TODO: switch this out depending on the filter mode.
DELAY_US(65000); // 65ms
}
@@ -301,7 +301,7 @@ uint16_t MAX31865::readRaw() {
}
/**
- * Calulate and return the resistance value of the connected RTD.
+ * Calculate and return the resistance value of the connected RTD.
*
* @param refResistor The value of the matching reference resistor, usually 430 or 4300
* @return The raw RTD resistance value, NOT temperature!
diff --git a/Marlin/src/libs/MAX31865.h b/Marlin/src/libs/MAX31865.h
index 2ab78ecbe8..5d50e870ec 100644
--- a/Marlin/src/libs/MAX31865.h
+++ b/Marlin/src/libs/MAX31865.h
@@ -72,7 +72,7 @@
#define MAX31865_FAULT_OVUV 0x04 // D2
// http://www.analog.com/media/en/technical-documentation/application-notes/AN709_0.pdf
-// constants for calulating temperature from the measured RTD resistance.
+// constants for calculating temperature from the measured RTD resistance.
#define RTD_Z1 -0.0039083
#define RTD_Z2 0.00001758480889
#define RTD_Z3 -0.0000000231
diff --git a/Marlin/src/libs/W25Qxx.cpp b/Marlin/src/libs/W25Qxx.cpp
index fd7804cb27..56581ed46e 100644
--- a/Marlin/src/libs/W25Qxx.cpp
+++ b/Marlin/src/libs/W25Qxx.cpp
@@ -157,8 +157,8 @@ void W25QXXFlash::SPI_FLASH_WriteEnable(void) {
/*******************************************************************************
* Function Name : SPI_FLASH_WaitForWriteEnd
* Description : Polls the status of the Write In Progress (WIP) flag in the
-* FLASH's status register and loop until write opertaion
-* has completed.
+* FLASH's status register and loop until write operation has
+* completed.
* Input : None
* Output : None
* Return : None
diff --git a/Marlin/src/libs/buzzer.h b/Marlin/src/libs/buzzer.h
index b86fe998fa..21b69002ff 100644
--- a/Marlin/src/libs/buzzer.h
+++ b/Marlin/src/libs/buzzer.h
@@ -56,7 +56,7 @@
static CircularQueue buffer;
/**
- * @brief Inverts the sate of a digital PIN
+ * @brief Inverts the state of a digital PIN
* @details This will invert the current state of an digital IO pin.
*/
FORCE_INLINE static void invert() { TOGGLE(BEEPER_PIN); }
diff --git a/Marlin/src/libs/duration_t.h b/Marlin/src/libs/duration_t.h
index 148aa23211..4d722a296c 100644
--- a/Marlin/src/libs/duration_t.h
+++ b/Marlin/src/libs/duration_t.h
@@ -113,7 +113,7 @@ struct duration_t {
/**
* @brief Formats the duration as a string
- * @details String will be formated using a "full" representation of duration
+ * @details String will be formatted using a "full" representation of duration
*
* @param buffer The array pointed to must be able to accommodate 22 bytes
* (21 for the string, 1 more for the terminating nul)
@@ -143,7 +143,7 @@ struct duration_t {
/**
* @brief Formats the duration as a string
- * @details String will be formated using a "digital" representation of duration
+ * @details String will be formatted using a "digital" representation of duration
*
* @param buffer The array pointed to must be able to accommodate 10 bytes
*
diff --git a/Marlin/src/libs/fatfs/diskio.h b/Marlin/src/libs/fatfs/diskio.h
index 39e10dffc6..b569e027b8 100644
--- a/Marlin/src/libs/fatfs/diskio.h
+++ b/Marlin/src/libs/fatfs/diskio.h
@@ -11,7 +11,17 @@
// #endif
#include "integer.h"
-#include "sdio_driver.h"
+
+#include "../../module/mks_wifi/mks_wifi.h"
+
+#ifdef STM32F1
+#include "sdio_driver_f1.h"
+#endif
+
+#ifdef STM32F4
+#include "sdio_driver_f4.h"
+#endif
+
#include "../../MarlinCore.h"
#ifdef MKS_WIFI
diff --git a/Marlin/src/libs/fatfs/sdio_driver.cpp b/Marlin/src/libs/fatfs/sdio_driver_f1.cpp
similarity index 99%
rename from Marlin/src/libs/fatfs/sdio_driver.cpp
rename to Marlin/src/libs/fatfs/sdio_driver_f1.cpp
index deea10c6d0..0d4a5192d1 100644
--- a/Marlin/src/libs/fatfs/sdio_driver.cpp
+++ b/Marlin/src/libs/fatfs/sdio_driver_f1.cpp
@@ -1,5 +1,6 @@
-#include "sdio_driver.h"
+#include "sdio_driver_f1.h"
#ifdef MKS_WIFI
+#ifdef STM32F1
volatile SDCard_TypeDef SDCard;
volatile SD_Status_TypeDef SDStatus;
@@ -296,4 +297,5 @@ void SD_parse_CSD(uint32_t* reg){
SDCard.Capacity=(tmp+1)*512;
};
+#endif
#endif
\ No newline at end of file
diff --git a/Marlin/src/libs/fatfs/sdio_driver.h b/Marlin/src/libs/fatfs/sdio_driver_f1.h
similarity index 99%
rename from Marlin/src/libs/fatfs/sdio_driver.h
rename to Marlin/src/libs/fatfs/sdio_driver_f1.h
index f64e9d9d3c..3d9f4a8eab 100644
--- a/Marlin/src/libs/fatfs/sdio_driver.h
+++ b/Marlin/src/libs/fatfs/sdio_driver_f1.h
@@ -3,8 +3,8 @@
#include "../../module/mks_wifi/mks_wifi.h"
-//#include "../../module/mks_wifi/small_cmsis.h"
#ifdef MKS_WIFI
+#ifdef STM32F1
// SD card description
typedef struct {
@@ -158,4 +158,5 @@ uint8_t SD_Init(void);
#endif
+#endif
#endif
\ No newline at end of file
diff --git a/Marlin/src/libs/fatfs/sdio_driver_f4.cpp b/Marlin/src/libs/fatfs/sdio_driver_f4.cpp
new file mode 100644
index 0000000000..9b84542ee5
--- /dev/null
+++ b/Marlin/src/libs/fatfs/sdio_driver_f4.cpp
@@ -0,0 +1,270 @@
+#include "sdio_driver_f4.h"
+#ifdef MKS_WIFI
+#ifdef STM32F4
+
+volatile SDCard_TypeDef SDCard;
+volatile SD_Status_TypeDef SDStatus;
+volatile uint32_t response[4]; //Для хранения ответа от карты
+volatile uint8_t transmit; //Флаг запущенной передачи данных в SDIO
+volatile uint8_t state=0; //Для хранения состояния карты
+volatile uint8_t multiblock=0; //Используется в прерывании SDIO, чтоб слать команду STOP
+volatile uint32_t error_flag=0;
+
+void SD_check_status(SD_Status_TypeDef* SDStatus,uint32_t* reg){
+ SDStatus->ake_seq_error = (*reg & (1 << 3)) ? 1 : 0;
+ SDStatus->app_cmd = (*reg & (1 << 5)) ? 1 : 0;
+ SDStatus->ready_for_data = (*reg & (1 << 8)) ? 1 : 0;
+ SDStatus->current_state = (uint8_t)((*reg & (0x0F << 9)) >> 9);
+ SDStatus->erase_reset = (*reg & (1 << 13)) ? 1 : 0;
+ SDStatus->card_ecc_disabled = (*reg & (1 << 14)) ? 1 : 0;
+ SDStatus->wp_erase_skip = (*reg & (1 << 15)) ? 1 : 0;
+ SDStatus->csd_overwrite = (*reg & (1 << 16)) ? 1 : 0;
+ SDStatus->error = (*reg & (1 << 19)) ? 1 : 0;
+ SDStatus->cc_error = (*reg & (1 << 20)) ? 1 : 0;
+ SDStatus->card_ecc_failed = (*reg & (1 << 21)) ? 1 : 0;
+ SDStatus->illegal_command = (*reg & (1 << 22)) ? 1 : 0;
+ SDStatus->com_crc_error = (*reg & (1 << 23)) ? 1 : 0;
+ SDStatus->lock_unlock_failed= (*reg & (1 << 24)) ? 1 : 0;
+ SDStatus->card_is_locked = (*reg & (1 << 25)) ? 1 : 0;
+ SDStatus->wp_violation = (*reg & (1 << 26)) ? 1 : 0;
+ SDStatus->erase_param = (*reg & (1 << 27)) ? 1 : 0;
+ SDStatus->erase_seq_error = (*reg & (1 << 28)) ? 1 : 0;
+ SDStatus->block_len_error = (*reg & (1 << 29)) ? 1 : 0;
+ SDStatus->address_error = (*reg & (1 << 30)) ? 1 : 0;
+ SDStatus->out_of_range = (*reg & (1U << 31)) ? 1 : 0;
+};
+
+uint8_t SD_Cmd(uint8_t cmd, uint32_t arg, uint16_t response_type, uint32_t *response){
+ SDIO->ICR = SDIO_ICR_CCRCFAILC | SDIO_ICR_CTIMEOUTC | SDIO_ICR_CMDRENDC | SDIO_ICR_CMDSENTC;
+ SDIO->ARG = arg;
+ SDIO->CMD = (uint32_t)(response_type | cmd | SDIO_CMD_CPSMEN);
+
+ while(SDIO->STA & SDIO_STA_CMDACT){asm("nop");};
+
+ if (response_type != SDIO_RESP_NONE) {
+ response[0] = SDIO->RESP1;
+ response[1] = SDIO->RESP2;
+ response[2] = SDIO->RESP3;
+ response[3] = SDIO->RESP4;
+ }
+
+ if (SDIO->STA & SDIO_STA_CTIMEOUT) return 2;
+ if (SDIO->STA & SDIO_STA_CCRCFAIL) return 3;
+ return 0;
+}
+
+uint32_t SD_transfer(uint8_t *buf, uint32_t blk, uint32_t cnt, uint32_t dir){
+ uint32_t trials;
+ uint8_t cmd=0;
+
+ if (SDCard.Type != SDCT_SDHC) {
+ blk = blk * 512;
+ }
+
+ trials=SDIO_DATA_TIMEOUT;
+ while (transmit && trials--) {};
+ if(!trials) {
+ //SEGGER_SYSVIEW_RecordEndCall(37);
+ return 1;
+ }
+
+ state=0;
+ while(state != 4){ //Дождаться когда карта будет в режиме tran (4)
+ SD_Cmd(SD_CMD13, SDCard.RCA ,SDIO_RESP_SHORT,(uint32_t*)response);
+ SD_check_status((SD_Status_TypeDef*)&SDStatus,(uint32_t*)&response[0]);
+ state=SDStatus.current_state;
+
+ if((state == 5) || (state == 6)) SD_Cmd(SD_CMD12, 0, SDIO_RESP_SHORT,(uint32_t*)response);
+ };
+
+ //Выключить DMA (бит включения)
+ DMA2->LIFCR=DMA_S3_CLEAR;
+ DMA2_Stream3->CR=0;
+ DMA2->LIFCR=DMA_S3_CLEAR;
+ DMA2_Stream3->CR=DMA_SDIO_CR;
+
+ multiblock = (cnt == 1) ? 0 : 1;
+ if (dir==UM2SD){ //Запись
+ DMA2_Stream3->CR|=(0x01 << DMA_SxCR_DIR_Pos);
+ cmd=(cnt == 1)? SD_CMD24 : SD_CMD25;
+ }
+ else if (dir==SD2UM){ //Чтение
+ cmd=(cnt == 1)? SD_CMD17 : SD_CMD18;
+ };
+
+ DMA2_Stream3->M0AR=(uint32_t)buf; //Memory address
+ DMA2_Stream3->PAR=(uint32_t)&(SDIO->FIFO); //SDIO FIFO Address
+ DMA2_Stream3->NDTR=0; //Peripheral controls, therefore we don't need to indicate a size
+ DMA2_Stream3->FCR=DMA_SDIO_FCR;
+
+ transmit=1;
+ error_flag=0;
+ __disable_irq();
+ SD_Cmd(cmd, blk, SDIO_RESP_SHORT, (uint32_t*)response);
+
+ SDIO->DTIMER=(uint32_t)SDIO_DATA_R_TIMEOUT;
+ SDIO->DLEN=cnt*512; //Количество байт (блок 512 байт)
+ SDIO->DCTRL= SDIO_DCTRL | (dir & SDIO_DCTRL_DTDIR); //Direction. 0=Controller to card, 1=Card to Controller
+ SDIO->MASK=0;
+ SDIO->ICR=SDIO_ICR_STATIC;
+
+ DMA2_Stream3->CR |= DMA_SxCR_EN;
+ SDIO->DCTRL|=1; //DPSM is enabled
+ __enable_irq();
+
+ while((SDIO->STA & (SDIO_STA_DATAEND|SDIO_STA_ERRORS)) == 0){asm("nop");};
+
+ if(SDIO->STA & SDIO_STA_ERRORS){
+ error_flag=SDIO->STA;
+ transmit=0;
+ SDIO->ICR = SDIO_ICR_STATIC;
+ DMA2_Stream3->CR = 0;
+ DMA2->LIFCR = DMA_S3_CLEAR;
+ //SEGGER_SYSVIEW_RecordEndCall(37);
+ return error_flag;
+ }
+
+ if(dir==SD2UM) { //Read
+ while (DMA2_Stream3->CR & DMA_SxCR_EN) {
+ if(SDIO->STA & SDIO_STA_ERRORS) {
+ return 99;
+ }
+ DMA2_Stream3->CR = 0;
+ DMA2->LIFCR = DMA_S3_CLEAR;
+ };
+ };
+
+ if(multiblock > 0) SD_Cmd(SD_CMD12, 0, SDIO_RESP_SHORT, (uint32_t*)response);
+ transmit=0;
+ DMA2->LIFCR = DMA_S3_CLEAR;
+ return 0;
+};
+
+
+uint8_t SD_Init(void) {
+ volatile uint32_t trials = 0x0000FFFF;
+ uint32_t tempreg; //Для временного хранения регистров
+ //char str[30];
+ uint8_t result = 0;
+
+ result = SD_Cmd(SD_CMD0,0x00,SDIO_RESP_NONE,(uint32_t*)response); //NORESP
+ if (result != 0){
+ return 1;
+ };
+
+
+ result = SD_Cmd(SD_CMD8,SD_CHECK_PATTERN,SDIO_RESP_SHORT,(uint32_t*)response); //R7
+ if (result != 0) {
+ return 8;
+ };
+ if (response[0] != SD_CHECK_PATTERN) {
+ return 8;
+ };
+
+ trials = 0x0000FFFF;
+ while (--trials) {
+ SD_Cmd(SD_CMD55, 0 ,SDIO_RESP_SHORT,(uint32_t*)response); // CMD55 with RCA 0 R1
+ SD_check_status((SD_Status_TypeDef*)&SDStatus,(uint32_t*)&response[0]);
+ SD_Cmd(SD_ACMD41,(1<<20|1<<30),SDIO_RESP_SHORT,(uint32_t*)response);
+ if (response[0] & SDIO_ACMD41_CHECK) break;
+ }
+ if (!trials) {
+ return 41;
+ };
+
+ SDCard.Type = (response[0] & SD_HIGH_CAPACITY) ? SDCT_SDHC : SDCT_SDSC_V2;
+ DEBUG("Card type %d",SDCard.Type);
+
+ result = SD_Cmd(SD_CMD2,0x00,SDIO_RESP_LONG,(uint32_t*)response); //CMD2 CID R2
+ if (result != 0) {
+ return 2;
+ };
+
+
+ SDCard.CID[0]=response[0];
+ SDCard.CID[1]=response[1];
+ SDCard.CID[2]=response[2];
+ SDCard.CID[3]=response[3];
+
+
+ result = SD_Cmd(SD_CMD3,0x00,SDIO_RESP_SHORT,(uint32_t*)response); //CMD3 RCA R6
+ if (result != 0){
+ return 3;
+ };
+ SDCard.RCA=( response[0] & (0xFFFF0000) );
+
+ result = SD_Cmd(SD_CMD9,SDCard.RCA,SDIO_RESP_LONG,(uint32_t*)response); //CMD9 СSD R2
+ if (result != 0) return 9;
+
+ SDCard.CSD[0]=response[0];
+ SDCard.CSD[1]=response[1];
+ SDCard.CSD[2]=response[2];
+ SDCard.CSD[3]=response[3];
+
+ SD_parse_CSD((uint32_t*)SDCard.CSD);
+
+ result = SD_Cmd(SD_CMD7,SDCard.RCA,SDIO_RESP_SHORT,(uint32_t*)response); //CMD7 tran R1b
+ SD_check_status((SD_Status_TypeDef*)&SDStatus,(uint32_t*)&response[0]);
+ if (result != 0) return 7;
+
+ state=0;
+ //Дождаться когда карта будет в режиме tran (4)
+ while(state != 4){
+ SD_Cmd(SD_CMD13, SDCard.RCA ,SDIO_RESP_SHORT,(uint32_t*)response);
+ SD_check_status((SD_Status_TypeDef*)&SDStatus,(uint32_t*)&response[0]);
+ state=SDStatus.current_state;
+ };
+
+
+
+ #if(SDIO_4BIT_Mode == 1)
+ result = SD_Cmd(SD_CMD55, SDCard.RCA ,SDIO_RESP_SHORT,(uint32_t*)response); //CMD55 with RCA
+ SD_check_status((SD_Status_TypeDef*)&SDStatus,(uint32_t*)&response[0]);
+ if (result != 0)return 55;
+
+ result = SD_Cmd(6, 0x02, SDIO_RESP_SHORT,(uint32_t*)response); //Шлем ACMD6 c аргументом 0x02, установив 4-битный режим
+ if (result != 0) {return 6;};
+ if (response[0] != 0x920) {return 5;}; //Убеждаемся, что карта находится в готовности работать с трансфером
+
+ tempreg=((0x01)<CLKCR=tempreg;
+
+ #if (SDIO_HIGH_SPEED != 0)
+ SD_HighSpeed();
+ tempreg=((0x01)<CLKCR=tempreg;
+ #endif
+#else
+ tempreg=0;
+ tempreg=SDIO_CLKCR_CLKEN;
+ SDIO->CLKCR=tempreg;
+#endif
+
+ if ((SDCard.Type != SDCT_SDHC)) {
+ result = SD_Cmd(SD_CMD_SET_BLOCKLEN, 512 ,SDIO_RESP_SHORT,(uint32_t*)response); //CMD16
+ if (result != 0) {
+ ERROR("Error set block size");
+ return 16;
+ }
+ }
+
+
+ return 0;
+};
+
+void SD_parse_CSD(uint32_t* reg){
+ uint32_t tmp;
+ //Версия CSD регистра
+ if(reg[0] & (11U << 30)){
+ SDCard.CSDVer=2;
+ }else{
+ SDCard.CSDVer=1;
+ };
+ //Размер карты и количество блоков
+ tmp= (reg[2] >> 16) & 0xFFFF;
+ tmp |= (reg[1] & 0x3F) << 16;
+ SDCard.BlockCount=tmp*1000;
+ SDCard.Capacity=(tmp+1)*512;
+};
+#endif
+#endif
\ No newline at end of file
diff --git a/Marlin/src/libs/fatfs/sdio_driver_f4.h b/Marlin/src/libs/fatfs/sdio_driver_f4.h
new file mode 100644
index 0000000000..30a5cdf7ea
--- /dev/null
+++ b/Marlin/src/libs/fatfs/sdio_driver_f4.h
@@ -0,0 +1,206 @@
+#ifndef SDIO_DRIVER_H
+#define SDIO_DRIVER_H
+
+#include "../../module/mks_wifi/mks_wifi.h"
+
+#ifdef MKS_WIFI
+#ifdef STM32F4
+// SD card description
+typedef struct {
+ uint32_t Capacity; // Card capacity (MBytes for SDHC/SDXC, bytes otherwise)
+ uint32_t BlockCount; // SD card blocks count
+ uint32_t BlockSize; // SD card block size (bytes), determined in SD_ReadCSD()
+ uint32_t MaxBusClkFreq; // Maximum card bus frequency (MHz)
+ uint32_t RCA; // SD card RCA address (only for SDIO)
+ uint32_t PSN; // SD card serial number
+ uint32_t CSD[4]; // SD card CSD register (card structure data)
+ uint32_t CID[4]; // SD card CID register (card identification number)
+ uint16_t OID; // SD card OEM/Application ID
+ uint16_t MDT; // SD card manufacturing date
+ uint8_t Type; // Card type (detected by SD_Init())
+ uint8_t CSDVer; // SD card CSD register version
+ uint8_t MID; // SD card manufacturer ID
+ uint8_t PNM[5]; // SD card product name (5-character ASCII string)
+ uint8_t PRV; // SD card product revision (two BCD digits: '6.2' will be 01100010b)
+ uint8_t SCR[8]; // SD card SCR register (SD card configuration)
+} SDCard_TypeDef;
+
+typedef struct {
+ uint8_t out_of_range; //Аргумент команды вышел за пределы допустимого диапазона для этой карты.
+ uint8_t address_error; //Ошибочно выровненный адрес, который не соответствует длине блока, который использовался в команде.
+ uint8_t block_len_error; //Длина передаваемого блока не допустима для этой карты, или количество передаваемых байт не соответствует длине блока.
+ uint8_t erase_seq_error; //Произошла ошибка в последовательности команд стирания.
+ uint8_t erase_param; //Произошел недопустимый выбор записываемых блоков для стирания.
+ uint8_t wp_violation; //Устанавливается, когда хост попытался выполнить запись в защищенный блок либо на временно защищенную от записи, либо на постоянно защищенную от записи карту.
+ uint8_t card_is_locked; //Если установлен, то сигнализирует, что карта заблокирована хостом.
+ uint8_t lock_unlock_failed; //Устанавливается, когда была детектирована ошибка пароля в команде блокировки/разблокировки карты.
+ uint8_t com_crc_error; //Ошибка CRC предыдущей команды.
+ uint8_t illegal_command; //Команда недопустима для текущего состояния карты.
+ uint8_t card_ecc_failed; //Была применена внутренняя ECC, но произошла ошибка для корректных данных.
+ uint8_t cc_error; //Ошибка внутреннего контроллера карты.
+ uint8_t error; //Во время выполнения операции произошла общая или неизвестная ошибка.
+ uint8_t csd_overwrite; //Произошла одна из следующих ошибок: - Секция только для чтения CSD не соответствует содержимому карты. - Попытка реверса копирования (копирование в место источника), или ошибка защиты от записи.
+ uint8_t wp_erase_skip; //Устанавливается, когда была очищена только часть адресного пространства - из-за наличия защищенных от записи блоков, или очищалась карта, временно или постоянно защищенная от записи.
+ uint8_t card_ecc_disabled;//Была выполнена команда без внутреннего ECC.
+ uint8_t erase_reset; //Была очищена последовательность стирания перед выполнением, потому что была принята команда выхода из последовательности стирания.
+ uint8_t current_state; //Состояние карты, когда принимается команда. Если выполнение команды приводит к изменению состояния карты, это увидит хост в ответ на следующую команду. Эти 4 бита интерпретируются как двоичное число со значением в диапазоне от 0 до 15.
+ /*
+ 0: idle
+ 1: ready
+ 2: ident
+ 3: stby
+ 4: tran
+ 5: data
+ 6: rcv
+ 7: prg
+ 8: dis
+ 9..14:зарезервировано
+ 15: зарезервировано для режима I/O
+ */
+ uint8_t ready_for_data; //Соответствует сигнализации по шине, что буфер пуст.
+ uint8_t app_cmd; //Карта ожидает ACMD, или показывается, что команда была интерпретирована как ACMD.
+ uint8_t ake_seq_error; //Ошибка в последовательности аутентификации.
+} SD_Status_TypeDef;
+
+// Card type
+enum {
+ SDCT_UNKNOWN = 0x00,
+ SDCT_SDSC_V1 = 0x01, // Standard capacity SD card v1.0
+ SDCT_SDSC_V2 = 0x02, // Standard capacity SD card v2.0
+ SDCT_MMC = 0x03, // MMC
+ SDCT_SDHC = 0x04 // High capacity SD card (SDHC or SDXC)
+};
+
+
+#define SDIO_4BIT_Mode 1
+//#define SDIO_HIGH_SPEED 1
+
+#define SDIO_DATA_TIMEOUT ((uint32_t)0x01000000)
+
+// Mask for ACMD41
+#define SD_STD_CAPACITY ((uint32_t)0x00000000U)
+#define SD_HIGH_CAPACITY ((uint32_t)0x40000000U)
+
+// SDIO CMD response type
+#define SDIO_RESP_NONE 0x00 // No response
+#define SDIO_RESP_SHORT SDIO_CMD_WAITRESP_0 // Short response
+#define SDIO_RESP_LONG SDIO_CMD_WAITRESP // Long response
+
+// SD commands index
+#define SD_CMD0 ((uint8_t)0)
+#define SD_CMD8 ((uint8_t)8)
+#define SD_CMD55 ((uint8_t)55)
+#define SD_ACMD41 ((uint8_t)41)
+#define SD_CMD2 ((uint8_t)2)
+#define SD_CMD3 ((uint8_t)3)
+#define SD_CMD6 ((uint8_t)6)
+#define SD_CMD7 ((uint8_t)7)
+#define SD_CMD9 ((uint8_t)9)
+
+#define SD_CMD12 ((uint8_t)12)
+#define SD_CMD13 ((uint8_t)13)
+
+#define SD_CMD_SET_BLOCKLEN ((uint8_t)16)
+#define SD_CMD_SWITCH_FUNC ((uint8_t)6U)
+
+#define SD_CMD17 ((uint8_t)17)
+#define SD_CMD18 ((uint8_t)18)
+
+#define SD_CMD24 ((uint8_t)24)
+#define SD_CMD25 ((uint8_t)25)
+
+#define SDIO_ACMD41_CHECK ((uint32_t)0x80000000)
+// Pattern for R6 response
+#define SD_CHECK_PATTERN ((uint32_t)0x000001AA)
+
+#define UM2SD (0x00) //Transfer Direction
+#define SD2UM (0x02)
+
+
+#ifdef STM32F1
+
+#define DMA_S4_CLEAR ((uint32_t) DMA_IFCR_CTCIF4 | DMA_IFCR_CTEIF4 | DMA_IFCR_CGIF4 | DMA_IFCR_CHTIF4)
+#define DMA_SDIO_CR ((uint32_t)( (0x00 << DMA_CCR_PL_Pos) | \
+ (0x02 << DMA_CCR_MSIZE_Pos) | \
+ (0x02 << DMA_CCR_PSIZE_Pos) | \
+ (0x01 << DMA_CCR_MINC_Pos) | \
+ (0x00 << DMA_CCR_PINC_Pos) | \
+ (0x00 << DMA_CCR_CIRC_Pos)) )
+
+#define SDIO_DATA_R_TIMEOUT (uint32_t)9000000
+#define SDIO_DCTRL (uint32_t)((uint32_t) 9 << SDIO_DCTRL_DBLOCKSIZE_Pos ) | ((uint32_t) 1 << SDIO_DCTRL_DMAEN_Pos) | SDIO_DCTRL_DTEN
+#define SDIO_ICR_STATIC ((uint32_t)(SDIO_ICR_CCRCFAILC | SDIO_ICR_DCRCFAILC | SDIO_ICR_CTIMEOUTC | \
+ SDIO_ICR_DTIMEOUTC | SDIO_ICR_TXUNDERRC | SDIO_ICR_RXOVERRC | \
+ SDIO_ICR_CMDRENDC | SDIO_ICR_CMDSENTC | SDIO_ICR_DATAENDC | \
+ SDIO_ICR_DBCKENDC | SDIO_ICR_STBITERRC ))
+
+#define SDIO_ICR_DATA_FLAGS (SDIO_ICR_DBCKENDC | SDIO_ICR_STBITERRC | SDIO_ICR_DATAENDC | SDIO_ICR_RXOVERRC | SDIO_ICR_TXUNDERRC | SDIO_ICR_DTIMEOUTC | SDIO_ICR_DCRCFAILC)
+#define SDIO_ICR_CMD_FLAGS (SDIO_ICR_CEATAENDC | SDIO_ICR_SDIOITC | SDIO_ICR_CMDSENTC | SDIO_ICR_CMDRENDC | SDIO_ICR_CTIMEOUTC | SDIO_ICR_CCRCFAILC)
+#define SDIO_STA_ERRORS (uint32_t)(SDIO_STA_STBITERR | SDIO_STA_RXOVERR | SDIO_STA_TXUNDERR | SDIO_STA_DTIMEOUT | SDIO_STA_DCRCFAIL )
+
+#define SDIO_STA_TRX_ERROR_FLAGS (SDIO_STA_STBITERR | SDIO_STA_RXOVERR | SDIO_STA_TXUNDERR | SDIO_STA_DTIMEOUT | SDIO_STA_DCRCFAIL)
+#define SDIO_STA_CMD_ERROR_FLAGS (SDIO_STA_CTIMEOUT | SDIO_STA_CCRCFAIL)
+#define SDIO_STA_TRX_ACT_FLAGS (SDIO_STA_RXACT|SDIO_STA_TXACT)
+#define SDIO_STA_CMD_FLAGS (uint32_t)(SDIO_STA_CCRCFAIL|SDIO_STA_CTIMEOUT|SDIO_STA_CMDSENT|SDIO_STA_CMDREND)
+#endif
+
+#ifdef STM32F4
+#define SDIO_DATA_R_TIMEOUT ((uint32_t)((SystemCoreClock / (2) / 1000) * 250)) // Data read timeout is 250ms
+#define SDIO_DATA_W_TIMEOUT ((uint32_t)((SystemCoreClock / (2) / 1000) * 500)) // Date write timeout is 500ms
+
+// SDIO bus width
+#define SD_BUS_1BIT 0 // 1-bit wide bus (SDIO_D0 used)
+#define SD_BUS_4BIT SDIO_CLKCR_WIDBUS_0 // 4-bit wide bus (SDIO_D[3:0] used)
+#define SD_BUS_8BIT SDIO_CLKCR_WIDBUS_1 // 8-bit wide bus (SDIO_D[7:0] used)
+//#define SDIO_CLK_DIV_INIT ((uint32_t)0x00000076U) // SDIO clock 400kHz (48MHz / (0x76 + 2) = 400kHz)
+#define SDIO_CLK_DIV_INIT (uint32_t)(((((RCC_HSE/RCC_PLL_M)*RCC_PLL_N)/RCC_PLL_Q)/400000) - 2)
+
+// Bitmap to clear the SDIO static flags (command and data)
+#define SDIO_ICR_STATIC ((uint32_t)(SDIO_ICR_CCRCFAILC | SDIO_ICR_DCRCFAILC | SDIO_ICR_CTIMEOUTC | \
+ SDIO_ICR_DTIMEOUTC | SDIO_ICR_TXUNDERRC | SDIO_ICR_RXOVERRC | \
+ SDIO_ICR_CMDRENDC | SDIO_ICR_CMDSENTC | SDIO_ICR_DATAENDC | \
+ SDIO_ICR_DBCKENDC | SDIO_ICR_STBITERRC ))
+
+
+#define DMA_SDIO_CR ((uint32_t)( (0x04 << DMA_SxCR_CHSEL_Pos) | \
+ (0x01 << DMA_SxCR_MBURST_Pos)| \
+ (0x01 << DMA_SxCR_PBURST_Pos)| \
+ (0x00 << DMA_SxCR_DBM_Pos) | \
+ (0x03 << DMA_SxCR_PL_Pos) | \
+ (0x00 << DMA_SxCR_PINCOS_Pos)| \
+ (0x02 << DMA_SxCR_MSIZE_Pos) | \
+ (0x02 << DMA_SxCR_PSIZE_Pos) | \
+ (0x01 << DMA_SxCR_MINC_Pos) | \
+ (0x00 << DMA_SxCR_PINC_Pos) | \
+ (0x00 << DMA_SxCR_CIRC_Pos) | \
+ (0x01 << DMA_SxCR_PFCTRL_Pos)))
+
+
+#define DMA_SDIO_FCR ((uint32_t) (0x21 | (0 << DMA_SxFCR_FEIE_Pos) | (1 << DMA_SxFCR_DMDIS_Pos) | (3 << DMA_SxFCR_FTH_Pos)))
+#define DMA_S3_CLEAR ((uint32_t) DMA_LIFCR_CTCIF3 | DMA_LIFCR_CTEIF3 | DMA_LIFCR_CDMEIF3 | DMA_LIFCR_CFEIF3 | DMA_LIFCR_CHTIF3)
+
+#define SDIO_DCTRL (uint32_t)((uint32_t) 9 << SDIO_DCTRL_DBLOCKSIZE_Pos ) | ((uint32_t) 1 << SDIO_DCTRL_DMAEN_Pos)
+#define SDIO_STA_ERRORS (uint32_t)(SDIO_STA_STBITERR | SDIO_STA_RXOVERR | SDIO_STA_TXUNDERR | SDIO_STA_DTIMEOUT | SDIO_STA_DCRCFAIL )
+#define SDIO_MASK_ERRORS (uint32_t)(SDIO_MASK_STBITERRIE | SDIO_MASK_RXOVERRIE | SDIO_MASK_TXUNDERRIE | SDIO_MASK_DTIMEOUTIE | SDIO_MASK_DCRCFAILIE )
+
+#define SDIO_XFER_COMMON_FLAGS (SDIO_STA_DTIMEOUT | SDIO_STA_DCRCFAIL | SDIO_STA_STBITERR)
+#define SDIO_XFER_ERROR_FLAGS (SDIO_XFER_COMMON_FLAGS | SDIO_STA_TXUNDERR | SDIO_STA_RXOVERR)
+#endif
+
+
+
+#define DISABLE_IRQ { __asm volatile ("cpsid i" : : : "memory");}
+#define ENABLE_IRQ { __asm volatile ("cpsie i" : : : "memory");}
+
+//uint8_t SD_Init(void);
+void SD_parse_CSD(uint32_t* reg);
+void SD_check_status(SD_Status_TypeDef* SDStatus,uint32_t* reg);
+uint32_t SD_get_block_count(void);
+uint8_t SD_Cmd(uint8_t cmd, uint32_t arg, uint16_t response_type, uint32_t *response);
+uint32_t SD_transfer(uint8_t *buf, uint32_t blk, uint32_t cnt, uint32_t dir);
+uint8_t SD_Init(void);
+//void SDIO_Config(void);
+
+#endif
+#endif
+#endif
\ No newline at end of file
diff --git a/Marlin/src/module/endstops.cpp b/Marlin/src/module/endstops.cpp
index 523e133713..0f4716ed87 100644
--- a/Marlin/src/module/endstops.cpp
+++ b/Marlin/src/module/endstops.cpp
@@ -884,7 +884,7 @@ void Endstops::update() {
const byte dual_hit = TEST_ENDSTOP(_ENDSTOP(A, MINMAX)) | (TEST_ENDSTOP(_ENDSTOP(A##2, MINMAX)) << 1); \
if (dual_hit) { \
_ENDSTOP_HIT(A, MINMAX); \
- /* if not performing home or if both endstops were trigged during homing... */ \
+ /* if not performing home or if both endstops were triggered during homing... */ \
if (!stepper.separate_multi_axis || dual_hit == 0b11) \
planner.endstop_triggered(_AXIS(A)); \
} \
@@ -894,7 +894,7 @@ void Endstops::update() {
const byte triple_hit = TEST_ENDSTOP(_ENDSTOP(A, MINMAX)) | (TEST_ENDSTOP(_ENDSTOP(A##2, MINMAX)) << 1) | (TEST_ENDSTOP(_ENDSTOP(A##3, MINMAX)) << 2); \
if (triple_hit) { \
_ENDSTOP_HIT(A, MINMAX); \
- /* if not performing home or if both endstops were trigged during homing... */ \
+ /* if not performing home or if both endstops were triggered during homing... */ \
if (!stepper.separate_multi_axis || triple_hit == 0b111) \
planner.endstop_triggered(_AXIS(A)); \
} \
@@ -904,7 +904,7 @@ void Endstops::update() {
const byte quad_hit = TEST_ENDSTOP(_ENDSTOP(A, MINMAX)) | (TEST_ENDSTOP(_ENDSTOP(A##2, MINMAX)) << 1) | (TEST_ENDSTOP(_ENDSTOP(A##3, MINMAX)) << 2) | (TEST_ENDSTOP(_ENDSTOP(A##4, MINMAX)) << 3); \
if (quad_hit) { \
_ENDSTOP_HIT(A, MINMAX); \
- /* if not performing home or if both endstops were trigged during homing... */ \
+ /* if not performing home or if both endstops were triggered during homing... */ \
if (!stepper.separate_multi_axis || quad_hit == 0b1111) \
planner.endstop_triggered(_AXIS(A)); \
} \
diff --git a/Marlin/src/module/mks_wifi/mks_wifi.cpp b/Marlin/src/module/mks_wifi/mks_wifi.cpp
index 87bfa336b6..c12bf12734 100644
--- a/Marlin/src/module/mks_wifi/mks_wifi.cpp
+++ b/Marlin/src/module/mks_wifi/mks_wifi.cpp
@@ -5,7 +5,6 @@
#include "../../lcd/marlinui.h"
#include "mks_wifi_sd.h"
-#include "mks_test_sdio.h"
volatile uint8_t mks_in_buffer[MKS_IN_BUFF_SIZE];
uint8_t mks_out_buffer[MKS_OUT_BUFF_SIZE];
@@ -34,18 +33,6 @@ void mks_wifi_init(void){
safe_delay(200);
WRITE(MKS_WIFI_IO4, LOW);
-
- #ifdef SDIO_TEST_AT_STARTUP
- mks_test_sdio();
- #endif
-
- #ifdef LIST_FILES_AT_STARTUP
- mks_wifi_sd_deinit();
- mks_wifi_sd_init();
- mks_wifi_sd_ls();
- mks_wifi_sd_deinit();
- #endif
-
}
diff --git a/Marlin/src/module/mks_wifi/mks_wifi_sd.cpp b/Marlin/src/module/mks_wifi/mks_wifi_sd.cpp
index 1ac760f8fe..f6118d064c 100644
--- a/Marlin/src/module/mks_wifi/mks_wifi_sd.cpp
+++ b/Marlin/src/module/mks_wifi/mks_wifi_sd.cpp
@@ -173,6 +173,7 @@ void mks_wifi_start_file_upload(ESP_PROTOC_FRAME *packet){
last_sector = 0;
buffer_ready = 0;
+ #ifdef STM32F1
//Отключение тактирования не используемых блоков
RCC->APB1ENR &= ~(RCC_APB1ENR_TIM5EN|RCC_APB1ENR_TIM4EN);
RCC->APB1ENR &= ~(RCC_APB1ENR_SPI2EN|RCC_APB1ENR_USART3EN);
@@ -199,6 +200,28 @@ void mks_wifi_start_file_upload(ESP_PROTOC_FRAME *packet){
USART1->CR3 = USART_CR3_DMAR;
USART1->SR = 0;
USART1->CR1 |= USART_CR1_RE;
+ #endif
+
+ #ifdef STM32F4
+ DMA2_Stream5->CR = 0;
+ DMA2->HIFCR=DMA_S5_CLEAR;
+
+ DMA2_Stream5->PAR = (uint32_t)&USART1->DR;
+ DMA2_Stream5->M0AR = (uint32_t)dma_buff[dma_buff_index];
+ DMA2_Stream5->NDTR = ESP_PACKET_SIZE;
+
+ DMA2_Stream5->CR = DMA_CONF|DMA_SxCR_EN;
+
+ NVIC_EnableIRQ(DMA2_Stream5_IRQn);
+
+ USART1->CR1 = USART_CR1_UE;
+ USART1->CR1 = USART_CR1_TE | USART_CR1_UE;
+ USART1->BRR = (uint32_t)(84000000+1958400/2)/1958400;
+ USART1->CR2 = 0;
+ USART1->CR3 = USART_CR3_DMAR;
+ USART1->SR = 0;
+ USART1->CR1 |= USART_CR1_RE;
+ #endif
safe_delay(200);
(void)USART1->DR;
@@ -317,15 +340,27 @@ void mks_wifi_start_file_upload(ESP_PROTOC_FRAME *packet){
}
}
+ #ifdef STM32F1
//Включение обратно переферии
SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;
RCC->APB1ENR |= (RCC_APB1ENR_TIM5EN|RCC_APB1ENR_TIM4EN);
RCC->APB1ENR |= (RCC_APB1ENR_SPI2EN|RCC_APB1ENR_USART3EN);
RCC->APB2ENR |= RCC_APB2ENR_TIM1EN;
RCC->AHBENR |= (RCC_AHBENR_FSMCEN);
+ #endif
+ #ifdef STM32F4
+ SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;
+ #endif
+
if((dma_timeout == 0) || (dma_stopped == 2)) {
+ #ifdef STM32F1
DEBUG("DMA timeout, NDTR: %d",DMA1_Channel5->CNDTR);
+ #endif
+ #ifdef STM32F4
+ DEBUG("DMA timeout, NDTR: %d",DMA2_Stream5->NDTR);
+ #endif
+
DEBUG("SR: %0X",USART1->SR);
//Restart ESP8266
WRITE(MKS_WIFI_IO_RST, LOW);
@@ -333,9 +368,17 @@ void mks_wifi_start_file_upload(ESP_PROTOC_FRAME *packet){
WRITE(MKS_WIFI_IO_RST, HIGH);
}
+ #ifdef STM32F1
//Выключить DMA
DMA1->IFCR = DMA_IFCR_CGIF5|DMA_IFCR_CTEIF5|DMA_IFCR_CHTIF5|DMA_IFCR_CTCIF5;
DMA1_Channel5->CCR = 0;
+ #endif
+
+ #ifdef STM32F4
+ //Выключить DMA
+ DMA2->HIFCR=DMA_S5_CLEAR;
+ DMA2_Stream5->CR = 0;
+ #endif
MYSERIAL2.begin(BAUDRATE_2);
WRITE(MKS_WIFI_IO4, LOW); //Включить передачу от ESP
@@ -400,7 +443,7 @@ void mks_wifi_start_file_upload(ESP_PROTOC_FRAME *packet){
}
-
+#ifdef STM32F1
extern "C" void DMA1_Channel5_IRQHandler(void){
if(DMA1->ISR & DMA_ISR_TEIF5){
@@ -427,5 +470,37 @@ extern "C" void DMA1_Channel5_IRQHandler(void){
DMA1_Channel5->CCR = DMA_CONF|DMA_CCR_EN;
++buffer_ready;
}
+#endif
+
+#ifdef STM32F4
+extern "C" void DMA2_Stream5_IRQHandler(void){
+
+ if(DMA2->HISR & DMA_HISR_TEIF5){
+ DEBUG("DMA Error");
+ dma_stopped = 2;
+ DMA2->HIFCR=DMA_S5_CLEAR;
+ return;
+ }
+
+ if(buffer_ready > 0){
+ GPIOC->BSRR = GPIO_BSRR_BS7; //остановить передачу от esp
+ dma_stopped=1;
+ };
+
+ DMA2->HIFCR=DMA_S5_CLEAR;
+ //Указатель на полученный буфер
+ buff=dma_buff[dma_buff_index];
+ //переключить индекс
+ dma_buff_index = (dma_buff_index) ? 0 : 1;
+
+
+ DMA2_Stream5->CR = DMA_CONF;
+ DMA2_Stream5->M0AR = (uint32_t)dma_buff[dma_buff_index];
+ DMA2_Stream5->NDTR = ESP_PACKET_SIZE;
+ DMA2_Stream5->CR = DMA_CONF|DMA_SxCR_EN;
+
+ ++buffer_ready;
+}
+#endif
#endif
\ No newline at end of file
diff --git a/Marlin/src/module/mks_wifi/mks_wifi_sd.h b/Marlin/src/module/mks_wifi/mks_wifi_sd.h
index ff22cbafc7..addfb1c901 100644
--- a/Marlin/src/module/mks_wifi/mks_wifi_sd.h
+++ b/Marlin/src/module/mks_wifi/mks_wifi_sd.h
@@ -11,8 +11,29 @@
#define DMA_TIMEOUT 0x1ffffff
#define ESP_PACKET_SIZE 1024
+#ifdef STM32F1
#define DMA_CONF (uint32_t)(DMA_CCR_PL|DMA_CCR_MINC|DMA_CCR_TEIE|DMA_CCR_TCIE)
#define DMA_CLEAR (uint32_t)(DMA_IFCR_CGIF5|DMA_IFCR_CTEIF5|DMA_IFCR_CHTIF5|DMA_IFCR_CTCIF5)
+#endif
+
+#ifdef STM32F4
+#define DMA_CONF ((uint32_t)( (0x04 << DMA_SxCR_CHSEL_Pos) | \
+ (0x00 << DMA_SxCR_MBURST_Pos)| \
+ (0x00 << DMA_SxCR_PBURST_Pos)| \
+ (0x00 << DMA_SxCR_DBM_Pos) | \
+ (0x03 << DMA_SxCR_PL_Pos) | \
+ (0x00 << DMA_SxCR_PINCOS_Pos)| \
+ (0x00 << DMA_SxCR_MSIZE_Pos) | \
+ (0x00 << DMA_SxCR_PSIZE_Pos) | \
+ (0x01 << DMA_SxCR_MINC_Pos) | \
+ (0x00 << DMA_SxCR_PINC_Pos) | \
+ (0x00 << DMA_SxCR_CIRC_Pos) | \
+ (0x01 << DMA_SxCR_TCIE_Pos) | \
+ (0x01 << DMA_SxCR_TEIE_Pos) | \
+ (0x00 << DMA_SxCR_PFCTRL_Pos)))
+
+#define DMA_S5_CLEAR (uint32_t)(DMA_HIFCR_CTCIF5 | DMA_HIFCR_CTEIF5 | DMA_HIFCR_CDMEIF5 | DMA_HIFCR_CFEIF5 | DMA_HIFCR_CHTIF5)
+#endif
//Под буфер для DMA два последних КБ из буфера
#define ESP_FILE_BUFF_COUNT (SHARED_MEM_1KB_COUNT-2)
diff --git a/Marlin/src/module/motion.cpp b/Marlin/src/module/motion.cpp
index 838605cd54..eb6dc6597c 100644
--- a/Marlin/src/module/motion.cpp
+++ b/Marlin/src/module/motion.cpp
@@ -483,7 +483,7 @@ void do_blocking_move_to(LINEAR_AXIS_ARGS(const float), const_feedRate_t fr_mm_s
DEBUG_SECTION(log_move, "do_blocking_move_to", DEBUGGING(LEVELING));
if (DEBUGGING(LEVELING)) DEBUG_XYZ("> ", LINEAR_AXIS_ARGS());
- const feedRate_t xy_feedrate = fr_mm_s ?: PLANNER_XY_FEEDRATE();
+ const feedRate_t xy_feedrate = fr_mm_s ?: feedRate_t(XY_PROBE_FEEDRATE_MM_S);
#if HAS_Z_AXIS
const feedRate_t z_feedrate = fr_mm_s ?: homing_feedrate(Z_AXIS);
diff --git a/Marlin/src/module/planner.h b/Marlin/src/module/planner.h
index 9b104615f6..5e3922c897 100644
--- a/Marlin/src/module/planner.h
+++ b/Marlin/src/module/planner.h
@@ -857,7 +857,7 @@ class Planner {
static void quick_resume();
#endif
- // Called when an endstop is triggered. Causes the machine to stop inmediately
+ // Called when an endstop is triggered. Causes the machine to stop immediately
static void endstop_triggered(const AxisEnum axis);
// Triggered position of an axis in mm (not core-savvy)
diff --git a/Marlin/src/module/probe.cpp b/Marlin/src/module/probe.cpp
index d0f32a32c0..ded5d43893 100644
--- a/Marlin/src/module/probe.cpp
+++ b/Marlin/src/module/probe.cpp
@@ -250,21 +250,16 @@ xyz_pos_t Probe::offset; // Initialized by settings.load()
TERN_(PROBING_HEATERS_OFF, thermalManager.pause_heaters(dopause));
TERN_(PROBING_FANS_OFF, thermalManager.set_fans_paused(dopause));
TERN_(PROBING_ESTEPPERS_OFF, if (dopause) disable_e_steppers());
- #if ENABLED(PROBING_STEPPERS_OFF)
- IF_DISABLED(DELTA, static uint8_t old_trusted);
+ #if ENABLED(PROBING_STEPPERS_OFF) && DISABLED(DELTA)
+ static uint8_t old_trusted;
if (dopause) {
- #if DISABLED(DELTA)
- old_trusted = axis_trusted;
- DISABLE_AXIS_X();
- DISABLE_AXIS_Y();
- #endif
- IF_DISABLED(PROBING_ESTEPPERS_OFF, disable_e_steppers());
+ old_trusted = axis_trusted;
+ DISABLE_AXIS_X();
+ DISABLE_AXIS_Y();
}
else {
- #if DISABLED(DELTA)
- if (TEST(old_trusted, X_AXIS)) ENABLE_AXIS_X();
- if (TEST(old_trusted, Y_AXIS)) ENABLE_AXIS_Y();
- #endif
+ if (TEST(old_trusted, X_AXIS)) ENABLE_AXIS_X();
+ if (TEST(old_trusted, Y_AXIS)) ENABLE_AXIS_Y();
axis_trusted = old_trusted;
}
#endif
diff --git a/Marlin/src/module/settings.cpp b/Marlin/src/module/settings.cpp
index b30c82260f..47c1314e28 100644
--- a/Marlin/src/module/settings.cpp
+++ b/Marlin/src/module/settings.cpp
@@ -2320,7 +2320,6 @@ void MarlinSettings::postprocess() {
ubl.report_state();
if (!ubl.sanity_check()) {
- SERIAL_EOL();
#if BOTH(EEPROM_CHITCHAT, DEBUG_LEVELING_FEATURE)
ubl.echo_name();
DEBUG_ECHOLNPGM(" initialized.\n");
@@ -3266,7 +3265,6 @@ void MarlinSettings::reset() {
if (!forReplay) {
SERIAL_EOL();
ubl.report_state();
- SERIAL_EOL();
config_heading(false, PSTR("Active Mesh Slot: "), false);
SERIAL_ECHOLN(ubl.storage_slot);
config_heading(false, PSTR("EEPROM can hold "), false);
@@ -3886,7 +3884,7 @@ void MarlinSettings::reset() {
#if HAS_MULTI_LANGUAGE
CONFIG_ECHO_HEADING("UI Language:");
- SERIAL_ECHO_MSG(" M414 S", ui.language);
+ CONFIG_ECHO_MSG(" M414 S", ui.language);
#endif
}
diff --git a/Marlin/src/module/shared_mem/shared_mem.h b/Marlin/src/module/shared_mem/shared_mem.h
index 979e7d5d6b..9e2db14cb7 100644
--- a/Marlin/src/module/shared_mem/shared_mem.h
+++ b/Marlin/src/module/shared_mem/shared_mem.h
@@ -2,9 +2,18 @@
#define SHARED_MEM_H
#include
+#include "../../MarlinCore.h"
+#include "../../inc/MarlinConfig.h"
+#ifdef STM32F1
#define SHARED_MEM_1KB_COUNT 8
#define SHARED_MEM_SIZE SHARED_MEM_1KB_COUNT*1024
+#endif
+
+#ifdef STM32F4
+#define SHARED_MEM_1KB_COUNT 16
+#define SHARED_MEM_SIZE SHARED_MEM_1KB_COUNT*1024
+#endif
extern volatile uint8_t shared_mem[SHARED_MEM_SIZE];
diff --git a/Marlin/src/module/stepper/trinamic.cpp b/Marlin/src/module/stepper/trinamic.cpp
index f9ed43acbf..fd63027974 100644
--- a/Marlin/src/module/stepper/trinamic.cpp
+++ b/Marlin/src/module/stepper/trinamic.cpp
@@ -955,7 +955,7 @@ void reset_trinamic_drivers() {
// TMC Slave Address Conflict Detection
//
// Conflict detection is performed in the following way. Similar methods are used for
-// hardware and software serial, but the implementations are indepenent.
+// hardware and software serial, but the implementations are independent.
//
// 1. Populate a data structure with UART parameters and addresses for all possible axis.
// If an axis is not in use, populate it with recognizable placeholder data.
diff --git a/Marlin/src/module/temperature.cpp b/Marlin/src/module/temperature.cpp
index 5fc6c69573..56322135a4 100644
--- a/Marlin/src/module/temperature.cpp
+++ b/Marlin/src/module/temperature.cpp
@@ -46,7 +46,7 @@
#endif
#if ENABLED(DWIN_CREALITY_LCD)
- #include "../lcd/dwin/e3v2/dwin.h"
+ #include "../lcd/e3v2/creality/dwin.h"
#endif
#if ENABLED(EXTENSIBLE_UI)
@@ -1502,7 +1502,7 @@ void Temperature::manage_heater() {
#endif
#if ENABLED(PIDTEMPCHAMBER)
- // PIDTEMPCHAMBER doens't support a CHAMBER_VENT yet.
+ // PIDTEMPCHAMBER doesn't support a CHAMBER_VENT yet.
temp_chamber.soft_pwm_amount = WITHIN(temp_chamber.celsius, CHAMBER_MINTEMP, CHAMBER_MAXTEMP) ? (int)get_pid_output_chamber() >> 1 : 0;
#else
if (ELAPSED(ms, next_chamber_check_ms)) {
diff --git a/Marlin/src/module/thermistor/thermistor_61.h b/Marlin/src/module/thermistor/thermistor_61.h
index deeec356a1..2916bffd3b 100644
--- a/Marlin/src/module/thermistor/thermistor_61.h
+++ b/Marlin/src/module/thermistor/thermistor_61.h
@@ -31,7 +31,7 @@
// B Value 3950K at 25/50 deg. C
// B Value Tolerance + / - 1%
constexpr temp_entry_t temptable_61[] PROGMEM = {
- { OV( 2.00), 420 }, // Guestimate to ensure we dont lose a reading and drop temps to -50 when over
+ { OV( 2.00), 420 }, // Guestimate to ensure we don't lose a reading and drop temps to -50 when over
{ OV( 12.07), 350 },
{ OV( 12.79), 345 },
{ OV( 13.59), 340 },
diff --git a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_1.h b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_1.h
index 9066b24390..c6a44123a0 100644
--- a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_1.h
+++ b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_1.h
@@ -140,7 +140,7 @@
// Using TMC devices in intelligent mode requires extra connections to each device. Unfortunately
// the SKR does not have many free pins (especially if a display is in use). The SPI-based devices
// will require 3 connections (clock, mosi, miso), plus a chip select line (CS) for each driver.
- // The UART-based devices require 2 pis per deriver (one of which must be interrupt capable).
+ // The UART-based devices require 2 pis per driver (one of which must be interrupt capable).
// The same SPI pins can be shared with the display/SD card reader, meaning SPI-based devices are
// probably a good choice for this board.
//
diff --git a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h
index b262212b7e..42c6f4d029 100644
--- a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h
+++ b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h
@@ -265,7 +265,7 @@
#elif HAS_ADC_BUTTONS
- #error "ADC BUTTONS do not work unmodifed on SKR 1.3, The ADC ports cannot take more than 3.3v."
+ #error "ADC BUTTONS do not work unmodified on SKR 1.3, The ADC ports cannot take more than 3.3v."
#elif HAS_SPI_TFT // Config for Classic UI (emulated DOGM) and Color UI
diff --git a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h
index 73b4d3e63d..43e954a4f1 100644
--- a/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h
+++ b/Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h
@@ -494,7 +494,7 @@
#endif // HAS_WIRED_LCD
#if HAS_ADC_BUTTONS
- #error "ADC BUTTONS do not work unmodifed on SKR 1.4, The ADC ports cannot take more than 3.3v."
+ #error "ADC BUTTONS do not work unmodified on SKR 1.4, The ADC ports cannot take more than 3.3v."
#endif
//
diff --git a/Marlin/src/pins/lpc1768/pins_GMARSH_X6_REV1.h b/Marlin/src/pins/lpc1768/pins_GMARSH_X6_REV1.h
index cbf6ca2d3c..1ec1131b45 100644
--- a/Marlin/src/pins/lpc1768/pins_GMARSH_X6_REV1.h
+++ b/Marlin/src/pins/lpc1768/pins_GMARSH_X6_REV1.h
@@ -25,7 +25,7 @@
#define BOARD_INFO_NAME "GMARSH X6 REV1"
-// Ignore temp readings during develpment.
+// Ignore temp readings during development.
//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
//
diff --git a/Marlin/src/pins/pins.h b/Marlin/src/pins/pins.h
index f1c431cf04..dd3a794703 100644
--- a/Marlin/src/pins/pins.h
+++ b/Marlin/src/pins/pins.h
@@ -639,6 +639,8 @@
#include "stm32f4/pins_FYSETC_CHEETAH_V20.h" // STM32F4 env:FYSETC_CHEETAH_V20
#elif MB(MKS_MONSTER8)
#include "stm32f4/pins_MKS_MONSTER8.h" // STM32F4 env:mks_monster8 env:mks_monster8_usb_flash_drive env:mks_monster8_usb_flash_drive_msc
+#elif MB(MKS_ROBIN_NANO_S_V13)
+ #include "stm32f4/pins_MKS_ROBIN_NANO_S_V13.h"//STM32F4 env:mks_robin_nano_v1_3
//
// ARM Cortex M7
@@ -769,8 +771,10 @@
#error "BOARD_RAMPS_LONGER3D_LK4PRO is now BOARD_LONGER3D_LKx_PRO. Please update your configuration."
#elif MB(BTT_SKR_V2_0)
#error "BTT_SKR_V2_0 is now BTT_SKR_V2_0_REV_A or BTT_SKR_V2_0_REV_B. See https://bit.ly/3t5d9JQ for more information. Please update your configuration."
+ #elif defined(MOTHERBOARD)
+ #error "Unknown MOTHERBOARD value set in Configuration.h."
#else
- #error "Unknown MOTHERBOARD value set in Configuration.h"
+ #error "MOTHERBOARD not defined! Use '#define MOTHERBOARD BOARD_...' in Configuration.h."
#endif
#undef BOARD_MKS_13
diff --git a/Marlin/src/pins/ramps/pins_TENLOG_D3_HERO.h b/Marlin/src/pins/ramps/pins_TENLOG_D3_HERO.h
index de8db60847..b884fcbfc7 100644
--- a/Marlin/src/pins/ramps/pins_TENLOG_D3_HERO.h
+++ b/Marlin/src/pins/ramps/pins_TENLOG_D3_HERO.h
@@ -138,7 +138,7 @@
#define HEATER_BED_PIN 8
#define FAN_PIN 9
-#define FAN1_PIN 5 // Normall this would be a servo pin
+#define FAN1_PIN 5 // Normally this would be a servo pin
// XXX Runout support unknown?
//#define NUM_RUNOUT_SENSORS 0
diff --git a/Marlin/src/pins/sam/pins_ADSK.h b/Marlin/src/pins/sam/pins_ADSK.h
index 6fe0520f81..425d6d45af 100644
--- a/Marlin/src/pins/sam/pins_ADSK.h
+++ b/Marlin/src/pins/sam/pins_ADSK.h
@@ -47,10 +47,10 @@ A stepper for E0 extruder
Vcc (now "5V" on the board but actual 3.3V because of jumper))
(Hold)&(GND) - Bed thermistor (also require pullup resistor 4.7K between "Hold" and
Vcc (now "5V" on the board but actual 3.3V because of jumper))
-(CoolEn) - 3.3v signal to controll extruder heater MOSFET
+(CoolEn) - 3.3v signal to control extruder heater MOSFET
(Resume) - 3.3v signal to control heatbed MOSFET
-(SDA) - 3.3v signal to controll extruder fan
-(SCL) - 3.3v signal to controll extruder cooling fan
+(SDA) - 3.3v signal to control extruder fan
+(SCL) - 3.3v signal to control extruder cooling fan
*/
/* CNC Shield pinout
@@ -137,7 +137,7 @@ A stepper for E0 extruder
* The 2004 LCD should be powered with 5V.
* The next LCD pins RS,D4,D5,D6,D7 have internal pull-ups to 5V and as result the 5V will be on these pins.
* Luckily these internal pull-ups have really high resistance and adding 33K pull-down resistors will create
- * simple voltage divider that will bring the voltage down just slightly bellow 3.3V.
+ * simple voltage divider that will bring the voltage down just slightly below 3.3V.
*
* This LCD also has buttons that connected to the same ADC pin with different voltage divider combinations.
* On the LCD panel there is internal pull-up resistor of the 4.7K connected to 5V.
@@ -175,7 +175,7 @@ A stepper for E0 extruder
#define ADC_BUTTONS_VALUE_SCALE (5.0/AREF_VOLTS) // The LCD module pullup voltage is 5.0V but ADC reference voltage is 3.3V
- #define ADC_BUTTONS_R_PULLDOWN 4.7 // Moves voltage down to be bellow 3.3V instead of 5V
+ #define ADC_BUTTONS_R_PULLDOWN 4.7 // Moves voltage down to be below 3.3V instead of 5V
// the resistors values will be scaled because of 4.7K pulldown parallel resistor
#define _ADC_BUTTONS_R_SCALED(R) ((R) * (ADC_BUTTONS_R_PULLDOWN) / ((R) + ADC_BUTTONS_R_PULLDOWN))
diff --git a/Marlin/src/pins/stm32f4/pins_BTT_SKR_V2_0_common.h b/Marlin/src/pins/stm32f4/pins_BTT_SKR_V2_0_common.h
index a9dfc367bf..e5d6b6891b 100644
--- a/Marlin/src/pins/stm32f4/pins_BTT_SKR_V2_0_common.h
+++ b/Marlin/src/pins/stm32f4/pins_BTT_SKR_V2_0_common.h
@@ -153,13 +153,6 @@
#define POWER_LOSS_PIN PC15 // PWRDET
#endif
-//
-// NeoPixel LED
-//
-#ifndef NEOPIXEL_PIN
- #define NEOPIXEL_PIN PE6
-#endif
-
//
// Control pin of driver/heater/fan power supply
//
@@ -511,6 +504,13 @@
#endif
#endif
+//
+// NeoPixel LED
+//
+#ifndef NEOPIXEL_PIN
+ #define NEOPIXEL_PIN PE6
+#endif
+
//
// WIFI
//
diff --git a/Marlin/src/pins/stm32f4/pins_MKS_MONSTER8.h b/Marlin/src/pins/stm32f4/pins_MKS_MONSTER8.h
index d15bffae6e..2db5584109 100644
--- a/Marlin/src/pins/stm32f4/pins_MKS_MONSTER8.h
+++ b/Marlin/src/pins/stm32f4/pins_MKS_MONSTER8.h
@@ -248,7 +248,7 @@
//
// Onboard SD card
//
-// detect pin dont work when ONBOARD and NO_SD_HOST_DRIVE disabled
+// detect pin doesn't work when ONBOARD and NO_SD_HOST_DRIVE disabled
#if SD_CONNECTION_IS(ONBOARD)
#define ENABLE_SPI3
#define SD_SS_PIN -1
diff --git a/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_NANO_S_V13.h b/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_NANO_S_V13.h
new file mode 100644
index 0000000000..611d05b9f4
--- /dev/null
+++ b/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_NANO_S_V13.h
@@ -0,0 +1,212 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ */
+#pragma once
+
+//#define ALLOW_STM32DUINO
+#include "env_validate.h"
+
+#if HOTENDS > 2 || E_STEPPERS > 2
+ #error "MKS Robin Nano-S V1.3 supports up to 2 hotends / E-steppers."
+#endif
+
+#define BOARD_INFO_NAME "MKS Robin Nano-S V1.3"
+
+#define SPI_DEVICE 2
+
+// Avoid conflict with TIMER_TONE
+#define STEP_TIMER 10
+
+// Servos
+//
+#define SERVO0_PIN PA8 // Enable BLTOUCH
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PA15
+#define Y_STOP_PIN PA12
+#define Z_MIN_PIN PA11
+#define Z_MAX_PIN PC4
+#define FIL_RUNOUT_PIN PA4
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PE4
+#define X_STEP_PIN PE3
+#define X_DIR_PIN PE2
+
+#define Y_ENABLE_PIN PE1
+#define Y_STEP_PIN PE0
+#define Y_DIR_PIN PB9
+
+#define Z_ENABLE_PIN PB8
+#define Z_STEP_PIN PB5
+#define Z_DIR_PIN PB4
+
+#define E0_ENABLE_PIN PB3
+#define E0_STEP_PIN PD6
+#define E0_DIR_PIN PD3
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN PD9
+#endif
+
+#define E1_ENABLE_PIN PA3
+#define E1_STEP_PIN PA6
+#define E1_DIR_PIN PA1
+
+#if HAS_TMC_UART
+ //
+ // Software serial
+ // No Hardware serial for steppers
+ //
+ #define X_SERIAL_TX_PIN PA6
+ #define X_SERIAL_RX_PIN PA1
+
+ #define Y_SERIAL_TX_PIN PA6
+ #define Y_SERIAL_RX_PIN PA1
+
+ #define Z_SERIAL_TX_PIN PA6
+ #define Z_SERIAL_RX_PIN PA1
+
+ #define E0_SERIAL_TX_PIN PA6
+ #define E0_SERIAL_RX_PIN PA1
+
+ #define E1_SERIAL_TX_PIN PA6
+ #define E1_SERIAL_RX_PIN PA1
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC1 // TH1
+#define TEMP_1_PIN PC2 // TH2
+#define TEMP_BED_PIN PC0 // TB1
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC3 // HEATER1
+#define HEATER_1_PIN PB0 // HEATER2
+#define HEATER_BED_PIN PA0 // HOT BED
+
+#define FAN_PIN PB0 // FAN
+#define FAN1_PIN PB1
+//
+// Thermocouples
+//
+//#define TEMP_0_CS_PIN HEATER_0_PIN // TC1 - CS1
+//#define TEMP_0_CS_PIN HEATER_1_PIN // TC2 - CS2
+
+//
+// Misc. Functions
+//
+#define MT_DET_1_PIN PA4
+#define MT_DET_2_PIN PE6
+#define MT_DET_PIN_INVERTING false // LVGL UI filament RUNOUT PIN STATE
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN MT_DET_1_PIN
+#endif
+#ifndef FIL_RUNOUT2_PIN
+ #define FIL_RUNOUT2_PIN MT_DET_2_PIN
+#endif
+
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#define SDIO_SUPPORT
+#define SDIO_CLOCK 4500000
+#define SD_DETECT_PIN PD12
+
+#define BEEPER_PIN PC5
+
+//Touch screen
+#define TOUCH_CS_PIN PA7 // SPI2_NSS
+#define TOUCH_SCK_PIN PB13 // SPI2_SCK
+#define TOUCH_MISO_PIN PB14 // SPI2_MISO
+#define TOUCH_MOSI_PIN PB15 // SPI2_MOSI
+
+#ifndef XPT2046_X_CALIBRATION
+ #define XPT2046_X_CALIBRATION 17880
+#endif
+#ifndef XPT2046_Y_CALIBRATION
+ #define XPT2046_Y_CALIBRATION -12234
+#endif
+#ifndef XPT2046_X_OFFSET
+ #define XPT2046_X_OFFSET -45
+#endif
+#ifndef XPT2046_Y_OFFSET
+ #define XPT2046_Y_OFFSET 349
+#endif
+
+
+
+#if HAS_FSMC_TFT
+ // #define DOGLCD_MOSI -1 // Prevent auto-define by Conditionals_post.h
+ // #define DOGLCD_SCK -1
+
+ #define TFT_RESET_PIN PC6 // FSMC_RST
+ #define TFT_BACKLIGHT_PIN PD13
+
+ #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
+ #define FSMC_CS_PIN PD7
+ #define FSMC_RS_PIN PD11
+ #define FSMC_DMA_DEV DMA2
+ #define FSMC_DMA_CHANNEL DMA_CH5
+
+ #define TFT_CS_PIN FSMC_CS_PIN
+ #define TFT_RS_PIN FSMC_RS_PIN
+
+ #define TFT_BUFFER_SIZE 480*30
+#endif
+
+
+
+#define HAS_SPI_FLASH 1
+#if HAS_SPI_FLASH
+ #define SPI_FLASH_SIZE 0x1000000 // 16MB
+ #define W25QXX_CS_PIN PB12
+ #define W25QXX_MOSI_PIN PB15
+ #define W25QXX_MISO_PIN PB14
+ #define W25QXX_SCK_PIN PB13
+#endif
+
+/*
+Модуль MKS WIFI
+*/
+#define MKS_WIFI
+
+#ifdef MKS_WIFI
+
+ #define MKS_WIFI_SERIAL_NUM SERIAL_PORT_2
+ #define MKS_WIFI_UART USART1
+ #undef PLATFORM_M997_SUPPORT
+
+ #define MKS_WIFI_IO0 PC13
+ #define MKS_WIFI_IO4 PC7
+ #define MKS_WIFI_IO_RST PA5
+#endif
diff --git a/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_NANO_V3.h b/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_NANO_V3.h
index c6b25e257f..eff941b957 100644
--- a/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_NANO_V3.h
+++ b/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_NANO_V3.h
@@ -246,7 +246,7 @@
//
// Onboard SD card
//
-// detect pin dont work when ONBOARD and NO_SD_HOST_DRIVE disabled
+// detect pin doesn't work when ONBOARD and NO_SD_HOST_DRIVE disabled
#if SD_CONNECTION_IS(ONBOARD)
#define ENABLE_SPI3
#define SD_SS_PIN -1
diff --git a/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_PRO_V2.h b/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_PRO_V2.h
index 9fc8676f37..2e47f98e9f 100644
--- a/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_PRO_V2.h
+++ b/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_PRO_V2.h
@@ -219,7 +219,7 @@
// Onboard SD card
// NOT compatible with LCD
//
-// detect pin dont work when ONBOARD and NO_SD_HOST_DRIVE disabled
+// detect pin doesn't work when ONBOARD and NO_SD_HOST_DRIVE disabled
#if !defined(SDCARD_CONNECTION) || SDCARD_CONNECTION == ONBOARD
#if USE_NEW_SPI_API
#define SD_SPI MARLIN_SPI(HardwareSPI3, PC9)
diff --git a/Marlin/src/sd/cardreader.cpp b/Marlin/src/sd/cardreader.cpp
index c697db534d..29d8f670eb 100644
--- a/Marlin/src/sd/cardreader.cpp
+++ b/Marlin/src/sd/cardreader.cpp
@@ -32,7 +32,7 @@
#include "../lcd/marlinui.h"
#if ENABLED(DWIN_CREALITY_LCD)
- #include "../lcd/dwin/e3v2/dwin.h"
+ #include "../lcd/e3v2/creality/dwin.h"
#endif
#include "../module/planner.h" // for synchronize
diff --git a/Marlin/src/sd/disk_io_driver.h b/Marlin/src/sd/disk_io_driver.h
index 73c12efcfa..02e2b3c739 100644
--- a/Marlin/src/sd/disk_io_driver.h
+++ b/Marlin/src/sd/disk_io_driver.h
@@ -24,7 +24,7 @@
#include
/**
- * DiskIO Interace
+ * DiskIO Interface
*
* Interface for low level disk io
*/
diff --git a/Marlin/src/sd/usb_flashdrive/lib-uhs2/UsbCore.h b/Marlin/src/sd/usb_flashdrive/lib-uhs2/UsbCore.h
index 5c76ffb758..2b6e1be522 100644
--- a/Marlin/src/sd/usb_flashdrive/lib-uhs2/UsbCore.h
+++ b/Marlin/src/sd/usb_flashdrive/lib-uhs2/UsbCore.h
@@ -114,7 +114,7 @@ typedef MAX3421e MAX3421E; // Official Arduinos (UNO, Duemilanove, Mega
#define USB_NUMDEVICES 16 //number of USB devices
//#define HUB_MAX_HUBS 7 // maximum number of hubs that can be attached to the host controller
-#define HUB_PORT_RESET_DELAY 20 // hub port reset delay 10 ms recomended, can be up to 20 ms
+#define HUB_PORT_RESET_DELAY 20 // hub port reset delay 10 ms recommended, can be up to 20 ms
/* USB state machine states */
#define USB_STATE_MASK 0xF0
diff --git a/Marlin/src/sd/usb_flashdrive/lib-uhs2/confdescparser.h b/Marlin/src/sd/usb_flashdrive/lib-uhs2/confdescparser.h
index 9ed35fff65..19d3756535 100644
--- a/Marlin/src/sd/usb_flashdrive/lib-uhs2/confdescparser.h
+++ b/Marlin/src/sd/usb_flashdrive/lib-uhs2/confdescparser.h
@@ -57,7 +57,7 @@ class ConfigDescParser : public USBReadParser {
uint8_t dscrLen; // Descriptor length
uint8_t dscrType; // Descriptor type
- bool isGoodInterface; // Apropriate interface flag
+ bool isGoodInterface; // Appropriate interface flag
uint8_t confValue; // Configuration value
uint8_t protoValue; // Protocol value
uint8_t ifaceNumber; // Interface number
diff --git a/Marlin/src/sd/usb_flashdrive/lib-uhs3/UHS_host/UHS_UsbCore.h b/Marlin/src/sd/usb_flashdrive/lib-uhs3/UHS_host/UHS_UsbCore.h
index 1591f3b74b..58d7ba200c 100644
--- a/Marlin/src/sd/usb_flashdrive/lib-uhs3/UHS_host/UHS_UsbCore.h
+++ b/Marlin/src/sd/usb_flashdrive/lib-uhs3/UHS_host/UHS_UsbCore.h
@@ -248,7 +248,7 @@ e-mail : support@circuitsathome.com
#define UHS_HOST_TRANSFER_MAX_MS 10000 // USB transfer timeout in ms, per section 9.2.6.1 of USB 2.0 spec
#define UHS_HOST_TRANSFER_RETRY_MAXIMUM 3 // 3 retry limit for a transfer
#define UHS_HOST_DEBOUNCE_DELAY_MS 500 // settle delay in milliseconds
-#define UHS_HUB_RESET_DELAY_MS 20 // hub port reset delay, 10ms recomended, but can be up to 20ms
+#define UHS_HUB_RESET_DELAY_MS 20 // hub port reset delay, 10ms recommended, but can be up to 20ms
//
// We only provide the minimum needed information for enumeration.
diff --git a/Marlin/src/sd/usb_flashdrive/lib-uhs3/UHS_host/UHS_macros.h b/Marlin/src/sd/usb_flashdrive/lib-uhs3/UHS_host/UHS_macros.h
index fb2e8b3871..bb2a87cf03 100644
--- a/Marlin/src/sd/usb_flashdrive/lib-uhs3/UHS_host/UHS_macros.h
+++ b/Marlin/src/sd/usb_flashdrive/lib-uhs3/UHS_host/UHS_macros.h
@@ -150,7 +150,7 @@ e-mail : support@circuitsathome.com
// HANDY MACROS
////////////////////////////////////////////////////////////////////////////////
-// Atmoically set/clear single bits using bitbands.
+// Atomically set/clear single bits using bitbands.
// Believe it or not, this boils down to a constant,
// and is less code than using |= &= operators.
// Bonus, it makes code easier to read too.
diff --git a/STM32F407.svd b/STM32F407.svd
new file mode 100644
index 0000000000..d528bcc51e
--- /dev/null
+++ b/STM32F407.svd
@@ -0,0 +1,61681 @@
+
+
+ STM32F407
+ 1.3
+ STM32F407
+
+
+ CM4
+ r0p1
+ little
+ true
+ true
+ 4
+ false
+
+
+
+ 8
+
+ 32
+
+ 0x20
+ 0x0
+ 0xFFFFFFFF
+
+
+ RNG
+ Random number generator
+ RNG
+ 0x50060800
+
+ 0x0
+ 0x400
+ registers
+
+
+ FPU
+ FPU interrupt
+ 81
+
+
+
+ CR
+ CR
+ control register
+ 0x0
+ 0x20
+ read-write
+ 0x00000000
+
+
+ IE
+ Interrupt enable
+ 3
+ 1
+
+
+ RNGEN
+ Random number generator
+ enable
+ 2
+ 1
+
+
+
+
+ SR
+ SR
+ status register
+ 0x4
+ 0x20
+ 0x00000000
+
+
+ SEIS
+ Seed error interrupt
+ status
+ 6
+ 1
+ read-write
+
+
+ CEIS
+ Clock error interrupt
+ status
+ 5
+ 1
+ read-write
+
+
+ SECS
+ Seed error current status
+ 2
+ 1
+ read-only
+
+
+ CECS
+ Clock error current status
+ 1
+ 1
+ read-only
+
+
+ DRDY
+ Data ready
+ 0
+ 1
+ read-only
+
+
+
+
+ DR
+ DR
+ data register
+ 0x8
+ 0x20
+ read-only
+ 0x00000000
+
+
+ RNDATA
+ Random data
+ 0
+ 32
+
+
+
+
+
+
+ DCMI
+ Digital camera interface
+ DCMI
+ 0x50050000
+
+ 0x0
+ 0x400
+ registers
+
+
+ DCMI
+ DCMI global interrupt
+ 78
+
+
+
+ CR
+ CR
+ control register 1
+ 0x0
+ 0x20
+ read-write
+ 0x0000
+
+
+ ENABLE
+ DCMI enable
+ 14
+ 1
+
+
+ EDM
+ Extended data mode
+ 10
+ 2
+
+
+ FCRC
+ Frame capture rate control
+ 8
+ 2
+
+
+ VSPOL
+ Vertical synchronization
+ polarity
+ 7
+ 1
+
+
+ HSPOL
+ Horizontal synchronization
+ polarity
+ 6
+ 1
+
+
+ PCKPOL
+ Pixel clock polarity
+ 5
+ 1
+
+
+ ESS
+ Embedded synchronization
+ select
+ 4
+ 1
+
+
+ JPEG
+ JPEG format
+ 3
+ 1
+
+
+ CROP
+ Crop feature
+ 2
+ 1
+
+
+ CM
+ Capture mode
+ 1
+ 1
+
+
+ CAPTURE
+ Capture enable
+ 0
+ 1
+
+
+
+
+ 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
+
+
+
+
+
+
+ FSMC
+ Flexible static memory controller
+ FSMC
+ 0xA0000000
+
+ 0x0
+ 0x400
+ 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
+ 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
+
+
+
+
+
+
+ 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
+
+
+ DBG_I2C2_SMBUS_TIMEOUT
+ DBG_I2C2_SMBUS_TIMEOUT
+ 16
+ 1
+
+
+ DBG_TIM8_STOP
+ DBG_TIM8_STOP
+ 17
+ 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
+
+
+
+
+ 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_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_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
+
+
+ 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
+
+
+ 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
+
+
+ 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
+
+
+ ETHMACRST
+ Ethernet MAC reset
+ 25
+ 1
+
+
+ DMA2RST
+ DMA2 reset
+ 22
+ 1
+
+
+ DMA1RST
+ DMA2 reset
+ 21
+ 1
+
+
+ CRCRST
+ CRC reset
+ 12
+ 1
+
+
+ GPIOIRST
+ IO port I reset
+ 8
+ 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
+
+
+ RNGRST
+ Random number generator module
+ reset
+ 6
+ 1
+
+
+ DCMIRST
+ Camera interface reset
+ 0
+ 1
+
+
+
+
+ AHB3RSTR
+ AHB3RSTR
+ AHB3 peripheral reset register
+ 0x18
+ 0x20
+ read-write
+ 0x00000000
+
+
+ FSMCRST
+ Flexible static memory controller module
+ reset
+ 0
+ 1
+
+
+
+
+ APB1RSTR
+ APB1RSTR
+ APB1 peripheral reset register
+ 0x20
+ 0x20
+ read-write
+ 0x00000000
+
+
+ DACRST
+ DAC reset
+ 29
+ 1
+
+
+ PWRRST
+ Power interface reset
+ 28
+ 1
+
+
+ CAN2RST
+ CAN2 reset
+ 26
+ 1
+
+
+ CAN1RST
+ CAN1 reset
+ 25
+ 1
+
+
+ I2C3RST
+ I2C3 reset
+ 23
+ 1
+
+
+ I2C2RST
+ I2C 2 reset
+ 22
+ 1
+
+
+ I2C1RST
+ I2C 1 reset
+ 21
+ 1
+
+
+ UART5RST
+ USART 5 reset
+ 20
+ 1
+
+
+ UART4RST
+ USART 4 reset
+ 19
+ 1
+
+
+ UART3RST
+ USART 3 reset
+ 18
+ 1
+
+
+ UART2RST
+ USART 2 reset
+ 17
+ 1
+
+
+ SPI3RST
+ SPI 3 reset
+ 15
+ 1
+
+
+ SPI2RST
+ SPI 2 reset
+ 14
+ 1
+
+
+ WWDGRST
+ Window watchdog reset
+ 11
+ 1
+
+
+ TIM14RST
+ TIM14 reset
+ 8
+ 1
+
+
+ TIM13RST
+ TIM13 reset
+ 7
+ 1
+
+
+ TIM12RST
+ TIM12 reset
+ 6
+ 1
+
+
+ TIM7RST
+ TIM7 reset
+ 5
+ 1
+
+
+ TIM6RST
+ TIM6 reset
+ 4
+ 1
+
+
+ TIM5RST
+ TIM5 reset
+ 3
+ 1
+
+
+ TIM4RST
+ TIM4 reset
+ 2
+ 1
+
+
+ TIM3RST
+ TIM3 reset
+ 1
+ 1
+
+
+ TIM2RST
+ TIM2 reset
+ 0
+ 1
+
+
+
+
+ APB2RSTR
+ APB2RSTR
+ APB2 peripheral reset register
+ 0x24
+ 0x20
+ read-write
+ 0x00000000
+
+
+ TIM11RST
+ TIM11 reset
+ 18
+ 1
+
+
+ TIM10RST
+ TIM10 reset
+ 17
+ 1
+
+
+ TIM9RST
+ TIM9 reset
+ 16
+ 1
+
+
+ SYSCFGRST
+ System configuration controller
+ reset
+ 14
+ 1
+
+
+ SPI1RST
+ SPI 1 reset
+ 12
+ 1
+
+
+ SDIORST
+ SDIO reset
+ 11
+ 1
+
+
+ ADCRST
+ ADC interface reset (common to all
+ ADCs)
+ 8
+ 1
+
+
+ USART6RST
+ USART6 reset
+ 5
+ 1
+
+
+ USART1RST
+ USART1 reset
+ 4
+ 1
+
+
+ TIM8RST
+ TIM8 reset
+ 1
+ 1
+
+
+ TIM1RST
+ TIM1 reset
+ 0
+ 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
+
+
+ ETHMACPTPEN
+ Ethernet PTP clock enable
+ 28
+ 1
+
+
+ ETHMACRXEN
+ Ethernet Reception clock
+ enable
+ 27
+ 1
+
+
+ ETHMACTXEN
+ Ethernet Transmission clock
+ enable
+ 26
+ 1
+
+
+ ETHMACEN
+ Ethernet MAC clock enable
+ 25
+ 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
+
+
+ GPIOIEN
+ IO port I clock enable
+ 8
+ 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
+
+
+ RNGEN
+ Random number generator clock
+ enable
+ 6
+ 1
+
+
+ DCMIEN
+ Camera interface enable
+ 0
+ 1
+
+
+
+
+ AHB3ENR
+ AHB3ENR
+ AHB3 peripheral clock enable
+ register
+ 0x38
+ 0x20
+ read-write
+ 0x00000000
+
+
+ FSMCEN
+ Flexible static memory controller module
+ clock enable
+ 0
+ 1
+
+
+
+
+ APB1ENR
+ APB1ENR
+ APB1 peripheral clock enable
+ register
+ 0x40
+ 0x20
+ read-write
+ 0x00000000
+
+
+ DACEN
+ DAC interface clock enable
+ 29
+ 1
+
+
+ PWREN
+ Power interface clock
+ enable
+ 28
+ 1
+
+
+ CAN2EN
+ CAN 2 clock enable
+ 26
+ 1
+
+
+ CAN1EN
+ CAN 1 clock enable
+ 25
+ 1
+
+
+ I2C3EN
+ I2C3 clock enable
+ 23
+ 1
+
+
+ I2C2EN
+ I2C2 clock enable
+ 22
+ 1
+
+
+ I2C1EN
+ I2C1 clock enable
+ 21
+ 1
+
+
+ UART5EN
+ UART5 clock enable
+ 20
+ 1
+
+
+ UART4EN
+ UART4 clock enable
+ 19
+ 1
+
+
+ USART3EN
+ USART3 clock enable
+ 18
+ 1
+
+
+ USART2EN
+ USART 2 clock enable
+ 17
+ 1
+
+
+ SPI3EN
+ SPI3 clock enable
+ 15
+ 1
+
+
+ SPI2EN
+ SPI2 clock enable
+ 14
+ 1
+
+
+ WWDGEN
+ Window watchdog clock
+ enable
+ 11
+ 1
+
+
+ TIM14EN
+ TIM14 clock enable
+ 8
+ 1
+
+
+ TIM13EN
+ TIM13 clock enable
+ 7
+ 1
+
+
+ TIM12EN
+ TIM12 clock enable
+ 6
+ 1
+
+
+ TIM7EN
+ TIM7 clock enable
+ 5
+ 1
+
+
+ TIM6EN
+ TIM6 clock enable
+ 4
+ 1
+
+
+ TIM5EN
+ TIM5 clock enable
+ 3
+ 1
+
+
+ TIM4EN
+ TIM4 clock enable
+ 2
+ 1
+
+
+ TIM3EN
+ TIM3 clock enable
+ 1
+ 1
+
+
+ TIM2EN
+ TIM2 clock enable
+ 0
+ 1
+
+
+
+
+ APB2ENR
+ APB2ENR
+ APB2 peripheral clock enable
+ register
+ 0x44
+ 0x20
+ read-write
+ 0x00000000
+
+
+ TIM11EN
+ TIM11 clock enable
+ 18
+ 1
+
+
+ TIM10EN
+ TIM10 clock enable
+ 17
+ 1
+
+
+ TIM9EN
+ TIM9 clock enable
+ 16
+ 1
+
+
+ SYSCFGEN
+ System configuration controller clock
+ enable
+ 14
+ 1
+
+
+ SPI1EN
+ SPI1 clock enable
+ 12
+ 1
+
+
+ SDIOEN
+ SDIO clock enable
+ 11
+ 1
+
+
+ ADC3EN
+ ADC3 clock enable
+ 10
+ 1
+
+
+ ADC2EN
+ ADC2 clock enable
+ 9
+ 1
+
+
+ ADC1EN
+ ADC1 clock enable
+ 8
+ 1
+
+
+ USART6EN
+ USART6 clock enable
+ 5
+ 1
+
+
+ USART1EN
+ USART1 clock enable
+ 4
+ 1
+
+
+ TIM8EN
+ TIM8 clock enable
+ 1
+ 1
+
+
+ TIM1EN
+ TIM1 clock enable
+ 0
+ 1
+
+
+
+
+ AHB1LPENR
+ AHB1LPENR
+ AHB1 peripheral clock enable in low power
+ mode register
+ 0x50
+ 0x20
+ read-write
+ 0x7E6791FF
+
+
+ OTGHSULPILPEN
+ USB OTG HS ULPI clock enable during
+ Sleep mode
+ 30
+ 1
+
+
+ OTGHSLPEN
+ USB OTG HS clock enable during Sleep
+ mode
+ 29
+ 1
+
+
+ ETHMACPTPLPEN
+ Ethernet PTP clock enable during Sleep
+ mode
+ 28
+ 1
+
+
+ ETHMACRXLPEN
+ Ethernet reception clock enable during
+ Sleep mode
+ 27
+ 1
+
+
+ ETHMACTXLPEN
+ Ethernet transmission clock enable
+ during Sleep mode
+ 26
+ 1
+
+
+ ETHMACLPEN
+ Ethernet MAC clock enable during Sleep
+ mode
+ 25
+ 1
+
+
+ DMA2LPEN
+ DMA2 clock enable during Sleep
+ mode
+ 22
+ 1
+
+
+ DMA1LPEN
+ DMA1 clock enable during Sleep
+ mode
+ 21
+ 1
+
+
+ BKPSRAMLPEN
+ Backup SRAM interface clock enable
+ during Sleep mode
+ 18
+ 1
+
+
+ SRAM2LPEN
+ SRAM 2 interface clock enable during
+ Sleep mode
+ 17
+ 1
+
+
+ SRAM1LPEN
+ SRAM 1interface clock enable during
+ Sleep mode
+ 16
+ 1
+
+
+ FLITFLPEN
+ Flash interface clock enable during
+ Sleep mode
+ 15
+ 1
+
+
+ CRCLPEN
+ CRC clock enable during Sleep
+ mode
+ 12
+ 1
+
+
+ GPIOILPEN
+ IO port I clock enable during Sleep
+ mode
+ 8
+ 1
+
+
+ GPIOHLPEN
+ IO port H clock enable during Sleep
+ mode
+ 7
+ 1
+
+
+ GPIOGLPEN
+ IO port G clock enable during Sleep
+ mode
+ 6
+ 1
+
+
+ GPIOFLPEN
+ IO port F clock enable during Sleep
+ mode
+ 5
+ 1
+
+
+ GPIOELPEN
+ IO port E clock enable during Sleep
+ mode
+ 4
+ 1
+
+
+ GPIODLPEN
+ IO port D clock enable during Sleep
+ mode
+ 3
+ 1
+
+
+ GPIOCLPEN
+ IO port C clock enable during Sleep
+ mode
+ 2
+ 1
+
+
+ GPIOBLPEN
+ IO port B clock enable during Sleep
+ mode
+ 1
+ 1
+
+
+ GPIOALPEN
+ IO port A clock enable during sleep
+ mode
+ 0
+ 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
+
+
+ RNGLPEN
+ Random number generator clock enable
+ during Sleep mode
+ 6
+ 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
+
+
+ FSMCLPEN
+ Flexible static memory controller module
+ clock enable during Sleep mode
+ 0
+ 1
+
+
+
+
+ APB1LPENR
+ APB1LPENR
+ APB1 peripheral clock enable in low power
+ mode register
+ 0x60
+ 0x20
+ read-write
+ 0x36FEC9FF
+
+
+ DACLPEN
+ DAC interface clock enable during Sleep
+ mode
+ 29
+ 1
+
+
+ PWRLPEN
+ Power interface clock enable during
+ Sleep mode
+ 28
+ 1
+
+
+ CAN2LPEN
+ CAN 2 clock enable during Sleep
+ mode
+ 26
+ 1
+
+
+ CAN1LPEN
+ CAN 1 clock enable during Sleep
+ mode
+ 25
+ 1
+
+
+ I2C3LPEN
+ I2C3 clock enable during Sleep
+ mode
+ 23
+ 1
+
+
+ I2C2LPEN
+ I2C2 clock enable during Sleep
+ mode
+ 22
+ 1
+
+
+ I2C1LPEN
+ I2C1 clock enable during Sleep
+ mode
+ 21
+ 1
+
+
+ UART5LPEN
+ UART5 clock enable during Sleep
+ mode
+ 20
+ 1
+
+
+ UART4LPEN
+ UART4 clock enable during Sleep
+ mode
+ 19
+ 1
+
+
+ USART3LPEN
+ USART3 clock enable during Sleep
+ mode
+ 18
+ 1
+
+
+ USART2LPEN
+ USART2 clock enable during Sleep
+ mode
+ 17
+ 1
+
+
+ SPI3LPEN
+ SPI3 clock enable during Sleep
+ mode
+ 15
+ 1
+
+
+ SPI2LPEN
+ SPI2 clock enable during Sleep
+ mode
+ 14
+ 1
+
+
+ WWDGLPEN
+ Window watchdog clock enable during
+ Sleep mode
+ 11
+ 1
+
+
+ TIM14LPEN
+ TIM14 clock enable during Sleep
+ mode
+ 8
+ 1
+
+
+ TIM13LPEN
+ TIM13 clock enable during Sleep
+ mode
+ 7
+ 1
+
+
+ TIM12LPEN
+ TIM12 clock enable during Sleep
+ mode
+ 6
+ 1
+
+
+ TIM7LPEN
+ TIM7 clock enable during Sleep
+ mode
+ 5
+ 1
+
+
+ TIM6LPEN
+ TIM6 clock enable during Sleep
+ mode
+ 4
+ 1
+
+
+ TIM5LPEN
+ TIM5 clock enable during Sleep
+ mode
+ 3
+ 1
+
+
+ TIM4LPEN
+ TIM4 clock enable during Sleep
+ mode
+ 2
+ 1
+
+
+ TIM3LPEN
+ TIM3 clock enable during Sleep
+ mode
+ 1
+ 1
+
+
+ TIM2LPEN
+ TIM2 clock enable during Sleep
+ mode
+ 0
+ 1
+
+
+
+
+ APB2LPENR
+ APB2LPENR
+ APB2 peripheral clock enabled in low power
+ mode register
+ 0x64
+ 0x20
+ read-write
+ 0x00075F33
+
+
+ TIM11LPEN
+ TIM11 clock enable during Sleep
+ mode
+ 18
+ 1
+
+
+ TIM10LPEN
+ TIM10 clock enable during Sleep
+ mode
+ 17
+ 1
+
+
+ TIM9LPEN
+ TIM9 clock enable during sleep
+ mode
+ 16
+ 1
+
+
+ SYSCFGLPEN
+ System configuration controller clock
+ enable during Sleep mode
+ 14
+ 1
+
+
+ SPI1LPEN
+ SPI 1 clock enable during Sleep
+ mode
+ 12
+ 1
+
+
+ SDIOLPEN
+ SDIO clock enable during Sleep
+ mode
+ 11
+ 1
+
+
+ ADC3LPEN
+ ADC 3 clock enable during Sleep
+ mode
+ 10
+ 1
+
+
+ ADC2LPEN
+ ADC2 clock enable during Sleep
+ mode
+ 9
+ 1
+
+
+ ADC1LPEN
+ ADC1 clock enable during Sleep
+ mode
+ 8
+ 1
+
+
+ USART6LPEN
+ USART6 clock enable during Sleep
+ mode
+ 5
+ 1
+
+
+ USART1LPEN
+ USART1 clock enable during Sleep
+ mode
+ 4
+ 1
+
+
+ TIM8LPEN
+ TIM8 clock enable during Sleep
+ mode
+ 1
+ 1
+
+
+ TIM1LPEN
+ TIM1 clock enable during Sleep
+ mode
+ 0
+ 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
+
+
+ RTCSEL1
+ RTC clock source selection
+ 9
+ 1
+ read-write
+
+
+ RTCSEL0
+ RTC clock source selection
+ 8
+ 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
+
+
+ PLLI2SRx
+ PLLI2S division factor for I2S
+ clocks
+ 28
+ 3
+
+
+ PLLI2SNx
+ PLLI2S multiplication factor for
+ VCO
+ 6
+ 9
+
+
+
+
+
+
+ GPIOI
+ General-purpose I/Os
+ GPIO
+ 0x40022000
+
+ 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
+
+
+
+
+
+
+ GPIOH
+ 0x40021C00
+
+
+ GPIOG
+ 0x40021800
+
+
+ GPIOF
+ 0x40021400
+
+
+ GPIOE
+ 0x40021000
+
+
+ GPIOD
+ 0X40020C00
+
+
+ GPIOC
+ 0x40020800
+
+
+ GPIOJ
+ 0x40022400
+
+
+ GPIOK
+ 0x40022800
+
+
+ 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
+ MEM_MODE
+ 0
+ 2
+
+
+
+
+ PMC
+ PMC
+ peripheral mode configuration
+ register
+ 0x4
+ 0x20
+ read-write
+ 0x00000000
+
+
+ MII_RMII_SEL
+ Ethernet PHY interface
+ selection
+ 23
+ 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
+
+
+
+ I2S2ext
+ 0x40003400
+
+
+ I2S3ext
+ 0x40004000
+
+
+ SPI4
+ 0x40013400
+
+ SPI1
+ SPI1 global interrupt
+ 35
+
+
+
+ SPI5
+ 0x40015000
+
+ SPI1
+ SPI1 global interrupt
+ 35
+
+
+
+ SPI6
+ 0x40015400
+
+ SPI3
+ SPI3 global interrupt
+ 51
+
+
+
+ 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
+ see Table 132.
+ 0
+ 32
+
+
+
+
+ RESP2
+ RESP2
+ response 1..4 register
+ 0x18
+ 0x20
+ read-only
+ 0x00000000
+
+
+ CARDSTATUS2
+ see Table 132.
+ 0
+ 32
+
+
+
+
+ RESP3
+ RESP3
+ response 1..4 register
+ 0x1C
+ 0x20
+ read-only
+ 0x00000000
+
+
+ CARDSTATUS3
+ see Table 132.
+ 0
+ 32
+
+
+
+
+ RESP4
+ RESP4
+ response 1..4 register
+ 0x20
+ 0x20
+ read-only
+ 0x00000000
+
+
+ CARDSTATUS4
+ see Table 132.
+ 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
+
+
+
+
+
+
+ ADC1
+ Analog-to-digital converter
+ ADC
+ 0x40012000
+
+ 0x0
+ 0x51
+ registers
+
+
+ ADC
+ ADC1 global interrupt
+ 18
+
+
+
+ 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
+
+ ADC
+ ADC2 global interrupts
+ 18
+
+
+
+ ADC3
+ 0x40012200
+
+ ADC
+ ADC3 global interrupts
+ 18
+
+
+
+ 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
+
+
+ TIM6_DAC
+ TIM6 global interrupt, DAC1 and DAC2 underrun
+ error interrupt
+ 54
+
+
+
+ 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
+
+
+
+
+
+
+ PWR
+ Power control
+ PWR
+ 0x40007000
+
+ 0x0
+ 0x400
+ registers
+
+
+ PVD
+ PVD through EXTI line detection
+ interrupt
+ 1
+
+
+
+ CR
+ CR
+ power control register
+ 0x0
+ 0x20
+ read-write
+ 0x00000000
+
+
+ FPDS
+ Flash power down in Stop
+ mode
+ 9
+ 1
+
+
+ DBP
+ Disable backup domain write
+ protection
+ 8
+ 1
+
+
+ PLS
+ PVD level selection
+ 5
+ 3
+
+
+ PVDE
+ Power voltage detector
+ enable
+ 4
+ 1
+
+
+ CSBF
+ Clear standby flag
+ 3
+ 1
+
+
+ CWUF
+ Clear wakeup flag
+ 2
+ 1
+
+
+ PDDS
+ Power down deepsleep
+ 1
+ 1
+
+
+ LPDS
+ Low-power deep sleep
+ 0
+ 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
+
+
+ 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-write
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+ 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
+
+
+
+ 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
+
+
+ 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
+
+
+
+ UART7
+ 0x40007800
+
+ UART4
+ UART4 global interrupt
+ 52
+
+
+
+ UART8
+ 0x40007C00
+
+ UART5
+ UART5 global interrupt
+ 53
+
+
+
+ C_ADC
+ Common ADC registers
+ ADC
+ 0x40012300
+
+ 0x0
+ 0x400
+ registers
+
+
+
+ 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
+
+
+ O24CE
+ O24CE
+ 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
+
+
+ O24CE
+ O24CE
+ 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
+
+
+ O24CE
+ O24CE
+ 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
+
+
+ TIM1_BRK_TIM9
+ TIM1 Break interrupt and TIM9 global
+ interrupt
+ 24
+
+
+
+ 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
+
+ TIM8_BRK_TIM12
+ TIM8 Break interrupt and TIM12 global
+ interrupt
+ 43
+
+
+
+ TIM10
+ General-purpose-timers
+ TIM
+ 0x40014400
+
+ 0x0
+ 0x400
+ registers
+
+
+ TIM1_UP_TIM10
+ TIM1 Update interrupt and TIM10 global
+ interrupt
+ 25
+
+
+
+ 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
+
+ TIM8_UP_TIM13
+ TIM8 Update interrupt and TIM13 global
+ interrupt
+ 44
+
+
+
+ TIM14
+ 0x40002000
+
+ TIM8_TRG_COM_TIM14
+ TIM8 Trigger and Commutation interrupts and
+ TIM14 global interrupt
+ 45
+
+
+
+ TIM11
+ General-purpose-timers
+ TIM
+ 0x40014800
+
+ 0x0
+ 0x400
+ registers
+
+
+ TIM1_TRG_COM_TIM11
+ TIM1 Trigger and Commutation interrupts and
+ TIM11 global interrupt
+ 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 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
+
+
+
+ Ethernet_MAC
+ Ethernet: media access control
+ (MAC)
+ 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
+ 0x0
+ 0x20
+ read-write
+ 0x0008000
+
+
+ RE
+ RE
+ 2
+ 1
+
+
+ TE
+ TE
+ 3
+ 1
+
+
+ DC
+ DC
+ 4
+ 1
+
+
+ BL
+ BL
+ 5
+ 2
+
+
+ APCS
+ APCS
+ 7
+ 1
+
+
+ RD
+ RD
+ 9
+ 1
+
+
+ IPCO
+ IPCO
+ 10
+ 1
+
+
+ DM
+ DM
+ 11
+ 1
+
+
+ LM
+ LM
+ 12
+ 1
+
+
+ ROD
+ ROD
+ 13
+ 1
+
+
+ FES
+ FES
+ 14
+ 1
+
+
+ CSD
+ CSD
+ 16
+ 1
+
+
+ IFG
+ IFG
+ 17
+ 3
+
+
+ JD
+ JD
+ 22
+ 1
+
+
+ WD
+ WD
+ 23
+ 1
+
+
+ CSTF
+ CSTF
+ 25
+ 1
+
+
+
+
+ MACFFR
+ MACFFR
+ Ethernet MAC frame filter
+ register
+ 0x4
+ 0x20
+ read-write
+ 0x00000000
+
+
+ PM
+ PM
+ 0
+ 1
+
+
+ HU
+ HU
+ 1
+ 1
+
+
+ HM
+ HM
+ 2
+ 1
+
+
+ DAIF
+ DAIF
+ 3
+ 1
+
+
+ RAM
+ RAM
+ 4
+ 1
+
+
+ BFD
+ BFD
+ 5
+ 1
+
+
+ PCF
+ PCF
+ 6
+ 1
+
+
+ SAIF
+ SAIF
+ 7
+ 1
+
+
+ SAF
+ SAF
+ 8
+ 1
+
+
+ HPF
+ HPF
+ 9
+ 1
+
+
+ RA
+ RA
+ 31
+ 1
+
+
+
+
+ MACHTHR
+ MACHTHR
+ Ethernet MAC hash table high
+ register
+ 0x8
+ 0x20
+ read-write
+ 0x00000000
+
+
+ HTH
+ HTH
+ 0
+ 32
+
+
+
+
+ MACHTLR
+ MACHTLR
+ Ethernet MAC hash table low
+ register
+ 0xC
+ 0x20
+ read-write
+ 0x00000000
+
+
+ HTL
+ HTL
+ 0
+ 32
+
+
+
+
+ MACMIIAR
+ MACMIIAR
+ Ethernet MAC MII address
+ register
+ 0x10
+ 0x20
+ read-write
+ 0x00000000
+
+
+ MB
+ MB
+ 0
+ 1
+
+
+ MW
+ MW
+ 1
+ 1
+
+
+ CR
+ CR
+ 2
+ 3
+
+
+ MR
+ MR
+ 6
+ 5
+
+
+ PA
+ PA
+ 11
+ 5
+
+
+
+
+ MACMIIDR
+ MACMIIDR
+ Ethernet MAC MII data register
+ 0x14
+ 0x20
+ read-write
+ 0x00000000
+
+
+ TD
+ TD
+ 0
+ 16
+
+
+
+
+ MACFCR
+ MACFCR
+ Ethernet MAC flow control
+ register
+ 0x18
+ 0x20
+ read-write
+ 0x00000000
+
+
+ FCB
+ FCB
+ 0
+ 1
+
+
+ TFCE
+ TFCE
+ 1
+ 1
+
+
+ RFCE
+ RFCE
+ 2
+ 1
+
+
+ UPFD
+ UPFD
+ 3
+ 1
+
+
+ PLT
+ PLT
+ 4
+ 2
+
+
+ ZQPD
+ ZQPD
+ 7
+ 1
+
+
+ PT
+ PT
+ 16
+ 16
+
+
+
+
+ MACVLANTR
+ MACVLANTR
+ Ethernet MAC VLAN tag register
+ 0x1C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ VLANTI
+ VLANTI
+ 0
+ 16
+
+
+ VLANTC
+ VLANTC
+ 16
+ 1
+
+
+
+
+ MACPMTCSR
+ MACPMTCSR
+ Ethernet MAC PMT control and status
+ register
+ 0x2C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ PD
+ PD
+ 0
+ 1
+
+
+ MPE
+ MPE
+ 1
+ 1
+
+
+ WFE
+ WFE
+ 2
+ 1
+
+
+ MPR
+ MPR
+ 5
+ 1
+
+
+ WFR
+ WFR
+ 6
+ 1
+
+
+ GU
+ GU
+ 9
+ 1
+
+
+ WFFRPR
+ WFFRPR
+ 31
+ 1
+
+
+
+
+ MACDBGR
+ MACDBGR
+ Ethernet MAC debug register
+ 0x34
+ 0x20
+ read-only
+ 0x00000000
+
+
+ CR
+ CR
+ 0
+ 1
+
+
+ CSR
+ CSR
+ 1
+ 1
+
+
+ ROR
+ ROR
+ 2
+ 1
+
+
+ MCF
+ MCF
+ 3
+ 1
+
+
+ MCP
+ MCP
+ 4
+ 1
+
+
+ MCFHP
+ MCFHP
+ 5
+ 1
+
+
+
+
+ MACSR
+ MACSR
+ Ethernet MAC interrupt status
+ register
+ 0x38
+ 0x20
+ 0x00000000
+
+
+ PMTS
+ PMTS
+ 3
+ 1
+ read-only
+
+
+ MMCS
+ MMCS
+ 4
+ 1
+ read-only
+
+
+ MMCRS
+ MMCRS
+ 5
+ 1
+ read-only
+
+
+ MMCTS
+ MMCTS
+ 6
+ 1
+ read-only
+
+
+ TSTS
+ TSTS
+ 9
+ 1
+ read-write
+
+
+
+
+ MACIMR
+ MACIMR
+ Ethernet MAC interrupt mask
+ register
+ 0x3C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ PMTIM
+ PMTIM
+ 3
+ 1
+
+
+ TSTIM
+ TSTIM
+ 9
+ 1
+
+
+
+
+ MACA0HR
+ MACA0HR
+ Ethernet MAC address 0 high
+ register
+ 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
+ 0
+ 0
+ 32
+
+
+
+
+ MACA1HR
+ MACA1HR
+ Ethernet MAC address 1 high
+ register
+ 0x48
+ 0x20
+ read-write
+ 0x0000FFFF
+
+
+ MACA1H
+ MACA1H
+ 0
+ 16
+
+
+ MBC
+ MBC
+ 24
+ 6
+
+
+ SA
+ SA
+ 30
+ 1
+
+
+ AE
+ AE
+ 31
+ 1
+
+
+
+
+ MACA1LR
+ MACA1LR
+ Ethernet MAC address1 low
+ register
+ 0x4C
+ 0x20
+ read-write
+ 0xFFFFFFFF
+
+
+ MACA1LR
+ MACA1LR
+ 0
+ 32
+
+
+
+
+ MACA2HR
+ MACA2HR
+ Ethernet MAC address 2 high
+ register
+ 0x50
+ 0x20
+ read-write
+ 0x0000FFFF
+
+
+ MAC2AH
+ MAC2AH
+ 0
+ 16
+
+
+ MBC
+ MBC
+ 24
+ 6
+
+
+ SA
+ SA
+ 30
+ 1
+
+
+ AE
+ AE
+ 31
+ 1
+
+
+
+
+ MACA2LR
+ MACA2LR
+ Ethernet MAC address 2 low
+ register
+ 0x54
+ 0x20
+ read-write
+ 0xFFFFFFFF
+
+
+ MACA2L
+ MACA2L
+ 0
+ 31
+
+
+
+
+ MACA3HR
+ MACA3HR
+ Ethernet MAC address 3 high
+ register
+ 0x58
+ 0x20
+ read-write
+ 0x0000FFFF
+
+
+ MACA3H
+ MACA3H
+ 0
+ 16
+
+
+ MBC
+ MBC
+ 24
+ 6
+
+
+ SA
+ SA
+ 30
+ 1
+
+
+ AE
+ AE
+ 31
+ 1
+
+
+
+
+ MACA3LR
+ MACA3LR
+ Ethernet MAC address 3 low
+ register
+ 0x5C
+ 0x20
+ read-write
+ 0xFFFFFFFF
+
+
+ MBCA3L
+ MBCA3L
+ 0
+ 32
+
+
+
+
+
+
+ Ethernet_MMC
+ Ethernet: MAC management counters
+ Ethernet
+ 0x40028100
+
+ 0x0
+ 0x400
+ registers
+
+
+
+ MMCCR
+ MMCCR
+ Ethernet MMC control register
+ 0x0
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CR
+ CR
+ 0
+ 1
+
+
+ CSR
+ CSR
+ 1
+ 1
+
+
+ ROR
+ ROR
+ 2
+ 1
+
+
+ MCF
+ MCF
+ 3
+ 1
+
+
+ MCP
+ MCP
+ 4
+ 1
+
+
+ MCFHP
+ MCFHP
+ 5
+ 1
+
+
+
+
+ MMCRIR
+ MMCRIR
+ Ethernet MMC receive interrupt
+ register
+ 0x4
+ 0x20
+ read-write
+ 0x00000000
+
+
+ RFCES
+ RFCES
+ 5
+ 1
+
+
+ RFAES
+ RFAES
+ 6
+ 1
+
+
+ RGUFS
+ RGUFS
+ 17
+ 1
+
+
+
+
+ MMCTIR
+ MMCTIR
+ Ethernet MMC transmit interrupt
+ register
+ 0x8
+ 0x20
+ read-only
+ 0x00000000
+
+
+ TGFSCS
+ TGFSCS
+ 14
+ 1
+
+
+ TGFMSCS
+ TGFMSCS
+ 15
+ 1
+
+
+ TGFS
+ TGFS
+ 21
+ 1
+
+
+
+
+ MMCRIMR
+ MMCRIMR
+ Ethernet MMC receive interrupt mask
+ register
+ 0xC
+ 0x20
+ read-write
+ 0x00000000
+
+
+ RFCEM
+ RFCEM
+ 5
+ 1
+
+
+ RFAEM
+ RFAEM
+ 6
+ 1
+
+
+ RGUFM
+ RGUFM
+ 17
+ 1
+
+
+
+
+ MMCTIMR
+ MMCTIMR
+ Ethernet MMC transmit interrupt mask
+ register
+ 0x10
+ 0x20
+ read-write
+ 0x00000000
+
+
+ TGFSCM
+ TGFSCM
+ 14
+ 1
+
+
+ TGFMSCM
+ TGFMSCM
+ 15
+ 1
+
+
+ TGFM
+ TGFM
+ 16
+ 1
+
+
+
+
+ MMCTGFSCCR
+ MMCTGFSCCR
+ Ethernet MMC transmitted good frames after a
+ single collision counter
+ 0x4C
+ 0x20
+ read-only
+ 0x00000000
+
+
+ TGFSCC
+ TGFSCC
+ 0
+ 32
+
+
+
+
+ MMCTGFMSCCR
+ MMCTGFMSCCR
+ Ethernet MMC transmitted good frames after
+ more than a single collision
+ 0x50
+ 0x20
+ read-only
+ 0x00000000
+
+
+ TGFMSCC
+ TGFMSCC
+ 0
+ 32
+
+
+
+
+ MMCTGFCR
+ MMCTGFCR
+ Ethernet MMC transmitted good frames counter
+ register
+ 0x68
+ 0x20
+ read-only
+ 0x00000000
+
+
+ TGFC
+ HTL
+ 0
+ 32
+
+
+
+
+ MMCRFCECR
+ MMCRFCECR
+ Ethernet MMC received frames with CRC error
+ counter register
+ 0x94
+ 0x20
+ read-only
+ 0x00000000
+
+
+ RFCFC
+ RFCFC
+ 0
+ 32
+
+
+
+
+ MMCRFAECR
+ MMCRFAECR
+ Ethernet MMC received frames with alignment
+ error counter register
+ 0x98
+ 0x20
+ read-only
+ 0x00000000
+
+
+ RFAEC
+ RFAEC
+ 0
+ 32
+
+
+
+
+ MMCRGUFCR
+ MMCRGUFCR
+ MMC received good unicast frames counter
+ register
+ 0xC4
+ 0x20
+ read-only
+ 0x00000000
+
+
+ RGUFC
+ RGUFC
+ 0
+ 32
+
+
+
+
+
+
+ Ethernet_PTP
+ Ethernet: Precision time protocol
+ Ethernet
+ 0x40028700
+
+ 0x0
+ 0x400
+ registers
+
+
+
+ PTPTSCR
+ PTPTSCR
+ Ethernet PTP time stamp control
+ register
+ 0x0
+ 0x20
+ read-write
+ 0x00002000
+
+
+ TSE
+ TSE
+ 0
+ 1
+
+
+ TSFCU
+ TSFCU
+ 1
+ 1
+
+
+ TSPTPPSV2E
+ TSPTPPSV2E
+ 10
+ 1
+
+
+ TSSPTPOEFE
+ TSSPTPOEFE
+ 11
+ 1
+
+
+ TSSIPV6FE
+ TSSIPV6FE
+ 12
+ 1
+
+
+ TSSIPV4FE
+ TSSIPV4FE
+ 13
+ 1
+
+
+ TSSEME
+ TSSEME
+ 14
+ 1
+
+
+ TSSMRME
+ TSSMRME
+ 15
+ 1
+
+
+ TSCNT
+ TSCNT
+ 16
+ 2
+
+
+ TSPFFMAE
+ TSPFFMAE
+ 18
+ 1
+
+
+ TSSTI
+ TSSTI
+ 2
+ 1
+
+
+ TSSTU
+ TSSTU
+ 3
+ 1
+
+
+ TSITE
+ TSITE
+ 4
+ 1
+
+
+ TTSARU
+ TTSARU
+ 5
+ 1
+
+
+ TSSARFE
+ TSSARFE
+ 8
+ 1
+
+
+ TSSSR
+ TSSSR
+ 9
+ 1
+
+
+
+
+ PTPSSIR
+ PTPSSIR
+ Ethernet PTP subsecond increment
+ register
+ 0x4
+ 0x20
+ read-write
+ 0x00000000
+
+
+ STSSI
+ STSSI
+ 0
+ 8
+
+
+
+
+ PTPTSHR
+ PTPTSHR
+ Ethernet PTP time stamp high
+ register
+ 0x8
+ 0x20
+ read-only
+ 0x00000000
+
+
+ STS
+ STS
+ 0
+ 32
+
+
+
+
+ PTPTSLR
+ PTPTSLR
+ Ethernet PTP time stamp low
+ register
+ 0xC
+ 0x20
+ read-only
+ 0x00000000
+
+
+ STSS
+ STSS
+ 0
+ 31
+
+
+ STPNS
+ STPNS
+ 31
+ 1
+
+
+
+
+ PTPTSHUR
+ PTPTSHUR
+ Ethernet PTP time stamp high update
+ register
+ 0x10
+ 0x20
+ read-write
+ 0x00000000
+
+
+ TSUS
+ TSUS
+ 0
+ 32
+
+
+
+
+ PTPTSLUR
+ PTPTSLUR
+ Ethernet PTP time stamp low update
+ register
+ 0x14
+ 0x20
+ read-write
+ 0x00000000
+
+
+ TSUSS
+ TSUSS
+ 0
+ 31
+
+
+ TSUPNS
+ TSUPNS
+ 31
+ 1
+
+
+
+
+ PTPTSAR
+ PTPTSAR
+ Ethernet PTP time stamp addend
+ register
+ 0x18
+ 0x20
+ read-write
+ 0x00000000
+
+
+ TSA
+ TSA
+ 0
+ 32
+
+
+
+
+ PTPTTHR
+ PTPTTHR
+ Ethernet PTP target time high
+ register
+ 0x1C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ TTSH
+ 0
+ 0
+ 32
+
+
+
+
+ PTPTTLR
+ PTPTTLR
+ Ethernet PTP target time low
+ register
+ 0x20
+ 0x20
+ read-write
+ 0x00000000
+
+
+ TTSL
+ TTSL
+ 0
+ 32
+
+
+
+
+ PTPTSSR
+ PTPTSSR
+ Ethernet PTP time stamp status
+ register
+ 0x28
+ 0x20
+ read-only
+ 0x00000000
+
+
+ TSSO
+ TSSO
+ 0
+ 1
+
+
+ TSTTR
+ TSTTR
+ 1
+ 1
+
+
+
+
+ PTPPPSCR
+ PTPPPSCR
+ Ethernet PTP PPS control
+ register
+ 0x2C
+ 0x20
+ read-only
+ 0x00000000
+
+
+ TSSO
+ TSSO
+ 0
+ 1
+
+
+ TSTTR
+ TSTTR
+ 1
+ 1
+
+
+
+
+
+
+ Ethernet_DMA
+ Ethernet: DMA controller operation
+ Ethernet
+ 0x40029000
+
+ 0x0
+ 0x400
+ registers
+
+
+
+ DMABMR
+ DMABMR
+ Ethernet DMA bus mode register
+ 0x0
+ 0x20
+ read-write
+ 0x00002101
+
+
+ SR
+ SR
+ 0
+ 1
+
+
+ DA
+ DA
+ 1
+ 1
+
+
+ DSL
+ DSL
+ 2
+ 5
+
+
+ EDFE
+ EDFE
+ 7
+ 1
+
+
+ PBL
+ PBL
+ 8
+ 6
+
+
+ RTPR
+ RTPR
+ 14
+ 2
+
+
+ FB
+ FB
+ 16
+ 1
+
+
+ RDP
+ RDP
+ 17
+ 6
+
+
+ USP
+ USP
+ 23
+ 1
+
+
+ FPM
+ FPM
+ 24
+ 1
+
+
+ AAB
+ AAB
+ 25
+ 1
+
+
+ MB
+ MB
+ 26
+ 1
+
+
+
+
+ DMATPDR
+ DMATPDR
+ Ethernet DMA transmit poll demand
+ register
+ 0x4
+ 0x20
+ read-write
+ 0x00000000
+
+
+ TPD
+ TPD
+ 0
+ 32
+
+
+
+
+ DMARPDR
+ DMARPDR
+ EHERNET DMA receive poll demand
+ register
+ 0x8
+ 0x20
+ read-write
+ 0x00000000
+
+
+ RPD
+ RPD
+ 0
+ 32
+
+
+
+
+ DMARDLAR
+ DMARDLAR
+ Ethernet DMA receive descriptor list address
+ register
+ 0xC
+ 0x20
+ read-write
+ 0x00000000
+
+
+ SRL
+ SRL
+ 0
+ 32
+
+
+
+
+ DMATDLAR
+ DMATDLAR
+ Ethernet DMA transmit descriptor list
+ address register
+ 0x10
+ 0x20
+ read-write
+ 0x00000000
+
+
+ STL
+ STL
+ 0
+ 32
+
+
+
+
+ DMASR
+ DMASR
+ Ethernet DMA status register
+ 0x14
+ 0x20
+ 0x00000000
+
+
+ TS
+ TS
+ 0
+ 1
+ read-write
+
+
+ TPSS
+ TPSS
+ 1
+ 1
+ read-write
+
+
+ TBUS
+ TBUS
+ 2
+ 1
+ read-write
+
+
+ TJTS
+ TJTS
+ 3
+ 1
+ read-write
+
+
+ ROS
+ ROS
+ 4
+ 1
+ read-write
+
+
+ TUS
+ TUS
+ 5
+ 1
+ read-write
+
+
+ RS
+ RS
+ 6
+ 1
+ read-write
+
+
+ RBUS
+ RBUS
+ 7
+ 1
+ read-write
+
+
+ RPSS
+ RPSS
+ 8
+ 1
+ read-write
+
+
+ PWTS
+ PWTS
+ 9
+ 1
+ read-write
+
+
+ ETS
+ ETS
+ 10
+ 1
+ read-write
+
+
+ FBES
+ FBES
+ 13
+ 1
+ read-write
+
+
+ ERS
+ ERS
+ 14
+ 1
+ read-write
+
+
+ AIS
+ AIS
+ 15
+ 1
+ read-write
+
+
+ NIS
+ NIS
+ 16
+ 1
+ read-write
+
+
+ RPS
+ RPS
+ 17
+ 3
+ read-only
+
+
+ TPS
+ TPS
+ 20
+ 3
+ read-only
+
+
+ EBS
+ EBS
+ 23
+ 3
+ read-only
+
+
+ MMCS
+ MMCS
+ 27
+ 1
+ read-only
+
+
+ PMTS
+ PMTS
+ 28
+ 1
+ read-only
+
+
+ TSTS
+ TSTS
+ 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
+ TIE
+ 0
+ 1
+
+
+ TPSIE
+ TPSIE
+ 1
+ 1
+
+
+ TBUIE
+ TBUIE
+ 2
+ 1
+
+
+ TJTIE
+ TJTIE
+ 3
+ 1
+
+
+ ROIE
+ ROIE
+ 4
+ 1
+
+
+ TUIE
+ TUIE
+ 5
+ 1
+
+
+ RIE
+ RIE
+ 6
+ 1
+
+
+ RBUIE
+ RBUIE
+ 7
+ 1
+
+
+ RPSIE
+ RPSIE
+ 8
+ 1
+
+
+ RWTIE
+ RWTIE
+ 9
+ 1
+
+
+ ETIE
+ ETIE
+ 10
+ 1
+
+
+ FBEIE
+ FBEIE
+ 13
+ 1
+
+
+ ERIE
+ ERIE
+ 14
+ 1
+
+
+ AISE
+ AISE
+ 15
+ 1
+
+
+ NISE
+ NISE
+ 16
+ 1
+
+
+
+
+ DMAMFBOCR
+ DMAMFBOCR
+ Ethernet DMA missed frame and buffer
+ overflow counter register
+ 0x20
+ 0x20
+ read-write
+ 0x00000000
+
+
+ MFC
+ MFC
+ 0
+ 16
+
+
+ OMFC
+ OMFC
+ 16
+ 1
+
+
+ MFA
+ MFA
+ 17
+ 11
+
+
+ OFOC
+ OFOC
+ 28
+ 1
+
+
+
+
+ DMARSWTR
+ DMARSWTR
+ Ethernet DMA receive status watchdog timer
+ register
+ 0x24
+ 0x20
+ read-write
+ 0x00000000
+
+
+ RSWTC
+ RSWTC
+ 0
+ 8
+
+
+
+
+ DMACHTDR
+ DMACHTDR
+ Ethernet DMA current host transmit
+ descriptor register
+ 0x48
+ 0x20
+ read-only
+ 0x00000000
+
+
+ HTDAP
+ HTDAP
+ 0
+ 32
+
+
+
+
+ DMACHRDR
+ DMACHRDR
+ Ethernet DMA current host receive descriptor
+ register
+ 0x4C
+ 0x20
+ read-only
+ 0x00000000
+
+
+ HRDAP
+ HRDAP
+ 0
+ 32
+
+
+
+
+ DMACHTBAR
+ DMACHTBAR
+ Ethernet DMA current host transmit buffer
+ address register
+ 0x50
+ 0x20
+ read-only
+ 0x00000000
+
+
+ HTBAP
+ HTBAP
+ 0
+ 32
+
+
+
+
+ DMACHRBAR
+ DMACHRBAR
+ Ethernet DMA current host receive buffer
+ address register
+ 0x54
+ 0x20
+ read-only
+ 0x00000000
+
+
+ HRBAP
+ HRBAP
+ 0
+ 32
+
+
+
+
+
+
+ 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_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
+
+
+
+
+
+
+ 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
+
+
+
+
+ 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
+ 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
+
+
+
+ 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
+
+
+ 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
+ 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
+ 0x00000014
+
+
+ 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
+ 12
+
+
+
+
+
+
+ EXTI
+ External interrupt/event
+ controller
+ EXTI
+ 0x40013C00
+
+ 0x0
+ 0x400
+ registers
+
+
+ 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
+
+
+ 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
+ 0x131
+ registers
+
+
+ OTG_HS_EP1_OUT
+ USB On The Go HS End Point 1 Out global
+ interrupt
+ 74
+
+
+ OTG_HS_EP1_IN
+ USB On The Go HS End Point 1 In global
+ interrupt
+ 75
+
+
+ OTG_HS_WKUP
+ USB On The Go HS Wakeup through EXTI
+ interrupt
+ 76
+
+
+ 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
+
+
+
+
+ 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
+
+
+ MC
+ 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
+
+
+ MC
+ 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
+
+
+ MC
+ 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
+
+
+ MC
+ 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
+
+
+ MC
+ 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
+
+
+ MC
+ 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
+
+
+ MC
+ 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
+
+
+ MC
+ 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
+
+
+ MC
+ 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
+
+
+ MC
+ 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
+
+
+ MC
+ 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
+
+
+ MC
+ 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_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
+
+
+ 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_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_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
+
+
+ AHBERR
+ 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
+
+
+ AHBERR
+ 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
+
+
+ AHBERR
+ 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
+
+
+ AHBERR
+ 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
+
+
+ AHBERR
+ 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
+
+
+ AHBERR
+ 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
+
+
+ AHBERR
+ 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
+
+
+ AHBERR
+ 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
+
+
+ AHBERR
+ 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
+
+
+ AHBERR
+ 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
+
+
+ AHBERR
+ 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
+
+
+ AHBERR
+ 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_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_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
+
+
+
+
+ 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_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
+
+
+
+
+
+
+ NVIC
+ Nested Vectored Interrupt
+ Controller
+ NVIC
+ 0xE000E100
+
+ 0x0
+ 0x351
+ 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
+
+
+
+
+ ISER2
+ ISER2
+ Interrupt Set-Enable Register
+ 0x8
+ 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
+
+
+
+
+ ICER2
+ ICER2
+ Interrupt Clear-Enable
+ Register
+ 0x88
+ 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
+
+
+
+
+ ISPR2
+ ISPR2
+ Interrupt Set-Pending Register
+ 0x108
+ 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
+
+
+
+
+ ICPR2
+ ICPR2
+ Interrupt Clear-Pending
+ Register
+ 0x188
+ 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
+
+
+
+
+ IABR2
+ IABR2
+ Interrupt Active Bit Register
+ 0x208
+ 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
+
+
+
+
+ IPR15
+ IPR15
+ Interrupt Priority Register
+ 0x33C
+ 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
+
+
+
+
+ IPR16
+ IPR16
+ Interrupt Priority Register
+ 0x340
+ 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
+
+
+
+
+ IPR17
+ IPR17
+ Interrupt Priority Register
+ 0x344
+ 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
+
+
+
+
+ IPR18
+ IPR18
+ Interrupt Priority Register
+ 0x348
+ 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
+
+
+
+
+ IPR19
+ IPR19
+ Interrupt Priority Register
+ 0x34C
+ 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
+
+
+
+
+
+
+ SAI1
+ Serial audio interface
+ SAI1
+ 0x40015800
+
+ 0x0
+ 0x400
+ registers
+
+
+
+ SAI_ACR1
+ SAI_ACR1
+ SAI AConfiguration register 1
+ 0x4
+ 0x20
+ read-write
+ 0x00000040
+
+
+ MCKDIV
+ Master clock divider
+ 20
+ 4
+
+
+ MODE
+ Audio block mode
+ 0
+ 2
+
+
+ PRTCFG
+ Protocol configuration
+ 2
+ 2
+
+
+ DS
+ Data size
+ 5
+ 3
+
+
+ LSBFIRST
+ Least significant bit
+ first
+ 8
+ 1
+
+
+ CKSTR
+ Clock strobing edge
+ 9
+ 1
+
+
+ SYNCEN
+ Synchronization enable
+ 10
+ 2
+
+
+ MONO
+ Mono mode
+ 12
+ 1
+
+
+ OUTDRIV
+ Output drive
+ 13
+ 1
+
+
+ SAIAEN
+ Audio block enable
+ 16
+ 1
+
+
+ DMAEN
+ DMA enable
+ 17
+ 1
+
+
+ NODIV
+ No divider
+ 19
+ 1
+
+
+
+
+ SAI_BCR1
+ SAI_BCR1
+ SAI BConfiguration register 1
+ 0x24
+ 0x20
+ read-write
+ 0x00000040
+
+
+ MODE
+ Audio block mode
+ 0
+ 2
+
+
+ PRTCFG
+ Protocol configuration
+ 2
+ 2
+
+
+ DS
+ Data size
+ 5
+ 3
+
+
+ LSBFIRST
+ Least significant bit
+ first
+ 8
+ 1
+
+
+ CKSTR
+ Clock strobing edge
+ 9
+ 1
+
+
+ SYNCEN
+ Synchronization enable
+ 10
+ 2
+
+
+ MONO
+ Mono mode
+ 12
+ 1
+
+
+ OUTDRIV
+ Output drive
+ 13
+ 1
+
+
+ SAIBEN
+ Audio block enable
+ 16
+ 1
+
+
+ DMAEN
+ DMA enable
+ 17
+ 1
+
+
+ NODIV
+ No divider
+ 19
+ 1
+
+
+ MCKDIV
+ Master clock divider
+ 20
+ 4
+
+
+
+
+ SAI_ACR2
+ SAI_ACR2
+ SAI AConfiguration register 2
+ 0x8
+ 0x20
+ read-write
+ 0x00000040
+
+
+ FTH
+ FIFO threshold
+ 0
+ 3
+
+
+ FFLUSH
+ FIFO flush
+ 3
+ 1
+
+
+ TRIS
+ Tristate management on data
+ line
+ 4
+ 1
+
+
+ MUTE
+ Mute
+ 5
+ 1
+
+
+ MUTEVAL
+ Mute value
+ 6
+ 1
+
+
+ MUTECNT
+ Mute counter
+ 7
+ 6
+
+
+ CPL
+ Complement bit
+ 13
+ 1
+
+
+ COMP
+ Companding mode
+ 14
+ 2
+
+
+
+
+ SAI_BCR2
+ SAI_BCR2
+ SAI BConfiguration register 2
+ 0x28
+ 0x20
+ read-write
+ 0x00000040
+
+
+ FTH
+ FIFO threshold
+ 0
+ 3
+
+
+ FFLUSH
+ FIFO flush
+ 3
+ 1
+
+
+ TRIS
+ Tristate management on data
+ line
+ 4
+ 1
+
+
+ MUTE
+ Mute
+ 5
+ 1
+
+
+ MUTEVAL
+ Mute value
+ 6
+ 1
+
+
+ MUTECNT
+ Mute counter
+ 7
+ 6
+
+
+ CPL
+ Complement bit
+ 13
+ 1
+
+
+ COMP
+ Companding mode
+ 14
+ 2
+
+
+
+
+ SAI_AFRCR
+ SAI_AFRCR
+ SAI AFrame configuration
+ register
+ 0xC
+ 0x20
+ 0x00000007
+
+
+ FRL
+ Frame length
+ 0
+ 8
+ read-write
+
+
+ FSALL
+ Frame synchronization active level
+ length
+ 8
+ 7
+ read-write
+
+
+ FSDEF
+ Frame synchronization
+ definition
+ 16
+ 1
+ read-only
+
+
+ FSPOL
+ Frame synchronization
+ polarity
+ 17
+ 1
+ read-write
+
+
+ FSOFF
+ Frame synchronization
+ offset
+ 18
+ 1
+ read-write
+
+
+
+
+ SAI_BFRCR
+ SAI_BFRCR
+ SAI BFrame configuration
+ register
+ 0x2C
+ 0x20
+ 0x00000007
+
+
+ FRL
+ Frame length
+ 0
+ 8
+ read-write
+
+
+ FSALL
+ Frame synchronization active level
+ length
+ 8
+ 7
+ read-write
+
+
+ FSDEF
+ Frame synchronization
+ definition
+ 16
+ 1
+ read-only
+
+
+ FSPOL
+ Frame synchronization
+ polarity
+ 17
+ 1
+ read-write
+
+
+ FSOFF
+ Frame synchronization
+ offset
+ 18
+ 1
+ read-write
+
+
+
+
+ SAI_ASLOTR
+ SAI_ASLOTR
+ SAI ASlot register
+ 0x10
+ 0x20
+ read-write
+ 0x00000000
+
+
+ FBOFF
+ First bit offset
+ 0
+ 5
+
+
+ SLOTSZ
+ Slot size
+ 6
+ 2
+
+
+ NBSLOT
+ Number of slots in an audio
+ frame
+ 8
+ 4
+
+
+ SLOTEN
+ Slot enable
+ 16
+ 16
+
+
+
+
+ SAI_BSLOTR
+ SAI_BSLOTR
+ SAI BSlot register
+ 0x30
+ 0x20
+ read-write
+ 0x00000000
+
+
+ FBOFF
+ First bit offset
+ 0
+ 5
+
+
+ SLOTSZ
+ Slot size
+ 6
+ 2
+
+
+ NBSLOT
+ Number of slots in an audio
+ frame
+ 8
+ 4
+
+
+ SLOTEN
+ Slot enable
+ 16
+ 16
+
+
+
+
+ SAI_AIM
+ SAI_AIM
+ SAI AInterrupt mask register2
+ 0x14
+ 0x20
+ read-write
+ 0x00000000
+
+
+ OVRUDRIE
+ Overrun/underrun interrupt
+ enable
+ 0
+ 1
+
+
+ MUTEDETIE
+ Mute detection interrupt
+ enable
+ 1
+ 1
+
+
+ WCKCFGIE
+ Wrong clock configuration interrupt
+ enable
+ 2
+ 1
+
+
+ FREQIE
+ FIFO request interrupt
+ enable
+ 3
+ 1
+
+
+ CNRDYIE
+ Codec not ready interrupt
+ enable
+ 4
+ 1
+
+
+ AFSDETIE
+ Anticipated frame synchronization
+ detection interrupt enable
+ 5
+ 1
+
+
+ LFSDETIE
+ Late frame synchronization detection
+ interrupt enable
+ 6
+ 1
+
+
+
+
+ SAI_BIM
+ SAI_BIM
+ SAI BInterrupt mask register2
+ 0x34
+ 0x20
+ read-write
+ 0x00000000
+
+
+ OVRUDRIE
+ Overrun/underrun interrupt
+ enable
+ 0
+ 1
+
+
+ MUTEDETIE
+ Mute detection interrupt
+ enable
+ 1
+ 1
+
+
+ WCKCFGIE
+ Wrong clock configuration interrupt
+ enable
+ 2
+ 1
+
+
+ FREQIE
+ FIFO request interrupt
+ enable
+ 3
+ 1
+
+
+ CNRDYIE
+ Codec not ready interrupt
+ enable
+ 4
+ 1
+
+
+ AFSDETIE
+ Anticipated frame synchronization
+ detection interrupt enable
+ 5
+ 1
+
+
+ LFSDETIE
+ Late frame synchronization detection
+ interrupt enable
+ 6
+ 1
+
+
+
+
+ SAI_ASR
+ SAI_ASR
+ SAI AStatus register
+ 0x18
+ 0x20
+ read-only
+ 0x00000008
+
+
+ OVRUDR
+ Overrun / underrun
+ 0
+ 1
+
+
+ MUTEDET
+ Mute detection
+ 1
+ 1
+
+
+ WCKCFG
+ Wrong clock configuration
+ flag
+ 2
+ 1
+
+
+ FREQ
+ FIFO request
+ 3
+ 1
+
+
+ CNRDY
+ Codec not ready
+ 4
+ 1
+
+
+ AFSDET
+ Anticipated frame synchronization
+ detection
+ 5
+ 1
+
+
+ LFSDET
+ Late frame synchronization
+ detection
+ 6
+ 1
+
+
+ FLTH
+ FIFO level threshold
+ 16
+ 3
+
+
+
+
+ SAI_BSR
+ SAI_BSR
+ SAI BStatus register
+ 0x38
+ 0x20
+ read-only
+ 0x00000008
+
+
+ OVRUDR
+ Overrun / underrun
+ 0
+ 1
+
+
+ MUTEDET
+ Mute detection
+ 1
+ 1
+
+
+ WCKCFG
+ Wrong clock configuration
+ flag
+ 2
+ 1
+
+
+ FREQ
+ FIFO request
+ 3
+ 1
+
+
+ CNRDY
+ Codec not ready
+ 4
+ 1
+
+
+ AFSDET
+ Anticipated frame synchronization
+ detection
+ 5
+ 1
+
+
+ LFSDET
+ Late frame synchronization
+ detection
+ 6
+ 1
+
+
+ FLTH
+ FIFO level threshold
+ 16
+ 3
+
+
+
+
+ SAI_ACLRFR
+ SAI_ACLRFR
+ SAI AClear flag register
+ 0x1C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ COVRUDR
+ Clear overrun / underrun
+ 0
+ 1
+
+
+ CMUTEDET
+ Mute detection flag
+ 1
+ 1
+
+
+ CWCKCFG
+ Clear wrong clock configuration
+ flag
+ 2
+ 1
+
+
+ CCNRDY
+ Clear codec not ready flag
+ 4
+ 1
+
+
+ CAFSDET
+ Clear anticipated frame synchronization
+ detection flag
+ 5
+ 1
+
+
+ CLFSDET
+ Clear late frame synchronization
+ detection flag
+ 6
+ 1
+
+
+
+
+ SAI_BCLRFR
+ SAI_BCLRFR
+ SAI BClear flag register
+ 0x3C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ COVRUDR
+ Clear overrun / underrun
+ 0
+ 1
+
+
+ CMUTEDET
+ Mute detection flag
+ 1
+ 1
+
+
+ CWCKCFG
+ Clear wrong clock configuration
+ flag
+ 2
+ 1
+
+
+ CCNRDY
+ Clear codec not ready flag
+ 4
+ 1
+
+
+ CAFSDET
+ Clear anticipated frame synchronization
+ detection flag
+ 5
+ 1
+
+
+ CLFSDET
+ Clear late frame synchronization
+ detection flag
+ 6
+ 1
+
+
+
+
+ SAI_ADR
+ SAI_ADR
+ SAI AData register
+ 0x20
+ 0x20
+ read-write
+ 0x00000000
+
+
+ DATA
+ Data
+ 0
+ 32
+
+
+
+
+ SAI_BDR
+ SAI_BDR
+ SAI BData register
+ 0x40
+ 0x20
+ read-write
+ 0x00000000
+
+
+ DATA
+ Data
+ 0
+ 32
+
+
+
+
+
+
+ LTDC
+ LCD-TFT Controller
+ LTDC
+ 0x40016800
+
+ 0x0
+ 0x400
+ registers
+
+
+ LCD_TFT
+ LTDC global interrupt
+ 88
+
+
+ LCD_TFT_1
+ LTDC global error interrupt
+ 89
+
+
+
+ SSCR
+ SSCR
+ Synchronization Size Configuration
+ Register
+ 0x8
+ 0x20
+ read-write
+ 0x00000000
+
+
+ HSW
+ Horizontal Synchronization Width (in
+ units of pixel clock period)
+ 16
+ 10
+
+
+ VSH
+ Vertical Synchronization Height (in
+ units of horizontal scan line)
+ 0
+ 11
+
+
+
+
+ BPCR
+ BPCR
+ Back Porch Configuration
+ Register
+ 0xC
+ 0x20
+ read-write
+ 0x00000000
+
+
+ AHBP
+ Accumulated Horizontal back porch (in
+ units of pixel clock period)
+ 16
+ 10
+
+
+ AVBP
+ Accumulated Vertical back porch (in
+ units of horizontal scan line)
+ 0
+ 11
+
+
+
+
+ AWCR
+ AWCR
+ Active Width Configuration
+ Register
+ 0x10
+ 0x20
+ read-write
+ 0x00000000
+
+
+ AAV
+ AAV
+ 16
+ 10
+
+
+ AAH
+ Accumulated Active Height (in units of
+ horizontal scan line)
+ 0
+ 11
+
+
+
+
+ TWCR
+ TWCR
+ Total Width Configuration
+ Register
+ 0x14
+ 0x20
+ read-write
+ 0x00000000
+
+
+ TOTALW
+ Total Width (in units of pixel clock
+ period)
+ 16
+ 10
+
+
+ TOTALH
+ Total Height (in units of horizontal
+ scan line)
+ 0
+ 11
+
+
+
+
+ GCR
+ GCR
+ Global Control Register
+ 0x18
+ 0x20
+ 0x00002220
+
+
+ HSPOL
+ Horizontal Synchronization
+ Polarity
+ 31
+ 1
+ read-write
+
+
+ VSPOL
+ Vertical Synchronization
+ Polarity
+ 30
+ 1
+ read-write
+
+
+ DEPOL
+ Data Enable Polarity
+ 29
+ 1
+ read-write
+
+
+ PCPOL
+ Pixel Clock Polarity
+ 28
+ 1
+ read-write
+
+
+ DEN
+ Dither Enable
+ 16
+ 1
+ read-write
+
+
+ DRW
+ Dither Red Width
+ 12
+ 3
+ read-only
+
+
+ DGW
+ Dither Green Width
+ 8
+ 3
+ read-only
+
+
+ DBW
+ Dither Blue Width
+ 4
+ 3
+ read-only
+
+
+ LTDCEN
+ LCD-TFT controller enable
+ bit
+ 0
+ 1
+ read-write
+
+
+
+
+ SRCR
+ SRCR
+ Shadow Reload Configuration
+ Register
+ 0x24
+ 0x20
+ read-write
+ 0x00000000
+
+
+ VBR
+ Vertical Blanking Reload
+ 1
+ 1
+
+
+ IMR
+ Immediate Reload
+ 0
+ 1
+
+
+
+
+ BCCR
+ BCCR
+ Background Color Configuration
+ Register
+ 0x2C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ BC
+ Background Color Red value
+ 0
+ 24
+
+
+
+
+ IER
+ IER
+ Interrupt Enable Register
+ 0x34
+ 0x20
+ read-write
+ 0x00000000
+
+
+ RRIE
+ Register Reload interrupt
+ enable
+ 3
+ 1
+
+
+ TERRIE
+ Transfer Error Interrupt
+ Enable
+ 2
+ 1
+
+
+ FUIE
+ FIFO Underrun Interrupt
+ Enable
+ 1
+ 1
+
+
+ LIE
+ Line Interrupt Enable
+ 0
+ 1
+
+
+
+
+ ISR
+ ISR
+ Interrupt Status Register
+ 0x38
+ 0x20
+ read-only
+ 0x00000000
+
+
+ RRIF
+ Register Reload Interrupt
+ Flag
+ 3
+ 1
+
+
+ TERRIF
+ Transfer Error interrupt
+ flag
+ 2
+ 1
+
+
+ FUIF
+ FIFO Underrun Interrupt
+ flag
+ 1
+ 1
+
+
+ LIF
+ Line Interrupt flag
+ 0
+ 1
+
+
+
+
+ ICR
+ ICR
+ Interrupt Clear Register
+ 0x3C
+ 0x20
+ write-only
+ 0x00000000
+
+
+ CRRIF
+ Clears Register Reload Interrupt
+ Flag
+ 3
+ 1
+
+
+ CTERRIF
+ Clears the Transfer Error Interrupt
+ Flag
+ 2
+ 1
+
+
+ CFUIF
+ Clears the FIFO Underrun Interrupt
+ flag
+ 1
+ 1
+
+
+ CLIF
+ Clears the Line Interrupt
+ Flag
+ 0
+ 1
+
+
+
+
+ LIPCR
+ LIPCR
+ Line Interrupt Position Configuration
+ Register
+ 0x40
+ 0x20
+ read-write
+ 0x00000000
+
+
+ LIPOS
+ Line Interrupt Position
+ 0
+ 11
+
+
+
+
+ CPSR
+ CPSR
+ Current Position Status
+ Register
+ 0x44
+ 0x20
+ read-only
+ 0x00000000
+
+
+ CXPOS
+ Current X Position
+ 16
+ 16
+
+
+ CYPOS
+ Current Y Position
+ 0
+ 16
+
+
+
+
+ CDSR
+ CDSR
+ Current Display Status
+ Register
+ 0x48
+ 0x20
+ read-only
+ 0x0000000F
+
+
+ HSYNCS
+ Horizontal Synchronization display
+ Status
+ 3
+ 1
+
+
+ VSYNCS
+ Vertical Synchronization display
+ Status
+ 2
+ 1
+
+
+ HDES
+ Horizontal Data Enable display
+ Status
+ 1
+ 1
+
+
+ VDES
+ Vertical Data Enable display
+ Status
+ 0
+ 1
+
+
+
+
+ L1CR
+ L1CR
+ Layerx Control Register
+ 0x84
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CLUTEN
+ Color Look-Up Table Enable
+ 4
+ 1
+
+
+ COLKEN
+ Color Keying Enable
+ 1
+ 1
+
+
+ LEN
+ Layer Enable
+ 0
+ 1
+
+
+
+
+ L1WHPCR
+ L1WHPCR
+ Layerx Window Horizontal Position
+ Configuration Register
+ 0x88
+ 0x20
+ read-write
+ 0x00000000
+
+
+ WHSPPOS
+ Window Horizontal Stop
+ Position
+ 16
+ 12
+
+
+ WHSTPOS
+ Window Horizontal Start
+ Position
+ 0
+ 12
+
+
+
+
+ L1WVPCR
+ L1WVPCR
+ Layerx Window Vertical Position
+ Configuration Register
+ 0x8C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ WVSPPOS
+ Window Vertical Stop
+ Position
+ 16
+ 11
+
+
+ WVSTPOS
+ Window Vertical Start
+ Position
+ 0
+ 11
+
+
+
+
+ L1CKCR
+ L1CKCR
+ Layerx Color Keying Configuration
+ Register
+ 0x90
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CKRED
+ Color Key Red value
+ 16
+ 8
+
+
+ CKGREEN
+ Color Key Green value
+ 8
+ 8
+
+
+ CKBLUE
+ Color Key Blue value
+ 0
+ 8
+
+
+
+
+ L1PFCR
+ L1PFCR
+ Layerx Pixel Format Configuration
+ Register
+ 0x94
+ 0x20
+ read-write
+ 0x00000000
+
+
+ PF
+ Pixel Format
+ 0
+ 3
+
+
+
+
+ L1CACR
+ L1CACR
+ Layerx Constant Alpha Configuration
+ Register
+ 0x98
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CONSTA
+ Constant Alpha
+ 0
+ 8
+
+
+
+
+ L1DCCR
+ L1DCCR
+ Layerx Default Color Configuration
+ Register
+ 0x9C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ DCALPHA
+ Default Color Alpha
+ 24
+ 8
+
+
+ DCRED
+ Default Color Red
+ 16
+ 8
+
+
+ DCGREEN
+ Default Color Green
+ 8
+ 8
+
+
+ DCBLUE
+ Default Color Blue
+ 0
+ 8
+
+
+
+
+ L1BFCR
+ L1BFCR
+ Layerx Blending Factors Configuration
+ Register
+ 0xA0
+ 0x20
+ read-write
+ 0x00000607
+
+
+ BF1
+ Blending Factor 1
+ 8
+ 3
+
+
+ BF2
+ Blending Factor 2
+ 0
+ 3
+
+
+
+
+ L1CFBAR
+ L1CFBAR
+ Layerx Color Frame Buffer Address
+ Register
+ 0xAC
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CFBADD
+ Color Frame Buffer Start
+ Address
+ 0
+ 32
+
+
+
+
+ L1CFBLR
+ L1CFBLR
+ Layerx Color Frame Buffer Length
+ Register
+ 0xB0
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CFBP
+ Color Frame Buffer Pitch in
+ bytes
+ 16
+ 13
+
+
+ CFBLL
+ Color Frame Buffer Line
+ Length
+ 0
+ 13
+
+
+
+
+ L1CFBLNR
+ L1CFBLNR
+ Layerx ColorFrame Buffer Line Number
+ Register
+ 0xB4
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CFBLNBR
+ Frame Buffer Line Number
+ 0
+ 11
+
+
+
+
+ L1CLUTWR
+ L1CLUTWR
+ Layerx CLUT Write Register
+ 0xC4
+ 0x20
+ write-only
+ 0x00000000
+
+
+ CLUTADD
+ CLUT Address
+ 24
+ 8
+
+
+ RED
+ Red value
+ 16
+ 8
+
+
+ GREEN
+ Green value
+ 8
+ 8
+
+
+ BLUE
+ Blue value
+ 0
+ 8
+
+
+
+
+ L2CR
+ L2CR
+ Layerx Control Register
+ 0x104
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CLUTEN
+ Color Look-Up Table Enable
+ 4
+ 1
+
+
+ COLKEN
+ Color Keying Enable
+ 1
+ 1
+
+
+ LEN
+ Layer Enable
+ 0
+ 1
+
+
+
+
+ L2WHPCR
+ L2WHPCR
+ Layerx Window Horizontal Position
+ Configuration Register
+ 0x108
+ 0x20
+ read-write
+ 0x00000000
+
+
+ WHSPPOS
+ Window Horizontal Stop
+ Position
+ 16
+ 12
+
+
+ WHSTPOS
+ Window Horizontal Start
+ Position
+ 0
+ 12
+
+
+
+
+ L2WVPCR
+ L2WVPCR
+ Layerx Window Vertical Position
+ Configuration Register
+ 0x10C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ WVSPPOS
+ Window Vertical Stop
+ Position
+ 16
+ 11
+
+
+ WVSTPOS
+ Window Vertical Start
+ Position
+ 0
+ 11
+
+
+
+
+ L2CKCR
+ L2CKCR
+ Layerx Color Keying Configuration
+ Register
+ 0x110
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CKRED
+ Color Key Red value
+ 15
+ 9
+
+
+ CKGREEN
+ Color Key Green value
+ 8
+ 7
+
+
+ CKBLUE
+ Color Key Blue value
+ 0
+ 8
+
+
+
+
+ L2PFCR
+ L2PFCR
+ Layerx Pixel Format Configuration
+ Register
+ 0x114
+ 0x20
+ read-write
+ 0x00000000
+
+
+ PF
+ Pixel Format
+ 0
+ 3
+
+
+
+
+ L2CACR
+ L2CACR
+ Layerx Constant Alpha Configuration
+ Register
+ 0x118
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CONSTA
+ Constant Alpha
+ 0
+ 8
+
+
+
+
+ L2DCCR
+ L2DCCR
+ Layerx Default Color Configuration
+ Register
+ 0x11C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ DCALPHA
+ Default Color Alpha
+ 24
+ 8
+
+
+ DCRED
+ Default Color Red
+ 16
+ 8
+
+
+ DCGREEN
+ Default Color Green
+ 8
+ 8
+
+
+ DCBLUE
+ Default Color Blue
+ 0
+ 8
+
+
+
+
+ L2BFCR
+ L2BFCR
+ Layerx Blending Factors Configuration
+ Register
+ 0x120
+ 0x20
+ read-write
+ 0x00000607
+
+
+ BF1
+ Blending Factor 1
+ 8
+ 3
+
+
+ BF2
+ Blending Factor 2
+ 0
+ 3
+
+
+
+
+ L2CFBAR
+ L2CFBAR
+ Layerx Color Frame Buffer Address
+ Register
+ 0x12C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CFBADD
+ Color Frame Buffer Start
+ Address
+ 0
+ 32
+
+
+
+
+ L2CFBLR
+ L2CFBLR
+ Layerx Color Frame Buffer Length
+ Register
+ 0x130
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CFBP
+ Color Frame Buffer Pitch in
+ bytes
+ 16
+ 13
+
+
+ CFBLL
+ Color Frame Buffer Line
+ Length
+ 0
+ 13
+
+
+
+
+ L2CFBLNR
+ L2CFBLNR
+ Layerx ColorFrame Buffer Line Number
+ Register
+ 0x134
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CFBLNBR
+ Frame Buffer Line Number
+ 0
+ 11
+
+
+
+
+ L2CLUTWR
+ L2CLUTWR
+ Layerx CLUT Write Register
+ 0x144
+ 0x20
+ write-only
+ 0x00000000
+
+
+ CLUTADD
+ CLUT Address
+ 24
+ 8
+
+
+ RED
+ Red value
+ 16
+ 8
+
+
+ GREEN
+ Green value
+ 8
+ 8
+
+
+ BLUE
+ Blue value
+ 0
+ 8
+
+
+
+
+
+
+ HASH
+ Hash processor
+ HASH
+ 0x50060400
+
+ 0x0
+ 0x400
+ registers
+
+
+ HASH_RNG
+ Hash and Rng global interrupt
+ 80
+
+
+
+ CR
+ CR
+ control register
+ 0x0
+ 0x20
+ 0x00000000
+
+
+ INIT
+ Initialize message digest
+ calculation
+ 2
+ 1
+ write-only
+
+
+ DMAE
+ DMA enable
+ 3
+ 1
+ read-write
+
+
+ DATATYPE
+ Data type selection
+ 4
+ 2
+ read-write
+
+
+ MODE
+ Mode selection
+ 6
+ 1
+ read-write
+
+
+ ALGO0
+ Algorithm selection
+ 7
+ 1
+ read-write
+
+
+ NBW
+ Number of words already
+ pushed
+ 8
+ 4
+ read-only
+
+
+ DINNE
+ DIN not empty
+ 12
+ 1
+ read-only
+
+
+ MDMAT
+ Multiple DMA Transfers
+ 13
+ 1
+ read-write
+
+
+ LKEY
+ Long key selection
+ 16
+ 1
+ read-write
+
+
+ ALGO1
+ ALGO
+ 18
+ 1
+ read-write
+
+
+
+
+ DIN
+ DIN
+ data input register
+ 0x4
+ 0x20
+ read-write
+ 0x00000000
+
+
+ DATAIN
+ Data input
+ 0
+ 32
+
+
+
+
+ STR
+ STR
+ start register
+ 0x8
+ 0x20
+ 0x00000000
+
+
+ DCAL
+ Digest calculation
+ 8
+ 1
+ write-only
+
+
+ NBLW
+ Number of valid bits in the last word of
+ the message
+ 0
+ 5
+ read-write
+
+
+
+
+ HR0
+ HR0
+ digest registers
+ 0xC
+ 0x20
+ read-only
+ 0x00000000
+
+
+ H0
+ H0
+ 0
+ 32
+
+
+
+
+ HR1
+ HR1
+ digest registers
+ 0x10
+ 0x20
+ read-only
+ 0x00000000
+
+
+ H1
+ H1
+ 0
+ 32
+
+
+
+
+ HR2
+ HR2
+ digest registers
+ 0x14
+ 0x20
+ read-only
+ 0x00000000
+
+
+ H2
+ H2
+ 0
+ 32
+
+
+
+
+ HR3
+ HR3
+ digest registers
+ 0x18
+ 0x20
+ read-only
+ 0x00000000
+
+
+ H3
+ H3
+ 0
+ 32
+
+
+
+
+ HR4
+ HR4
+ digest registers
+ 0x1C
+ 0x20
+ read-only
+ 0x00000000
+
+
+ H4
+ H4
+ 0
+ 32
+
+
+
+
+ IMR
+ IMR
+ interrupt enable register
+ 0x20
+ 0x20
+ read-write
+ 0x00000000
+
+
+ DCIE
+ Digest calculation completion interrupt
+ enable
+ 1
+ 1
+
+
+ DINIE
+ Data input interrupt
+ enable
+ 0
+ 1
+
+
+
+
+ SR
+ SR
+ status register
+ 0x24
+ 0x20
+ 0x00000001
+
+
+ BUSY
+ Busy bit
+ 3
+ 1
+ read-only
+
+
+ DMAS
+ DMA Status
+ 2
+ 1
+ read-only
+
+
+ DCIS
+ Digest calculation completion interrupt
+ status
+ 1
+ 1
+ read-write
+
+
+ DINIS
+ Data input interrupt
+ status
+ 0
+ 1
+ read-write
+
+
+
+
+ CSR0
+ CSR0
+ context swap registers
+ 0xF8
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR0
+ CSR0
+ 0
+ 32
+
+
+
+
+ CSR1
+ CSR1
+ context swap registers
+ 0xFC
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR1
+ CSR1
+ 0
+ 32
+
+
+
+
+ CSR2
+ CSR2
+ context swap registers
+ 0x100
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR2
+ CSR2
+ 0
+ 32
+
+
+
+
+ CSR3
+ CSR3
+ context swap registers
+ 0x104
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR3
+ CSR3
+ 0
+ 32
+
+
+
+
+ CSR4
+ CSR4
+ context swap registers
+ 0x108
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR4
+ CSR4
+ 0
+ 32
+
+
+
+
+ CSR5
+ CSR5
+ context swap registers
+ 0x10C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR5
+ CSR5
+ 0
+ 32
+
+
+
+
+ CSR6
+ CSR6
+ context swap registers
+ 0x110
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR6
+ CSR6
+ 0
+ 32
+
+
+
+
+ CSR7
+ CSR7
+ context swap registers
+ 0x114
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR7
+ CSR7
+ 0
+ 32
+
+
+
+
+ CSR8
+ CSR8
+ context swap registers
+ 0x118
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR8
+ CSR8
+ 0
+ 32
+
+
+
+
+ CSR9
+ CSR9
+ context swap registers
+ 0x11C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR9
+ CSR9
+ 0
+ 32
+
+
+
+
+ CSR10
+ CSR10
+ context swap registers
+ 0x120
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR10
+ CSR10
+ 0
+ 32
+
+
+
+
+ CSR11
+ CSR11
+ context swap registers
+ 0x124
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR11
+ CSR11
+ 0
+ 32
+
+
+
+
+ CSR12
+ CSR12
+ context swap registers
+ 0x128
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR12
+ CSR12
+ 0
+ 32
+
+
+
+
+ CSR13
+ CSR13
+ context swap registers
+ 0x12C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR13
+ CSR13
+ 0
+ 32
+
+
+
+
+ CSR14
+ CSR14
+ context swap registers
+ 0x130
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR14
+ CSR14
+ 0
+ 32
+
+
+
+
+ CSR15
+ CSR15
+ context swap registers
+ 0x134
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR15
+ CSR15
+ 0
+ 32
+
+
+
+
+ CSR16
+ CSR16
+ context swap registers
+ 0x138
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR16
+ CSR16
+ 0
+ 32
+
+
+
+
+ CSR17
+ CSR17
+ context swap registers
+ 0x13C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR17
+ CSR17
+ 0
+ 32
+
+
+
+
+ CSR18
+ CSR18
+ context swap registers
+ 0x140
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR18
+ CSR18
+ 0
+ 32
+
+
+
+
+ CSR19
+ CSR19
+ context swap registers
+ 0x144
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR19
+ CSR19
+ 0
+ 32
+
+
+
+
+ CSR20
+ CSR20
+ context swap registers
+ 0x148
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR20
+ CSR20
+ 0
+ 32
+
+
+
+
+ CSR21
+ CSR21
+ context swap registers
+ 0x14C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR21
+ CSR21
+ 0
+ 32
+
+
+
+
+ CSR22
+ CSR22
+ context swap registers
+ 0x150
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR22
+ CSR22
+ 0
+ 32
+
+
+
+
+ CSR23
+ CSR23
+ context swap registers
+ 0x154
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR23
+ CSR23
+ 0
+ 32
+
+
+
+
+ CSR24
+ CSR24
+ context swap registers
+ 0x158
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR24
+ CSR24
+ 0
+ 32
+
+
+
+
+ CSR25
+ CSR25
+ context swap registers
+ 0x15C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR25
+ CSR25
+ 0
+ 32
+
+
+
+
+ CSR26
+ CSR26
+ context swap registers
+ 0x160
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR26
+ CSR26
+ 0
+ 32
+
+
+
+
+ CSR27
+ CSR27
+ context swap registers
+ 0x164
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR27
+ CSR27
+ 0
+ 32
+
+
+
+
+ CSR28
+ CSR28
+ context swap registers
+ 0x168
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR28
+ CSR28
+ 0
+ 32
+
+
+
+
+ CSR29
+ CSR29
+ context swap registers
+ 0x16C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR29
+ CSR29
+ 0
+ 32
+
+
+
+
+ CSR30
+ CSR30
+ context swap registers
+ 0x170
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR30
+ CSR30
+ 0
+ 32
+
+
+
+
+ CSR31
+ CSR31
+ context swap registers
+ 0x174
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR31
+ CSR31
+ 0
+ 32
+
+
+
+
+ CSR32
+ CSR32
+ context swap registers
+ 0x178
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR32
+ CSR32
+ 0
+ 32
+
+
+
+
+ CSR33
+ CSR33
+ context swap registers
+ 0x17C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR33
+ CSR33
+ 0
+ 32
+
+
+
+
+ CSR34
+ CSR34
+ context swap registers
+ 0x180
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR34
+ CSR34
+ 0
+ 32
+
+
+
+
+ CSR35
+ CSR35
+ context swap registers
+ 0x184
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR35
+ CSR35
+ 0
+ 32
+
+
+
+
+ CSR36
+ CSR36
+ context swap registers
+ 0x188
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR36
+ CSR36
+ 0
+ 32
+
+
+
+
+ CSR37
+ CSR37
+ context swap registers
+ 0x18C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR37
+ CSR37
+ 0
+ 32
+
+
+
+
+ CSR38
+ CSR38
+ context swap registers
+ 0x190
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR38
+ CSR38
+ 0
+ 32
+
+
+
+
+ CSR39
+ CSR39
+ context swap registers
+ 0x194
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR39
+ CSR39
+ 0
+ 32
+
+
+
+
+ CSR40
+ CSR40
+ context swap registers
+ 0x198
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR40
+ CSR40
+ 0
+ 32
+
+
+
+
+ CSR41
+ CSR41
+ context swap registers
+ 0x19C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR41
+ CSR41
+ 0
+ 32
+
+
+
+
+ CSR42
+ CSR42
+ context swap registers
+ 0x1A0
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR42
+ CSR42
+ 0
+ 32
+
+
+
+
+ CSR43
+ CSR43
+ context swap registers
+ 0x1A4
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR43
+ CSR43
+ 0
+ 32
+
+
+
+
+ CSR44
+ CSR44
+ context swap registers
+ 0x1A8
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR44
+ CSR44
+ 0
+ 32
+
+
+
+
+ CSR45
+ CSR45
+ context swap registers
+ 0x1AC
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR45
+ CSR45
+ 0
+ 32
+
+
+
+
+ CSR46
+ CSR46
+ context swap registers
+ 0x1B0
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR46
+ CSR46
+ 0
+ 32
+
+
+
+
+ CSR47
+ CSR47
+ context swap registers
+ 0x1B4
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR47
+ CSR47
+ 0
+ 32
+
+
+
+
+ CSR48
+ CSR48
+ context swap registers
+ 0x1B8
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR48
+ CSR48
+ 0
+ 32
+
+
+
+
+ CSR49
+ CSR49
+ context swap registers
+ 0x1BC
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR49
+ CSR49
+ 0
+ 32
+
+
+
+
+ CSR50
+ CSR50
+ context swap registers
+ 0x1C0
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR50
+ CSR50
+ 0
+ 32
+
+
+
+
+ CSR51
+ CSR51
+ context swap registers
+ 0x1C4
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR51
+ CSR51
+ 0
+ 32
+
+
+
+
+ CSR52
+ CSR52
+ context swap registers
+ 0x1C8
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR52
+ CSR52
+ 0
+ 32
+
+
+
+
+ CSR53
+ CSR53
+ context swap registers
+ 0x1CC
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSR53
+ CSR53
+ 0
+ 32
+
+
+
+
+ HASH_HR0
+ HASH_HR0
+ HASH digest register
+ 0x310
+ 0x20
+ read-only
+ 0x00000000
+
+
+ H0
+ H0
+ 0
+ 32
+
+
+
+
+ HASH_HR1
+ HASH_HR1
+ read-only
+ 0x314
+ 0x20
+ read-only
+ 0x00000000
+
+
+ H1
+ H1
+ 0
+ 32
+
+
+
+
+ HASH_HR2
+ HASH_HR2
+ read-only
+ 0x318
+ 0x20
+ read-only
+ 0x00000000
+
+
+ H2
+ H2
+ 0
+ 32
+
+
+
+
+ HASH_HR3
+ HASH_HR3
+ read-only
+ 0x31C
+ 0x20
+ read-only
+ 0x00000000
+
+
+ H3
+ H3
+ 0
+ 32
+
+
+
+
+ HASH_HR4
+ HASH_HR4
+ read-only
+ 0x320
+ 0x20
+ read-only
+ 0x00000000
+
+
+ H4
+ H4
+ 0
+ 32
+
+
+
+
+ HASH_HR5
+ HASH_HR5
+ read-only
+ 0x324
+ 0x20
+ read-only
+ 0x00000000
+
+
+ H5
+ H5
+ 0
+ 32
+
+
+
+
+ HASH_HR6
+ HASH_HR6
+ read-only
+ 0x328
+ 0x20
+ read-only
+ 0x00000000
+
+
+ H6
+ H6
+ 0
+ 32
+
+
+
+
+ HASH_HR7
+ HASH_HR7
+ read-only
+ 0x32C
+ 0x20
+ read-only
+ 0x00000000
+
+
+ H7
+ H7
+ 0
+ 32
+
+
+
+
+
+
+ CRYP
+ Cryptographic processor
+ CRYP
+ 0x50060000
+
+ 0x0
+ 0x400
+ registers
+
+
+ CRYP
+ CRYP crypto global interrupt
+ 79
+
+
+
+ CR
+ CR
+ control register
+ 0x0
+ 0x20
+ 0x00000000
+
+
+ ALGODIR
+ Algorithm direction
+ 2
+ 1
+ read-write
+
+
+ ALGOMODE0
+ Algorithm mode
+ 3
+ 3
+ read-write
+
+
+ DATATYPE
+ Data type selection
+ 6
+ 2
+ read-write
+
+
+ KEYSIZE
+ Key size selection (AES mode
+ only)
+ 8
+ 2
+ read-write
+
+
+ FFLUSH
+ FIFO flush
+ 14
+ 1
+ write-only
+
+
+ CRYPEN
+ Cryptographic processor
+ enable
+ 15
+ 1
+ read-write
+
+
+ GCM_CCMPH
+ GCM_CCMPH
+ 16
+ 2
+ read-write
+
+
+ ALGOMODE3
+ ALGOMODE
+ 19
+ 1
+ read-write
+
+
+
+
+ SR
+ SR
+ status register
+ 0x4
+ 0x20
+ read-only
+ 0x00000003
+
+
+ BUSY
+ Busy bit
+ 4
+ 1
+
+
+ OFFU
+ Output FIFO full
+ 3
+ 1
+
+
+ OFNE
+ Output FIFO not empty
+ 2
+ 1
+
+
+ IFNF
+ Input FIFO not full
+ 1
+ 1
+
+
+ IFEM
+ Input FIFO empty
+ 0
+ 1
+
+
+
+
+ DIN
+ DIN
+ data input register
+ 0x8
+ 0x20
+ read-write
+ 0x00000000
+
+
+ DATAIN
+ Data input
+ 0
+ 32
+
+
+
+
+ DOUT
+ DOUT
+ data output register
+ 0xC
+ 0x20
+ read-only
+ 0x00000000
+
+
+ DATAOUT
+ Data output
+ 0
+ 32
+
+
+
+
+ DMACR
+ DMACR
+ DMA control register
+ 0x10
+ 0x20
+ read-write
+ 0x00000000
+
+
+ DOEN
+ DMA output enable
+ 1
+ 1
+
+
+ DIEN
+ DMA input enable
+ 0
+ 1
+
+
+
+
+ IMSCR
+ IMSCR
+ interrupt mask set/clear
+ register
+ 0x14
+ 0x20
+ read-write
+ 0x00000000
+
+
+ OUTIM
+ Output FIFO service interrupt
+ mask
+ 1
+ 1
+
+
+ INIM
+ Input FIFO service interrupt
+ mask
+ 0
+ 1
+
+
+
+
+ RISR
+ RISR
+ raw interrupt status register
+ 0x18
+ 0x20
+ read-only
+ 0x00000001
+
+
+ OUTRIS
+ Output FIFO service raw interrupt
+ status
+ 1
+ 1
+
+
+ INRIS
+ Input FIFO service raw interrupt
+ status
+ 0
+ 1
+
+
+
+
+ MISR
+ MISR
+ masked interrupt status
+ register
+ 0x1C
+ 0x20
+ read-only
+ 0x00000000
+
+
+ OUTMIS
+ Output FIFO service masked interrupt
+ status
+ 1
+ 1
+
+
+ INMIS
+ Input FIFO service masked interrupt
+ status
+ 0
+ 1
+
+
+
+
+ K0LR
+ K0LR
+ key registers
+ 0x20
+ 0x20
+ write-only
+ 0x00000000
+
+
+ b224
+ b224
+ 0
+ 1
+
+
+ b225
+ b225
+ 1
+ 1
+
+
+ b226
+ b226
+ 2
+ 1
+
+
+ b227
+ b227
+ 3
+ 1
+
+
+ b228
+ b228
+ 4
+ 1
+
+
+ b229
+ b229
+ 5
+ 1
+
+
+ b230
+ b230
+ 6
+ 1
+
+
+ b231
+ b231
+ 7
+ 1
+
+
+ b232
+ b232
+ 8
+ 1
+
+
+ b233
+ b233
+ 9
+ 1
+
+
+ b234
+ b234
+ 10
+ 1
+
+
+ b235
+ b235
+ 11
+ 1
+
+
+ b236
+ b236
+ 12
+ 1
+
+
+ b237
+ b237
+ 13
+ 1
+
+
+ b238
+ b238
+ 14
+ 1
+
+
+ b239
+ b239
+ 15
+ 1
+
+
+ b240
+ b240
+ 16
+ 1
+
+
+ b241
+ b241
+ 17
+ 1
+
+
+ b242
+ b242
+ 18
+ 1
+
+
+ b243
+ b243
+ 19
+ 1
+
+
+ b244
+ b244
+ 20
+ 1
+
+
+ b245
+ b245
+ 21
+ 1
+
+
+ b246
+ b246
+ 22
+ 1
+
+
+ b247
+ b247
+ 23
+ 1
+
+
+ b248
+ b248
+ 24
+ 1
+
+
+ b249
+ b249
+ 25
+ 1
+
+
+ b250
+ b250
+ 26
+ 1
+
+
+ b251
+ b251
+ 27
+ 1
+
+
+ b252
+ b252
+ 28
+ 1
+
+
+ b253
+ b253
+ 29
+ 1
+
+
+ b254
+ b254
+ 30
+ 1
+
+
+ b255
+ b255
+ 31
+ 1
+
+
+
+
+ K0RR
+ K0RR
+ key registers
+ 0x24
+ 0x20
+ write-only
+ 0x00000000
+
+
+ b192
+ b192
+ 0
+ 1
+
+
+ b193
+ b193
+ 1
+ 1
+
+
+ b194
+ b194
+ 2
+ 1
+
+
+ b195
+ b195
+ 3
+ 1
+
+
+ b196
+ b196
+ 4
+ 1
+
+
+ b197
+ b197
+ 5
+ 1
+
+
+ b198
+ b198
+ 6
+ 1
+
+
+ b199
+ b199
+ 7
+ 1
+
+
+ b200
+ b200
+ 8
+ 1
+
+
+ b201
+ b201
+ 9
+ 1
+
+
+ b202
+ b202
+ 10
+ 1
+
+
+ b203
+ b203
+ 11
+ 1
+
+
+ b204
+ b204
+ 12
+ 1
+
+
+ b205
+ b205
+ 13
+ 1
+
+
+ b206
+ b206
+ 14
+ 1
+
+
+ b207
+ b207
+ 15
+ 1
+
+
+ b208
+ b208
+ 16
+ 1
+
+
+ b209
+ b209
+ 17
+ 1
+
+
+ b210
+ b210
+ 18
+ 1
+
+
+ b211
+ b211
+ 19
+ 1
+
+
+ b212
+ b212
+ 20
+ 1
+
+
+ b213
+ b213
+ 21
+ 1
+
+
+ b214
+ b214
+ 22
+ 1
+
+
+ b215
+ b215
+ 23
+ 1
+
+
+ b216
+ b216
+ 24
+ 1
+
+
+ b217
+ b217
+ 25
+ 1
+
+
+ b218
+ b218
+ 26
+ 1
+
+
+ b219
+ b219
+ 27
+ 1
+
+
+ b220
+ b220
+ 28
+ 1
+
+
+ b221
+ b221
+ 29
+ 1
+
+
+ b222
+ b222
+ 30
+ 1
+
+
+ b223
+ b223
+ 31
+ 1
+
+
+
+
+ K1LR
+ K1LR
+ key registers
+ 0x28
+ 0x20
+ write-only
+ 0x00000000
+
+
+ b160
+ b160
+ 0
+ 1
+
+
+ b161
+ b161
+ 1
+ 1
+
+
+ b162
+ b162
+ 2
+ 1
+
+
+ b163
+ b163
+ 3
+ 1
+
+
+ b164
+ b164
+ 4
+ 1
+
+
+ b165
+ b165
+ 5
+ 1
+
+
+ b166
+ b166
+ 6
+ 1
+
+
+ b167
+ b167
+ 7
+ 1
+
+
+ b168
+ b168
+ 8
+ 1
+
+
+ b169
+ b169
+ 9
+ 1
+
+
+ b170
+ b170
+ 10
+ 1
+
+
+ b171
+ b171
+ 11
+ 1
+
+
+ b172
+ b172
+ 12
+ 1
+
+
+ b173
+ b173
+ 13
+ 1
+
+
+ b174
+ b174
+ 14
+ 1
+
+
+ b175
+ b175
+ 15
+ 1
+
+
+ b176
+ b176
+ 16
+ 1
+
+
+ b177
+ b177
+ 17
+ 1
+
+
+ b178
+ b178
+ 18
+ 1
+
+
+ b179
+ b179
+ 19
+ 1
+
+
+ b180
+ b180
+ 20
+ 1
+
+
+ b181
+ b181
+ 21
+ 1
+
+
+ b182
+ b182
+ 22
+ 1
+
+
+ b183
+ b183
+ 23
+ 1
+
+
+ b184
+ b184
+ 24
+ 1
+
+
+ b185
+ b185
+ 25
+ 1
+
+
+ b186
+ b186
+ 26
+ 1
+
+
+ b187
+ b187
+ 27
+ 1
+
+
+ b188
+ b188
+ 28
+ 1
+
+
+ b189
+ b189
+ 29
+ 1
+
+
+ b190
+ b190
+ 30
+ 1
+
+
+ b191
+ b191
+ 31
+ 1
+
+
+
+
+ K1RR
+ K1RR
+ key registers
+ 0x2C
+ 0x20
+ write-only
+ 0x00000000
+
+
+ b128
+ b128
+ 0
+ 1
+
+
+ b129
+ b129
+ 1
+ 1
+
+
+ b130
+ b130
+ 2
+ 1
+
+
+ b131
+ b131
+ 3
+ 1
+
+
+ b132
+ b132
+ 4
+ 1
+
+
+ b133
+ b133
+ 5
+ 1
+
+
+ b134
+ b134
+ 6
+ 1
+
+
+ b135
+ b135
+ 7
+ 1
+
+
+ b136
+ b136
+ 8
+ 1
+
+
+ b137
+ b137
+ 9
+ 1
+
+
+ b138
+ b138
+ 10
+ 1
+
+
+ b139
+ b139
+ 11
+ 1
+
+
+ b140
+ b140
+ 12
+ 1
+
+
+ b141
+ b141
+ 13
+ 1
+
+
+ b142
+ b142
+ 14
+ 1
+
+
+ b143
+ b143
+ 15
+ 1
+
+
+ b144
+ b144
+ 16
+ 1
+
+
+ b145
+ b145
+ 17
+ 1
+
+
+ b146
+ b146
+ 18
+ 1
+
+
+ b147
+ b147
+ 19
+ 1
+
+
+ b148
+ b148
+ 20
+ 1
+
+
+ b149
+ b149
+ 21
+ 1
+
+
+ b150
+ b150
+ 22
+ 1
+
+
+ b151
+ b151
+ 23
+ 1
+
+
+ b152
+ b152
+ 24
+ 1
+
+
+ b153
+ b153
+ 25
+ 1
+
+
+ b154
+ b154
+ 26
+ 1
+
+
+ b155
+ b155
+ 27
+ 1
+
+
+ b156
+ b156
+ 28
+ 1
+
+
+ b157
+ b157
+ 29
+ 1
+
+
+ b158
+ b158
+ 30
+ 1
+
+
+ b159
+ b159
+ 31
+ 1
+
+
+
+
+ K2LR
+ K2LR
+ key registers
+ 0x30
+ 0x20
+ write-only
+ 0x00000000
+
+
+ b96
+ b96
+ 0
+ 1
+
+
+ b97
+ b97
+ 1
+ 1
+
+
+ b98
+ b98
+ 2
+ 1
+
+
+ b99
+ b99
+ 3
+ 1
+
+
+ b100
+ b100
+ 4
+ 1
+
+
+ b101
+ b101
+ 5
+ 1
+
+
+ b102
+ b102
+ 6
+ 1
+
+
+ b103
+ b103
+ 7
+ 1
+
+
+ b104
+ b104
+ 8
+ 1
+
+
+ b105
+ b105
+ 9
+ 1
+
+
+ b106
+ b106
+ 10
+ 1
+
+
+ b107
+ b107
+ 11
+ 1
+
+
+ b108
+ b108
+ 12
+ 1
+
+
+ b109
+ b109
+ 13
+ 1
+
+
+ b110
+ b110
+ 14
+ 1
+
+
+ b111
+ b111
+ 15
+ 1
+
+
+ b112
+ b112
+ 16
+ 1
+
+
+ b113
+ b113
+ 17
+ 1
+
+
+ b114
+ b114
+ 18
+ 1
+
+
+ b115
+ b115
+ 19
+ 1
+
+
+ b116
+ b116
+ 20
+ 1
+
+
+ b117
+ b117
+ 21
+ 1
+
+
+ b118
+ b118
+ 22
+ 1
+
+
+ b119
+ b119
+ 23
+ 1
+
+
+ b120
+ b120
+ 24
+ 1
+
+
+ b121
+ b121
+ 25
+ 1
+
+
+ b122
+ b122
+ 26
+ 1
+
+
+ b123
+ b123
+ 27
+ 1
+
+
+ b124
+ b124
+ 28
+ 1
+
+
+ b125
+ b125
+ 29
+ 1
+
+
+ b126
+ b126
+ 30
+ 1
+
+
+ b127
+ b127
+ 31
+ 1
+
+
+
+
+ K2RR
+ K2RR
+ key registers
+ 0x34
+ 0x20
+ write-only
+ 0x00000000
+
+
+ b64
+ b64
+ 0
+ 1
+
+
+ b65
+ b65
+ 1
+ 1
+
+
+ b66
+ b66
+ 2
+ 1
+
+
+ b67
+ b67
+ 3
+ 1
+
+
+ b68
+ b68
+ 4
+ 1
+
+
+ b69
+ b69
+ 5
+ 1
+
+
+ b70
+ b70
+ 6
+ 1
+
+
+ b71
+ b71
+ 7
+ 1
+
+
+ b72
+ b72
+ 8
+ 1
+
+
+ b73
+ b73
+ 9
+ 1
+
+
+ b74
+ b74
+ 10
+ 1
+
+
+ b75
+ b75
+ 11
+ 1
+
+
+ b76
+ b76
+ 12
+ 1
+
+
+ b77
+ b77
+ 13
+ 1
+
+
+ b78
+ b78
+ 14
+ 1
+
+
+ b79
+ b79
+ 15
+ 1
+
+
+ b80
+ b80
+ 16
+ 1
+
+
+ b81
+ b81
+ 17
+ 1
+
+
+ b82
+ b82
+ 18
+ 1
+
+
+ b83
+ b83
+ 19
+ 1
+
+
+ b84
+ b84
+ 20
+ 1
+
+
+ b85
+ b85
+ 21
+ 1
+
+
+ b86
+ b86
+ 22
+ 1
+
+
+ b87
+ b87
+ 23
+ 1
+
+
+ b88
+ b88
+ 24
+ 1
+
+
+ b89
+ b89
+ 25
+ 1
+
+
+ b90
+ b90
+ 26
+ 1
+
+
+ b91
+ b91
+ 27
+ 1
+
+
+ b92
+ b92
+ 28
+ 1
+
+
+ b93
+ b93
+ 29
+ 1
+
+
+ b94
+ b94
+ 30
+ 1
+
+
+ b95
+ b95
+ 31
+ 1
+
+
+
+
+ K3LR
+ K3LR
+ key registers
+ 0x38
+ 0x20
+ write-only
+ 0x00000000
+
+
+ b32
+ b32
+ 0
+ 1
+
+
+ b33
+ b33
+ 1
+ 1
+
+
+ b34
+ b34
+ 2
+ 1
+
+
+ b35
+ b35
+ 3
+ 1
+
+
+ b36
+ b36
+ 4
+ 1
+
+
+ b37
+ b37
+ 5
+ 1
+
+
+ b38
+ b38
+ 6
+ 1
+
+
+ b39
+ b39
+ 7
+ 1
+
+
+ b40
+ b40
+ 8
+ 1
+
+
+ b41
+ b41
+ 9
+ 1
+
+
+ b42
+ b42
+ 10
+ 1
+
+
+ b43
+ b43
+ 11
+ 1
+
+
+ b44
+ b44
+ 12
+ 1
+
+
+ b45
+ b45
+ 13
+ 1
+
+
+ b46
+ b46
+ 14
+ 1
+
+
+ b47
+ b47
+ 15
+ 1
+
+
+ b48
+ b48
+ 16
+ 1
+
+
+ b49
+ b49
+ 17
+ 1
+
+
+ b50
+ b50
+ 18
+ 1
+
+
+ b51
+ b51
+ 19
+ 1
+
+
+ b52
+ b52
+ 20
+ 1
+
+
+ b53
+ b53
+ 21
+ 1
+
+
+ b54
+ b54
+ 22
+ 1
+
+
+ b55
+ b55
+ 23
+ 1
+
+
+ b56
+ b56
+ 24
+ 1
+
+
+ b57
+ b57
+ 25
+ 1
+
+
+ b58
+ b58
+ 26
+ 1
+
+
+ b59
+ b59
+ 27
+ 1
+
+
+ b60
+ b60
+ 28
+ 1
+
+
+ b61
+ b61
+ 29
+ 1
+
+
+ b62
+ b62
+ 30
+ 1
+
+
+ b63
+ b63
+ 31
+ 1
+
+
+
+
+ K3RR
+ K3RR
+ key registers
+ 0x3C
+ 0x20
+ write-only
+ 0x00000000
+
+
+ b0
+ b0
+ 0
+ 1
+
+
+ b1
+ b1
+ 1
+ 1
+
+
+ b2
+ b2
+ 2
+ 1
+
+
+ b3
+ b3
+ 3
+ 1
+
+
+ b4
+ b4
+ 4
+ 1
+
+
+ b5
+ b5
+ 5
+ 1
+
+
+ b6
+ b6
+ 6
+ 1
+
+
+ b7
+ b7
+ 7
+ 1
+
+
+ b8
+ b8
+ 8
+ 1
+
+
+ b9
+ b9
+ 9
+ 1
+
+
+ b10
+ b10
+ 10
+ 1
+
+
+ b11
+ b11
+ 11
+ 1
+
+
+ b12
+ b12
+ 12
+ 1
+
+
+ b13
+ b13
+ 13
+ 1
+
+
+ b14
+ b14
+ 14
+ 1
+
+
+ b15
+ b15
+ 15
+ 1
+
+
+ b16
+ b16
+ 16
+ 1
+
+
+ b17
+ b17
+ 17
+ 1
+
+
+ b18
+ b18
+ 18
+ 1
+
+
+ b19
+ b19
+ 19
+ 1
+
+
+ b20
+ b20
+ 20
+ 1
+
+
+ b21
+ b21
+ 21
+ 1
+
+
+ b22
+ b22
+ 22
+ 1
+
+
+ b23
+ b23
+ 23
+ 1
+
+
+ b24
+ b24
+ 24
+ 1
+
+
+ b25
+ b25
+ 25
+ 1
+
+
+ b26
+ b26
+ 26
+ 1
+
+
+ b27
+ b27
+ 27
+ 1
+
+
+ b28
+ b28
+ 28
+ 1
+
+
+ b29
+ b29
+ 29
+ 1
+
+
+ b30
+ b30
+ 30
+ 1
+
+
+ b31
+ b31
+ 31
+ 1
+
+
+
+
+ IV0LR
+ IV0LR
+ initialization vector
+ registers
+ 0x40
+ 0x20
+ read-write
+ 0x00000000
+
+
+ IV31
+ IV31
+ 0
+ 1
+
+
+ IV30
+ IV30
+ 1
+ 1
+
+
+ IV29
+ IV29
+ 2
+ 1
+
+
+ IV28
+ IV28
+ 3
+ 1
+
+
+ IV27
+ IV27
+ 4
+ 1
+
+
+ IV26
+ IV26
+ 5
+ 1
+
+
+ IV25
+ IV25
+ 6
+ 1
+
+
+ IV24
+ IV24
+ 7
+ 1
+
+
+ IV23
+ IV23
+ 8
+ 1
+
+
+ IV22
+ IV22
+ 9
+ 1
+
+
+ IV21
+ IV21
+ 10
+ 1
+
+
+ IV20
+ IV20
+ 11
+ 1
+
+
+ IV19
+ IV19
+ 12
+ 1
+
+
+ IV18
+ IV18
+ 13
+ 1
+
+
+ IV17
+ IV17
+ 14
+ 1
+
+
+ IV16
+ IV16
+ 15
+ 1
+
+
+ IV15
+ IV15
+ 16
+ 1
+
+
+ IV14
+ IV14
+ 17
+ 1
+
+
+ IV13
+ IV13
+ 18
+ 1
+
+
+ IV12
+ IV12
+ 19
+ 1
+
+
+ IV11
+ IV11
+ 20
+ 1
+
+
+ IV10
+ IV10
+ 21
+ 1
+
+
+ IV9
+ IV9
+ 22
+ 1
+
+
+ IV8
+ IV8
+ 23
+ 1
+
+
+ IV7
+ IV7
+ 24
+ 1
+
+
+ IV6
+ IV6
+ 25
+ 1
+
+
+ IV5
+ IV5
+ 26
+ 1
+
+
+ IV4
+ IV4
+ 27
+ 1
+
+
+ IV3
+ IV3
+ 28
+ 1
+
+
+ IV2
+ IV2
+ 29
+ 1
+
+
+ IV1
+ IV1
+ 30
+ 1
+
+
+ IV0
+ IV0
+ 31
+ 1
+
+
+
+
+ IV0RR
+ IV0RR
+ initialization vector
+ registers
+ 0x44
+ 0x20
+ read-write
+ 0x00000000
+
+
+ IV63
+ IV63
+ 0
+ 1
+
+
+ IV62
+ IV62
+ 1
+ 1
+
+
+ IV61
+ IV61
+ 2
+ 1
+
+
+ IV60
+ IV60
+ 3
+ 1
+
+
+ IV59
+ IV59
+ 4
+ 1
+
+
+ IV58
+ IV58
+ 5
+ 1
+
+
+ IV57
+ IV57
+ 6
+ 1
+
+
+ IV56
+ IV56
+ 7
+ 1
+
+
+ IV55
+ IV55
+ 8
+ 1
+
+
+ IV54
+ IV54
+ 9
+ 1
+
+
+ IV53
+ IV53
+ 10
+ 1
+
+
+ IV52
+ IV52
+ 11
+ 1
+
+
+ IV51
+ IV51
+ 12
+ 1
+
+
+ IV50
+ IV50
+ 13
+ 1
+
+
+ IV49
+ IV49
+ 14
+ 1
+
+
+ IV48
+ IV48
+ 15
+ 1
+
+
+ IV47
+ IV47
+ 16
+ 1
+
+
+ IV46
+ IV46
+ 17
+ 1
+
+
+ IV45
+ IV45
+ 18
+ 1
+
+
+ IV44
+ IV44
+ 19
+ 1
+
+
+ IV43
+ IV43
+ 20
+ 1
+
+
+ IV42
+ IV42
+ 21
+ 1
+
+
+ IV41
+ IV41
+ 22
+ 1
+
+
+ IV40
+ IV40
+ 23
+ 1
+
+
+ IV39
+ IV39
+ 24
+ 1
+
+
+ IV38
+ IV38
+ 25
+ 1
+
+
+ IV37
+ IV37
+ 26
+ 1
+
+
+ IV36
+ IV36
+ 27
+ 1
+
+
+ IV35
+ IV35
+ 28
+ 1
+
+
+ IV34
+ IV34
+ 29
+ 1
+
+
+ IV33
+ IV33
+ 30
+ 1
+
+
+ IV32
+ IV32
+ 31
+ 1
+
+
+
+
+ IV1LR
+ IV1LR
+ initialization vector
+ registers
+ 0x48
+ 0x20
+ read-write
+ 0x00000000
+
+
+ IV95
+ IV95
+ 0
+ 1
+
+
+ IV94
+ IV94
+ 1
+ 1
+
+
+ IV93
+ IV93
+ 2
+ 1
+
+
+ IV92
+ IV92
+ 3
+ 1
+
+
+ IV91
+ IV91
+ 4
+ 1
+
+
+ IV90
+ IV90
+ 5
+ 1
+
+
+ IV89
+ IV89
+ 6
+ 1
+
+
+ IV88
+ IV88
+ 7
+ 1
+
+
+ IV87
+ IV87
+ 8
+ 1
+
+
+ IV86
+ IV86
+ 9
+ 1
+
+
+ IV85
+ IV85
+ 10
+ 1
+
+
+ IV84
+ IV84
+ 11
+ 1
+
+
+ IV83
+ IV83
+ 12
+ 1
+
+
+ IV82
+ IV82
+ 13
+ 1
+
+
+ IV81
+ IV81
+ 14
+ 1
+
+
+ IV80
+ IV80
+ 15
+ 1
+
+
+ IV79
+ IV79
+ 16
+ 1
+
+
+ IV78
+ IV78
+ 17
+ 1
+
+
+ IV77
+ IV77
+ 18
+ 1
+
+
+ IV76
+ IV76
+ 19
+ 1
+
+
+ IV75
+ IV75
+ 20
+ 1
+
+
+ IV74
+ IV74
+ 21
+ 1
+
+
+ IV73
+ IV73
+ 22
+ 1
+
+
+ IV72
+ IV72
+ 23
+ 1
+
+
+ IV71
+ IV71
+ 24
+ 1
+
+
+ IV70
+ IV70
+ 25
+ 1
+
+
+ IV69
+ IV69
+ 26
+ 1
+
+
+ IV68
+ IV68
+ 27
+ 1
+
+
+ IV67
+ IV67
+ 28
+ 1
+
+
+ IV66
+ IV66
+ 29
+ 1
+
+
+ IV65
+ IV65
+ 30
+ 1
+
+
+ IV64
+ IV64
+ 31
+ 1
+
+
+
+
+ IV1RR
+ IV1RR
+ initialization vector
+ registers
+ 0x4C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ IV127
+ IV127
+ 0
+ 1
+
+
+ IV126
+ IV126
+ 1
+ 1
+
+
+ IV125
+ IV125
+ 2
+ 1
+
+
+ IV124
+ IV124
+ 3
+ 1
+
+
+ IV123
+ IV123
+ 4
+ 1
+
+
+ IV122
+ IV122
+ 5
+ 1
+
+
+ IV121
+ IV121
+ 6
+ 1
+
+
+ IV120
+ IV120
+ 7
+ 1
+
+
+ IV119
+ IV119
+ 8
+ 1
+
+
+ IV118
+ IV118
+ 9
+ 1
+
+
+ IV117
+ IV117
+ 10
+ 1
+
+
+ IV116
+ IV116
+ 11
+ 1
+
+
+ IV115
+ IV115
+ 12
+ 1
+
+
+ IV114
+ IV114
+ 13
+ 1
+
+
+ IV113
+ IV113
+ 14
+ 1
+
+
+ IV112
+ IV112
+ 15
+ 1
+
+
+ IV111
+ IV111
+ 16
+ 1
+
+
+ IV110
+ IV110
+ 17
+ 1
+
+
+ IV109
+ IV109
+ 18
+ 1
+
+
+ IV108
+ IV108
+ 19
+ 1
+
+
+ IV107
+ IV107
+ 20
+ 1
+
+
+ IV106
+ IV106
+ 21
+ 1
+
+
+ IV105
+ IV105
+ 22
+ 1
+
+
+ IV104
+ IV104
+ 23
+ 1
+
+
+ IV103
+ IV103
+ 24
+ 1
+
+
+ IV102
+ IV102
+ 25
+ 1
+
+
+ IV101
+ IV101
+ 26
+ 1
+
+
+ IV100
+ IV100
+ 27
+ 1
+
+
+ IV99
+ IV99
+ 28
+ 1
+
+
+ IV98
+ IV98
+ 29
+ 1
+
+
+ IV97
+ IV97
+ 30
+ 1
+
+
+ IV96
+ IV96
+ 31
+ 1
+
+
+
+
+ CSGCMCCM0R
+ CSGCMCCM0R
+ context swap register
+ 0x50
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSGCMCCM0R
+ CSGCMCCM0R
+ 0
+ 32
+
+
+
+
+ CSGCMCCM1R
+ CSGCMCCM1R
+ context swap register
+ 0x54
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSGCMCCM1R
+ CSGCMCCM1R
+ 0
+ 32
+
+
+
+
+ CSGCMCCM2R
+ CSGCMCCM2R
+ context swap register
+ 0x58
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSGCMCCM2R
+ CSGCMCCM2R
+ 0
+ 32
+
+
+
+
+ CSGCMCCM3R
+ CSGCMCCM3R
+ context swap register
+ 0x5C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSGCMCCM3R
+ CSGCMCCM3R
+ 0
+ 32
+
+
+
+
+ CSGCMCCM4R
+ CSGCMCCM4R
+ context swap register
+ 0x60
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSGCMCCM4R
+ CSGCMCCM4R
+ 0
+ 32
+
+
+
+
+ CSGCMCCM5R
+ CSGCMCCM5R
+ context swap register
+ 0x64
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSGCMCCM5R
+ CSGCMCCM5R
+ 0
+ 32
+
+
+
+
+ CSGCMCCM6R
+ CSGCMCCM6R
+ context swap register
+ 0x68
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSGCMCCM6R
+ CSGCMCCM6R
+ 0
+ 32
+
+
+
+
+ CSGCMCCM7R
+ CSGCMCCM7R
+ context swap register
+ 0x6C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSGCMCCM7R
+ CSGCMCCM7R
+ 0
+ 32
+
+
+
+
+ CSGCM0R
+ CSGCM0R
+ context swap register
+ 0x70
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSGCM0R
+ CSGCM0R
+ 0
+ 32
+
+
+
+
+ CSGCM1R
+ CSGCM1R
+ context swap register
+ 0x74
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSGCM1R
+ CSGCM1R
+ 0
+ 32
+
+
+
+
+ CSGCM2R
+ CSGCM2R
+ context swap register
+ 0x78
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSGCM2R
+ CSGCM2R
+ 0
+ 32
+
+
+
+
+ CSGCM3R
+ CSGCM3R
+ context swap register
+ 0x7C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSGCM3R
+ CSGCM3R
+ 0
+ 32
+
+
+
+
+ CSGCM4R
+ CSGCM4R
+ context swap register
+ 0x80
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSGCM4R
+ CSGCM4R
+ 0
+ 32
+
+
+
+
+ CSGCM5R
+ CSGCM5R
+ context swap register
+ 0x84
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSGCM5R
+ CSGCM5R
+ 0
+ 32
+
+
+
+
+ CSGCM6R
+ CSGCM6R
+ context swap register
+ 0x88
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSGCM6R
+ CSGCM6R
+ 0
+ 32
+
+
+
+
+ CSGCM7R
+ CSGCM7R
+ context swap register
+ 0x8C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ CSGCM7R
+ CSGCM7R
+ 0
+ 32
+
+
+
+
+
+
+ FPU
+ Floting point unit
+ FPU
+ 0xE000EF34
+
+ 0x0
+ 0xD
+ registers
+
+
+ FPU
+ Floating point unit interrupt
+ 81
+
+
+ FPU
+ Floating point interrupt
+ 81
+
+
+
+ FPCCR
+ FPCCR
+ Floating-point context control
+ register
+ 0x0
+ 0x20
+ read-write
+ 0x00000000
+
+
+ LSPACT
+ LSPACT
+ 0
+ 1
+
+
+ USER
+ USER
+ 1
+ 1
+
+
+ THREAD
+ THREAD
+ 3
+ 1
+
+
+ HFRDY
+ HFRDY
+ 4
+ 1
+
+
+ MMRDY
+ MMRDY
+ 5
+ 1
+
+
+ BFRDY
+ BFRDY
+ 6
+ 1
+
+
+ MONRDY
+ MONRDY
+ 8
+ 1
+
+
+ LSPEN
+ LSPEN
+ 30
+ 1
+
+
+ ASPEN
+ ASPEN
+ 31
+ 1
+
+
+
+
+ FPCAR
+ FPCAR
+ Floating-point context address
+ register
+ 0x4
+ 0x20
+ read-write
+ 0x00000000
+
+
+ ADDRESS
+ Location of unpopulated
+ floating-point
+ 3
+ 29
+
+
+
+
+ FPSCR
+ FPSCR
+ Floating-point status control
+ register
+ 0x8
+ 0x20
+ read-write
+ 0x00000000
+
+
+ IOC
+ Invalid operation cumulative exception
+ bit
+ 0
+ 1
+
+
+ DZC
+ Division by zero cumulative exception
+ bit.
+ 1
+ 1
+
+
+ OFC
+ Overflow cumulative exception
+ bit
+ 2
+ 1
+
+
+ UFC
+ Underflow cumulative exception
+ bit
+ 3
+ 1
+
+
+ IXC
+ Inexact cumulative exception
+ bit
+ 4
+ 1
+
+
+ IDC
+ Input denormal cumulative exception
+ bit.
+ 7
+ 1
+
+
+ RMode
+ Rounding Mode control
+ field
+ 22
+ 2
+
+
+ FZ
+ Flush-to-zero mode control
+ bit:
+ 24
+ 1
+
+
+ DN
+ Default NaN mode control
+ bit
+ 25
+ 1
+
+
+ AHP
+ Alternative half-precision control
+ bit
+ 26
+ 1
+
+
+ V
+ Overflow condition code
+ flag
+ 28
+ 1
+
+
+ C
+ Carry condition code flag
+ 29
+ 1
+
+
+ Z
+ Zero condition code flag
+ 30
+ 1
+
+
+ N
+ Negative condition code
+ flag
+ 31
+ 1
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+ 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
+
+
+ SKEW
+ SKEW flag: Indicates whether the TENMS
+ value is exact
+ 30
+ 1
+
+
+ NOREF
+ NOREF flag. Reads as zero
+ 31
+ 1
+
+
+
+
+
+
+ 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
+ Instruction access violation
+ flag
+ 1
+ 1
+
+
+ MUNSTKERR
+ Memory manager fault on unstacking for a
+ return from exception
+ 3
+ 1
+
+
+ MSTKERR
+ Memory manager fault on stacking for
+ exception entry.
+ 4
+ 1
+
+
+ MLSPERR
+ MLSPERR
+ 5
+ 1
+
+
+ MMARVALID
+ Memory Management Fault Address Register
+ (MMAR) valid flag
+ 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
+
+
+
+
+ AFSR
+ AFSR
+ Auxiliary fault status
+ register
+ 0x3C
+ 0x20
+ read-write
+ 0x00000000
+
+
+ IMPDEF
+ Implementation defined
+ 0
+ 32
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+ FPU_CPACR
+ Floating point unit CPACR
+ FPU
+ 0xE000ED88
+
+ 0x0
+ 0x5
+ registers
+
+
+
+ CPACR
+ CPACR
+ Coprocessor access control
+ register
+ 0x0
+ 0x20
+ read-write
+ 0x0000000
+
+
+ CP
+ CP
+ 20
+ 4
+
+
+
+
+
+
+ SCB_ACTRL
+ System control block ACTLR
+ SCB
+ 0xE000E008
+
+ 0x0
+ 0x5
+ registers
+
+
+
+ ACTRL
+ ACTRL
+ Auxiliary control register
+ 0x0
+ 0x20
+ read-write
+ 0x00000000
+
+
+ DISMCYCINT
+ DISMCYCINT
+ 0
+ 1
+
+
+ DISDEFWBUF
+ DISDEFWBUF
+ 1
+ 1
+
+
+ DISFOLD
+ DISFOLD
+ 2
+ 1
+
+
+ DISFPCA
+ DISFPCA
+ 8
+ 1
+
+
+ DISOOFP
+ DISOOFP
+ 9
+ 1
+
+
+
+
+
+
+
diff --git a/buildroot/share/PlatformIO/boards/marlin_STM32F407VE.json b/buildroot/share/PlatformIO/boards/marlin_STM32F407VE.json
new file mode 100644
index 0000000000..6d70add2e3
--- /dev/null
+++ b/buildroot/share/PlatformIO/boards/marlin_STM32F407VE.json
@@ -0,0 +1,65 @@
+{
+ "build": {
+ "core": "stm32",
+ "cpu": "cortex-m4",
+ "extra_flags": "-DSTM32F407xx",
+ "f_cpu": "168000000L",
+ "hwids": [
+ [
+ "0x1EAF",
+ "0x0003"
+ ],
+ [
+ "0x0483",
+ "0x3748"
+ ]
+ ],
+ "mcu": "stm32f407vet6",
+ "variant": "MARLIN_F407VE"
+ },
+ "debug": {
+ "jlink_device": "STM32F407VE",
+ "openocd_target": "stm32f4x",
+ "svd_path": "STM32F40x.svd",
+ "tools": {
+ "stlink": {
+ "server": {
+ "arguments": [
+ "-f",
+ "scripts/interface/stlink.cfg",
+ "-c",
+ "transport select hla_swd",
+ "-f",
+ "scripts/target/stm32f4x.cfg",
+ "-c",
+ "reset_config none"
+ ],
+ "executable": "bin/openocd",
+ "package": "tool-openocd"
+ }
+ }
+ }
+ },
+ "frameworks": [
+ "arduino",
+ "stm32cube"
+ ],
+ "name": "STM32F407VE (192k RAM. 512k Flash)",
+ "upload": {
+ "disable_flushing": false,
+ "maximum_ram_size": 131072,
+ "maximum_size": 524288,
+ "protocol": "stlink",
+ "protocols": [
+ "stlink",
+ "dfu",
+ "jlink"
+ ],
+ "require_upload_port": true,
+ "use_1200bps_touch": false,
+ "wait_for_upload_port": false
+ },
+ "url": "https://www.st.com/en/microcontrollers-microprocessors/stm32f407ve.html",
+ "vendor": "Generic"
+ }
+
\ No newline at end of file
diff --git a/buildroot/share/PlatformIO/boards/marlin_fysetc_s6_8000.json b/buildroot/share/PlatformIO/boards/marlin_fysetc_s6_8000.json
deleted file mode 100644
index 1d808a23d7..0000000000
--- a/buildroot/share/PlatformIO/boards/marlin_fysetc_s6_8000.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "build": {
- "cpu": "cortex-m4",
- "extra_flags": "-DSTM32F446xx",
- "f_cpu": "180000000L",
- "mcu": "stm32f446ret6",
- "variant": "MARLIN_FYSETC_S6"
- },
- "connectivity": [
- "can"
- ],
- "debug": {
- "jlink_device": "STM32F446RE",
- "openocd_target": "stm32f4x",
- "svd_path": "STM32F446x.svd"
- },
- "frameworks": [
- "arduino",
- "stm32cube"
- ],
- "name": "3D Printer control board",
- "upload": {
- "maximum_ram_size": 131072,
- "maximum_size": 491520,
- "protocol": "stlink",
- "protocols": [
- "jlink",
- "stlink",
- "blackmagic",
- "serial"
- ]
- },
- "url": "https://www.st.com/en/microcontrollers-microprocessors/stm32f446.html",
- "vendor": "FYSETC"
-}
diff --git a/buildroot/share/PlatformIO/scripts/STM32F103VE_longer.py b/buildroot/share/PlatformIO/scripts/STM32F103VE_longer.py
deleted file mode 100644
index c98059729f..0000000000
--- a/buildroot/share/PlatformIO/scripts/STM32F103VE_longer.py
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# buildroot/share/PlatformIO/scripts/STM32F103VE_longer.py
-# Customizations for env:STM32F103VE_longer
-#
-import os,marlin
-
-# Rename ${PROGNAME}.bin and save it as 'project.bin' (No encryption on the Longer3D)
-def encrypt(source, target, env):
- firmware = open(target[0].path, "rb")
- renamed = open(target[0].dir.path + '/project.bin', "wb")
- length = os.path.getsize(target[0].path)
- position = 0
- try:
- while position < length:
- byte = firmware.read(1)
- renamed.write(byte)
- position += 1
- finally:
- firmware.close()
- renamed.close()
-
-marlin.add_post_action(encrypt);
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_BTT002/ldscript.ld b/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_BTT002/ldscript.ld
index 0c060d1751..6af296a521 100644
--- a/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_BTT002/ldscript.ld
+++ b/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_BTT002/ldscript.ld
@@ -169,7 +169,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_E3_RRF/ldscript.ld b/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_E3_RRF/ldscript.ld
index 0c060d1751..6af296a521 100644
--- a/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_E3_RRF/ldscript.ld
+++ b/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_E3_RRF/ldscript.ld
@@ -169,7 +169,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_GTR_V1/ldscript.ld b/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_GTR_V1/ldscript.ld
index 0c060d1751..6af296a521 100644
--- a/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_GTR_V1/ldscript.ld
+++ b/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_GTR_V1/ldscript.ld
@@ -169,7 +169,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_GTR_V1/variant.h b/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_GTR_V1/variant.h
index 2da195c6cf..732e0c51f1 100644
--- a/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_GTR_V1/variant.h
+++ b/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_GTR_V1/variant.h
@@ -280,7 +280,7 @@ extern "C" {
#define PIN_SERIAL_TX PA9
// Optional PIN_SERIALn_RX and PIN_SERIALn_TX where 'n' is the U(S)ART number
-// Used when user instanciate a hardware Serial using its peripheral name.
+// Used when user instantiate a hardware Serial using its peripheral name.
// Example: HardwareSerial mySerial(USART3);
// will use PIN_SERIAL3_RX and PIN_SERIAL3_TX if defined.
#define PIN_SERIAL1_RX PA10
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_OCTOPUS_V1/ldscript.ld b/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_OCTOPUS_V1/ldscript.ld
index 5ced01158f..ca21498cd2 100644
--- a/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_OCTOPUS_V1/ldscript.ld
+++ b/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_OCTOPUS_V1/ldscript.ld
@@ -150,7 +150,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_SKR_PRO_11/ldscript.ld b/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_SKR_PRO_11/ldscript.ld
index 0c060d1751..6af296a521 100644
--- a/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_SKR_PRO_11/ldscript.ld
+++ b/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_SKR_PRO_11/ldscript.ld
@@ -169,7 +169,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_SKR_PRO_11/variant.h b/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_SKR_PRO_11/variant.h
index 1ba0a18d6a..f9091a4f91 100644
--- a/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_SKR_PRO_11/variant.h
+++ b/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_SKR_PRO_11/variant.h
@@ -280,7 +280,7 @@ extern "C" {
#define PIN_SERIAL_TX PA9
// Optional PIN_SERIALn_RX and PIN_SERIALn_TX where 'n' is the U(S)ART number
-// Used when user instanciate a hardware Serial using its peripheral name.
+// Used when user instantiate a hardware Serial using its peripheral name.
// Example: HardwareSerial mySerial(USART3);
// will use PIN_SERIAL3_RX and PIN_SERIAL3_TX if defined.
#define PIN_SERIAL1_RX PA10
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_BTT_SKR_SE_BX/ldscript.ld b/buildroot/share/PlatformIO/variants/MARLIN_BTT_SKR_SE_BX/ldscript.ld
index 5e01911d82..006c87a17a 100644
--- a/buildroot/share/PlatformIO/variants/MARLIN_BTT_SKR_SE_BX/ldscript.ld
+++ b/buildroot/share/PlatformIO/variants/MARLIN_BTT_SKR_SE_BX/ldscript.ld
@@ -173,7 +173,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F103Rx/ldscript.ld b/buildroot/share/PlatformIO/variants/MARLIN_F103Rx/ldscript.ld
index f8eb971a6c..cd7503b3a5 100644
--- a/buildroot/share/PlatformIO/variants/MARLIN_F103Rx/ldscript.ld
+++ b/buildroot/share/PlatformIO/variants/MARLIN_F103Rx/ldscript.ld
@@ -162,7 +162,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F103VE_LONGER/PeripheralPins.c b/buildroot/share/PlatformIO/variants/MARLIN_F103VE_LONGER/PeripheralPins.c
index ba4046d5f9..99226a739d 100644
--- a/buildroot/share/PlatformIO/variants/MARLIN_F103VE_LONGER/PeripheralPins.c
+++ b/buildroot/share/PlatformIO/variants/MARLIN_F103VE_LONGER/PeripheralPins.c
@@ -79,9 +79,6 @@ WEAK const PinMap PinMap_PWM[] = {
//{PA_2, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_1, 3, 0)}, // TIM2_CH3
#if defined(STM32F103xE) || defined(STM32F103xG)
//{PA_2, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 3, 0)}, // TIM5_CH3
-#endif
-#ifdef STM32F103xG
- //{PA_2, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM9_CH1
#endif
//{PA_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_1, 4, 0)}, // TIM2_CH4
#if defined(STM32F103xE) || defined(STM32F103xG)
@@ -89,20 +86,11 @@ WEAK const PinMap PinMap_PWM[] = {
{PA_3, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 4, 0)}, // TIM5_CH4
#else
{PA_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 4, 0)}, // TIM2_CH4
-#endif
-#if defined(STM32F103xG)
- //{PA_3, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM9_CH2
#endif
{PA_6, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM3_CH1
-#if defined(STM32F103xG)
- //{PA_6, TIM13, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM13_CH1
-#endif
{PA_7, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_PARTIAL, 1, 1)}, // TIM1_CH1N
//{PA_7, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM3_CH2
//{PA_7, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 1)}, // TIM8_CH1N
-#if defined(STM32F103xG)
- //{PA_7, TIM14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM14_CH1
-#endif
{PA_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM1_CH1
//{PA_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_PARTIAL, 1, 0)}, // TIM1_CH1
{PA_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM1_CH2
@@ -132,26 +120,14 @@ WEAK const PinMap PinMap_PWM[] = {
{PB_6, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM4_CH1
{PB_7, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM4_CH2
{PB_8, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 3, 0)}, // TIM4_CH3
-#if defined(STM32F103xG)
- //{PB_8, TIM10, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM10_CH1
-#endif
{PB_9, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 4, 0)}, // TIM4_CH4
-#if defined(STM32F103xG)
- //{PB_9, TIM11, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM11_CH1
-#endif
{PB_10, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_2, 3, 0)}, // TIM2_CH3
//{PB_10, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_ENABLE, 3, 0)}, // TIM2_CH3
{PB_11, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_PARTIAL_2, 4, 0)}, // TIM2_CH4
//{PB_11, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM2_ENABLE, 4, 0)}, // TIM2_CH4
{PB_13, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 1)}, // TIM1_CH1N
{PB_14, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 1)}, // TIM1_CH2N
-#if defined(STM32F103xG)
- //{PB_14, TIM12, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM12_CH1
-#endif
{PB_15, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 3, 1)}, // TIM1_CH3N
-#if defined(STM32F103xG)
- //{PB_15, TIM12, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 2, 0)}, // TIM12_CH2
-#endif
{PC_6, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM3_ENABLE, 1, 0)}, // TIM3_CH1
#if defined(STM32F103xE) || defined(STM32F103xG)
//{PC_6, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_NONE, 1, 0)}, // TIM8_CH1
@@ -170,10 +146,6 @@ WEAK const PinMap PinMap_PWM[] = {
{PD_13, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM4_ENABLE, 2, 0)}, // TIM4_CH2
{PD_14, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM4_ENABLE, 3, 0)}, // TIM4_CH3
{PD_15, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM4_ENABLE, 4, 0)}, // TIM4_CH4
-#if defined(STM32F103xG)
- {PE_5, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM9_ENABLE, 1, 0)}, // TIM9_CH1
- {PE_6, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM9_ENABLE, 2, 0)}, // TIM9_CH2
-#endif
{PE_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 1, 1)}, // TIM1_CH1N
{PE_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 1, 0)}, // TIM1_CH1
{PE_10, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 2, 1)}, // TIM1_CH2N
@@ -182,6 +154,8 @@ WEAK const PinMap PinMap_PWM[] = {
{PE_13, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 3, 0)}, // TIM1_CH3
{PE_14, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM1_ENABLE, 4, 0)}, // TIM1_CH4
#endif // if 0
+ {PD_12, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM4_ENABLE, 1, 0)}, // TIM4_CH1 TFT Backlight
+ {PD_13, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, AFIO_TIM4_ENABLE, 2, 0)}, // TIM4_CH2 Servo connector
{NC, NP, 0}
};
#endif
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F103Vx/ldscript.ld b/buildroot/share/PlatformIO/variants/MARLIN_F103Vx/ldscript.ld
index c9197c8b45..a65b07d61c 100644
--- a/buildroot/share/PlatformIO/variants/MARLIN_F103Vx/ldscript.ld
+++ b/buildroot/share/PlatformIO/variants/MARLIN_F103Vx/ldscript.ld
@@ -162,7 +162,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/ldscript.ld b/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/ldscript.ld
index 09088b622c..cc4b323f76 100644
--- a/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/ldscript.ld
+++ b/buildroot/share/PlatformIO/variants/MARLIN_F103Zx/ldscript.ld
@@ -162,7 +162,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F407VE/ldscript.ld b/buildroot/share/PlatformIO/variants/MARLIN_F407VE/ldscript.ld
index efe2db5cd4..68b6597322 100644
--- a/buildroot/share/PlatformIO/variants/MARLIN_F407VE/ldscript.ld
+++ b/buildroot/share/PlatformIO/variants/MARLIN_F407VE/ldscript.ld
@@ -169,7 +169,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F446VE/ldscript.ld b/buildroot/share/PlatformIO/variants/MARLIN_F446VE/ldscript.ld
index 503472806e..a375232d59 100644
--- a/buildroot/share/PlatformIO/variants/MARLIN_F446VE/ldscript.ld
+++ b/buildroot/share/PlatformIO/variants/MARLIN_F446VE/ldscript.ld
@@ -149,7 +149,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F4_FSMC_SDIO/PeripheralPins.c b/buildroot/share/PlatformIO/variants/MARLIN_F4_FSMC_SDIO/PeripheralPins.c
new file mode 100644
index 0000000000..83e71035fa
--- /dev/null
+++ b/buildroot/share/PlatformIO/variants/MARLIN_F4_FSMC_SDIO/PeripheralPins.c
@@ -0,0 +1,394 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2019, STMicroelectronics
+ * All rights reserved.
+ *
+ * This software component is licensed by ST under BSD 3-Clause license,
+ * the "License"; You may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ * opensource.org/licenses/BSD-3-Clause
+ *
+ *******************************************************************************
+ * Automatically generated from STM32F407V(E-G)Tx.xml
+ */
+#include "Arduino.h"
+#include "PeripheralPins.h"
+
+/**
+ * Variant for: mks_robin_pro2, mks_robin_nano_v3, Anet_ET4_OpenBLT
+ */
+
+/* =====
+ * Note: Commented lines are alternative possibilities which are not used per default.
+ * If you change them, you will have to know what you do
+ * =====
+ */
+
+//*** ADC ***
+
+#ifdef HAL_ADC_MODULE_ENABLED
+WEAK const PinMap PinMap_ADC[] = {
+ {PA_0, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC1_IN0
+ //{PA_0, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC2_IN0
+ //{PA_0, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 0, 0)}, // ADC3_IN0
+ {PA_1, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC1_IN1
+ //{PA_1, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC2_IN1
+ //{PA_1, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // ADC3_IN1
+ {PA_2, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC1_IN2
+ //{PA_2, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC2_IN2
+ //{PA_2, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // ADC3_IN2
+ {PA_3, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC1_IN3
+ //{PA_3, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC2_IN3
+ //{PA_3, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 3, 0)}, // ADC3_IN3
+ {PA_4, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC1_IN4
+ //{PA_4, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 4, 0)}, // ADC2_IN4
+ {PA_5, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC1_IN5
+ //{PA_5, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 5, 0)}, // ADC2_IN5
+ {PA_6, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC1_IN6
+ //{PA_6, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC2_IN6
+ {PA_7, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC1_IN7
+ //{PA_7, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC2_IN7
+ {PB_0, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC1_IN8
+ //{PB_0, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC2_IN8
+ {PB_1, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC1_IN9
+ //{PB_1, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 9, 0)}, // ADC2_IN9
+ {PC_0, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC1_IN10
+ //{PC_0, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC2_IN10
+ //{PC_0, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 10, 0)}, // ADC3_IN10
+ {PC_1, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC1_IN11
+ //{PC_1, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC2_IN11
+ //{PC_1, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 11, 0)}, // ADC3_IN11
+ {PC_2, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC1_IN12
+ //{PC_2, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC2_IN12
+ //{PC_2, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 12, 0)}, // ADC3_IN12
+ {PC_3, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
+ //{PC_3, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC2_IN13
+ //{PC_3, ADC3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC3_IN13
+ {PC_4, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
+ //{PC_4, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC2_IN14
+ {PC_5, ADC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
+ //{PC_5, ADC2, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC2_IN15
+ {NC, NP, 0}
+};
+#endif
+
+//*** DAC ***
+
+#ifdef HAL_DAC_MODULE_ENABLED
+WEAK const PinMap PinMap_DAC[] = {
+ {PA_4, DAC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 1, 0)}, // DAC_OUT1
+ {PA_5, DAC1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 2, 0)}, // DAC_OUT2
+ {NC, NP, 0}
+};
+#endif
+
+//*** I2C ***
+
+#ifdef HAL_I2C_MODULE_ENABLED
+WEAK const PinMap PinMap_I2C_SDA[] = {
+ {PB_7, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
+ {PB_9, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
+ {PB_11, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
+ {PC_9, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)},
+ {NC, NP, 0}
+};
+
+WEAK const PinMap PinMap_I2C_SCL[] = {
+ {PA_8, I2C3, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C3)},
+ {PB_6, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
+ {PB_8, I2C1, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C1)},
+ {PB_10, I2C2, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_NOPULL, GPIO_AF4_I2C2)},
+ {NC, NP, 0}
+};
+#endif
+
+//*** PWM ***
+
+#ifdef HAL_TIM_MODULE_ENABLED
+// Some pins can perform PWM from more than one timer. These were selected to utilize as many channels as
+// possible from timers which were already dedicated to PWM output.
+
+// TIM1 = Pins are using for OTG FS
+// TIM2 = [HEATER_BED], TIM2 is used OTG HS SOF
+// TIM6 = Tone
+// TIM8 = [FAN0, HEATER_1] OTG HS
+// TIM7 = Servo
+// TIM9 = [HEATER_0, ]
+// TIM1, TIM8, TIM12 = Pins are using for OTG HS
+// No timer = [FAN1 ]
+
+WEAK const PinMap PinMap_PWM[] = {
+ {PA_0, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1
+ //{PA_0, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 1, 0)}, // TIM5_CH1
+ //{PA_1, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2
+ {PA_1, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 2, 0)}, // TIM5_CH2
+ //{PA_2, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3
+ {PA_2, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 3, 0)}, // TIM5_CH3
+ //{PA_2, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 1, 0)}, // TIM9_CH1
+ //{PA_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4
+ {PA_3, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 4, 0)}, // TIM5_CH4
+ //{PA_3, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 2, 0)}, // TIM9_CH2
+ {PA_5, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1
+ //{PA_5, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 1, 1)}, // TIM8_CH1N
+ //{PA_6, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1
+ {PA_6, TIM13, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM13, 1, 0)}, // TIM13_CH1
+ //{PA_7, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N
+ //{PA_7, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2
+ //{PA_7, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 1, 1)}, // TIM8_CH1N
+ {PA_7, TIM14, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM14, 1, 0)}, // TIM14_CH1
+ {PA_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 0)}, // TIM1_CH1
+ {PA_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)}, // TIM1_CH2
+ {PA_10, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3
+ //{PA_11, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 4, 0)}, // TIM1_CH4
+ {PA_15, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1
+ //{PB_0, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N
+ //{PB_0, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)}, // TIM3_CH3
+ {PB_0, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 2, 1)}, // TIM8_CH2N
+ //{PB_1, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N
+ //{PB_1, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 4, 0)}, // TIM3_CH4
+ {PB_1, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 1)}, // TIM8_CH3N
+ {PB_2, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4
+ {PB_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 2, 0)}, // TIM2_CH2
+ {PB_4, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1
+ {PB_5, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2
+ {PB_6, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 1, 0)}, // TIM4_CH1
+ {PB_7, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 2, 0)}, // TIM4_CH2
+ {PB_8, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 3, 0)}, // TIM4_CH3
+ //{PB_8, TIM10, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM10, 1, 0)}, // TIM10_CH1
+ //{PB_9, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 4, 0)}, // TIM4_CH4
+ {PB_9, TIM11, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM11, 1, 0)}, // TIM11_CH1
+ {PB_10, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 3, 0)}, // TIM2_CH3
+ {PB_11, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 4, 0)}, // TIM2_CH4
+ {PB_13, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N
+ //{PB_14, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N
+ //{PB_14, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 2, 1)}, // TIM8_CH2N
+ //{PB_14, TIM12, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM12, 1, 0)}, // TIM12_CH1
+ //{PB_15, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N
+ //{PB_15, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 1)}, // TIM8_CH3N
+ //{PB_15, TIM12, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM12, 2, 0)}, // TIM12_CH2
+ {PC_6, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 1, 0)}, // TIM3_CH1
+ //{PC_6, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 1, 0)}, // TIM8_CH1
+ //{PC_7, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2
+ {PC_7, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 2, 0)}, // TIM8_CH2
+ {PC_8, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 3, 0)}, // TIM3_CH3
+ //{PC_8, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 3, 0)}, // TIM8_CH3
+ //{PC_9, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 4, 0)}, // TIM3_CH4
+ {PC_9, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 4, 0)}, // TIM8_CH4
+ {PD_12, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 1, 0)}, // TIM4_CH1
+ {PD_13, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 2, 0)}, // TIM4_CH2
+ {PD_14, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 3, 0)}, // TIM4_CH3
+ {PD_15, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 4, 0)}, // TIM4_CH4
+ {PE_5, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 1, 0)}, // TIM9_CH1
+ {PE_6, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 2, 0)}, // TIM9_CH2
+ {PE_8, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 1)}, // TIM1_CH1N
+ {PE_9, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 1, 0)}, // TIM1_CH1
+ {PE_10, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 1)}, // TIM1_CH2N
+ {PE_11, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)}, // TIM1_CH2
+ {PE_12, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 1)}, // TIM1_CH3N
+ {PE_13, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3
+ {PE_14, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 4, 0)}, // TIM1_CH4
+ {NC, NP, 0}
+};
+#endif
+
+//*** SERIAL ***
+
+#ifdef HAL_UART_MODULE_ENABLED
+WEAK const PinMap PinMap_UART_TX[] = {
+ {PA_0, UART4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)},
+ {PA_2, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
+ {PA_9, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
+ {PB_6, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
+ {PB_10, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)},
+ {PC_6, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)},
+ {PC_10, UART4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)},
+ {PC_10, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)},
+ {PC_12, UART5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART5)},
+ {PD_5, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
+ {PD_8, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)},
+ {NC, NP, 0}
+};
+
+WEAK const PinMap PinMap_UART_RX[] = {
+ {PA_1, UART4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)},
+ {PA_3, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
+ {PA_10, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
+ {PB_7, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
+ {PB_11, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)},
+ {PC_7, USART6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)},
+ //{PC_11, UART4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART4)},
+ {PC_11, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)},
+ {PD_2, UART5, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_UART5)},
+ {PD_6, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
+ {PD_9, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)},
+ {NC, NP, 0}
+};
+
+WEAK const PinMap PinMap_UART_RTS[] = {
+ {PA_1, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
+ //{PA_12, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
+ //{PB_14, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)},
+ {PD_4, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
+ {PD_12, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)},
+ {NC, NP, 0}
+};
+
+WEAK const PinMap PinMap_UART_CTS[] = {
+ {PA_0, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
+ //{PA_11, USART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)},
+ {PB_13, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)},
+ {PD_3, USART2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)},
+ {PD_11, USART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART3)},
+ {NC, NP, 0}
+};
+#endif
+
+//*** SPI ***
+
+#ifdef HAL_SPI_MODULE_ENABLED
+WEAK const PinMap PinMap_SPI_MOSI[] = {
+ {PA_7, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
+ //{PB_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
+ {PB_5, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
+ {PB_15, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
+ {PC_3, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
+ {PC_12, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
+ {NC, NP, 0}
+};
+
+WEAK const PinMap PinMap_SPI_MISO[] = {
+ {PA_6, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
+ //{PB_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
+ {PB_4, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
+ {PB_14, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
+ {PC_2, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
+ {PC_11, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
+ {NC, NP, 0}
+};
+
+WEAK const PinMap PinMap_SPI_SCLK[] = {
+ {PA_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
+ //{PB_3, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
+ {PB_3, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
+ {PB_10, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
+ {PB_13, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
+ {PC_10, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
+ {NC, NP, 0}
+};
+
+WEAK const PinMap PinMap_SPI_SSEL[] = {
+ {PA_4, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
+ //{PA_4, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
+ //{PA_15, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI1)},
+ {PA_15, SPI3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI3)},
+ {PB_9, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
+ {PB_12, SPI2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_SPI2)},
+ {NC, NP, 0}
+};
+#endif
+
+//*** CAN ***
+
+#ifdef HAL_CAN_MODULE_ENABLED
+WEAK const PinMap PinMap_CAN_RD[] = {
+ {PA_11, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
+ {PB_5, CAN2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
+ {PB_8, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
+ {PB_12, CAN2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
+ {PD_0, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
+ {NC, NP, 0}
+};
+
+WEAK const PinMap PinMap_CAN_TD[] = {
+ {PA_12, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
+ {PB_6, CAN2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
+ {PB_9, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
+ {PB_13, CAN2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN2)},
+ {PD_1, CAN1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN1)},
+ {NC, NP, 0}
+};
+#endif
+
+//*** ETHERNET ***
+
+#ifdef HAL_ETH_MODULE_ENABLED
+WEAK const PinMap PinMap_Ethernet[] = {
+ {PA_0, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_CRS
+ {PA_1, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_REF_CLK|ETH_RX_CLK
+ {PA_2, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_MDIO
+ {PA_3, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_COL
+ {PA_7, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_CRS_DV|ETH_RX_DV
+ {PB_0, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_RXD2
+ {PB_1, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_RXD3
+ {PB_5, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_PPS_OUT
+ {PB_8, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TXD3
+ {PB_10, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_RX_ER
+ {PB_11, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TX_EN
+ {PB_12, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TXD0
+ {PB_13, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TXD1
+ {PC_1, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_MDC
+ {PC_2, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TXD2
+ {PC_3, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TX_CLK
+ {PC_4, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_RXD0
+ {PC_5, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_RXD1
+ {PE_2, ETH, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_ETH)}, // ETH_TXD3
+ {NC, NP, 0}
+};
+#endif
+
+//*** No QUADSPI ***
+
+//*** USB ***
+
+#ifdef HAL_PCD_MODULE_ENABLED
+WEAK const PinMap PinMap_USB_OTG_FS[] = {
+ //{PA_8, USB_OTG_FS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_SOF
+ //{PA_9, USB_OTG_FS, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, GPIO_AF_NONE)}, // USB_OTG_FS_VBUS
+ //{PA_10, USB_OTG_FS, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_ID
+ {PA_11, USB_OTG_FS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_DM
+ {PA_12, USB_OTG_FS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_FS)}, // USB_OTG_FS_DP
+ {NC, NP, 0}
+};
+
+WEAK const PinMap PinMap_USB_OTG_HS[] = {
+#ifdef USE_USB_HS_IN_FS
+ //{PA_4, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_SOF
+ //{PB_12, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_ID
+ //{PB_13, USB_OTG_HS, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, GPIO_AF_NONE)}, // USB_OTG_HS_VBUS
+ {PB_14, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_DM
+ {PB_15, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_OTG_HS_FS)}, // USB_OTG_HS_DP
+#else
+ {PA_3, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D0
+ {PA_5, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_CK
+ {PB_0, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D1
+ {PB_1, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D2
+ {PB_5, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D7
+ {PB_10, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D3
+ {PB_11, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D4
+ {PB_12, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D5
+ {PB_13, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_D6
+ {PC_0, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_STP
+ {PC_2, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_DIR
+ {PC_3, USB_OTG_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG_HS)}, // USB_OTG_HS_ULPI_NXT
+#endif /* USE_USB_HS_IN_FS */
+ {NC, NP, 0}
+};
+#endif
+
+//*** SD ***
+
+#ifdef HAL_SD_MODULE_ENABLED
+WEAK const PinMap PinMap_SD[] = {
+ {PB_8, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_SDIO)}, // SDIO_D4
+ {PB_9, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_SDIO)}, // SDIO_D5
+ {PC_6, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_SDIO)}, // SDIO_D6
+ {PC_7, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_SDIO)}, // SDIO_D7
+ {PC_8, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_SDIO)}, // SDIO_D0
+ {PC_9, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_SDIO)}, // SDIO_D1
+ {PC_10, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_SDIO)}, // SDIO_D2
+ {PC_11, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF12_SDIO)}, // SDIO_D3
+ {PC_12, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF12_SDIO)}, // SDIO_CK
+ {PD_2, SDIO, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF12_SDIO)}, // SDIO_CMD
+ {NC, NP, 0}
+};
+#endif
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F4_FSMC_SDIO/PinNamesVar.h b/buildroot/share/PlatformIO/variants/MARLIN_F4_FSMC_SDIO/PinNamesVar.h
new file mode 100644
index 0000000000..2424885937
--- /dev/null
+++ b/buildroot/share/PlatformIO/variants/MARLIN_F4_FSMC_SDIO/PinNamesVar.h
@@ -0,0 +1,50 @@
+/* SYS_WKUP */
+#ifdef PWR_WAKEUP_PIN1
+ SYS_WKUP1 = PA_0,
+#endif
+#ifdef PWR_WAKEUP_PIN2
+ SYS_WKUP2 = NC,
+#endif
+#ifdef PWR_WAKEUP_PIN3
+ SYS_WKUP3 = NC,
+#endif
+#ifdef PWR_WAKEUP_PIN4
+ SYS_WKUP4 = NC,
+#endif
+#ifdef PWR_WAKEUP_PIN5
+ SYS_WKUP5 = NC,
+#endif
+#ifdef PWR_WAKEUP_PIN6
+ SYS_WKUP6 = NC,
+#endif
+#ifdef PWR_WAKEUP_PIN7
+ SYS_WKUP7 = NC,
+#endif
+#ifdef PWR_WAKEUP_PIN8
+ SYS_WKUP8 = NC,
+#endif
+/* USB */
+#ifdef USBCON
+ USB_OTG_FS_SOF = PA_8,
+ USB_OTG_FS_VBUS = PA_9,
+ USB_OTG_FS_ID = PA_10,
+ USB_OTG_FS_DM = PA_11,
+ USB_OTG_FS_DP = PA_12,
+ USB_OTG_HS_ULPI_D0 = PA_3,
+ USB_OTG_HS_SOF = PA_4,
+ USB_OTG_HS_ULPI_CK = PA_5,
+ USB_OTG_HS_ULPI_D1 = PB_0,
+ USB_OTG_HS_ULPI_D2 = PB_1,
+ USB_OTG_HS_ULPI_D7 = PB_5,
+ USB_OTG_HS_ULPI_D3 = PB_10,
+ USB_OTG_HS_ULPI_D4 = PB_11,
+ USB_OTG_HS_ID = PB_12,
+ USB_OTG_HS_ULPI_D5 = PB_12,
+ USB_OTG_HS_ULPI_D6 = PB_13,
+ USB_OTG_HS_VBUS = PB_13,
+ USB_OTG_HS_DM = PB_14,
+ USB_OTG_HS_DP = PB_15,
+ USB_OTG_HS_ULPI_STP = PC_0,
+ USB_OTG_HS_ULPI_DIR = PC_2,
+ USB_OTG_HS_ULPI_NXT = PC_3,
+#endif
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F4_FSMC_SDIO/hal_conf_extra.h b/buildroot/share/PlatformIO/variants/MARLIN_F4_FSMC_SDIO/hal_conf_extra.h
new file mode 100644
index 0000000000..f77ffd12a2
--- /dev/null
+++ b/buildroot/share/PlatformIO/variants/MARLIN_F4_FSMC_SDIO/hal_conf_extra.h
@@ -0,0 +1,496 @@
+/**
+ ******************************************************************************
+ * @file stm32f4xx_hal_conf_template.h
+ * @author MCD Application Team
+ * @brief HAL configuration template file.
+ * This file should be copied to the application folder and renamed
+ * to stm32f4xx_hal_conf.h.
+ ******************************************************************************
+ * @attention
+ *
+ * © Copyright (c) 2017 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software component is licensed by ST under BSD 3-Clause license,
+ * the "License"; You may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ * opensource.org/licenses/BSD-3-Clause
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __STM32F4xx_HAL_CONF_H
+#define __STM32F4xx_HAL_CONF_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Exported types ------------------------------------------------------------*/
+/* Exported constants --------------------------------------------------------*/
+
+/* ########################## Module Selection ############################## */
+/**
+ * @brief This is the list of modules to be used in the HAL driver
+ */
+#define HAL_MODULE_ENABLED
+#define HAL_ADC_MODULE_ENABLED
+#define HAL_CAN_LEGACY_MODULE_ENABLED
+#define HAL_CRC_MODULE_ENABLED
+#define HAL_DAC_MODULE_ENABLED
+#define HAL_DMA_MODULE_ENABLED
+#define HAL_GPIO_MODULE_ENABLED
+#define HAL_I2C_MODULE_ENABLED
+#define HAL_PWR_MODULE_ENABLED
+#define HAL_RCC_MODULE_ENABLED
+#define HAL_SPI_MODULE_ENABLED
+#define HAL_TIM_MODULE_ENABLED
+#define HAL_USART_MODULE_ENABLED
+#define HAL_CORTEX_MODULE_ENABLED
+//#define HAL_UART_MODULE_ENABLED
+//#define HAL_PCD_MODULE_ENABLED
+
+//#define HAL_CAN_MODULE_ENABLED
+//#define HAL_CEC_MODULE_ENABLED
+//#define HAL_CRYP_MODULE_ENABLED
+//#define HAL_DCMI_MODULE_ENABLED
+//#define HAL_DMA2D_MODULE_ENABLED
+//#define HAL_ETH_MODULE_ENABLED
+//#define HAL_FLASH_MODULE_ENABLED
+//#define HAL_NAND_MODULE_ENABLED
+//#define HAL_NOR_MODULE_ENABLED
+//#define HAL_PCCARD_MODULE_ENABLED
+#define HAL_SRAM_MODULE_ENABLED
+#define HAL_SDRAM_MODULE_ENABLED
+//#define HAL_HASH_MODULE_ENABLED
+//#define HAL_EXTI_MODULE_ENABLED
+//#define HAL_SMBUS_MODULE_ENABLED
+//#define HAL_I2S_MODULE_ENABLED
+//#define HAL_IWDG_MODULE_ENABLED
+//#define HAL_LTDC_MODULE_ENABLED
+//#define HAL_DSI_MODULE_ENABLED
+//#define HAL_QSPI_MODULE_ENABLED
+//#define HAL_RNG_MODULE_ENABLED
+//#define HAL_RTC_MODULE_ENABLED
+//#define HAL_SAI_MODULE_ENABLED
+#define HAL_SD_MODULE_ENABLED
+//#define HAL_IRDA_MODULE_ENABLED
+//#define HAL_SMARTCARD_MODULE_ENABLED
+//#define HAL_WWDG_MODULE_ENABLED
+//#define HAL_HCD_MODULE_ENABLED
+//#define HAL_FMPI2C_MODULE_ENABLED
+//#define HAL_SPDIFRX_MODULE_ENABLED
+//#define HAL_DFSDM_MODULE_ENABLED
+//#define HAL_LPTIM_MODULE_ENABLED
+#define HAL_MMC_MODULE_ENABLED
+
+/* ########################## HSE/HSI Values adaptation ##################### */
+/**
+ * @brief Adjust the value of External High Speed oscillator (HSE) used in your application.
+ * This value is used by the RCC HAL module to compute the system frequency
+ * (when HSE is used as system clock source, directly or through the PLL).
+ */
+#if !defined (HSE_VALUE)
+ #define HSE_VALUE 25000000U /*!< Value of the External oscillator in Hz */
+#endif /* HSE_VALUE */
+
+#if !defined (HSE_STARTUP_TIMEOUT)
+ #define HSE_STARTUP_TIMEOUT 100U /*!< Time out for HSE start up, in ms */
+#endif /* HSE_STARTUP_TIMEOUT */
+
+/**
+ * @brief Internal High Speed oscillator (HSI) value.
+ * This value is used by the RCC HAL module to compute the system frequency
+ * (when HSI is used as system clock source, directly or through the PLL).
+ */
+#if !defined (HSI_VALUE)
+ #define HSI_VALUE 16000000U /*!< Value of the Internal oscillator in Hz */
+#endif /* HSI_VALUE */
+
+/**
+ * @brief Internal Low Speed oscillator (LSI) value.
+ */
+#if !defined (LSI_VALUE)
+ #define LSI_VALUE 32000U /*!< LSI Typical Value in Hz */
+#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz
+ The real value may vary depending on the variations
+ in voltage and temperature. */
+/**
+ * @brief External Low Speed oscillator (LSE) value.
+ */
+#if !defined (LSE_VALUE)
+ #define LSE_VALUE 32768U /*!< Value of the External Low Speed oscillator in Hz */
+#endif /* LSE_VALUE */
+
+#if !defined (LSE_STARTUP_TIMEOUT)
+ #define LSE_STARTUP_TIMEOUT 5000U /*!< Time out for LSE start up, in ms */
+#endif /* LSE_STARTUP_TIMEOUT */
+
+/**
+ * @brief External clock source for I2S peripheral
+ * This value is used by the I2S HAL module to compute the I2S clock source
+ * frequency, this source is inserted directly through I2S_CKIN pad.
+ */
+#if !defined (EXTERNAL_CLOCK_VALUE)
+ #define EXTERNAL_CLOCK_VALUE 12288000U /*!< Value of the External oscillator in Hz*/
+#endif /* EXTERNAL_CLOCK_VALUE */
+
+/* Tip: To avoid modifying this file each time you need to use different HSE,
+ === you can define the HSE value in your toolchain compiler preprocessor. */
+
+/* ########################### System Configuration ######################### */
+/**
+ * @brief This is the HAL system configuration section
+ */
+#define VDD_VALUE 3300U /*!< Value of VDD in mv */
+#define TICK_INT_PRIORITY 0x0FU /*!< tick interrupt priority */
+#define USE_RTOS 0U
+#define PREFETCH_ENABLE 1U
+#define INSTRUCTION_CACHE_ENABLE 1U
+#define DATA_CACHE_ENABLE 1U
+
+#define USE_HAL_ADC_REGISTER_CALLBACKS 0U /* ADC register callback disabled */
+#define USE_HAL_CAN_REGISTER_CALLBACKS 0U /* CAN register callback disabled */
+#define USE_HAL_CEC_REGISTER_CALLBACKS 0U /* CEC register callback disabled */
+#define USE_HAL_CRYP_REGISTER_CALLBACKS 0U /* CRYP register callback disabled */
+#define USE_HAL_DAC_REGISTER_CALLBACKS 0U /* DAC register callback disabled */
+#define USE_HAL_DCMI_REGISTER_CALLBACKS 0U /* DCMI register callback disabled */
+#define USE_HAL_DFSDM_REGISTER_CALLBACKS 0U /* DFSDM register callback disabled */
+#define USE_HAL_DMA2D_REGISTER_CALLBACKS 0U /* DMA2D register callback disabled */
+#define USE_HAL_DSI_REGISTER_CALLBACKS 0U /* DSI register callback disabled */
+#define USE_HAL_ETH_REGISTER_CALLBACKS 0U /* ETH register callback disabled */
+#define USE_HAL_HASH_REGISTER_CALLBACKS 0U /* HASH register callback disabled */
+#define USE_HAL_HCD_REGISTER_CALLBACKS 0U /* HCD register callback disabled */
+#define USE_HAL_I2C_REGISTER_CALLBACKS 0U /* I2C register callback disabled */
+#define USE_HAL_FMPI2C_REGISTER_CALLBACKS 0U /* FMPI2C register callback disabled */
+#define USE_HAL_I2S_REGISTER_CALLBACKS 0U /* I2S register callback disabled */
+#define USE_HAL_IRDA_REGISTER_CALLBACKS 0U /* IRDA register callback disabled */
+#define USE_HAL_LPTIM_REGISTER_CALLBACKS 0U /* LPTIM register callback disabled */
+#define USE_HAL_LTDC_REGISTER_CALLBACKS 0U /* LTDC register callback disabled */
+#define USE_HAL_MMC_REGISTER_CALLBACKS 0U /* MMC register callback disabled */
+#define USE_HAL_NAND_REGISTER_CALLBACKS 0U /* NAND register callback disabled */
+#define USE_HAL_NOR_REGISTER_CALLBACKS 0U /* NOR register callback disabled */
+#define USE_HAL_PCCARD_REGISTER_CALLBACKS 0U /* PCCARD register callback disabled */
+#define USE_HAL_PCD_REGISTER_CALLBACKS 0U /* PCD register callback disabled */
+#define USE_HAL_QSPI_REGISTER_CALLBACKS 0U /* QSPI register callback disabled */
+#define USE_HAL_RNG_REGISTER_CALLBACKS 0U /* RNG register callback disabled */
+#define USE_HAL_RTC_REGISTER_CALLBACKS 0U /* RTC register callback disabled */
+#define USE_HAL_SAI_REGISTER_CALLBACKS 0U /* SAI register callback disabled */
+#define USE_HAL_SD_REGISTER_CALLBACKS 0U /* SD register callback disabled */
+#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U /* SMARTCARD register callback disabled */
+#define USE_HAL_SDRAM_REGISTER_CALLBACKS 0U /* SDRAM register callback disabled */
+#define USE_HAL_SRAM_REGISTER_CALLBACKS 0U /* SRAM register callback disabled */
+#define USE_HAL_SPDIFRX_REGISTER_CALLBACKS 0U /* SPDIFRX register callback disabled */
+#define USE_HAL_SMBUS_REGISTER_CALLBACKS 0U /* SMBUS register callback disabled */
+#define USE_HAL_SPI_REGISTER_CALLBACKS 0U /* SPI register callback disabled */
+#define USE_HAL_TIM_REGISTER_CALLBACKS 0U /* TIM register callback disabled */
+#define USE_HAL_UART_REGISTER_CALLBACKS 0U /* UART register callback disabled */
+#define USE_HAL_USART_REGISTER_CALLBACKS 0U /* USART register callback disabled */
+#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U /* WWDG register callback disabled */
+
+/* ########################## Assert Selection ############################## */
+/**
+ * @brief Uncomment the line below to expanse the "assert_param" macro in the
+ * HAL drivers code
+ */
+// #define USE_FULL_ASSERT 1U
+
+/* ################## Ethernet peripheral configuration ##################### */
+
+/* Section 1 : Ethernet peripheral configuration */
+
+/* MAC ADDRESS: MAC_ADDR0:MAC_ADDR1:MAC_ADDR2:MAC_ADDR3:MAC_ADDR4:MAC_ADDR5 */
+#define MAC_ADDR0 2U
+#define MAC_ADDR1 0U
+#define MAC_ADDR2 0U
+#define MAC_ADDR3 0U
+#define MAC_ADDR4 0U
+#define MAC_ADDR5 0U
+
+/* Definition of the Ethernet driver buffers size and count */
+#define ETH_RX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for receive */
+#define ETH_TX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for transmit */
+#define ETH_RXBUFNB 4U /* 4 Rx buffers of size ETH_RX_BUF_SIZE */
+#define ETH_TXBUFNB 4U /* 4 Tx buffers of size ETH_TX_BUF_SIZE */
+
+/* Section 2: PHY configuration section */
+
+/* DP83848 PHY Address*/
+#define DP83848_PHY_ADDRESS 0x01U
+/* PHY Reset delay these values are based on a 1 ms Systick interrupt*/
+#define PHY_RESET_DELAY 0x000000FFU
+/* PHY Configuration delay */
+#define PHY_CONFIG_DELAY 0x00000FFFU
+
+#define PHY_READ_TO 0x0000FFFFU
+#define PHY_WRITE_TO 0x0000FFFFU
+
+/* Section 3: Common PHY Registers */
+
+#define PHY_BCR ((uint16_t)0x0000) /*!< Transceiver Basic Control Register */
+#define PHY_BSR ((uint16_t)0x0001) /*!< Transceiver Basic Status Register */
+
+#define PHY_RESET ((uint16_t)0x8000) /*!< PHY Reset */
+#define PHY_LOOPBACK ((uint16_t)0x4000) /*!< Select loop-back mode */
+#define PHY_FULLDUPLEX_100M ((uint16_t)0x2100) /*!< Set the full-duplex mode at 100 Mb/s */
+#define PHY_HALFDUPLEX_100M ((uint16_t)0x2000) /*!< Set the half-duplex mode at 100 Mb/s */
+#define PHY_FULLDUPLEX_10M ((uint16_t)0x0100) /*!< Set the full-duplex mode at 10 Mb/s */
+#define PHY_HALFDUPLEX_10M ((uint16_t)0x0000) /*!< Set the half-duplex mode at 10 Mb/s */
+#define PHY_AUTONEGOTIATION ((uint16_t)0x1000) /*!< Enable auto-negotiation function */
+#define PHY_RESTART_AUTONEGOTIATION ((uint16_t)0x0200) /*!< Restart auto-negotiation function */
+#define PHY_POWERDOWN ((uint16_t)0x0800) /*!< Select the power down mode */
+#define PHY_ISOLATE ((uint16_t)0x0400) /*!< Isolate PHY from MII */
+
+#define PHY_AUTONEGO_COMPLETE ((uint16_t)0x0020) /*!< Auto-Negotiation process completed */
+#define PHY_LINKED_STATUS ((uint16_t)0x0004) /*!< Valid link established */
+#define PHY_JABBER_DETECTION ((uint16_t)0x0002) /*!< Jabber condition detected */
+
+/* Section 4: Extended PHY Registers */
+
+#define PHY_SR ((uint16_t)0x0010) /*!< PHY status register Offset */
+#define PHY_MICR ((uint16_t)0x0011) /*!< MII Interrupt Control Register */
+#define PHY_MISR ((uint16_t)0x0012) /*!< MII Interrupt Status and Misc. Control Register */
+
+#define PHY_LINK_STATUS ((uint16_t)0x0001) /*!< PHY Link mask */
+#define PHY_SPEED_STATUS ((uint16_t)0x0002) /*!< PHY Speed mask */
+#define PHY_DUPLEX_STATUS ((uint16_t)0x0004) /*!< PHY Duplex mask */
+
+#define PHY_MICR_INT_EN ((uint16_t)0x0002) /*!< PHY Enable interrupts */
+#define PHY_MICR_INT_OE ((uint16_t)0x0001) /*!< PHY Enable output interrupt events */
+
+#define PHY_MISR_LINK_INT_EN ((uint16_t)0x0020) /*!< Enable Interrupt on change of link status */
+#define PHY_LINK_INTERRUPT ((uint16_t)0x2000) /*!< PHY link status interrupt mask */
+
+/* ################## SPI peripheral configuration ########################## */
+
+/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver
+* Activated: CRC code is present inside driver
+* Deactivated: CRC code cleaned from driver
+*/
+
+#define USE_SPI_CRC 0U
+
+/* Includes ------------------------------------------------------------------*/
+/**
+ * @brief Include module's header file
+ */
+
+#ifdef HAL_RCC_MODULE_ENABLED
+ #include "stm32f4xx_hal_rcc.h"
+#endif /* HAL_RCC_MODULE_ENABLED */
+
+#ifdef HAL_GPIO_MODULE_ENABLED
+ #include "stm32f4xx_hal_gpio.h"
+#endif /* HAL_GPIO_MODULE_ENABLED */
+
+#ifdef HAL_EXTI_MODULE_ENABLED
+ #include "stm32f4xx_hal_exti.h"
+#endif /* HAL_EXTI_MODULE_ENABLED */
+
+#ifdef HAL_DMA_MODULE_ENABLED
+ #include "stm32f4xx_hal_dma.h"
+#endif /* HAL_DMA_MODULE_ENABLED */
+
+#ifdef HAL_CORTEX_MODULE_ENABLED
+ #include "stm32f4xx_hal_cortex.h"
+#endif /* HAL_CORTEX_MODULE_ENABLED */
+
+#ifdef HAL_ADC_MODULE_ENABLED
+ #include "stm32f4xx_hal_adc.h"
+#endif /* HAL_ADC_MODULE_ENABLED */
+
+#ifdef HAL_CAN_MODULE_ENABLED
+ #include "stm32f4xx_hal_can.h"
+#endif /* HAL_CAN_MODULE_ENABLED */
+
+#ifdef HAL_CAN_LEGACY_MODULE_ENABLED
+ #include "stm32f4xx_hal_can_legacy.h"
+#endif /* HAL_CAN_LEGACY_MODULE_ENABLED */
+
+#ifdef HAL_CRC_MODULE_ENABLED
+ #include "stm32f4xx_hal_crc.h"
+#endif /* HAL_CRC_MODULE_ENABLED */
+
+#ifdef HAL_CRYP_MODULE_ENABLED
+ #include "stm32f4xx_hal_cryp.h"
+#endif /* HAL_CRYP_MODULE_ENABLED */
+
+#ifdef HAL_DMA2D_MODULE_ENABLED
+ #include "stm32f4xx_hal_dma2d.h"
+#endif /* HAL_DMA2D_MODULE_ENABLED */
+
+#ifdef HAL_DAC_MODULE_ENABLED
+ #include "stm32f4xx_hal_dac.h"
+#endif /* HAL_DAC_MODULE_ENABLED */
+
+#ifdef HAL_DCMI_MODULE_ENABLED
+ #include "stm32f4xx_hal_dcmi.h"
+#endif /* HAL_DCMI_MODULE_ENABLED */
+
+#ifdef HAL_ETH_MODULE_ENABLED
+ #include "stm32f4xx_hal_eth.h"
+#endif /* HAL_ETH_MODULE_ENABLED */
+
+#ifdef HAL_FLASH_MODULE_ENABLED
+ #include "stm32f4xx_hal_flash.h"
+#endif /* HAL_FLASH_MODULE_ENABLED */
+
+#ifdef HAL_SRAM_MODULE_ENABLED
+ #include "stm32f4xx_hal_sram.h"
+#endif /* HAL_SRAM_MODULE_ENABLED */
+
+#ifdef HAL_NOR_MODULE_ENABLED
+ #include "stm32f4xx_hal_nor.h"
+#endif /* HAL_NOR_MODULE_ENABLED */
+
+#ifdef HAL_NAND_MODULE_ENABLED
+ #include "stm32f4xx_hal_nand.h"
+#endif /* HAL_NAND_MODULE_ENABLED */
+
+#ifdef HAL_PCCARD_MODULE_ENABLED
+ #include "stm32f4xx_hal_pccard.h"
+#endif /* HAL_PCCARD_MODULE_ENABLED */
+
+#ifdef HAL_SDRAM_MODULE_ENABLED
+ #include "stm32f4xx_hal_sdram.h"
+#endif /* HAL_SDRAM_MODULE_ENABLED */
+
+#ifdef HAL_HASH_MODULE_ENABLED
+ #include "stm32f4xx_hal_hash.h"
+#endif /* HAL_HASH_MODULE_ENABLED */
+
+#ifdef HAL_I2C_MODULE_ENABLED
+ #include "stm32f4xx_hal_i2c.h"
+#endif /* HAL_I2C_MODULE_ENABLED */
+
+#ifdef HAL_SMBUS_MODULE_ENABLED
+ #include "stm32f4xx_hal_smbus.h"
+#endif /* HAL_SMBUS_MODULE_ENABLED */
+
+#ifdef HAL_I2S_MODULE_ENABLED
+ #include "stm32f4xx_hal_i2s.h"
+#endif /* HAL_I2S_MODULE_ENABLED */
+
+#ifdef HAL_IWDG_MODULE_ENABLED
+ #include "stm32f4xx_hal_iwdg.h"
+#endif /* HAL_IWDG_MODULE_ENABLED */
+
+#ifdef HAL_LTDC_MODULE_ENABLED
+ #include "stm32f4xx_hal_ltdc.h"
+#endif /* HAL_LTDC_MODULE_ENABLED */
+
+#ifdef HAL_PWR_MODULE_ENABLED
+ #include "stm32f4xx_hal_pwr.h"
+#endif /* HAL_PWR_MODULE_ENABLED */
+
+#ifdef HAL_RNG_MODULE_ENABLED
+ #include "stm32f4xx_hal_rng.h"
+#endif /* HAL_RNG_MODULE_ENABLED */
+
+#ifdef HAL_RTC_MODULE_ENABLED
+ #include "stm32f4xx_hal_rtc.h"
+#endif /* HAL_RTC_MODULE_ENABLED */
+
+#ifdef HAL_SAI_MODULE_ENABLED
+ #include "stm32f4xx_hal_sai.h"
+#endif /* HAL_SAI_MODULE_ENABLED */
+
+#ifdef HAL_SD_MODULE_ENABLED
+ #include "stm32f4xx_hal_sd.h"
+#endif /* HAL_SD_MODULE_ENABLED */
+
+#ifdef HAL_SPI_MODULE_ENABLED
+ #include "stm32f4xx_hal_spi.h"
+#endif /* HAL_SPI_MODULE_ENABLED */
+
+#ifdef HAL_TIM_MODULE_ENABLED
+ #include "stm32f4xx_hal_tim.h"
+#endif /* HAL_TIM_MODULE_ENABLED */
+
+#ifdef HAL_UART_MODULE_ENABLED
+ #include "stm32f4xx_hal_uart.h"
+#endif /* HAL_UART_MODULE_ENABLED */
+
+#ifdef HAL_USART_MODULE_ENABLED
+ #include "stm32f4xx_hal_usart.h"
+#endif /* HAL_USART_MODULE_ENABLED */
+
+#ifdef HAL_IRDA_MODULE_ENABLED
+ #include "stm32f4xx_hal_irda.h"
+#endif /* HAL_IRDA_MODULE_ENABLED */
+
+#ifdef HAL_SMARTCARD_MODULE_ENABLED
+ #include "stm32f4xx_hal_smartcard.h"
+#endif /* HAL_SMARTCARD_MODULE_ENABLED */
+
+#ifdef HAL_WWDG_MODULE_ENABLED
+ #include "stm32f4xx_hal_wwdg.h"
+#endif /* HAL_WWDG_MODULE_ENABLED */
+
+#ifdef HAL_PCD_MODULE_ENABLED
+ #include "stm32f4xx_hal_pcd.h"
+#endif /* HAL_PCD_MODULE_ENABLED */
+
+#ifdef HAL_HCD_MODULE_ENABLED
+ #include "stm32f4xx_hal_hcd.h"
+#endif /* HAL_HCD_MODULE_ENABLED */
+
+#ifdef HAL_DSI_MODULE_ENABLED
+ #include "stm32f4xx_hal_dsi.h"
+#endif /* HAL_DSI_MODULE_ENABLED */
+
+#ifdef HAL_QSPI_MODULE_ENABLED
+ #include "stm32f4xx_hal_qspi.h"
+#endif /* HAL_QSPI_MODULE_ENABLED */
+
+#ifdef HAL_CEC_MODULE_ENABLED
+ #include "stm32f4xx_hal_cec.h"
+#endif /* HAL_CEC_MODULE_ENABLED */
+
+#ifdef HAL_FMPI2C_MODULE_ENABLED
+ #include "stm32f4xx_hal_fmpi2c.h"
+#endif /* HAL_FMPI2C_MODULE_ENABLED */
+
+#ifdef HAL_SPDIFRX_MODULE_ENABLED
+ #include "stm32f4xx_hal_spdifrx.h"
+#endif /* HAL_SPDIFRX_MODULE_ENABLED */
+
+#ifdef HAL_DFSDM_MODULE_ENABLED
+ #include "stm32f4xx_hal_dfsdm.h"
+#endif /* HAL_DFSDM_MODULE_ENABLED */
+
+#ifdef HAL_LPTIM_MODULE_ENABLED
+ #include "stm32f4xx_hal_lptim.h"
+#endif /* HAL_LPTIM_MODULE_ENABLED */
+
+#ifdef HAL_MMC_MODULE_ENABLED
+ #include "stm32f4xx_hal_mmc.h"
+#endif /* HAL_MMC_MODULE_ENABLED */
+
+/* Exported macro ------------------------------------------------------------*/
+#ifdef USE_FULL_ASSERT
+/**
+ * @brief The assert_param macro is used for function's parameters check.
+ * @param expr If expr is false, it calls assert_failed function
+ * which reports the name of the source file and the source
+ * line number of the call that failed.
+ * If expr is true, it returns no value.
+ * @retval None
+ */
+ #define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__))
+/* Exported functions ------------------------------------------------------- */
+ void assert_failed(uint8_t *file, uint32_t line);
+#else
+ #define assert_param(expr) ((void)0U)
+#endif /* USE_FULL_ASSERT */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __STM32F4xx_HAL_CONF_H */
+
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F4_FSMC_SDIO/ldscript.ld b/buildroot/share/PlatformIO/variants/MARLIN_F4_FSMC_SDIO/ldscript.ld
new file mode 100644
index 0000000000..aa685e8111
--- /dev/null
+++ b/buildroot/share/PlatformIO/variants/MARLIN_F4_FSMC_SDIO/ldscript.ld
@@ -0,0 +1,203 @@
+/*
+******************************************************************************
+**
+** File : LinkerScript.ld
+**
+** Abstract : Linker script for STM32F4x7Vx Device with
+** 512/1024KByte FLASH, 192KByte RAM
+**
+** Set heap size, stack size and stack location according
+** to application requirements.
+**
+** Set memory bank area and size if external memory is used.
+**
+** Target : STMicroelectronics STM32
+**
+** Distribution: The file is distributed “as is,” without any warranty
+** of any kind.
+**
+*****************************************************************************
+** @attention
+**
+** © COPYRIGHT(c) 2019 STMicroelectronics
+**
+** Redistribution and use in source and binary forms, with or without modification,
+** are permitted provided that the following conditions are met:
+** 1. Redistributions of source code must retain the above copyright notice,
+** this list of conditions and the following disclaimer.
+** 2. Redistributions in binary form must reproduce the above copyright notice,
+** this list of conditions and the following disclaimer in the documentation
+** and/or other materials provided with the distribution.
+** 3. Neither the name of STMicroelectronics nor the names of its contributors
+** may be used to endorse or promote products derived from this software
+** without specific prior written permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+**
+*****************************************************************************
+*/
+
+/* Entry Point */
+ENTRY(Reset_Handler)
+
+/* Highest address of the user mode stack */
+_estack = 0x20000000 + LD_MAX_DATA_SIZE; /* end of RAM */
+/* Generate a link error if heap and stack don't fit into RAM */
+_Min_Heap_Size = 0x200; /* required amount of heap */
+_Min_Stack_Size = 0x400; /* required amount of stack */
+
+/* Specify the memory areas */
+MEMORY
+{
+RAM (xrw) : ORIGIN = 0x20000000, LENGTH = LD_MAX_DATA_SIZE
+CCMRAM (rw) : ORIGIN = 0x10000000, LENGTH = 64K
+FLASH (rx) : ORIGIN = 0x08000000 + LD_FLASH_OFFSET, LENGTH = LD_MAX_SIZE - LD_FLASH_OFFSET
+}
+
+/* Define output sections */
+SECTIONS
+{
+ /* The startup code goes first into FLASH */
+ .isr_vector :
+ {
+ . = ALIGN(4);
+ KEEP(*(.isr_vector)) /* Startup code */
+ . = ALIGN(4);
+ } >FLASH
+
+ /* The program code and other data goes into FLASH */
+ .text :
+ {
+ . = ALIGN(4);
+ *(.text) /* .text sections (code) */
+ *(.text*) /* .text* sections (code) */
+ *(.glue_7) /* glue arm to thumb code */
+ *(.glue_7t) /* glue thumb to arm code */
+ *(.eh_frame)
+
+ KEEP (*(.init))
+ KEEP (*(.fini))
+
+ . = ALIGN(4);
+ _etext = .; /* define a global symbols at end of code */
+ } >FLASH
+
+ /* Constant data goes into FLASH */
+ .rodata :
+ {
+ . = ALIGN(4);
+ *(.rodata) /* .rodata sections (constants, strings, etc.) */
+ *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
+ . = ALIGN(4);
+ } >FLASH
+
+ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
+ .ARM : {
+ __exidx_start = .;
+ *(.ARM.exidx*)
+ __exidx_end = .;
+ } >FLASH
+
+ .preinit_array :
+ {
+ PROVIDE_HIDDEN (__preinit_array_start = .);
+ KEEP (*(.preinit_array*))
+ PROVIDE_HIDDEN (__preinit_array_end = .);
+ } >FLASH
+ .init_array :
+ {
+ PROVIDE_HIDDEN (__init_array_start = .);
+ KEEP (*(SORT(.init_array.*)))
+ KEEP (*(.init_array*))
+ PROVIDE_HIDDEN (__init_array_end = .);
+ } >FLASH
+ .fini_array :
+ {
+ PROVIDE_HIDDEN (__fini_array_start = .);
+ KEEP (*(SORT(.fini_array.*)))
+ KEEP (*(.fini_array*))
+ PROVIDE_HIDDEN (__fini_array_end = .);
+ } >FLASH
+
+ /* used by the startup to initialize data */
+ _sidata = LOADADDR(.data);
+
+ /* Initialized data sections goes into RAM, load LMA copy after code */
+ .data :
+ {
+ . = ALIGN(4);
+ _sdata = .; /* create a global symbol at data start */
+ *(.data) /* .data sections */
+ *(.data*) /* .data* sections */
+
+ . = ALIGN(4);
+ _edata = .; /* define a global symbol at data end */
+ } >RAM AT> FLASH
+
+ _siccmram = LOADADDR(.ccmram);
+
+ /* CCM-RAM section
+ *
+ * IMPORTANT NOTE!
+ * If initialized variables will be placed in this section,
+ * the startup code needs to be modified to copy the init-values.
+ */
+ .ccmram :
+ {
+ . = ALIGN(4);
+ _sccmram = .; /* create a global symbol at ccmram start */
+ *(.ccmram)
+ *(.ccmram*)
+
+ . = ALIGN(4);
+ _eccmram = .; /* create a global symbol at ccmram end */
+ } >CCMRAM AT> FLASH
+
+
+ /* Uninitialized data section */
+ . = ALIGN(4);
+ .bss :
+ {
+ /* This is used by the startup in order to initialize the .bss secion */
+ _sbss = .; /* define a global symbol at bss start */
+ __bss_start__ = _sbss;
+ *(.bss)
+ *(.bss*)
+ *(COMMON)
+
+ . = ALIGN(4);
+ _ebss = .; /* define a global symbol at bss end */
+ __bss_end__ = _ebss;
+ } >RAM
+
+ /* User_heap_stack section, used to check that there is enough RAM left */
+ ._user_heap_stack :
+ {
+ . = ALIGN(8);
+ PROVIDE ( end = . );
+ PROVIDE ( _end = . );
+ . = . + _Min_Heap_Size;
+ . = . + _Min_Stack_Size;
+ . = ALIGN(8);
+ } >RAM
+
+
+ /* Remove information from the standard libraries */
+ /DISCARD/ :
+ {
+ libc.a ( * )
+ libm.a ( * )
+ libgcc.a ( * )
+ }
+
+ .ARM.attributes 0 : { *(.ARM.attributes) }
+}
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F4_FSMC_SDIO/variant.cpp b/buildroot/share/PlatformIO/variants/MARLIN_F4_FSMC_SDIO/variant.cpp
new file mode 100644
index 0000000000..3721d4f5b5
--- /dev/null
+++ b/buildroot/share/PlatformIO/variants/MARLIN_F4_FSMC_SDIO/variant.cpp
@@ -0,0 +1,275 @@
+/*
+ Copyright (c) 2011 Arduino. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#include "pins_arduino.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// Digital PinName array
+const PinName digitalPin[] = {
+ PA_0, // Digital pin 0
+ PA_1, // Digital pin 1
+ PA_2, // Digital pin 2
+ PA_3, // Digital pin 3
+ PA_4, // Digital pin 4
+ PA_5, // Digital pin 5
+ PA_6, // Digital pin 6
+ PA_7, // Digital pin 7
+ PA_8, // Digital pin 8
+ PA_9, // Digital pin 9
+ PA_10, // Digital pin 10
+ PA_11, // Digital pin 11
+ PA_12, // Digital pin 12
+ PA_13, // Digital pin 13
+ PA_14, // Digital pin 14
+ PA_15, // Digital pin 15
+
+ PB_0, // Digital pin 16
+ PB_1, // Digital pin 17
+ PB_2, // Digital pin 18
+ PB_3, // Digital pin 19
+ PB_4, // Digital pin 20
+ PB_5, // Digital pin 21
+ PB_6, // Digital pin 22
+ PB_7, // Digital pin 23
+ PB_8, // Digital pin 24
+ PB_9, // Digital pin 25
+ PB_10, // Digital pin 26
+ PB_11, // Digital pin 27
+ PB_12, // Digital pin 28
+ PB_13, // Digital pin 29
+ PB_14, // Digital pin 30
+ PB_15, // Digital pin 31
+
+ PC_0, // Digital pin 32
+ PC_1, // Digital pin 33
+ PC_2, // Digital pin 34
+ PC_3, // Digital pin 35
+ PC_4, // Digital pin 36
+ PC_5, // Digital pin 37
+ PC_6, // Digital pin 38
+ PC_7, // Digital pin 39
+ PC_8, // Digital pin 40
+ PC_9, // Digital pin 41
+ PC_10, // Digital pin 42
+ PC_11, // Digital pin 43
+ PC_12, // Digital pin 44
+ PC_13, // Digital pin 45
+ PC_14, // Digital pin 46
+ PC_15, // Digital pin 47
+
+ PD_0, // Digital pin 48
+ PD_1, // Digital pin 49
+ PD_2, // Digital pin 50
+ PD_3, // Digital pin 51
+ PD_4, // Digital pin 52
+ PD_5, // Digital pin 53
+ PD_6, // Digital pin 54
+ PD_7, // Digital pin 55
+ PD_8, // Digital pin 56
+ PD_9, // Digital pin 57
+ PD_10, // Digital pin 58
+ PD_11, // Digital pin 59
+ PD_12, // Digital pin 60
+ PD_13, // Digital pin 61
+ PD_14, // Digital pin 62
+ PD_15, // Digital pin 63
+
+ PE_0, // Digital pin 64
+ PE_1, // Digital pin 65
+ PE_2, // Digital pin 66
+ PE_3, // Digital pin 67
+ PE_4, // Digital pin 68
+ PE_5, // Digital pin 69
+ PE_6, // Digital pin 70
+ PE_7, // Digital pin 71
+ PE_8, // Digital pin 72
+ PE_9, // Digital pin 73
+ PE_10, // Digital pin 74
+ PE_11, // Digital pin 75
+ PE_12, // Digital pin 76
+ PE_13, // Digital pin 77
+ PE_14, // Digital pin 78
+ PE_15, // Digital pin 79
+
+ PH_0, // Digital pin 80, used by the external oscillator
+ PH_1 // Digital pin 81, used by the external oscillator
+};
+
+// Analog (Ax) pin number array
+const uint32_t analogInputPin[] = {
+ 0, // A0, PA0
+ 1, // A1, PA1
+ 2, // A2, PA2
+ 3, // A3, PA3
+ 4, // A4, PA4
+ 5, // A5, PA5
+ 6, // A6, PA6
+ 7, // A7, PA7
+ 16, // A8, PB0
+ 17, // A9, PB1
+ 32, // A10, PC0
+ 33, // A11, PC1
+ 34, // A12, PC2
+ 35, // A13, PC3
+ 36, // A14, PC4
+ 37 // A15, PC5
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+// ----------------------------------------------------------------------------
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * @brief Configures the System clock source, PLL Multiplier and Divider factors,
+ * AHB/APBx prescalers and Flash settings
+ * @note This function should be called only once the RCC clock configuration
+ * is reset to the default reset state (done in SystemInit() function).
+ * @param None
+ * @retval None
+ */
+
+/******************************************************************************/
+/* PLL (clocked by HSE) used as System clock source */
+/******************************************************************************/
+static uint8_t SetSysClock_PLL_HSE(uint8_t bypass)
+{
+ RCC_OscInitTypeDef RCC_OscInitStruct;
+ RCC_ClkInitTypeDef RCC_ClkInitStruct;
+
+ /* The voltage scaling allows optimizing the power consumption when the device is
+ clocked below the maximum system frequency, to update the voltage scaling value
+ regarding system frequency refer to product datasheet. */
+ __HAL_RCC_PWR_CLK_ENABLE();
+ __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
+
+ // Enable HSE oscillator and activate PLL with HSE as source
+ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
+ if (bypass == 0) {
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON; // External 8 MHz xtal on OSC_IN/OSC_OUT
+ } else {
+ RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS; // External 8 MHz clock on OSC_IN
+ }
+
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+ RCC_OscInitStruct.PLL.PLLM = HSE_VALUE / 1000000L; // Expects an 8 MHz external clock by default. Redefine HSE_VALUE if not
+ RCC_OscInitStruct.PLL.PLLN = 336; // VCO output clock = 336 MHz (1 MHz * 336)
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; // PLLCLK = 168 MHz (336 MHz / 2)
+ RCC_OscInitStruct.PLL.PLLQ = 7;
+ if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
+ return 0; // FAIL
+ }
+
+ // Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers
+ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
+ RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
+ RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; // 168 MHz
+ RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4; // 42 MHz
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; // 84 MHz
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) {
+ return 0; // FAIL
+ }
+
+ /* Output clock on MCO1 pin(PA8) for debugging purpose */
+ /*
+ if (bypass == 0)
+ HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_HSE, RCC_MCODIV_2); // 4 MHz
+ else
+ HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_HSE, RCC_MCODIV_1); // 8 MHz
+ */
+
+ return 1; // OK
+}
+
+/******************************************************************************/
+/* PLL (clocked by HSI) used as System clock source */
+/******************************************************************************/
+uint8_t SetSysClock_PLL_HSI(void)
+{
+ RCC_OscInitTypeDef RCC_OscInitStruct;
+ RCC_ClkInitTypeDef RCC_ClkInitStruct;
+
+ /* The voltage scaling allows optimizing the power consumption when the device is
+ clocked below the maximum system frequency, to update the voltage scaling value
+ regarding system frequency refer to product datasheet. */
+ __HAL_RCC_PWR_CLK_ENABLE();
+ __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
+
+ // Enable HSI oscillator and activate PLL with HSI as source
+ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
+ RCC_OscInitStruct.HSIState = RCC_HSI_ON;
+ RCC_OscInitStruct.HSEState = RCC_HSE_OFF;
+ RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
+ RCC_OscInitStruct.PLL.PLLM = 16; // VCO input clock = 1 MHz (16 MHz / 16)
+ RCC_OscInitStruct.PLL.PLLN = 336; // VCO output clock = 336 MHz (1 MHz * 336)
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; // PLLCLK = 168 MHz (336 MHz / 2)
+ RCC_OscInitStruct.PLL.PLLQ = 7;
+ if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
+ return 0; // FAIL
+ }
+
+ /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers */
+ RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
+ RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
+ RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; // 168 MHz
+ RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4; // 42 MHz
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; // 84 MHz
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) {
+ return 0; // FAIL
+ }
+
+ /* Output clock on MCO1 pin(PA8) for debugging purpose */
+ //HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_HSI, RCC_MCODIV_1); // 16 MHz
+
+ return 1; // OK
+}
+
+WEAK void SystemClock_Config(void)
+{
+ /* 1- If fail try to start with HSE and external xtal */
+ if (SetSysClock_PLL_HSE(0) == 0) {
+ /* 2- Try to start with HSE and external clock */
+ if (SetSysClock_PLL_HSE(1) == 0) {
+ /* 3- If fail start with HSI clock */
+ if (SetSysClock_PLL_HSI() == 0) {
+ Error_Handler();
+ }
+ }
+ }
+
+ /* Ensure CCM RAM clock is enabled */
+ __HAL_RCC_CCMDATARAMEN_CLK_ENABLE();
+
+ /* Output clock on MCO2 pin(PC9) for debugging purpose */
+ //HAL_RCC_MCOConfig(RCC_MCO2, RCC_MCO2SOURCE_SYSCLK, RCC_MCODIV_4);
+}
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F4_FSMC_SDIO/variant.h b/buildroot/share/PlatformIO/variants/MARLIN_F4_FSMC_SDIO/variant.h
new file mode 100644
index 0000000000..94fa79c065
--- /dev/null
+++ b/buildroot/share/PlatformIO/variants/MARLIN_F4_FSMC_SDIO/variant.h
@@ -0,0 +1,203 @@
+/*
+ Copyright (c) 2011 Arduino. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#ifndef _VARIANT_ARDUINO_STM32_
+#define _VARIANT_ARDUINO_STM32_
+
+#ifdef __cplusplus
+extern "C" {
+#endif // __cplusplus
+
+/*----------------------------------------------------------------------------
+ * Pins
+ *----------------------------------------------------------------------------*/
+
+// | DIGITAL | ANALOG IN | ANALOG OUT | UART/USART | TWI | SPI | SPECIAL |
+// |---------|------------|------------|-----------------------|----------------------|-----------------------------------|-----------|
+#define PA0 PIN_A0 // | 0 | A0 (ADC1) | | UART4_TX | | | |
+#define PA1 PIN_A1 // | 1 | A1 (ADC1) | | UART4_RX | | | |
+#define PA2 PIN_A2 // | 2 | A2 (ADC1) | | USART2_TX | | | |
+#define PA3 PIN_A3 // | 3 | A3 (ADC1) | | USART2_RX | | | |
+#define PA4 PIN_A4 // | 4 | A4 (ADC1) | DAC_OUT1 | | | SPI1_SS, (SPI3_SS) | |
+#define PA5 PIN_A5 // | 5 | A5 (ADC1) | DAC_OUT2 | | | SPI1_SCK | |
+#define PA6 PIN_A6 // | 6 | A6 (ADC1) | | | | SPI1_MISO | |
+#define PA7 PIN_A7 // | 7 | A7 (ADC1) | | | | SPI1_MOSI | |
+#define PA8 8 // | 8 | | | | TWI3_SCL | | |
+#define PA9 9 // | 9 | | | USART1_TX | | | |
+#define PA10 10 // | 10 | | | USART1_RX | | | |
+#define PA11 11 // | 11 | | | | | | |
+#define PA12 12 // | 12 | | | | | | |
+#define PA13 13 // | 13 | | | | | | SWD_SWDIO |
+#define PA14 14 // | 14 | | | | | | SWD_SWCLK |
+#define PA15 15 // | 15 | | | | | SPI3_SS, (SPI1_SS) | |
+// |---------|------------|------------|-----------------------|----------------------|-----------------------------------|-----------|
+#define PB0 PIN_A8 // | 16 | A8 (ADC1) | | | | | |
+#define PB1 PIN_A9 // | 17 | A9 (ADC1) | | | | | |
+#define PB2 18 // | 18 | | | | | | BOOT1 |
+#define PB3 19 // | 19 | | | | | SPI3_SCK, (SPI1_SCK) | |
+#define PB4 20 // | 20 | | | | | SPI3_MISO, (SPI1_MISO) | |
+#define PB5 21 // | 21 | | | | | SPI3_MOSI, (SPI1_MOSI) | |
+#define PB6 22 // | 22 | | | USART1_TX | TWI1_SCL | | |
+#define PB7 23 // | 23 | | | USART1_RX | TWI1_SDA | | |
+#define PB8 24 // | 24 | | | | TWI1_SCL | | |
+#define PB9 25 // | 25 | | | | TWI1_SDA | SPI2_SS | |
+#define PB10 26 // | 26 | | | USART3_TX, (UART4_TX) | TWI2_SCL | SPI2_SCK | |
+#define PB11 27 // | 27 | | | USART3_RX | TWI2_SDA | | |
+#define PB12 28 // | 28 | | | | | SPI2_SS | |
+#define PB13 29 // | 29 | | | | | SPI2_SCK | |
+#define PB14 30 // | 30 | | | | | SPI2_MISO | |
+#define PB15 31 // | 31 | | | | | SPI2_MOSI | |
+// |---------|------------|------------|-----------------------|----------------------|-----------------------------------|-----------|
+#define PC0 PIN_A10 // | 32 | A10 (ADC1) | | | | | |
+#define PC1 PIN_A11 // | 33 | A11 (ADC1) | | | | | |
+#define PC2 PIN_A12 // | 34 | A12 (ADC1) | | | | SPI2_MISO | |
+#define PC3 PIN_A13 // | 35 | A13 (ADC1) | | | | SPI2_MOSI | |
+#define PC4 PIN_A14 // | 36 | A14 (ADC1) | | | | | |
+#define PC5 PIN_A15 // | 37 | A15 (ADC1) | | USART3_RX | | | |
+#define PC6 38 // | 38 | | | USART6_TX | | | |
+#define PC7 39 // | 39 | | | USART6_RX | | | |
+#define PC8 40 // | 40 | | | | | | |
+#define PC9 41 // | 41 | | | USART3_TX | TWI3_SDA | | |
+#define PC10 42 // | 42 | | | | | SPI3_SCK | |
+#define PC11 43 // | 43 | | | USART3_RX, (UART4_RX) | | SPI3_MISO | |
+#define PC12 44 // | 44 | | | UART5_TX | | SPI3_MOSI | |
+#define PC13 45 // | 45 | | | | | | |
+#define PC14 46 // | 46 | | | | | | OSC32_IN |
+#define PC15 47 // | 47 | | | | | | OSC32_OUT |
+// |---------|------------|------------|-----------------------|----------------------|-----------------------------------|-----------|
+#define PD0 48 // | 48 | | | | | | |
+#define PD1 49 // | 49 | | | | | | |
+#define PD2 50 // | 50 | | | UART5_RX | | | |
+#define PD3 51 // | 51 | | | | | | |
+#define PD4 52 // | 52 | | | | | | |
+#define PD5 53 // | 53 | | | USART2_TX | | | |
+#define PD6 54 // | 54 | | | USART2_RX | | | |
+#define PD7 55 // | 55 | | | | | | |
+#define PD8 56 // | 56 | | | USART3_TX | | | |
+#define PD9 57 // | 57 | | | USART3_RX | | | |
+#define PD10 58 // | 58 | | | | | | |
+#define PD11 59 // | 59 | | | | | | |
+#define PD12 60 // | 60 | | | | | | |
+#define PD13 61 // | 61 | | | | | | |
+#define PD14 62 // | 62 | | | | | | |
+#define PD15 63 // | 63 | | | | | | |
+// |---------|------------|------------|-----------------------|----------------------|-----------------------------------|-----------|
+#define PE0 64 // | 64 | | | | | | |
+#define PE1 65 // | 65 | | | | | | |
+#define PE2 66 // | 66 | | | | | | |
+#define PE3 67 // | 67 | | | | | | |
+#define PE4 68 // | 68 | | | | | | |
+#define PE5 69 // | 69 | | | | | | |
+#define PE6 70 // | 70 | | | | | | |
+#define PE7 71 // | 71 | | | | | | |
+#define PE8 72 // | 72 | | | | | | |
+#define PE9 73 // | 73 | | | | | | |
+#define PE10 74 // | 74 | | | | | | |
+#define PE11 75 // | 75 | | | | | | |
+#define PE12 76 // | 76 | | | | | | |
+#define PE13 77 // | 77 | | | | | | |
+#define PE14 78 // | 78 | | | | | | |
+#define PE15 79 // | 79 | | | | | | |
+// |---------|------------|------------|-----------------------|----------------------|-----------------------------------|-----------|
+#define PH0 80 // | 80 | | | | | | OSC_IN |
+#define PH1 81 // | 81 | | | | | | OSC_OUT |
+// |---------|------------|------------|-----------------------|----------------------|-----------------------------------|-----------|
+
+/// This must be a literal
+#define NUM_DIGITAL_PINS 82
+#define NUM_ANALOG_INPUTS 16
+
+// On-board LED pin number
+#ifndef LED_BUILTIN
+#define LED_BUILTIN PA5
+#endif
+#define LED_GREEN LED_BUILTIN
+
+// On-board user button
+#ifndef USER_BTN
+#define USER_BTN PC13
+#endif
+
+// SPI definitions
+#define PIN_SPI_SS PA4
+#define PIN_SPI_SS1 PA4
+#define PIN_SPI_SS2 PB12
+#define PIN_SPI_SS3 PA15
+#define PIN_SPI_MOSI PA7
+#define PIN_SPI_MISO PA6
+#define PIN_SPI_SCK PA5
+
+// I2C definitions
+#ifndef PIN_WIRE_SDA
+ #define PIN_WIRE_SDA PB9
+#endif
+#ifndef PIN_WIRE_SCL
+ #define PIN_WIRE_SCL PB8
+#endif
+
+// Timer Definitions
+// Use TIM6/TIM7 when possible as servo and tone don't need GPIO output pin
+#ifndef TIMER_TONE
+ #define TIMER_TONE TIM6
+#endif
+#ifndef TIMER_SERVO
+ #define TIMER_SERVO TIM7
+#endif
+#ifndef TIMER_SERIAL
+ #define TIMER_SERIAL TIM5
+#endif
+
+// UART Definitions
+#define SERIAL_UART_INSTANCE 2
+
+// Default pin used for 'Serial' instance
+// Mandatory for Firmata
+#define PIN_SERIAL_RX PA3
+#define PIN_SERIAL_TX PA2
+
+/* Extra HAL modules */
+#define HAL_DAC_MODULE_ENABLED
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+/*----------------------------------------------------------------------------
+ * Arduino objects - C++ only
+ *----------------------------------------------------------------------------*/
+
+#ifdef __cplusplus
+ // These serial port names are intended to allow libraries and architecture-neutral
+ // sketches to automatically default to the correct port name for a particular type
+ // of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN,
+ // the first hardware serial port whose RX/TX pins are not dedicated to another use.
+ //
+ // SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor
+ //
+ // SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial
+ //
+ // SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library
+ //
+ // SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins.
+ //
+ // SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX
+ // pins are NOT connected to anything by default.
+ #define SERIAL_PORT_MONITOR Serial
+ #define SERIAL_PORT_HARDWARE Serial1
+#endif
+
+#endif /* _VARIANT_ARDUINO_STM32_ */
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_F4x7Vx/ldscript.ld b/buildroot/share/PlatformIO/variants/MARLIN_F4x7Vx/ldscript.ld
index aa685e8111..8b38135a2a 100644
--- a/buildroot/share/PlatformIO/variants/MARLIN_F4x7Vx/ldscript.ld
+++ b/buildroot/share/PlatformIO/variants/MARLIN_F4x7Vx/ldscript.ld
@@ -167,7 +167,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_FLY_F407ZG/ldscript.ld b/buildroot/share/PlatformIO/variants/MARLIN_FLY_F407ZG/ldscript.ld
index 40abfe19b5..d644d49beb 100644
--- a/buildroot/share/PlatformIO/variants/MARLIN_FLY_F407ZG/ldscript.ld
+++ b/buildroot/share/PlatformIO/variants/MARLIN_FLY_F407ZG/ldscript.ld
@@ -169,7 +169,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_FYSETC_CHEETAH_V20/ldscript.ld b/buildroot/share/PlatformIO/variants/MARLIN_FYSETC_CHEETAH_V20/ldscript.ld
index 2dbc5177ac..9565cd89c6 100644
--- a/buildroot/share/PlatformIO/variants/MARLIN_FYSETC_CHEETAH_V20/ldscript.ld
+++ b/buildroot/share/PlatformIO/variants/MARLIN_FYSETC_CHEETAH_V20/ldscript.ld
@@ -150,7 +150,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_FYSETC_CHEETAH_V20/variant.h b/buildroot/share/PlatformIO/variants/MARLIN_FYSETC_CHEETAH_V20/variant.h
index d0fb0d9db0..bcd5aa378e 100644
--- a/buildroot/share/PlatformIO/variants/MARLIN_FYSETC_CHEETAH_V20/variant.h
+++ b/buildroot/share/PlatformIO/variants/MARLIN_FYSETC_CHEETAH_V20/variant.h
@@ -112,7 +112,7 @@ extern "C" {
#define PIN_SERIAL_RX PA10
#define PIN_SERIAL_TX PA9
-// Used when user instanciate a hardware Serial using its peripheral name.
+// Used when user instantiate a hardware Serial using its peripheral name.
// Example: HardwareSerial mySerial(USART3);
// will use PIN_SERIAL3_RX and PIN_SERIAL3_TX if defined.
#define PIN_SERIAL1_RX PA10
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_FYSETC_S6/ldscript.ld b/buildroot/share/PlatformIO/variants/MARLIN_FYSETC_S6/ldscript.ld
index fee7418b04..900ef06391 100644
--- a/buildroot/share/PlatformIO/variants/MARLIN_FYSETC_S6/ldscript.ld
+++ b/buildroot/share/PlatformIO/variants/MARLIN_FYSETC_S6/ldscript.ld
@@ -150,7 +150,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_LERDGE/ldscript.ld b/buildroot/share/PlatformIO/variants/MARLIN_LERDGE/ldscript.ld
index f36ebcdea1..ef151075b7 100644
--- a/buildroot/share/PlatformIO/variants/MARLIN_LERDGE/ldscript.ld
+++ b/buildroot/share/PlatformIO/variants/MARLIN_LERDGE/ldscript.ld
@@ -149,7 +149,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/buildroot/share/PlatformIO/variants/MARLIN_STEVAL_F401VE/ldscript.ld b/buildroot/share/PlatformIO/variants/MARLIN_STEVAL_F401VE/ldscript.ld
index f20a047c65..c5788dbebe 100644
--- a/buildroot/share/PlatformIO/variants/MARLIN_STEVAL_F401VE/ldscript.ld
+++ b/buildroot/share/PlatformIO/variants/MARLIN_STEVAL_F401VE/ldscript.ld
@@ -148,7 +148,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/buildroot/share/PlatformIO/variants/marlin_CHITU_F103/wirish/boards.cpp b/buildroot/share/PlatformIO/variants/marlin_CHITU_F103/wirish/boards.cpp
index 2210e9844c..f22cf354e2 100644
--- a/buildroot/share/PlatformIO/variants/marlin_CHITU_F103/wirish/boards.cpp
+++ b/buildroot/share/PlatformIO/variants/marlin_CHITU_F103/wirish/boards.cpp
@@ -156,7 +156,7 @@ static void setup_nvic(void) {
nvic_init((uint32)VECT_TAB_ADDR, 0);
-/* Roger Clark. We now control nvic vector table in boards.txt using the build.vect paramater
+/* Roger Clark. We now control nvic vector table in boards.txt using the build.vect parameter
#ifdef VECT_TAB_FLASH
nvic_init(USER_ADDR_ROM, 0);
#elif defined VECT_TAB_RAM
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/wirish/boards.cpp b/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/wirish/boards.cpp
index 12321229de..77dcbcf848 100644
--- a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/wirish/boards.cpp
+++ b/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/wirish/boards.cpp
@@ -156,7 +156,7 @@ static void setup_nvic(void) {
nvic_init((uint32)VECT_TAB_ADDR, 0);
-/* Roger Clark. We now control nvic vector table in boards.txt using the build.vect paramater
+/* Roger Clark. We now control nvic vector table in boards.txt using the build.vect parameter
#ifdef VECT_TAB_FLASH
nvic_init(USER_ADDR_ROM, 0);
#elif defined VECT_TAB_RAM
diff --git a/buildroot/share/scripts/createTemperatureLookupMarlin.py b/buildroot/share/scripts/createTemperatureLookupMarlin.py
index b3343de1a0..02981f1015 100755
--- a/buildroot/share/scripts/createTemperatureLookupMarlin.py
+++ b/buildroot/share/scripts/createTemperatureLookupMarlin.py
@@ -73,7 +73,7 @@ class Thermistor:
return r
def temp(self, adc):
- "Convert ADC reading into a temperature in Celcius"
+ "Convert ADC reading into a temperature in Celsius"
l = log(self.resist(adc))
Tinv = self.c1 + self.c2*l + self.c3* l**3 # inverse temperature
return (1/Tinv) - ZERO # temperature
diff --git a/buildroot/share/scripts/g29_auto.py b/buildroot/share/scripts/g29_auto.py
index ffcb0d9f31..ca36346dd9 100755
--- a/buildroot/share/scripts/g29_auto.py
+++ b/buildroot/share/scripts/g29_auto.py
@@ -119,7 +119,7 @@ def z_parse(gcode, start_at_line=0, end_at_line=0):
# last_z = z
last_i = i
if 0 < end_at_line <= i or temp_line >= min_g1:
- # print('break at line {} at heigth {}'.format(i, z))
+ # print('break at line {} at height {}'.format(i, z))
break
line_between_z = line_between_z[1:]
diff --git a/buildroot/tests/STM32F103RC_fysetc b/buildroot/tests/STM32F103RC_fysetc
deleted file mode 100755
index 0e78c73188..0000000000
--- a/buildroot/tests/STM32F103RC_fysetc
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/env bash
-#
-# Build tests for STM32F103RC FYSETC
-#
-
-# exit on first failure
-set -e
-
-#
-# Build with the default configurations
-#
-use_example_configs "Creality/Ender-3/FYSETC Cheetah 1.2/base"
-exec_test $1 $2 "Cheetah 1.2 Configuration" "$3"
-
-# clean up
-restore_configs
diff --git a/buildroot/tests/STM32F103RET6_creality b/buildroot/tests/STM32F103RET6_creality
index a3f885147e..4914bbfd70 100755
--- a/buildroot/tests/STM32F103RET6_creality
+++ b/buildroot/tests/STM32F103RET6_creality
@@ -9,11 +9,11 @@ set -e
#
# Build with configs included in the PR
#
-use_example_configs "Creality/Ender-3 V2"
+use_example_configs "Creality/Ender-3 V2/CrealityUI"
opt_enable MARLIN_DEV_MODE
exec_test $1 $2 "Ender 3 v2" "$3"
-use_example_configs "Creality/Ender-3 V2"
+use_example_configs "Creality/Ender-3 V2/CrealityUI"
opt_disable CLASSIC_JERK
opt_add SDCARD_EEPROM_EMULATION
opt_set TEMP_SENSOR_BED 0
diff --git a/buildroot/tests/jgaurora_a5s_a1 b/buildroot/tests/jgaurora_a5s_a1
deleted file mode 100755
index e9be89eb30..0000000000
--- a/buildroot/tests/jgaurora_a5s_a1
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/env bash
-#
-# Build tests for STM32F103ZE JGAurora A5S A1
-#
-
-# exit on first failure
-set -e
-
-#
-# Build with the default configurations
-#
-use_example_configs JGAurora/A5S
-exec_test $1 $2 "JGAurora/A5S Configuration" "$3"
-
-# clean up
-restore_configs
diff --git a/buildroot/tests/mega2560 b/buildroot/tests/mega2560
index db50c84a10..d757a6c96f 100755
--- a/buildroot/tests/mega2560
+++ b/buildroot/tests/mega2560
@@ -128,7 +128,7 @@ exec_test $1 $2 "Azteeg X3 | Mixing Extruder (x5) | Gradient Mix | Greek" "$3"
#
# REPRAPWORLD_KEYPAD
#
-# Cant find configuration details to get it to compile
+# Can't find configuration details to get it to compile
#restore_configs
#opt_enable ULTRA_LCD REPRAPWORLD_KEYPAD REPRAPWORLD_KEYPAD_MOVE_STEP
#exec_test $1 $2 "Stuff" "$3"
diff --git a/buildroot/tests/mks_robin_lite b/buildroot/tests/mks_robin_lite
deleted file mode 100755
index 49ef004871..0000000000
--- a/buildroot/tests/mks_robin_lite
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env bash
-#
-# Build tests for STM32F1 genericSTM32F103RC
-#
-
-# exit on first failure
-set -e
-
-restore_configs
-opt_set MOTHERBOARD BOARD_MKS_ROBIN_LITE SERIAL_PORT 1
-opt_enable EEPROM_SETTINGS SDSUPPORT
-exec_test $1 $2 "Default Configuration with Fallback SD EEPROM" "$3"
-
-# cleanup
-restore_configs
diff --git a/buildroot/tests/mks_robin_pro b/buildroot/tests/mks_robin_pro
deleted file mode 100755
index 4b38ab97b6..0000000000
--- a/buildroot/tests/mks_robin_pro
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/usr/bin/env bash
-#
-# Build tests for MKS Robin Pro
-#
-
-# exit on first failure
-set -e
-
-use_example_configs Mks/Robin_Pro
-opt_enable EMERGENCY_PARSER
-opt_set SERIAL_PORT 3 \
- SDCARD_CONNECTION LCD \
- X_DRIVER_TYPE TMC2209 Y_DRIVER_TYPE TMC2130 \
- TEMP_SENSOR_BED 1
-opt_disable SERIAL_PORT_2 THERMAL_PROTECTION_HOTENDS
-exec_test $1 $2 "MKS Robin Pro, TMC Drivers, no thermal protection" "$3"
-
-# cleanup
-restore_configs
diff --git a/ini/features.ini b/ini/features.ini
index 6891bf9410..28da75ef42 100644
--- a/ini/features.ini
+++ b/ini/features.ini
@@ -17,7 +17,7 @@ HAS_TFT_LVGL_UI = lvgl=https://github.com/makerbase-mks/L
POSTMORTEM_DEBUGGING = src_filter=+ +
build_flags=-funwind-tables
MKS_WIFI_MODULE = QRCode=https://github.com/makerbase-mks/QRCode/archive/master.zip
-HAS_TRINAMIC_CONFIG = TMCStepper@~0.7.1
+HAS_TRINAMIC_CONFIG = TMCStepper@0.7.1
src_filter=+ + + + +
HAS_STEALTHCHOP = src_filter=+
SR_LCD_3W_NL = SailfishLCD=https://github.com/mikeshub/SailfishLCD/archive/master.zip
@@ -44,8 +44,8 @@ HAS_SPI_TFT = src_filter=+
SOFT_I2C_EEPROM = SlowSoftI2CMaster, SlowSoftWire=https://github.com/felias-fogg/SlowSoftWire/archive/master.zip
SPI_EEPROM = src_filter=+
+DWIN_CREALITY_LCD = src_filter=+
HAS_GRAPHICAL_TFT = src_filter=+
-DWIN_CREALITY_LCD = src_filter=+
IS_TFTGLCD_PANEL = src_filter=+
HAS_TOUCH_BUTTONS = src_filter=+
HAS_LCD_MENU = src_filter=+
diff --git a/ini/native.ini b/ini/native.ini
index 548e791f5a..2f38e715ed 100644
--- a/ini/native.ini
+++ b/ini/native.ini
@@ -45,7 +45,7 @@ lib_compat_mode = off
src_filter = ${common.default_src_filter} +
lib_deps = ${common.lib_deps}
- MarlinSimUI=https://github.com/p3p/MarlinSimUI.git
+ MarlinSimUI=https://github.com/p3p/MarlinSimUI/archive/master.zip
Adafruit NeoPixel=https://github.com/p3p/Adafruit_NeoPixel/archive/marlin_sim_native.zip
LiquidCrystal=https://github.com/p3p/LiquidCrystal/archive/master.zip
extra_scripts = ${common.extra_scripts}
diff --git a/ini/stm32f1.ini b/ini/stm32f1.ini
index f1cb078fd8..dc9607ef84 100644
--- a/ini/stm32f1.ini
+++ b/ini/stm32f1.ini
@@ -338,7 +338,7 @@ board_build.variant = MARLIN_F103VE_LONGER
board_build.rename = project.bin
board_build.offset = 0x10000
board_upload.offset_address = 0x08010000
-build_flags = ${stm32_variant.build_flags} -DMCU_STM32F103VE -DU20 -DTS_V12
+build_flags = ${stm32_variant.build_flags} -DMCU_STM32F103VE -DSTEP_TIMER=5 -DU20 -DTS_V12
build_unflags = ${stm32_variant.build_unflags} -DUSBCON -DUSBD_USE_CDC -DHAL_PCD_MODULE_ENABLED
extra_scripts = ${stm32_variant.extra_scripts}
monitor_speed = 250000
diff --git a/ini/stm32f4.ini b/ini/stm32f4.ini
index 62ac89d9fa..40b465c47b 100644
--- a/ini/stm32f4.ini
+++ b/ini/stm32f4.ini
@@ -207,6 +207,7 @@ build_flags = ${stm_flash_drive.build_flags}
-DUSE_USBHOST_HS -DUSE_USB_HS_IN_FS
-DUSBD_IRQ_PRIO=5 -DUSBD_IRQ_SUBPRIO=6
-DHSE_VALUE=8000000U -DHAL_SD_MODULE_ENABLED
+ -DPIN_SERIAL3_RX=PD_9 -DPIN_SERIAL3_TX=PD_8
#
# BigTreeTech SKR V2.0 (STM32F407VGT6 ARM Cortex-M4) with USB Media Share Support
@@ -351,6 +352,23 @@ upload_protocol = jlink
[stm32f4_I2C1]
build_flags = -DPIN_WIRE_SCL=PB6 -DPIN_WIRE_SDA=PB7
+#
+# MKS Robin Nano-s V1.3
+#
+[env:mks_robin_nano_v1_3]
+platform = ${common_stm32.platform}
+extends = stm32_variant
+board = marlin_STM32F407VE
+board_build.variant = MARLIN_F4_FSMC_SDIO
+board_build.offset = 0x8000
+board_upload.offset_address = 0x08008000
+board_build.rename = Robin_nano35.bin
+build_flags = ${stm32_variant.build_flags}
+ -DHAL_PCD_MODULE_ENABLED -DHAL_SD_MODULE_ENABLED -DHAL_SRAM_MODULE_ENABLED
+debug_tool = jlink
+upload_protocol = jlink
+
+
#
# MKS Robin Nano V3
#
diff --git a/platformio.ini b/platformio.ini
index d1c0aa5725..d4352a2379 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -48,7 +48,7 @@ extra_scripts =
post:buildroot/share/PlatformIO/scripts/common-dependencies-post.py
lib_deps =
default_src_filter = + - - +
- - - - - - -
+ - - - - - -
- -
-
- - -