STM32F103CBT6-vaihtoehdot: 128 KB:n flash-mikrokontrollerin opas

STM32F103CBT6 Alternatives: 128 KB Flash MCU Guide

STM32F103CBT6-vaihtoehdot: 128 KB:n flash-mikrokontrollerin opas

Sama piilastu, sama 48-nastainen jalkakuvio, kaksinkertainen flash-muisti – ja laiteohjelmistotyö, jonka useimmat unohtavat ennen vaihtoa.

Hankintaopas· MCU ·MCU / MPU / SoC -luettelo · 64 KB:n ristiviittaus

TL;DR

  • STM32F103CBT6on C8T6:n 128 KB:n sisarmalli: sama Cortex-M3, sama 48-nastainen LQFP, sama työkaluketju.
  • Se on alhaisimman riskin tapa lisätä pelivaraa — ei muutoksia piirilevyyn, ei uusia ajureita, vain muistikartan läpikäynti.
  • Työ on linkkeriskriptissä, OTA-osiotaulukossa ja vektoritaulukossa — ei oheislaitteissa.
  • Vaihtoehtoisia lähteitä 128 KB:lle on olemassa, mutta niihin pätevät samat "samat nastat, eri piilastu" -varaukset kuin 64 KB:n perheeseen.
  • Jos ohjelmistokuva on vielä kasvamassa, varaudu 256 KB:n luokkaan sen sijaan, että kvalifioisit kahdesti.

1. Miksi CBT6 on olemassa

F103-perhe rakennettiin yhden piilastun ympärille, joka voitiin konfiguroida eri flash-tiheyksillä. Siksi C6T6, C8T6 ja CBT6 jakavat saman kotelon, saman nastajärjestyksen ja saman oheislaitesarjan: erot ovat muistissa, eivät arkkitehtuurissa.

Suunnittelijalle se on lahja. C8T6:lle kvalifioitu piirilevy hyväksyy CBT6:n ilman asettelumuutosta, ja firmware kääntyy ilman ajurimuutoksia. Ainoa kysymys on, pitääkö muistikartta edelleen paikkansa.

Ostajalle se on hinnoittelu- ja saatavuuskysymys: 128 KB:n osa maksaa hieman enemmän, mutta se poistaa riskin siitä, että muisti joudutaan suunnittelemaan uudelleen myöhemmin.

2. Kolme muistivarianttia

Osa Flash-muisti RAM Varastossa
STM32F103C6T6 32 KB 10 KB Yes
STM32F103C8T6 64 KB 20 KB Yes
STM32F103CBT6 128 KB 20 KB Yes

Huomaa, mikä ei muutu: RAM pysyy 20 KB:ssa C8T6- ja CBT6-malleissa. Flashin kaksinkertaistaminen ei anna sovellukselle enempää pinoa, kekoa tai puskureita. Jos rajoite on RAM, ratkaisu on eri tuoteperhe, ei suurempi flash-osa.

32 KB:n C6T6 on päinvastainen kompromissi: halvin, mutta käyttökelpoinen vain pieneen kiinteään ohjelmakuvaan. Siirtyminen 32 KB:stä 128 KB:iin on nelinkertainen kasvu ja yleensä ratkaisee rajoitteen pysyvästi.

Mikä pysyy samana

Nastajärjestys, kotelo, oheislaitteisto, kellopuu ja debug-liitäntä ovat muuttumattomia C6T6-, C8T6- ja CBT6-malleissa. Sama piirilevy, sama kide, sama SWD-liitin ja sama USB-piiri toimivat kaikkien kolmen kanssa.

Siksi päivitystä kuvataan usein "ilmaiseksi". Insinöörityö on todellista mutta rajattua: päivitä linkkeriskripti, tarkista osiotaulu, aja hyväksymistestit uudelleen. Ei muutoksia kytkentäkaavioon, ei uutta layoutia, ei uusia ajureita.

Ainoa tarkistamisen arvoinen oheislaitteistoero on flash-ohjaimen sivugeometria, koska sivun koko määrää, miten emuloitu EEPROM ja bootloader suorittavat pyyhinnän.

Käytännössä C8T6 ja CBT6 ovat usein keskenään vaihtokelpoisia jakelijatasolla, ja valinta riippuu siitä, kumpaa on saatavilla koontihetkellä. Tämä joustavuus on itsessään peruste suunnitella osiotaulu 128 KB:n ympärille, jotta kumpaa tahansa komponenttia voidaan käyttää ilman laiteohjelmiston muutosta.

