Alternativas ao STM32F103CBT6: Guia de MCU com Flash de 128 KB

STM32F103CBT6 Alternatives: 128 KB Flash MCU Guide

Alternativas ao STM32F103CBT6: Guia de MCU com Flash de 128 KB

O mesmo die, o mesmo footprint de 48 pinos, o dobro da flash — e o trabalho de firmware que a maioria das pessoas esquece antes de trocar.

Guia de aprovisionamento· MCU ·Inventário de MCU / MPU / SoC · Referência cruzada de 64 KB

TL;DR

  • STM32F103CBT6é o irmão de 128 KB do C8T6: mesmo Cortex-M3, mesmo LQFP de 48 pinos, mesma toolchain.
  • É a forma de menor risco de aumentar a folga — sem alterações na placa, sem novos drivers, apenas uma revisão do mapa de memória.
  • O trabalho está no script de ligação, na tabela de partições OTA e na tabela de vetores — não nos periféricos.
  • Existem segundas fontes com 128 KB, mas têm as mesmas ressalvas de "mesmos pinos, silício diferente" que a família de 64 KB.
  • Se a imagem ainda estiver a crescer, planeie a classe de 256 KB em vez de qualificar duas vezes.

1. Porque existe o CBT6

A família F103 foi construída em torno de um único die que podia ser configurado com diferentes densidades de memória flash. É por isso que o C6T6, o C8T6 e o CBT6 partilham o mesmo encapsulamento, a mesma pinagem e o mesmo conjunto de periféricos: as diferenças estão na memória, não na arquitetura.

Para um designer, isso é uma dádiva. Uma placa qualificada para o C8T6 aceita o CBT6 sem alterações de layout, e o firmware compila sem alterações aos drivers. A única questão é se o mapa de memória continua válido.

Para um comprador, é uma decisão de preço e disponibilidade: a peça de 128 KB custa ligeiramente mais, mas elimina o risco de uma segunda reformulação do armazenamento mais tarde.

2. As três variantes de memória

Componente Flash RAM Em stock
STM32F103C6T6 32 KB 10 KB Yes
STM32F103C8T6 64 KB 20 KB Yes
STM32F103CBT6 128 KB 20 KB Yes

Tenha em conta o que não muda: a RAM mantém-se nos 20 KB tanto no C8T6 como no CBT6. Duplicar a flash não dá à aplicação mais stack, heap ou buffers. Se o limite for a RAM, a resposta é uma família diferente e não um componente com mais flash.

O C6T6 de 32 KB é o compromisso oposto: é o mais barato, mas só é viável para uma imagem fixa pequena. Passar de 32 KB para 128 KB é um aumento de quatro vezes e, habitualmente, resolve a restrição de forma permanente.

O que permanece idêntico

O pinout, o encapsulamento, o conjunto de periféricos, a árvore de relógio e a interface de depuração mantêm-se inalterados nos C6T6, C8T6 e CBT6. A mesma placa, o mesmo cristal, o mesmo conector SWD e o mesmo circuito USB funcionam com os três.

É por isso que a atualização é frequentemente descrita como «gratuita». O esforço de engenharia é real, mas limitado: atualizar o linker script, rever a tabela de partições e repetir os testes de aceitação. Sem alterações ao esquemático, sem novo layout e sem novos drivers.

A única diferença de periféricos que vale a pena verificar é a geometria de página do controlador de flash, porque o tamanho da página determina como a EEPROM emulada e o bootloader apagam.

Na prática, os C8T6 e CBT6 são frequentemente intercambiáveis ao nível do distribuidor, e a escolha resume-se àquele que estiver disponível no momento da produção. Essa flexibilidade é, por si só, um argumento para conceber a tabela de partições em torno de 128 KB, para que qualquer das peças possa ser utilizada sem alterações ao firmware.

3. Quando 64 KB deixam de ser suficientes

O firmware cresce em passos previsíveis. Um projeto que cabia confortavelmente em 40 KB pode ultrapassar os 64 KB quando uma de cinco coisas acontece.

É adicionada uma pilha de rede.Mesmo uma pilha TCP/IP compacta com TLS consome dezenas de kilobytes.

