Qual é o ponto de corte real em termos de compensação entre custo e desempenho para a seleção de microcontroladores de 32 bits?
Em outras palavras, com o surgimento e o domínio das arquiteturas ARM, por que ainda estamos usando microcontroladores de 8 e 16 bits? Eles ainda são muito mais baratos?
Entendo que dispositivos muito simples não precisam dos recursos oferecidos por arquiteturas maiores e mais complexas. No entanto, qual é a verdadeira motivação para continuar a usá-los se os custos parecerem convergir para o mesmo intervalo?
microcontroller
arm
cost
Bruno Morais
fonte
fonte
Respostas:
Talvez um ano atrás, havia uma diferença significativa entre os low-end de 8 bits e os mais baratos de microcontroladores de 32 bits. Não é mais o caso.
Com base nos preços em massa da Digi-Key, você pode obter um PIC10F200 de 8 bits por 35ȼ em quantidades de 2500 em um pacote SOT-23-6. Você obtém um CY8C4013SXI-400 de 32 bits (ARM Cortex-M0) por 36ȼ em 2500 quantidades em um pacote SOIC-8. (O preço em massa da Digi-Key não é realista em termos do que os fabricantes realmente pagam, o que provavelmente é muito menor, mas acho que é válido usá-lo para uma comparação aproximada de preços entre produtos diferentes e quantidades semelhantes.)
Então o OP está certo, eles estão convergindo.
Então, por que os chips de 32 bits não estão sendo mais usados? Bem, como eu disse no meu primeiro parágrafo, essa paridade de preço e tamanho só aconteceu no último ano ou em 18 meses. E eles ainda têm um longo caminho a percorrer antes que haja fichas suficientes para serem competitivos.
Dos 6875 chips ARM disponíveis na Digi-Key, existem apenas quatro em estoque com preços por quantidade inferiores a um dólar. Quatro . Enquanto isso, existem centenas de chips de 8 bits abaixo de um dólar para os engenheiros escolherem.
Mas digamos que houvesse pelo menos algumas dezenas de micros de 32 bits disponíveis. Eles seriam escolhidos automaticamente sobre os de 8 bits?
Primeiro de tudo, você precisa informar os engenheiros. Sempre há muita resistência à mudança. Coisas novas a aprender - do ponto de vista do hardware, aprendendo a incorporar o novo chip em um circuito. Existem novas ferramentas, como programadores em circuito, novos compiladores, etc. Para os engenheiros de firmware, aprendendo a usar um novo conjunto de periféricos e timers (principalmente layouts de registros e significados de bits).
32 bits é bom e tudo isso, mas a menos que seja necessário fazer muita computação pesada, qual é o objetivo? Se você tiver apenas quatro pinos GPIO, acessá-los internamente como um registro de 32 bits não oferece vantagem sobre o uso de um registro de 8 bits.
Eu acho que o consumo de energia sempre será favorável aos micros de 8 bits.
Por exemplo, o PIC10F200 consome 175 µA rodando a 4 MHz e 2v e 100 nA no modo de suspensão. O CY8C4013SXI-400 consome aproximadamente 800 µA funcionando a 4MHz e 2v e 1 uA no modo de suspensão. (A folha de dados do CY8C4013SXI não tinha números para 4 MHz ou 2v, então eu tive que fazer algumas estimativas - a folha de dados diz que ele usa 2 ma @ 6 MHz e 3,3v.)
Assim, o ARM consome 4,5 vezes mais corrente quando acordado e 10 vezes quando dorme. Não parece muito, mas é a diferença entre rodar em uma célula de moeda por 3 meses ou por um ano. (Suponho que ambos os microcontroladores estejam na maioria das vezes fazendo sincronização, atualizando portas etc. e não realizando computação pesada. Se este for o caso, e o micro de 8 bits tiver que fazer muita aritmética de vários bytes por um período prolongado com o tempo, perde parte de sua vantagem.)
É interessante que o ARM consome cerca de quatro vezes mais corrente que o 8-bit e, por sua vez, possui registros internos e caminhos de dados que são quatro vezes maiores. Eu não acho que isso seja uma coincidência. Para o CMOS, o consumo de energia é aproximadamente proporcional ao número de transistores sendo trocados, e o ARM está obviamente fazendo muito mais por instrução executada.
À medida que mais fornecedores de ARM lançam chips de baixo custo, eu não ficaria surpreso se fornecedores como Microchip baixassem ainda mais seus preços. De qualquer forma, com preços mais ou menos iguais, pacotes de tamanho semelhante, mas com muito menos chips de 32 bits para escolher, acho que os microcontroladores de 8 bits ainda estarão disponíveis por algum tempo - principalmente porque você familiarizou dezenas de milhares de engenheiros.
fonte
Três pontos principais:
50 ¢ quando você está comprando 10.000 fichas, é bastante dinheiro. Ainda mais quando você está comprando 100.000 chips.
Você pode obter chips de 8 bits consideravelmente menores que os de 32 bits, como o PIC10, disponível em um pacote SOT23-6.
Os chips de 32 bits, porque geralmente têm um clock mais rápido e consomem mais, consomem muito mais energia do que um pequeno chip de 8 bits. As baterias descarregam mais rapidamente, os sistemas de energia precisam fornecer mais corrente (e, portanto, ser mais dispendiosa) etc.
Afinal, por que você compraria um juggernaut para tomar um copo de açúcar ao lado?
fonte
Os aplicativos da uC que desenvolvi para produtos comerciais quase nunca lidavam com tamanhos de dados maiores que 8 bits; portanto, mesmo que 32 bits amarelos tenham o mesmo preço que 8 bits amarelos, ainda assim não haverá benefício. Como alguém disse, procuramos o que é familiar, para que possamos dar um soco mais rapidamente. O último que desenvolvi, no entanto, acabou levando o PIC16 que eu costumava ao limite em todos os aspectos - mas isso não foi por causa do tamanho dos dados. Se eu fizer mais assim, realmente devo aprender o ARM.
fonte
Eu esperaria que os chips ARM assumissem a maioria das funções em que algo se comporta como um "computador". Por outro lado, muitos microcontroladores de 8 bits se acostumam a fazer coisas que poderiam ser feitas com um dispositivo lógico programável relativamente simples ou com um número moderado de portas, mas que na verdade podem ser mais baratos e / ou com menor consumo de corrente usando um micro de 8 bits simples. Ao projetar aplicativos mais complicados, geralmente é mais fácil usar um micro de 32 bits do que um de 8 bits, mas se todo o objetivo de um chip é, por exemplo, observar e debitar uma determinada entrada e, se for alta, começar a produzir 200 pulsos em uma determinada saída em intervalos de 1ms, depois 100 em 2ms, depois 100 em 3ms, pausar por 100ms e continuar fazendo isso até que a entrada fique baixa, projetar o código para isso pode ser realmente mais fácilem um micro de 8 bits do que em um de 32 bits. A diferença de custo entre micros de 8 e 32 bits pode não ser mais suficiente em muitos casos para justificar o esforço adicional de engenharia para tornar um projeto "adequado" a um micro de 8 bits, mas nos casos em que uma parte de 32 bits não para economizar qualquer esforço de engenharia, não há razão para gastar nem um centavo a mais.
fonte
Embora eu concorde que o custo da CPU e o consumo de energia sejam os principais motivos, mais uma consideração que ainda não vi listada aqui é o espaço para PCB. Para muitos tipos de sistemas embarcados, como, por exemplo, uma balança eletrônica de banheiro, não há muita necessidade de grande quantidade de E / S, nenhum benefício para um tamanho de barramento maior e nenhum benefício para um processamento mais rápido. No entanto, não éum benefício para um pacote menor com menos pinos, pois torna o layout e o roteamento de uma placa de circuito impresso mais simples e, geralmente, menores. Se uma placa puder ser projetada como uma placa de 2 camadas em vez de uma placa de 4 camadas, haverá uma economia de custos considerável, e as contagens menores de pinos que geralmente vêm com processadores de 8 bits tendem a facilitar essas economias mais facilmente do que 32 processadores de bits que geralmente têm mais pinos e pacotes fisicamente maiores.
fonte
Mesmo no mundo de 8 bits, sabe-se que os tipos mais novos demoram muito tempo para assumir o controle dos tipos mais antigos - veja o MCS51 ainda vivo em seus nichos e o MCS48 ainda em locais inesperados.
Em muitos casos, a mudança não ocorre porque não traz valor adicional e vem com o custo de aprender uma nova tecnologia que ainda não provou estar lá para ficar e / ou espera-se que ainda seja um alvo em movimento (o que torna é interessante para as pessoas que desejam se concentrar na tecnologia MCU, mas irritante para as pessoas que desejam se concentrar em seus aplicativos e não constantemente consertam e testam novamente o software de produção para adaptar o vintage ARM deste ano!). Para alguns, um componente que não é mais desenvolvido é obsoleto, para outros finalmente se tornou estável e, embora possa precisar de soluções alternativas para erros encravados, ele pelo menos fornece uma plataforma estável para eles. O fluxo de lava nem sempre é o antipadrão em que está rachado - tende a fazer com que as montanhas fiquem no lugar certo.
fonte