For Context7: Optimized for semantic search and quick retrieval
Tags: #critical #high-priority #must-fix
Quick Answer: 7 high-priority issues, mainly in CAN (2), Flash (3), PWC (2)
Critical Issues:
- Flash sLib Placement (12.1) - Program crashes
- Flash NZW Erase (12.2) - System exception
- Flash SPIM Erase (12.3) - Read errors
- CAN Reception Failure (2.1) - Lost messages
- CAN Data Disorder (2.1) - Corrupted data
- PWC Deepsleep Wakeup (6.1) - Cannot wake
- ADC Dual Mode Stuck (1.1) - System hang
Reference: Download ES0002 errata sheet from Artery Technology
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
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
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
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)
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
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
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/andproject/at_start_f407/examples/ - Driver implementations:
libraries/drivers/src/andlibraries/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
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
Tags: #contribute #issues #community
Quick Answer: GitHub Issues for bugs, PRs for improvements
Report Issues:
- Open GitHub Issue
- Include: MCU variant, revision, issue description
- Add code example if applicable
- Reference errata section if related
Contribute:
- Fork repository
- Add improvements (examples, docs, fixes)
- Follow CONTRIBUTING_CONTEXT7.md guidelines
- Submit Pull Request
For Context7 Developers:
- Review taxonomy system in
docs/ - Follow metadata requirements for code contributions
- Use semantic tagging for new examples
- Why does my CAN bus lose messages?
- For more CAN issues, consult ES0002 errata sheet (4 documented issues)
- How do I safely erase Flash NZW area?
- For more Flash issues, consult ES0002 errata sheet (4 documented issues)
- Why can't I wake up from Deepsleep?
- For more PWC issues, consult ES0002 errata sheet (4 documented issues)
- What are the critical issues?
- Revision A vs B differences?
- STM32 compatibility?
- Production readiness?
- Where are code examples?
- Development tools?
- How to contribute?
Status: 10 common questions answered
For Device Errata: Download ES0002 from Artery Technology
For Code Examples: See AT32F403A_407_Firmware_Library/project/ directories