2024-05-15 03:19 AM
Hello,
RM0410 says:
45.3 Package data register
Base address: 0x1FFF 7BF0
Address offset: 0x00
Read only = 0xXXXX where X is factory-programmed
Bits 15:11 Reserved, must be kept at reset value.
Bits 10:8 PGK[2:0]: Package type
0x111: STM32F767 and STM32F777 LQFP208 and TFBGA216 package
0x110: STM32F769 and STM32F779 LQFP208 and TFBGA216 package
0x101: STM32F767 and STM32F777 LQFP176 package
0x100: STM32F769 and STM32F779 LQFP176 package
0x011: WLCSP180 package
0x010: LQFP144 package
0x001: LQFP100 package
0x000: Reserved
Bits 7:0 Reserved, must be kept at reset value.
I have two custom boards here.
One with a STM32F779NI (TFBGA216 ) and one STM32F779AI (WLCSP180)
At the RM0410 it says "Base address: 0x1FFF 7BF0" but at the stm32f779xx.h it has a define "#define PACKAGE_BASE 0x1FF0F7E0UL"
When i try to check if the board has the NI or the AI on it, it returns 0x600 on both MCU types:
volatile uint32_t packagetype = *(( uint32_t *)PACKAGE_BASE) & 0x0700;
What is wrong here? How can i find out if the MCU is type NI or AI?
Thank you very much.
2024-05-15 04:20 AM
Hello @Exit0815 ,
The RM0410 Rev4 will be updated to correct the Base address: 0x1FFF 7BF0. It should be: 0x1FF0 F7E0.
2024-05-15 04:33 AM
Hello @Imen.D,
Thanks for your answer. So the stm32f779xx.h is correct.
But then there is still the problem that this returns always 0x600, with the AI and the NI MCU:
volatile uint32_t packagetype = *(( uint32_t *)PACKAGE_BASE) & 0x0700;
where PACKAGE_BASE is:
#define PACKAGE_BASE 0x1FF0F7E0UL /*!< Package size register base address */
Am i doing something wrong?