É adicionado um ecrã e um conjunto de tipos de letra.Alguns conjuntos de glifos chineses ou japoneses podem exceder todo o orçamento da aplicação.

É adicionada a preparação OTA.As atualizações de banco duplo precisam de espaço para uma segunda imagem, ou pelo menos para uma comprimida.

O armazenamento de registos ou de configuração passa para a flash.As páginas de EEPROM emulada reduzem o espaço utilizável da aplicação.

Os símbolos de depuração ou um bootloader crescem.O bootloader ocupa a parte inferior da flash, quer alguém o meça ou não.

O que consome realmente os 64 KB extra

Ajuda ver para onde vai o espaço antes de decidir. Uma aplicação ligada típica nesta classe de MCU divide-se aproximadamente assim: bootloader 16 KB, código da aplicação 30–50 KB, uma pilha TCP/IP compacta 12–20 KB, TLS 15–25 KB, um sistema de ficheiros e configuração 4–8 KB, e uma área de preparação OTA igual ao tamanho da imagem.

Some esses números e o limite chega rapidamente. Uma aplicação de 45 KB com TLS e preparação em duplo banco precisa de mais de 128 KB antes de quaisquer dados de registo ou de fontes. É por isso que o componente de 64 KB parece adequado na bancada e depois fica sem espaço durante a integração.

A mesma aritmética explica porque "basta ativar TLS" é uma decisão de armazenamento tanto como de segurança. Os conjuntos de cifras e os armazenamentos de certificados não são gratuitos.

4. O trabalho de migração

Item O que muda
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

O erro mais comum é alterar o script do linker e esquecer a tabela de partições. A placa é então programada corretamente, mas a atualização OTA escreve para além da região de staging, ou o bootloader recusa uma imagem que considera demasiado grande.

Durabilidade e EEPROM emulada

A flash não é EEPROM. A flash do F103 está especificada para um número limitado de ciclos de apagamento, tipicamente na ordem das dez mil por página. Um bloco de configuração escrito em cada desligamento esgotará uma página muito antes de terminar a vida útil do produto.

A EEPROM emulada resolve isto com duas técnicas. Primeiro, escreve num local novo em vez de sobrescrever, pelo que o desgaste se distribui por uma página ou por um bloco. Segundo, mantém um pequeno índice na RAM e reescreve o índice apenas quando a página está cheia.

Ambas as técnicas consomem flash proporcionalmente ao número de variáveis e à profundidade do wear-leveling. Num componente de 64 KB, isto pode representar uma fração significativa do orçamento; no CBT6, o espaço extra torna viável um esquema de wear-leveling mais profundo.

Se o produto registar dados continuamente, considere uma FRAM externa ou uma pequena flash SPI em vez de desgastar a flash interna do MCU. O custo é moderado e o ganho de fiabilidade é grande.

Relógio, estados de espera e desempenho percecionado

Uma flash maior não torna o MCU mais rápido, mas pode alterar o número de estados de espera da flash com que o código é executado. A 72 MHz, o F103 necessita de estados de espera em ambas as densidades; a diferença surge quando o código é colocado em endereços diferentes ou quando o buffer de pré-busca se comporta de forma diferente.

Para a maioria das aplicações, isto passa despercebido. Para ciclos com contagem de ciclos, interfaces bit-banged e malhas de controlo críticas, pode ser importante, e o teste de aceitação deve incluir os caminhos sensíveis ao timing, e não apenas verificações funcionais.

Se o projeto funcionar abaixo de 48 MHz, os estados de espera são normalmente zero e a diferença desaparece por completo. É uma das razões pelas quais muitos projetos industriais funcionam deliberadamente abaixo da velocidade máxima.

5. Tamanho da flash em tempo de execução

O F103 indica o tamanho da sua flash num registo que o firmware pode ler. Isso é útil para uma plataforma fornecida com componentes de 64 KB ou 128 KB, e também é uma armadilha: o código que codifica de forma fixa contagens de páginas ou endereços de setores terá um comportamento incorreto numa densidade diferente.

Se o produto puder ser fornecido com ambas as variantes, leia o tamanho no arranque e configure a camada de armazenamento a partir dele. Se for fornecido apenas com uma, confirme o tamanho esperado no teste de fabrico para que uma bobina errada seja detetada antes da montagem.