3. Kun 64 KB ei enää riitä

Laiteohjelmisto kasvaa ennustettavissa olevin askelin. Projekti, joka mahtui mukavasti 40 KB:n rajaan, voi ylittää 64 KB:n rajan, kun yksi viidestä asiasta tapahtuu.

Verkkopino lisätään.Jopa kompakti TCP/IP-pino TLS:llä kuluttaa kymmeniä kilotavuja.

Näyttö ja kirjasinsarja lisätään.Muutamat kiinalaiset tai japanilaiset glyyppijoukot voivat ylittää koko sovelluksen budjetin.

OTA-vaiheistus lisätään.Kaksipankkiset päivitykset tarvitsevat tilaa toiselle kuvalle tai ainakin pakatulle kuvalle.

Lokitus tai konfiguraation tallennus siirtyy flash-muistiin.Emuloidut EEPROM-sivut pienentävät käytettävissä olevaa sovellustilaa.

Virheenkorjaussymbolit tai bootloader kasvavat.Bootloader vie flash-muistin alaosan riippumatta siitä, mittaako kukaan sitä.

Mikä oikeastaan vie ylimääräisen 64 KB:n

On hyödyllistä nähdä, mihin tila menee, ennen kuin päättää. Tyypillinen yhdistetty sovellus tämän luokan MCU:lla jakautuu suunnilleen näin: bootloader 16 KB, sovelluskoodi 30–50 KB, kompakti TCP/IP-pino 12–20 KB, TLS 15–25 KB, tiedostojärjestelmä ja konfiguraatio 4–8 KB sekä OTA-välivarastointialue, joka vastaa imagen kokoa.

Kun nuo luvut laskee yhteen, yläraja tulee nopeasti vastaan. 45 KB:n sovellus, jossa on TLS ja kahden pankin välivarastointi, tarvitsee yli 128 KB ennen kuin yhtään lokitus- tai fonttidataa on mukana. Siksi 64 KB:n komponentti tuntuu testipenkissä riittävältä, mutta sen tila loppuu integroinnin aikana.

Sama laskelma selittää, miksi "ota vain TLS käyttöön" on yhtä lailla tallennustilapäätös kuin tietoturvapäätös. Salausmenetelmäpaketit ja varmennevarastot eivät ole ilmaisia.

4. Migraatiotyö

Nimike Mikä muuttuu
Linker script FLASH length from 64K to 128K
Partition table Application, staging and data sizes
Vector table offset Only if the bootloader or app base moves
OTA bank size A larger image needs a larger staging area
EEPROM emulation Page count changes if the layout moves
Production programming Image size and checksum

Yleisin virhe on linkkeriskriptin muuttaminen ja osiotaulun unohtaminen. Tällöin kortti ohjelmoituu oikein, mutta OTA-päivitys kirjoittaa staging-alueen ohi, tai bootloader hylkää imagen, jonka se katsoo liian suureksi.

Kirjoituskestävyys ja emuloitu EEPROM

Flash ei ole EEPROM. F103:n flash on mitoitettu rajoitetulle määrälle poistosyklejä, tyypillisesti kymmenientuhansien luokkaan sivua kohti. Joka virrankatkaisulla kirjoitettava konfiguraatiolohko kuluttaa sivun loppuun kauan ennen tuotteen käyttöiän päättymistä.

Emuloitu EEPROM ratkaisee tämän kahdella tekniikalla. Ensinnäkin se kirjoittaa uuteen sijaintiin sen sijaan, että kirjoittaisi päälle, jolloin kuluminen jakautuu sivulle tai lohkolle. Toiseksi se pitää pientä indeksiä RAM-muistissa ja kirjoittaa indeksin uudelleen vain, kun sivu on täynnä.

Molemmat tekniikat kuluttavat flashia suhteessa muuttujien määrään ja wear-leveling-syvyyteen. 64 KB:n osassa tämä voi olla merkittävä osuus budjetista; CBT6:ssa lisätila tekee syvemmän wear-leveling-järjestelmän mahdolliseksi kohtuullisin kustannuksin.

Jos tuote tallentaa dataa jatkuvasti, harkitse ulkoista FRAM-muistia tai pientä SPI-flashia sisäisen MCU-flashin kuluttamisen sijaan. Kustannus on maltillinen ja luotettavuushyöty suuri.

