Il “terribile” 3 cent MCU-una breve indagine di sub micro 0.10 microcontrollori.

Come molti altri, sono rimasto abbastanza stupito di conoscere un microcontrollore venduto per soli 0.03 USD tramite EEVblog l’anno scorso. Com’è stato possibile? Molti presumevano che si trattasse di una vendita antincendio di un vecchio prodotto. Scavando un po ‘ oltre, è diventato evidente che esiste un intero segmento di mercato di microcontrollori ultra-low-cost. Quasi tutti sono prodotti di aziende piuttosto sconosciute provenienti dalla Cina o da Taiwan. Questo articolo riassume le mie scoperte in questa nicchia piuttosto particolare.

Abbiamo già appreso che esiste una grande varietà di microcontrollori powerful 1.00 molto potenti, ma per quanto riguarda la MCU $0.10? Sono davvero tutti “terribili”, come suggerito altrove?

Metodologia

Come definire un microcontrollore $0.10? In qualsiasi modo lo metti; sarà una scelta un po ‘ arbitraria. Ho preso un approccio semplice e ho usato il prezzo della staffa 100pc su LCSC. Sei fornitori in cui sono stati identificati che avevano uno o più dispositivi al di sotto di $0,10, tutti provenienti dall’Asia. Se erano disponibili diversi tipi di pacchetti dello stesso MCU, ho scelto la versione SOP8. Alcuni produttori avevano più di un candidato, quindi ho dovuto limitarmi a dispositivi rappresentativi per una lista di candidati finale di otto.

Non sono stato in grado di trovare alcun sub MC 0.10 MCU presso i grandi distributori likeDigikey o Mouser. Solo per affermare l’ovvio: questo non significa necessariamente che sia impossibile trovare sub MC 0.10 MCU da produttori occidentali con la giusta dimensione dell’ordine. Due fattori sembrano entrare in gioco qui: In primo luogo, LCSCSEMBRA di operare su margini molto più piccoli rispetto ai distributori stabiliti.In secondo luogo, i produttori di MCU consolidati non dipendono altrettanto dai clienti più piccoli e possono quindi ottenere un premio per gli ordini a basso volume.

A causa della mancanza di strumenti di programmazione e schede di valutazione sono stato in grado di rivedere solo la maggior parte dei dispositivi per scheda tecnica, ad eccezione degli MCU Padauk.

Panoramica

In totale, otto candidati di sei diversi produttori sono stati identificati. Un riepilogo dei dispositivi può essere trovato nella tabella seguente.

Ci sono alcuni ovvi punti in comune: Tutti i dispositivi sono progettati attorno a un’architettura basata su accumulatori, innegabilmente ispirata alla serie Microchip PIC12. È interessante notare che, con solo MDT come eccezione, tutti i fornitori hanno esteso e modificato i loro progetti dall’originale. La ragione di ciò è probabilmente duplice: in primo luogo, vogliono evitare qualsiasi problema legale con Microchip e in secondo luogo, il PIC12 stesso è severamente limitato. Alcune delle principali carenze sono state affrontate, come la mancanza di interrupt, lo spazio indirizzabile di JMP/CALL, il banking di memoria/IO e la grave mancanza di periferia.

Sfortunatamente, nessuno dei fornitori condivide apertamente dettagli come la codifica delle istruzioni o gli algoritmi di memoria. Lo sviluppo per tutti i dispositivi deve iniziare tramite IDE forniti dal fornitore. Ad eccezione di Holtek, tutti i dispositivi si basano su interfaccia di programmazione ad alta tensione e non sono facilmente programmazione in-circuit. Solo Padauk e Holtek offrono dispositivi che possono essere programmati più di una volta.

Riassunto delle mie scoperte. Versione PDF qui.

Risultati individuali

Bojuxing Industrial

Il BJ8P509F, al prezzo di $0.0466, è una versione leggermente migliorata del PIC12C509. Il set di istruzioni è esteso da 12 bit a 13 bit. Ciò consente istruzioni jmp che possono indirizzare l’intera memoria. Inoltre, sono state aggiunte funzionalità di interrupt e uno stack HW esteso.