Opções de design de OTA

Quatro padrões são comuns, e o seu custo de flash difere acentuadamente.

Banco duplo.Dois slots de imagem completos mais um bootloader. Seguro e simples, mas requer o dobro do tamanho da imagem. Em 128 KB, uma imagem de 40 KB com preparação em banco duplo consome 80 KB antes dos dados.

Preparação comprimida.A imagem descarregada é armazenada comprimida e expandida no próprio local durante o arranque. Poupa espaço, acrescenta uma etapa de descompressão e um modo de falha se o descompressor for interrompido.

Staging externo.A imagem é armazenada numa memória flash SPI externa e o MCU copia-a internamente. Acrescenta um componente, mas elimina totalmente a restrição de espaço interno.

Sem staging.O dispositivo descarrega e escreve diretamente, normalmente com um bootloader de recuperação. É a opção mais económica em flash e a mais arriscada em campo.

Independentemente do padrão escolhido, a tabela de partições tem de ser fixada antes de o firmware ser escrito. Alterá-la mais tarde invalida todos os dispositivos em campo.

Verificações de compatibilidade de firmware

Quatro verificações detetam a maioria dos problemas de migração antes de chegarem ao campo.

ID do dispositivo.O código de arranque do firmware pode ramificar com base no ID; adicione explicitamente o novo valor.

Registo do tamanho da Flash.Confirme o valor esperado no teste de fabrico, para que uma bobina com densidade errada seja rejeitada no momento da programação.

Deslocamento da tabela de vetores.Se o bootloader realocar a aplicação, confirme se o deslocamento corresponde à nova tabela de partições.

Número de páginas de emulação de EEPROM.O número de páginas reservadas para configuração tem de corresponder ao novo layout, caso contrário a última página sobrepor-se-á à aplicação.

6. Fontes alternativas a 128 KB

Família Flash Nota
GD32F103CBT6 128 KB Pin compatible; different flash timing and higher clock capability

Aplicam-se as mesmas regras do artigo sobre os 64 KB: a compatibilidade dos pinos é mecânica e o firmware tem de ser validado. Com uma flash maior, surge um item adicional — o algoritmo de programação da flash e a granularidade de apagamento podem ser diferentes, o que afeta tanto o tempo de produção como o projeto OTA.

Verifique também o caminho de recuperação. Se o bootloader suportar DFU por USB ou UART, teste uma recuperação a partir de uma imagem de aplicação corrompida na nova densidade, porque o descritor DFU codifica frequentemente o tamanho máximo da imagem.

O acesso de depuração não muda, mas vale a pena verificar os option bytes: a proteção contra leitura, o comportamento do watchdog e a configuração do pino de boot são armazenados na flash e podem diferir no estado predefinido entre lotes. Confirme-os na fixture e não na bancada.

Programação de produção e rastreabilidade

A mudança de densidade altera a imagem de programação e, frequentemente, a fixture. Três itens devem ser verificados na linha.

Tamanho da imagem e checksum.O programador deve aceitar a imagem maior, e o checksum armazenado na área do bootloader deve corresponder.

Verificação por leitura de retorno.Uma verificação completa após a programação deteta imediatamente uma bobina com densidade errada, em vez de o fazer no primeiro arranque.

Registo do ID único.O ID único de 96 bits liga um dispositivo a um registo de produção. O seu registo torna as devoluções de campo rastreáveis e ajuda a identificar um lote defeituoso.

7. Plano de teste

Passo Teste Critérios de aprovação
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

Quando 128 KB ainda não são suficientes

Se a imagem projetada for superior a cerca de 100 KB, o próximo passo não é outra variante F103 — é uma família diferente. O Cortex-M3 do F103 a 72 MHz e 20 KB de RAM passa a ser a limitação antes de a memória flash o ser.

As opções incluem a classe de 256 KB na mesma família, um componente Cortex-M4 com mais RAM e uma unidade de vírgula flutuante, ou uma flash QSPI externa com suporte a execute-in-place. Cada uma é uma decisão de plataforma com o seu próprio custo de certificação e firmware.

A regra prática: escolher a densidade que cobre os próximos dois anos de funcionalidades, não o tamanho atual da imagem. Requalificar a mesma placa duas vezes é mais caro do que comprar um componente ligeiramente maior desde o início.

