An ST microcontroller line item almost never arrives as a clean request. A buyer gets `STM32F103C8T6` on a BOM, the market has nothing at the target price, and a supplier comes back with `STM32F103CBT6` — one letter different, same package, same pin count, immediately available. Sometimes that swap is trivial. Sometimes it quietly changes the flash budget the firmware was built against.
The difference between those two outcomes is entirely readable from the part number, provided you know which field you are looking at. STM32 ordering codes are positional: the same letter means different things depending on where it sits, and the letter tables are defined per datasheet rather than across the whole portfolio. That is the part most quick-reference charts on the internet get wrong, and it is the reason substitution decisions get made on incorrect assumptions.
The fields, in order #
ST publishes an "ordering information scheme" table in the datasheet of every device. For the STM32F103x8/xB family — which covers `STM32F103C8T6` — the table breaks the code into device family, product type, device subfamily, pin count, flash memory size, package, temperature range, and then optional fields for programmed parts and packing.
Reading `STM32F103C8T6TR` field by field:
| Field | Value | Meaning |
|---|---|---|
| Device family | `STM32` | Arm-based 32-bit microcontroller |
| Product type | `F` | General purpose |
| Device subfamily | `103` | Performance line |
| Pin count | `C` | 48 pins |
| Flash size | `8` | 64 Kbytes |
| Package | `T` | LQFP |
| Temperature range | `6` | Industrial, −40 to 85 °C |
| Packing | `TR` | Tape and reel |
The product-type letter is the one buyers see most often and understand least precisely. `F` is ST's general-purpose designation, `H` marks the high-performance lines, `L` marks low power, and `G` covers the newer mainstream devices. These are marketing-series letters, not a performance ranking you can interpolate: an `STM32G431` is a newer device than an `STM32F407` but has a very different peripheral set, and neither substitutes for the other on the strength of the letter.
The same letter is not the same thing twice #
This is where generic decoding charts fail. Compare two parts that both sit in LimChip's catalogue:
- In `STM32F103C8T6`, the fifth field `8` is flash size — 64 Kbytes. The
sixth field `T` is package — LQFP.
- In `STM32H743VIT6`, `V` is pin count (100),
`I` is flash size — 2 Mbytes — and `T` is again LQFP.
Now look at what `I` means in the F103 table: there, `I` is listed as a package code (UFBGA). Same letter, different field position, completely different meaning. Anyone decoding left-to-right with a chart borrowed from a different series will mis-read one of these two parts.
Package letters drift as well. The STM32F103x8/xB ordering table lists `H` as BGA and `U` as VFQFPN or UFQFPN. On the STM32H743, `H` resolves to TFBGA: ST's product page for the STM32H743VI lists `STM32H743VIT6` in LQFP100 14 × 14 × 1.4 mm and `STM32H743VIH6` in TFBGA100 8 × 8 × 1.2 mm at 0.8 mm pitch, both in volume production. Those two codes differ by a single character, share the same die, the same 2 Mbytes of flash and the same 480 MHz Cortex-M7 core — and they will not fit the same footprint.
The practical rule: never decode a package letter from memory or from another series' table. Open the ordering-information table in the datasheet for the device you are actually buying.
Temperature range tells you less than buyers assume #
The trailing digit is a temperature grade. Across ST's tables, `6` is the industrial −40 to 85 °C range, `7` is −40 to 105 °C, and some low-power families add `3` for −40 to 125 °C — the STM32L051x6/8 ordering table lists all three.
Two things follow from that. First, a `7` part will generally cover a `6` requirement on temperature alone, but the reverse is not true, and a supplier offering `...T6` against a `...T7` line item is offering a narrower part. Second — and this catches people — an industrial temperature grade is not an automotive qualification. If the BOM needs AEC-Q100, the temperature digit is not the field that proves it; that requirement lives in a different ST product line entirely.
The fields that change nothing electrical and everything logistical #
Two trailing fields are pure supply-chain content.
Packing. In ST's tables, `TR` means tape and reel and no trailing character means tray or tube. `STM32F103C8T6` and `STM32F103C8T6TR` are the same silicon in different shipping format. This matters in two directions: an SMT line set up for reel feed cannot take trays without a rework step, and a buyer who quotes the reel code while the approved BOM lists the tray code has created a paperwork mismatch that incoming inspection may reject even though the device is correct. Confirm which form the line actually needs before you treat the two codes as interchangeable.
Options. Some families add an options character before packing. The STM32L151x6/8/B-A ordering table is a good example: `D` denotes a 1.65 to 3.6 V VDD range with brown-out reset disabled, while no character means 1.8 to 3.6 V with BOR enabled. That is a functional difference sitting in a field most people skip.
The same table also defines `A` as "device generation A" — which brings us to the suffix that causes the most trouble.
The generation suffix is not a cosmetic revision #
`STM32L151C8T6A` and `STM32L151C8T6` decode identically through every field: 48 pins, 64 Kbytes of flash, LQFP, industrial temperature. The trailing `A` is the only difference, and it is easy to read as a minor revision marker.
It is not. The `-A` devices are documented in a *separate datasheet* — STM32L151x6/8/B-A — whose stated maximums include up to 128 Kbytes of flash and up to 32 Kbytes of RAM across the covered part numbers. ST's own guidance describes the `-A` parts as pin-compatible successors built on a newer process, with differences in areas such as RTC, PCROP and dynamic power consumption, and points designers to technical note TN1176 for the migration detail.
For a buyer, the takeaway is narrow and important: because the two codes are covered by different datasheets, SRAM size and peripheral behaviour must be confirmed against the datasheet matching the exact suffix. Pin compatibility is not the same as specification equivalence, and firmware built with assumptions about available RAM is exactly the kind of thing that fails after the parts are already on the shelf.
Which swaps are actually safe to approve #
Decoding tells you what changed. Whether that change is acceptable is an engineering call, not a purchasing one. The pattern worth internalising:
- Packing only (`T6` vs `T6TR`) — normally safe electrically; confirm the
line's feed format and the BOM's documented code.
- Temperature grade upward (`T6` → `T7`) — usually acceptable; confirm cost
and that no qualification document names the exact code.
- Flash size (`C8T6` → `CBT6`) — pin-compatible, but the firmware's memory
budget and the production programming file both need review. This is a developer sign-off, not a substitution.
- Package letter (`VIT6` → `VIH6`) — never a drop-in. Different footprint,
different assembly process, different mechanical fit.
- Generation suffix (`T6` → `T6A`) — requires reading the second datasheet
and, in ST's own framing, a migration review.
What to put on the RFQ line #
Most of the wasted cycles in MCU sourcing come from incomplete requests. A usable STM32 RFQ line carries the full ordering code including packing, the quantity, and the two constraints that are invisible in the part number: an acceptable date-code window and the packaging condition you can receive. If the BOM is approved and locked, say so explicitly and state whether alternates may be offered at all — that single sentence prevents a supplier from quoting a technically similar code that your quality process cannot accept.
If you are open to alternates, name the field you are flexible on. "Flash size may go up, package and pin count are fixed" is an answerable request. "Or equivalent" is not, and the offers it generates usually have to be re-quoted anyway.
Conclusion #
An STM32 part number is readable, and reading it correctly answers the substitution question before engineering gets involved. The code is positional, so identify the field before you interpret the character; the letter tables live in each device's datasheet rather than in a universal chart; and the last two fields carry logistics and generation information that changes what you receive without changing what the part appears to be. When a supplier offers a code one character away from your BOM, decode both, identify which field moved, and only then decide whether it is a purchasing decision or an engineering one.
You can check what is currently published against a decoded code in the STM32 catalogue, and the IC package types guide covers what those package letters mean physically once you have resolved them.
Sources #
- STMicroelectronics — STM32F103C8 product page and datasheet (Cortex-M3, 64 Kbytes flash, 72 MHz; ordering-information scheme in the STM32F103x8/xB datasheet)
- STMicroelectronics — STM32H743VI product page (Cortex-M7 up to 480 MHz, up to 2 Mbytes flash; STM32H743VIT6 in LQFP100 and STM32H743VIH6 in TFBGA100, both listed as in volume production)
- STMicroelectronics — STM32L151x6/8/B-A datasheet (DocID024330) (ordering-information scheme including the `A` device-generation and `D` VDD/BOR option characters)
- STMicroelectronics community — differences between STM32L1xx and STM32L1xx-A (ST guidance describing the `-A` devices as pin-compatible successors and referencing technical note TN1176)
Need stock, date-code or package confirmation?
Send the part number, quantity, target date code and packaging requirements. LimChip will check available lots and RFQ details before you place the order.
Send RFQ