cancel
Showing results for 
Search instead for 
Did you mean: 

cube programmer shows 256 pages of 2K in a 256K mcu?

Akshat_codes_
Associate III

I am using a stm32 F103RCT6 mcu. It has 256 Kb of flash memory. But when i connect it to cube programmer, it shows there are 256 sectors of 2K size which equates to 512 Kb flash. 

I was even able to go to that last page and write data to it. so is the linker script generated by HAL wrong?

Akshat_codes__0-1778745508180.png

Akshat_codes__1-1778745517616.png

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
AScha.3
Super User

Nothing wrong here. :)

Just you got a F103 with full flash, 512K.  

Reason is: for the purpose of rationalized production only one die is produced , with 512K .

Testing the flash is "expensive" on the chip tester, so short test -> smaller flash tested -> cheaper version.

So you have a chip with 256K flash, tested and 100% working - as you ordered.

And there is more flash on the die, might work fine or not - you didnt pay for tested 512K .

So you can use it, but dont cry, if there is an error....

And linker script is ok, if 256K is used, as you ordered.

If you feel a post has answered your question, please click "Accept as Solution".

View solution in original post

7 REPLIES 7
Andrew Neil
Super User

@Akshat_codes_ wrote:

I am using a stm32 F103RCT6


Where did you obtain it?

Are you sure it is genuine?

A complex system that works is invariably found to have evolved from a simple system that worked.
A complex system designed from scratch never works and cannot be patched up to make it work.

I ordered it from LCSC. Attached below is the image

Akshat_codes__0-1778746305694.jpeg

 


@Akshat_codes_ wrote:

I ordered it from LCSC.


You mean here: https://www.lcsc.com/ ?

Not an Authorised Distributor, so there is a risk it's fake.

 

Maybe this diagnostic can help you identify it ...

A complex system that works is invariably found to have evolved from a simple system that worked.
A complex system designed from scratch never works and cannot be patched up to make it work.
AScha.3
Super User

Nothing wrong here. :)

Just you got a F103 with full flash, 512K.  

Reason is: for the purpose of rationalized production only one die is produced , with 512K .

Testing the flash is "expensive" on the chip tester, so short test -> smaller flash tested -> cheaper version.

So you have a chip with 256K flash, tested and 100% working - as you ordered.

And there is more flash on the die, might work fine or not - you didnt pay for tested 512K .

So you can use it, but dont cry, if there is an error....

And linker script is ok, if 256K is used, as you ordered.

If you feel a post has answered your question, please click "Accept as Solution".

but shouldn't CubeIDE CubeProgrammer recognise the chip from its ID, and only report the specified memory sizes ?

A complex system that works is invariably found to have evolved from a simple system that worked.
A complex system designed from scratch never works and cannot be patched up to make it work.

Maybe, if different ID is written to chip, but basically is same die for c-d-e flash size:

AScha3_0-1778747908824.png

vs.

connect a H743ZG  , 1MB flash (but die has 2MB :(

AScha3_1-1778748371625.png

and all are 450 die :

AScha3_2-1778748505504.png

But obviously here something written to the chip, to disable dual core, flash size info, etc.

So i tried using the 2MB flash - and yes, its there - but not tested, as ordered version has 1MB.

+ here connect to H743ZI , 2MB  , ordered:

AScha3_3-1778748900259.png

2MB verified.

If you feel a post has answered your question, please click "Accept as Solution".
Akshat_codes_
Associate III

ok thanks for the response.