Uma história de produto de cinco anos

Considere um controlador concebido em 2021 com uma imagem de 40 KB no C8T6. Em 2023, a imagem atingiu 58 KB após a adição de uma interface web. Em 2024, o TLS levou-a além dos 64 KB e a equipa comprimiu os tipos de letra para que coubesse.

Em 2025, a área de preparação OTA já não cabia. A solução nesse momento foi uma revisão da placa, um novo layout de partições e uma migração em campo — tudo evitável se o projeto tivesse começado no CBT6 por mais alguns cêntimos.

É esse o argumento a favor da margem: não que a flash extra vá ser utilizada imediatamente, mas que o custo de ficar sem ela se mede em novas revisões da placa e não em cêntimos.

8. Custo e planeamento

A diferença de preço entre o C8T6 e o CBT6 é pequena. A decisão não tem a ver com o custo unitário; tem a ver com saber se os 64 KB adicionais eliminam uma futura reformulação.

Três sinais apontam para o CBT6: a imagem atual tem mais de 45 KB, o plano de evolução inclui uma pilha de rede ou um ecrã, ou o produto tem uma vida útil de vários anos. Dois sinais apontam para permanecer nos 64 KB: a imagem é estável e pequena, e o volume é suficientemente elevado para que os cêntimos importem.

Se a imagem já estiver perto de 100 KB, passe diretamente para a classe de 256 KB. Qualificar um componente de 128 KB e depois voltar a mudar dentro de um ano é o caminho mais dispendioso.

Uma regra de decisão para novos projetos

Anote três números antes de escolher: o tamanho atual da imagem, o tamanho esperado dentro de dois anos e se o OTA é necessário. Se a resposta ao OTA for sim, adicione novamente o tamanho da imagem. Se o total projetado for superior a 90 KB, comece nos 128 KB ou mais.

Para um produto de função fixa, sem conectividade e sem OTA, 64 KB costuma ser suficiente e o C8T6 continua a ser a escolha mais económica. O erro é assumir que um produto ficará fixo durante cinco anos.

9. FAQ

O CBT6 é um substituto direto do C8T6?

Fisicamente e funcionalmente, sim. O firmware requer a atualização do linker script e da tabela de partições para a flash de maior capacidade.

A RAM aumenta?

Não. Ambas as peças têm 20 KB. Se a RAM for a limitação, uma peça com maior flash não ajudará.

Posso voltar mais tarde para o C8T6?

Só se a imagem couber em 64 KB. Planeie a tabela de partições para que seja possível fazer downgrade sem alterar o código.

As fontes alternativas têm o mesmo registo de tamanho de flash?

Normalmente existe um registo compatível, mas o valor e a granularidade podem diferir. Consulte a folha de dados da peça exata.

Qual é o erro de migração mais comum?

Atualizar o script do linker mas não a tabela de partições OTA, o que origina atualizações que escrevem fora da área de staging.

Devo encomendar o CBT6 para um novo projeto?

Se a imagem for inferior a 32 KB e estável, o C8T6 serve. Se houver qualquer possibilidade de crescimento — uma interface web, TLS, registo de logs ou OTA — comece nos 128 KB e evite um segundo ciclo de projeto.

Notas de fornecimento

A disponibilidade nesta densidade é melhor do que a 32 KB, porque mais projetos a utilizam. Mantenha uma segunda fonte aprovada e confirme que o respetivo algoritmo de programação de flash corresponde ao seu fixture de produção; a imagem é a mesma, mas as ferramentas podem não ser. Verifique-o antes de efetuar a encomenda.

10. Fontes

Sobre o autor— Publicado pela Equipa de Inteligência da Cadeia de Abastecimento da Chip-Seek. Monitorizamos a disponibilidade de componentes, substituições e risco de qualificação para engenheiros de hardware e equipas de compras. Leia a nossaprocesso de qualidade e rastreabilidade.

Precisa de mais margem de flash?

Diga-nos a peça atual e o tamanho da imagem. Cotaremos as variantes de 64 KB e 128 KB em stock para que possa comparar na mesma placa.

Verificar stock do CBT6Solicitar amostras

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.