Skip to main content
Explorer II
May 15, 2024
Question

STM32F779 "Package Data Register" always returns the same

  • May 15, 2024
  • 1 reply
  • 919 views

Hello,

 

RM0410 says:

 

Spoiler

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.

    This topic has been closed for replies.

    1 reply

    Technical Moderator
    May 15, 2024

    Hello @Exit0815 ,

    The RM0410 Rev4 will be updated to correct the Base address: 0x1FFF 7BF0. It should be: 0x1FF0 F7E0.

     

    Exit0815Author
    Explorer II
    May 15, 2024

    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?