Una scheda tecnica inglese è disponibile e sembra abbastanza completo per lavorare con il dispositivo. Sfortunatamente, il sito Web del fornitore e la documentazione IDE sono disponibili solo in cinese.

Eastsoft Micro

Eastsoft Micro ha un ampio portafoglio di microcontrollori derivati da PIC. Chiamano il loro sapore dell’architettura “HR7P RISC”. Si tratta di un’architettura basata accumulatore completo con capacità di interrupt, stack di livello 8 e accesso non-bankswitched alla memoria e I/O.

C’è un dispositivo nel sub spac 0.10 spaceavailable, il HR7P153P45SA. Caratteristiche degne di nota sono la disponibilità di un 12 BitADC, un oscillatore a bassa velocità per il funzionamento a bassa potenza e l’aggiunta di twotimer con capacità PWM.

Sfortunatamente, sia il sito Web che le schede tecniche sembrano essere disponibili solo in cinese.

Holtek

Holtek è un fornitore di microcontroller ben consolidato da Taiwan. Il loro ingresso in questa categoria, l’HT68F001, è un po ‘ strano: è un dispositivo piuttosto limitato con solo 512 parole di flash del programma e 16 byte di RAM. L’architettura è molto simile al pic12 e può essere cronometrata solo da un oscillatore interno a 32 kHz. Poiché eachinstruction richiede 4 cicli per l’esecuzione, questo si traduce in solo 8000 instructionper secondo! Sembra che questo dispositivo si rivolge a potenza bassaapplicazioni che hanno requisiti di complessità molto bassi.

Questo MCU viene fornito con eccellente documentazione. Questo include il loro sito web, schede tecniche, note applicative e IDE. È anche l’unico dispositivo ad offrire la programmazione flash a bassa tensione. Entrambi questi elementi distinguono Holtek dal resto del campo.

Data la limitata funzionalità del loro ingresso, tuttavia, sembra che il segmento ultra-low-cost non sia una priorità per Holtek.

Padauk

E ‘ molto chiaro che il sub MC 0.10 MCUmarket è Padauks tappeto erboso di casa. Hanno dozzine di prodotti in questa fascia di prezzo,con un’ampia varietà di caratteristiche e tipi di pacchetti.

Tutti i dispositivi sono basati sull’architettura MCU Padauks, che è notevolmente estesa rispetto a quella del PIC12: utilizza regioni di memoria I / O e SRAM separate e consente di affrontare l’intera gamma senza operazioni bancarie. A differenza di tutti gli altri dispositivi, lo stack è mappato in memoria. La maggior parte delle istruzioni viene eseguita in un singolo ciclo.

Un aspetto interessante e molto particolare è che l’architettura Padauks è orientata verso il multithreading sincrono, consentendo di eseguire più di un programma in parallelo sullo stesso core MCU utilizzando uno schema di time-slicing. Chiamano questo concetto” Field Programmable Processor Array ” (FPPA). Un concetto simile è usato nell’architettura XCore da XMOS. Un’applicazione utile del multithreading in piccole MCU è quella di creare una periferia virtuale, ad esempio UART, I2C, che viene gestita in parallelo con il programma principale.

Ho scelto tre prodotti rappresentativi in un pacchetto SOP8: Il PMS150C, il PFS154 e il PFS173. Tutti questi hanno solo un’unica unità FPPA e quindi non supportano il multithreading.

Il PMS150C è la loro offerta di costo più basso a $0.033, l’originale “3 cent MCU”. Questo dispositivo viene fornito con 1 kiloword di memoria programmabile una tantum e 64 byte di RAM. La periferia è notevolmente estesa su molte delle parti concorrenti, offrendo un timer a 16 bit, un timer a 8 bit con PWM, un oscillatore LF e un comparatore analogico con DAC di tensione di riferimento a 4 bit che può essere utilizzato per implementare semplici funzionalità ADC. Tutto questo è sufficiente per implementare semplici funzioni di rilevamento e controllo.