Kello, odotustilat ja koettu suorituskyky

Suurempi flash-muisti ei tee MCU:sta nopeampaa, mutta se voi muuttaa flash-muistin odotustilojen määrää koodin suorituksessa. 72 MHz:n taajuudella F103 tarvitsee odotustiloja molemmilla kapasiteeteilla; ero ilmenee, kun koodi sijoitetaan eri osoitteisiin tai kun prefetch-puskurin toiminta poikkeaa.

Useimmille sovelluksille tämä on näkymätöntä. Jaksojen mukaan lasketuissa silmukoissa, bit-bangatuissa rajapinnoissa ja tiukoissa säätösilmukoissa sillä voi olla merkitystä, ja hyväksymistestin tulisi sisältää ajoitukselle herkät polut eikä vain toiminnallisia tarkistuksia.

Jos suunnittelu toimii alle 48 MHz:n taajuudella, odotustilat ovat yleensä nolla ja ero katoaa kokonaan. Tämä on yksi syy siihen, miksi monet teolliset suunnittelut toimivat tarkoituksella hitaammin kuin enimmäistaajuudellaan.

5. Flash-muistin koko suorituksen aikana

F103 ilmoittaa flash-muistinsa koon rekisterissä, jonka laiteohjelmisto voi lukea. Tämä on hyödyllistä alustalle, joka toimitetaan joko 64 KB:n tai 128 KB:n osilla, ja se on myös ansa: koodi, joka kovakoodaa sivumäärät tai sektoriosoitteet, toimii väärin eri kapasiteetilla.

Jos tuote voidaan toimittaa molempien varianttien kanssa, lue koko käynnistyksen yhteydessä ja määritä tallennuskerros sen perusteella. Jos se toimitetaan vain yhden variantin kanssa, varmista odotettu koko valmistustestissä, jotta väärä kela havaitaan ennen kokoonpanoa.

OTA-suunnitteluvaihtoehdot

Neljä mallia on yleisiä, ja niiden flash-kustannus vaihtelee jyrkästi.

Kaksipankkinen.Kaksi täyttä kuvapaikkaa plus bootloader. Turvallinen ja yksinkertainen, mutta vaatii kaksi kertaa kuvakoon. 128 KB:n muistissa 40 KB:n kuva kaksipankkisella välivaiheella kuluttaa 80 KB ennen dataa.

Pakattu välivaihe.Ladattu kuva tallennetaan pakattuna ja puretaan paikan päällä käynnistyksen yhteydessä. Säästää tilaa, lisää purkuvaiheen ja vikatilan, jos purkaja keskeytyy.

Ulkoinen välitallennus.Kuva tallennetaan ulkoiseen SPI-flash-muistiin, ja MCU kopioi sen sisäisesti. Lisää komponentin mutta poistaa sisäisen tilan rajoituksen kokonaan.

Ei välitallennusta.Laite lataa ja kirjoittaa suoraan, tyypillisesti palautusbootloaderin avulla. Edullisin flash-muistin kannalta, riskialtein kentällä.

Riippumatta siitä, mikä malli valitaan, osiotaulu on kiinnitettävä ennen laiteohjelmiston kirjoittamista. Sen muuttaminen myöhemmin mitätöi jokaisen kentällä olevan laitteen.

Laiteohjelmiston yhteensopivuustarkistukset

Neljä tarkistusta paljastaa useimmat migraatio-ongelmat ennen kuin ne päätyvät kentälle.

Laitetunnus.Laiteohjelmiston käynnistyskoodi voi haarautua tunnuksen perusteella; lisää uusi arvo nimenomaisesti.

Flash-muistin kokorekisteri.Varmista odotettu arvo tuotantotestissä, jotta väärän kapasiteetin kela hylätään ohjelmointivaiheessa.

Vektoritaulun siirtymä.Jos käynnistyslataaja siirtää sovelluksen, varmista että siirtymä vastaa uutta osiotaulukkoa.

EEPROM-emuloinnin sivumäärä.Konfigurointiin varattujen sivujen määrän on vastattava uutta asettelua, tai viimeinen sivu menee päällekkäin sovelluksen kanssa.

6. Toissijaiset lähteet 128 KB:ssa

Perhe Flash-muisti Huomautus
GD32F103CBT6 128 KB Pin compatible; different flash timing and higher clock capability

