Skip to content

Latest commit

 

History

History
263 lines (187 loc) · 7.44 KB

File metadata and controls

263 lines (187 loc) · 7.44 KB

Frequently Asked Questions (FAQ)

AT32F403A/407 MCU Documentation

For Context7: Optimized for semantic search and quick retrieval


🔥 Top 10 Most Common Questions

1. What are the critical issues I must address?

Tags: #critical #high-priority #must-fix
Quick Answer: 7 high-priority issues, mainly in CAN (2), Flash (3), PWC (2)

Critical Issues:

  1. Flash sLib Placement (12.1) - Program crashes
  2. Flash NZW Erase (12.2) - System exception
  3. Flash SPIM Erase (12.3) - Read errors
  4. CAN Reception Failure (2.1) - Lost messages
  5. CAN Data Disorder (2.1) - Corrupted data
  6. PWC Deepsleep Wakeup (6.1) - Cannot wake
  7. ADC Dual Mode Stuck (1.1) - System hang

Reference: Download ES0002 errata sheet from Artery Technology


2. Why does my CAN bus lose messages?

Tags: #CAN #message-loss #reception-error
Quick Answer: Issue 2.1 - Bit stuffing error during retransmission

Problem: Receive mailbox data disorder during CAN retransmission with bit stuffing error

Impact: 🔴 HIGH - Production system failure

Workarounds:

  • Method 1: Mailbox Priority (simple)
  • Method 2: Lock/Unlock (recommended) ✅
  • Method 3: Software Filter (flexible)

Code Examples: See AT32F403A_407_Firmware_Library/project/*/examples/can/ and ES0002 errata sheet


3. Can I use AT32F403A/407 in production?

Tags: #production #reliability #quality
Quick Answer: YES, with workarounds implemented for known issues

Details:

  • 41 known issues, 39 have workarounds (95%)
  • Revision B fixes 16 issues (39%)
  • All critical issues have working solutions
  • Widely used in automotive, industrial applications

Recommendation:

  • Use Revision B for new designs
  • Implement all high-priority workarounds
  • Test thoroughly with your specific use case

4. What's the difference between Revision A and B?

Tags: #revision #hardware-revision #updates
Quick Answer: Revision B fixes 16 of 41 issues (39%)

Fixed in Revision B:

  • ADC: 3/3 issues ✅
  • I2C: 2/4 issues
  • I2S: 2/5 issues
  • PWC: 2/4 issues
  • USB: 2/2 issues ✅
  • Others: Various peripheral fixes

NOT Fixed in Revision B:

  • All Flash issues (4) ⚠️
  • CAN reception failure ⚠️
  • Some TMR, I2S, PWC issues

Reference: Revision Status


5. Is AT32F403A/407 compatible with STM32F4?

Tags: #compatibility #STM32 #migration #pin-compatible
Quick Answer: Mostly compatible, with some register naming differences

Compatible:

  • ✅ Pin layout (drop-in replacement)
  • ✅ ARM Cortex-M4F core
  • ✅ Peripheral functionality
  • ✅ Development tools (OpenOCD, GDB)

Differences:

  • ❌ Register names (RCC → CRM)
  • ❌ SDK/HAL libraries (not STM32 HAL)
  • ⚠️ Some peripheral timing differences
  • ⚠️ AT32-specific errata issues

Migration: See STM32 migration guide (coming soon)


6. Why can't I wake up from Deepsleep mode?

Tags: #power-management #deepsleep #wakeup-failure
Quick Answer: Issue 6.1 - AHB frequency division prevents wakeup

Problem: Cannot wake from Deepsleep if AHB frequency division is set

Solution:

// Before entering Deepsleep
crm_ahb_div_set(CRM_AHB_DIV_1);  // Remove AHB division

// Enter Deepsleep
pwc_deep_sleep_mode_enter(PWC_DEEP_SLEEP_ENTER_WFI);

Also Check:

  • Disable Systick before Deepsleep (Issue 6.2)
  • Set CLKOUT to NOCLK (Issue 7.1)
  • Configure GPIO properly (Issue 6.4)

Reference: See PWC examples in AT32F403A_407_Firmware_Library/project/*/examples/pwc/ and ES0002 errata sheet


7. How do I safely erase Flash NZW area?

Tags: #flash #erase #NZW #exception
Quick Answer: Issue 12.2 - Disable interrupts, run erase from ZW/RAM

Problem: System exception during Flash NZW area erase

Solution:

// Disable interrupts
__disable_irq();

// Perform erase
flash_sector_erase(address);  // Must execute from ZW or RAM

// Wait for completion
while(flash_flag_get(FLASH_OBF_FLAG) != RESET);

// Re-enable interrupts
__enable_irq();

Important:

  • Place erase code in Zero-Wait (ZW) area
  • OR execute from RAM
  • Disable ALL interrupts during erase
  • Don't read from NZW during erase

Reference: See Flash examples in AT32F403A_407_Firmware_Library/project/*/examples/flash/ and ES0002 errata sheet


8. Where can I find code examples?

Tags: #code-examples #samples #getting-started
Quick Answer: 15+ examples in errata sheet, more in firmware library

In This Repository:

  • 1,985 working examples in AT32F403A_407_Firmware_Library/
  • Peripheral examples: project/at_start_f403a/examples/ and project/at_start_f407/examples/
  • Driver implementations: libraries/drivers/src/ and libraries/drivers/inc/
  • CMSIS support: libraries/cmsis/

Official Documentation:

  • Download ES0002 errata sheet from Artery Technology
  • Contains 15+ workaround code examples
  • CAN: 3 different reception failure workaround methods
  • Flash: Safe erase procedures with interrupt handling
  • PWC: Deepsleep entry/exit procedures

9. What tools do I need for development?

Tags: #development #tools #IDE #compiler
Quick Answer: ARM GCC + any IDE (Keil, IAR, VS Code, Eclipse)

Compilers:

  • ARM GCC (free, recommended)
  • Keil MDK-ARM
  • IAR EWARM

IDEs:

  • VS Code + PlatformIO
  • Eclipse + GNU ARM Plugin
  • Keil μVision
  • IAR Embedded Workbench

Debug Tools:

  • JTAG/SWD debugger (ST-Link, J-Link)
  • OpenOCD (free, open source)
  • GDB server

SDK:

  • AT32 Firmware Library (in this repo)
  • CMSIS support included

10. How do I report issues or contribute?

Tags: #contribute #issues #community
Quick Answer: GitHub Issues for bugs, PRs for improvements

Report Issues:

  1. Open GitHub Issue
  2. Include: MCU variant, revision, issue description
  3. Add code example if applicable
  4. Reference errata section if related

Contribute:

  1. Fork repository
  2. Add improvements (examples, docs, fixes)
  3. Follow CONTRIBUTING_CONTEXT7.md guidelines
  4. Submit Pull Request

For Context7 Developers:

  • Review taxonomy system in docs/
  • Follow metadata requirements for code contributions
  • Use semantic tagging for new examples

📑 By Topic

CAN Bus

Flash Memory

Power Management

General


Status: 10 common questions answered
For Device Errata: Download ES0002 from Artery Technology
For Code Examples: See AT32F403A_407_Firmware_Library/project/ directories