Il PFS154 ha un costo quasi doppio. Tuttavia, in contrasto con il PMS150 offre memoria flash 2kW e può essere programmato più volte, il che è molto più conveniente per lo sviluppo effettivo. La periferia è stata estesa con unità PWM 3×11 bit, che sembrano adatte per controllare i LED RGB.

Infine, il PFS173 è un miglioramento incrementale rispetto al PFS154, aggiungendo un ADC a 8 bit ed estendendo flash a 3kilowords e RAM a 256 byte.

Padauk fornisce un IDE supportingdevelopment in Assembler e un dialetto un po ‘ criptico di C (“Mini-C”). Forniscono eccellenti schede tecniche sia in inglese che in cinese, nonché un sito web bilingue. La programmazione dei dispositivi è realizzata da un protocollo ad alta tensione a 5 o 6 fili, che rende difficile la programmazione in-circuit.

Open source toolchain

In seguito alla discussione su EEVblog, una piccola comunità si è formata attorno al MCU Padauk con l’obiettivo di creare una toolchain open source per il dispositivo. La maggior parte delle attività sono trattate in questa discussione.

Ad oggi (agosto 2019), il reverse engineering della codifica delle istruzioni è stato completato, il protocollo di programmazione è stato documentato, è stato sviluppato un programmatore hardware aperto e il supporto per diverse versioni dell’architettura PDK è stato integrato in SDCC. Lo sviluppo per tutti gli MCU Padauk precedentemente menzionati è ora possibile utilizzando una toolchain completamente aperta.

Puolop

Puolop è un providerof cinese basato Shenzhen microcontrollori e vari circuiti di segnale misto. Sembrano offrire una vasta gamma di MCU Padauk rietichettati, in particolare la versione OTP più vecchia.

Ad esempio, il Puolop PTB150CSE sembra essere identico al Padauk PMS150C. Il loro prezzo è leggermente inferiore all’originale ($0.0315 vs $0.334). Non è chiaro quale sia la relazione tra Puolop e Padauk, ma sembra che Padauk agisca come fornitore di Puolop.

Il sito web della società e tutta la documentazionesono disponibili solo in cinese.

Non sembra esserci alcun motivo specifico per considerare MCU Puolop su Padauks, oltre a risparmiare frazioni di centesimi sui prezzi.

Yspring Tech/MDT

Yspring Tech è una società con sede in Cina che offre una vasta gamma di dispositivi funzionalmente compatibili con le controparti di Microchip. Sembra che la maggior parte del portafoglio di prodotti abbia avuto origine da MDT tech, che è una società taiwanese e potrebbe essere stata acquisita o è in collaborazione con Yspring. Microchip ha preso problema con il loro modello di business in passato.

Ysprings aggiunta a questa recensione è il MDT10P509 che vende per $0.0795. Questo dispositivo sembra essere un clone esatto del PIC12C509. Mentre questo potrebbe essere utile come sostituzione a basso costo del prodotto originale, è chiaramente inferiore agli altri prodotti di questa categoria dal punto di vista funzionale.

MDT10P509 offre 1KW di memoria OTP, 41 byte di RAM e solo un singolo timer a 8 Bit come periferia. Come il PIC12C509 non offre interrupt, solo uno stack HW a 2 livelli e richiede 4 clock per istruzione

Conclusioni

Questi microcontrollori sono davvero “terribili”? Questa è sicuramente una questione di prospettiva. Si rivolgono a una categoria specifica di prodotti a basso costo, ad alto volume, non riparabili con funzionalità limitate. È necessario attendere la pressione di un pulsante e quindi lasciare che un LED lampeggi esattamente cinque volte? È necessario controllare una luce notturna a batteria? Il sub MC 0.10 MCU è tuo amico per ridurre la distinta base e abbreviare i tempi di sviluppo.

Un avvertimento è che lo sviluppo per la maggior parte di questi dispositivi è piuttosto scomodo a causa della limitata disponibilità di varianti flash e della mancanza di programmazione in servizio. Il debug viene solitamente offerto solo tramite emulatori in circuit.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.