Samat 64 KB:n artikkelin säännöt pätevät: pinnien yhteensopivuus on mekaanista, ja laiteohjelmisto on validoitava. Suuremmalla flash-muistilla tulee esiin yksi lisäasia — flash-ohjelmointialgoritmi ja pyyhinnän rakeisuus voivat vaihdella, mikä vaikuttaa sekä tuotantoaikaan että OTA-suunnitteluun.

Varmista myös palautuspolku. Jos bootloader tukee DFU:ta USB:n tai UART:n kautta, testaa palautusta korruptoituneesta sovelluskuvasta uudella muistikapasiteetilla, koska DFU-kuvaaja sisältää usein kuvan enimmäiskoon.

Debug-käyttö on ennallaan, mutta option-tavut kannattaa tarkistaa: lukusuojaus, watchdog-käyttäytyminen ja boot-pinnien kokoonpano tallennetaan flash-muistiin, ja niiden oletustila voi vaihdella erien välillä. Vahvista ne tuotantotelineellä, älä penkillä.

Tuotanto-ohjelmointi ja jäljitettävyys

Kapasiteetin vaihtaminen muuttaa ohjelmointikuvan ja usein myös tuotantotelineen. Kolme asiaa on vahvistettava tuotantolinjalla.

Kuvan koko ja tarkistussumma.Ohjelmointilaitteen on hyväksyttävä suurempi kuva, ja bootloaderialueelle tallennetun tarkistussumman on täsmättävä.

Takaisinlukuverifiointi.Täysi varmennus ohjelmoinnin jälkeen havaitsee väärän tiheyden kelan välittömästi ensimmäisen käynnistyksen sijaan.

Yksilöllisen ID:n lokitus.96-bittinen yksilöllinen ID sitoo laitteen tuotantotietueeseen. Sen lokittaminen tekee kenttäpalautuksista jäljitettäviä ja auttaa tunnistamaan huonon erän.

7. Testaussuunnitelma

Vaihe Testi Hyväksymiskriteerit
1 Read flash size and device ID Matches the expected density
2 Program the full image Verifies with zero errors
3 Boot and run the acceptance test No timing regressions
4 OTA update with power cut Recovers via the bootloader
5 EEPROM emulation wear test No page exhaustion after 100k writes

Kun 128 KB ei vieläkään riitä

Jos arvioitu ohjelmakuvan koko on yli noin 100 KB, seuraava askel ei ole toinen F103-variantti — vaan eri tuoteperhe. F103:n Cortex-M3 72 MHz:n kellotaajuudella ja 20 KB:n RAM-muisti muodostuvat rajoitteeksi ennen flash-muistia.

Vaihtoehtoja ovat saman perheen 256 KB:n kokoluokka, Cortex-M4-komponentti, jossa on enemmän RAM-muistia ja liukulukuyksikkö, tai ulkoinen QSPI-flash, joka tukee execute-in-place-toimintoa. Jokainen on alustapäätös, jolla on oma sertifiointi- ja laiteohjelmistokustannuksensa.

Käytännön sääntö: valitse kapasiteetti, joka kattaa seuraavien kahden vuoden ominaisuudet, ei nykyistä ohjelmistokuvan kokoa. Saman kortin uudelleenhyväksyttäminen kahdesti on kalliimpaa kuin hieman suuremman komponentin ostaminen alusta alkaen.

Viiden vuoden tuotetarina

Tarkastellaan vuonna 2021 suunniteltua ohjainta, jossa C8T6:ssa oli 40 KB:n ohjelmistokuva. Vuoteen 2023 mennessä ohjelmistokuva saavutti 58 KB web-käyttöliittymän lisäämisen jälkeen. Vuoteen 2024 mennessä TLS työnsi sen yli 64 KB:n, ja tiimi pakkasi fontit, jotta ne mahtuisivat.

Vuonna 2025 OTA-valmistelualue ei enää mahtunut. Korjaus siinä vaiheessa oli kortin revisio, uusi osiointiasettelu ja kenttämigraatio — kaikki vältettävissä, jos suunnittelu olisi aloitettu CBT6:lla muutaman sentin lisähinnalla.

Tässä on perustelu pelivaralle: ei se, että ylimääräinen flash-muisti otetaan heti käyttöön, vaan se, että loppumisen hinta mitataan uudelleenvalmistuksina eikä sentteinä.

8. Kustannukset ja suunnittelu

