Skip to main content
Associate
August 27, 2026
Solved

Is there any difference in the manufactory process in building different chips in the same series

  • August 27, 2026
  • 9 replies
  • 181 views

I would like to ask if there’s any major differences when making the chips in STM32G4 series, like the STM32G441 to STM32G473 for example

Best answer by STOne-32

Dear ​@Roland12 ,

as stated by ​@mƎALLEm , in general manufacturing process of our MCUs  are in two steps :

  1. Silicon die - wafer 
  2. Assembly and packaging 

First one of course is using same node across a series , second one in general depends on package such as LQFP100 as exemple .

These two series are high runners .

Hope it helps 

STOne-32

9 replies

mƎALLEm
ST Technical Moderator
August 28, 2026

Hello ​@Roland12 and welcome to the ST community,

Could you please tell why asking that question? did you face an issue in one of the devices? 

To give better visibility on the answered topics, please click "Best answer" on the reply which solved your issue or answered your question.
Roland12Author
Associate
August 28, 2026

From my understanding, the STM32G4 series should be built with same processes, at least if the environment specs are the same, I should be able to pick some other chips in the family and “drop” in my existing design where it was used in some specific environment and works fine with one of the other chip in the family. That’s my assumption. 

mƎALLEm
ST Technical Moderator
August 28, 2026

Depends on what do you mean by: “ the environment specs are the same”

You need to check their datasheets for temperature, power consumption etc ..

 

To give better visibility on the answered topics, please click "Best answer" on the reply which solved your issue or answered your question.
STOne-32
STOne-32Best answer
ST Technical Moderator
August 28, 2026

Dear ​@Roland12 ,

as stated by ​@mƎALLEm , in general manufacturing process of our MCUs  are in two steps :

  1. Silicon die - wafer 
  2. Assembly and packaging 

First one of course is using same node across a series , second one in general depends on package such as LQFP100 as exemple .

These two series are high runners .

Hope it helps 

STOne-32

Roland12Author
Associate
September 2, 2026

Thanks for the answers, I appreciate your helps. That answered my question very well. As I expected to too.

mƎALLEm
ST Technical Moderator
September 3, 2026

Hello ​@Roland12 ,

Glad to hear you’re satisfied by the community help. 

Please close this post by clicking Best Answer the post that answered your question. Not this reply.

To give better visibility on the answered topics, please click "Best answer" on the reply which solved your issue or answered your question.
Associate II
September 3, 2026

G441 and G473 are two different product and may not compatible with each other. You may refer to the datasheet

Tesla DeLorean
Guru
September 3, 2026

This is very true..

Many of the families are very diverse using many different die, for example number of GPIO banks, size of FLASH, size of CACHE, FPU implementation and MCU revision and patch levels from ARM.

While some parts have much larger FLASH which is partially tested, others it is physically smaller, especially when targeting the 3x3 or 4x4 mm type packages, where the die can’t be too large. The CSP (wafer scale) offerings are a good indicator of how large the die is, and what packages it will fit in, and which it won’t

//****************************************************************************

void CORECheck(void) // sourcer32@gmail.com
{
uint32_t cpuid = SCB->CPUID;
uint32_t var, pat;

printf("CPUID %08X DEVID %03X REVID %04X\n", cpuid, DBGMCU->IDCODE & 0xFFF, (DBGMCU->IDCODE >> 16) & 0xFFFF);

pat = (cpuid & 0x0000000F);
var = (cpuid & 0x00F00000) >> 20;

if ((cpuid & 0xFF000000) == 0x41000000) // ARM
{
switch((cpuid & 0x0000FFF0) >> 4)
{
case 0xC20 : printf("Cortex M0 r%dp%d\n", var, pat); break;
case 0xC60 : printf("Cortex M0+ r%dp%d\n", var, pat); break;
case 0xC21 : printf("Cortex M1 r%dp%d\n", var, pat); break;
case 0xC23 : printf("Cortex M3 r%dp%d\n", var, pat); break;
case 0xC24 : printf("Cortex M4 r%dp%d\n", var, pat); break;
case 0xC27 : printf("Cortex M7 r%dp%d\n", var, pat); break;

case 0xD21 : printf("Cortex M33 r%dp%d\n", var, pat); break;

default : printf("Unknown CORE\n");
}
}
else
printf("Unknown CORE IMPLEMENTER\n");
}

//****************************************************************************

// FPU Programmer Model
// http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0489b/Chdhfiah.html

void FPUCheck(void) // sourcer32@gmail.com
{
uint32_t mvfr0;

printf("%08X %08X %08X\n%08X %08X %08X\n",
*(volatile uint32_t *)0xE000EF34, // FPCCR 0xC0000000
*(volatile uint32_t *)0xE000EF38, // FPCAR
*(volatile uint32_t *)0xE000EF3C, // FPDSCR
*(volatile uint32_t *)0xE000EF40, // MVFR0 0x10110021 vs 0x10110221
*(volatile uint32_t *)0xE000EF44, // MVFR1 0x11000011 vs 0x12000011
*(volatile uint32_t *)0xE000EF48); // MVFR2 0x00000040

mvfr0 = *(volatile uint32_t *)0xE000EF40;

switch(mvfr0)
{
case 0x00000000 : puts("No FPU"); break;
case 0x10110021 : puts("FPU-S Single-precision only"); break;
case 0x10110221 : puts("FPU-D Single-precision and Double-precision"); break;
default : puts("Unknown FPU");
}
}

//****************************************************************************

 

Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..