C8T6:n ja CBT6:n välinen hintaero on pieni. Päätös ei koske yksikkökustannusta; kysymys on siitä, poistaako ylimääräinen 64 KB tulevan uudelleensuunnittelun.

Kolme signaalia puoltavat CBT6:tä: nykyinen ohjelmistokuva on yli 45 KB, tiekartta sisältää verkkopinon tai näytön, tai tuotteen elinkaari on monivuotinen. Kaksi signaalia puoltavat 64 KB:ssa pysymistä: ohjelmistokuva on vakaa ja pieni, ja volyymi on riittävän suuri, että senteillä on merkitystä.

Jos ohjelmistokuva on jo lähellä 100 KB:a, siirry suoraan 256 KB:n luokkaan. 128 KB:n komponentin kvalifiointi ja siitä vuoden päästä uudelleen siirtyminen on kallein polku.

Päätössääntö uusille suunnitteluille

Kirjaa kolme lukua ennen valintaa: nykyinen ohjelmistokuvan koko, odotettu koko kahden vuoden kuluttua ja vaaditaanko OTA. Jos vastaus OTAan on kyllä, lisää ohjelmistokuvan koko uudelleen. Jos ennustettu kokonaiskoko on yli 90 KB, aloita 128 KB:sta tai suuremmasta.

Kiinteätoimintoiselle tuotteelle, jossa ei ole liitettävyyttä eikä OTA:ta, 64 KB on yleensä riittävästi, ja C8T6 on edelleen halvempi vaihtoehto. Virhe on olettaa, että tuote pysyy muuttumattomana viisi vuotta.

9. UKK

Onko CBT6 suora korvaaja C8T6:lle?

Fyysisesti ja toiminnallisesti kyllä. Laiteohjelmiston linkitysskripti ja osiotaulukko täytyy päivittää suuremman flash-muistin vuoksi.

Kasvaako RAM-muisti?

Ei. Molemmissa komponenteissa on 20 KB. Jos RAM on rajoittava tekijä, suurempi flash-muisti ei auta.

Voinko palata myöhemmin takaisin C8T6-malliin?

Vain jos ohjelmakuva mahtuu 64 KB:hen. Suunnittele osiotaulu siten, että downgrade on mahdollinen ilman koodimuutoksia.

Onko vaihtoehtoisilla lähteillä sama flash-kokorekisteri?

Yhteensopiva rekisteri on yleensä olemassa, mutta arvo ja granulariteetti voivat poiketa. Lue datalehti tarkalle osalle.

Mikä on yleisin migraatiovirhe?

Linkkeriskriptin päivittäminen mutta OTA-osiotaulun päivittämättä jättäminen, mikä tuottaa päivityksiä, jotka kirjoittavat staging-alueen ulkopuolelle.

Pitäisikö minun tilata CBT6 uuteen suunnitteluun?

Jos ohjelmistokuva on alle 32 KB ja vakaa, C8T6 riittää. Jos kasvulle on yhtään mahdollisuutta — verkkokäyttöliittymä, TLS, lokitus tai OTA — aloita 128 KB:sta ja vältä toinen suunnittelukierros.

Toimitushuomiot

Saatavuus tällä kapasiteetilla on parempi kuin 32 KB:n kohdalla, koska useammat suunnittelut käyttävät sitä. Pidä yksi hyväksytty varalähde ja varmista, että sen flash-ohjelmointialgoritmi vastaa tuotantotelinettäsi; ohjelmistokuva on sama, mutta työkalut eivät välttämättä ole. Tarkista se ennen tilauksen tekemistä.

10. Lähteet

Tietoja kirjoittajasta— Julkaisija: Chip-Seek Supply Chain Intelligence Team. Seuraamme komponenttien saatavuutta, korvaavia osia ja kvalifiointiriskiä laitteistosuunnittelijoille ja hankintatiimeille. Luelaatu- ja jäljitettävyysprosessiimme.

Tarvitsetko lisää flash-kapasiteettia?

Kerro meille nykyinen komponentti ja image-koko. Annamme tarjouksen varastossa olevista 64 KB:n ja 128 KB:n versioista, jotta voit vertailla niitä samalla piirilevyllä.

Tarkista CBT6:n varastotilannePyydä näytteitä

Check stock by part number

Turn this insight into a sourcing decision.

Need pricing or a drop-in alternative? Submit a BOM / RFQ or talk to our team.