Skip to content
Jidian Stone
  • Home
  • / Articles
  • /
  • Hur väljer du mikrokontroller för din nya produkt

Hur väljer du mikrokontroller för din nya produkt

oktober 25, 2021Articles

hur väljer du rätt mikrokontroller för din specifika hårdvaruprodukt? Den här artikeln visar alla olika faktorer du behöver jonglera när du väljer den allra bästa mikrokontroller.

 en kretskortbeskrivning genereras automatiskt

när du väljer rätt mikrokontroller för ett projekt måste du överväga kostnad, prestanda, strömförbrukning och total storlek. Tillgången till rätt programvara och hårdvara är också ett utmärkt övervägande.

stöd för den valda plattformen är också mycket viktigt – inte bara från säljaren utan från samhället i stort. Det hjälper också om den valda mikrokontroller har en lättillgänglig utveckling ombord.

slutligen kan utvecklingstiden minskas avsevärt om den valda mikrokontrollern har omfattande, fullständigt felsökta programbibliotek med väl dokumenterade applikationsprogrammeringsgränssnitt eller API: er.

i den här artikeln presenteras endast mikrokontroller som i allmänhet uppfyller ovanstående kriterier.

alla moderna mikrokontroller delar några grundläggande funktioner. Ovanpå en behandlingsenhet har de en viss mängd blixt som används för att lagra applikationskoden, en del SRAM och i de flesta fall en del EEPROM.

de behöver en klockkälla, och detta tillhandahålls normalt av antingen en intern resistor-kondensator (RC) oscillator eller genom att använda en extern kristall för mer tidskritiska applikationer. De har några digitala IO-portar och minst en timer/räknare.

också, förutom mycket low-end mikrokontroller, har de flesta minst en UART för seriell kommunikation. Utöver det kännetecknas mikrokontroller av mängden minne de har, antalet och typen av andra kringutrustning integrerade på chipet och den hastighet med vilken de kör användarapplikationer.

detta beror inte bara på den råa klockhastigheten; det beror också på processorns databredd och alla hårdvaruaccelerationsfunktioner som ingår.

mikrokontroller för inbyggda system faller huvudsakligen i tre kategorier baserat på bredden på deras databussar: 8-bitars, 16-bitars och 32-bitars. Det finns andra, men det här är de mest populära.

i allmänhet är 8-bitars mikrokontroller inriktade mot lägre applikationer, och 32-bitars är för de högre ändarna, med 16-bitars för mid-end-applikationer.

överlägset, de flesta av de produkter jag arbetar på tenderar att införliva 32-bitars mikrokontroller, men 8 eller 16-bitars mikrokontroller kan vara ett bra val för low-end, billiga produkter.

  • 8-bitars mikrokontroller
  • 8051-serien
  • PIC-serien
  • AVR-serien
  • 16-bitars mikrokontroller
  • TI MSP430-serien
  • 32-bitars mikrokontroller
  • STM32 mikrokontroller
  • ESP32
  • slutsats
  • annat innehåll du kanske gillar:

8-bitars mikrokontroller

om en applikation inte har mycket höga krav på processorkraft och är av relativt liten storlek, kan det vara vettigt att överväga en 8-bitars mikrokontroller.

för referens är de flesta Arduinos baserade på 8-bitars mikrokontroller. Så om du har byggt din tidiga prototyp med en Arduino kan du kanske använda en 8-bitars mikrokontroller i din slutprodukt.

låt inte priset ensam men vägleda ditt beslut och i många fall kan 32-bitars mikrokontroller vara billigare än 8-bitars chips.

till exempel är Atmega328p den 8-bitars mikrokontroller som används Arduino Uno. Det kostar lite över $1 i volymer på cirka 10k bitar. Den körs vid 20 MHz och innehåller 32 KB Flash och 2 kB RAM.

å andra sidan kan du köpa en 32-bitars mikrokontroller som körs på 48 MHz med liknande minne för endast 60 cent. Detta beror troligen på att 32-bitars mikrokontroller i allmänhet driver ner sina kostnader.

med detta sagt finns det ännu billigare 8-bitars mikrokontroller tillgängliga som kostar mindre än 25 cent vid liknande volymer.

8-bitars mikrokontroller bör vanligtvis övervägas för applikationer som är dedikerade till att bara göra ett jobb, med ett begränsat användargränssnitt och liten databehandling.

8-bitars mikrokontroller finns i alla storlekar från små 6-stifts enheter till chips med 64 stift. De har blixtstorlekar som sträcker sig från 512 byte till 256kb, SRAM storlekar från 32 till 8KB, eller mer, och EEPROM från 0 till 4k, eller mer. Ett minimalt system kan vara så enkelt som ett enda chip, med en bypass kondensator på strömförsörjningsskenan.

de tre mest populära linjerna med 8-bitars mikrokontroller är 8051-serien, PIC-serien från Microchip och avr-serien från Atmel, nu en del av Microchip.

8051-serien

ursprungligen från Intel, och nu gjord av andra, är denna mikrokontroller fortfarande vanligt förekommande idag, inbäddad i massor av apparater.

medan de är tillgängliga som fristående enheter, används 8051 nu mest som IP-kärnor (immateriella rättigheter) som är inbäddade i kisel av dedikerade applikationsspecifika chips som Vissa trådlösa radiosändare.

mycket sällan skulle 8051 vara det rätta valet att fungera som huvudmikrokontroller för din produkt.

PIC-serien

PIC-mikrokontroller är ganska populära och har brett stöd av både mikrochip och tredje part.

Microchip tillhandahåller sin MPLAB XIAURIS X Integrated Development Environment (IDE), som inkluderar en C-kompilator gratis. Också tillgängligt gratis som en IDE-Plugin är MPLAB-Kodkonfiguratorn som genererar C-kod för kringutrustning ombord.

detta kan sedan integreras i applikationskoden. Det finns PIC-modeller med kombinationer av USART, SPI, I2C, ADC, USB, LIN, CAN och andra gränssnitt. Microchip erbjuder också flera utvecklingsverktyg, inklusive MPLAB PICkit 4, ICD 4 och Real ICE.

högre kvalitet kommersiella compliers som har bättre kodoptimering är också tillgängliga. Här är en snabb PDF-referensguide till PIC-mikrokontroller.

AVR-serien

AVR är en annan serie mycket populära 8-bitars mikrokontroller. Medan de befinner sig i samma utrymme som bilden som beskrivs ovan, och har jämförbara föreställningar, har de ett stort krav på berömmelse: Arduino.

 ett kretskort beskrivning genereras automatiskt Figur 1 – de flesta Arduino styrelser är baserade på 8-bitars AVR mikrokontroller

de ursprungliga Arduinos, såsom Uno, Leonardo och Mega, alla använder AVR mikrokontroller. På grund av det mycket stora utbudet av tillgängliga bibliotek för Arduinos förtjänar AVRs allvarligt övervägande för 8-bitars applikationer, även om det bara är för proof of concept prototyper.

eftersom Arduino-bibliotek är skrivna i C++ kan de enkelt införlivas i alla applikationer skrivna i C/C++.

Mjukvaruutvecklingsverktyg inkluderar AVR studio, eller, om du använder Arduino, Arduino IDE och Platform Io används båda ofta. Den complier som används i dessa IDE är AVR GCC en fri, mycket väl stöds och underhålls C/C++ kompilator.

Hårdvaruutvecklingsverktyg inkluderar Atmel ICE och PICkit 4. Dessutom är mogna verktyg som STK600 och avr Dragon fortfarande allmänt tillgängliga. Här är en länk till en snabb PDF-referensguide för AVR-mikrokontroller.

16-bitars mikrokontroller

16-bitars mikrokontroller är nästa steg upp från 8-bitars, samtidigt som de delar många av samma attribut. De är snabbare, Stöder ännu mer Kringutrustning och erbjuder i allmänhet mer minne, både flash och SRAM.

förutom fler Io-stift har de flesta också hårdvarumultiplikatorer som är betydligt snabbare och använder mindre programminne jämfört med rena mjukvaruimplementeringar.

det är lätt att hitta enheter som har både ADC och DAC, eller enheter med kapacitiva beröringssensorer, segmenterade LCD-drivrutiner och Ethernet.

internt har dessa enheter också hårdvarublock som vanligtvis inte finns i nedre enheter. Dessa inkluderar krypteringsmotorer, operativa eller programmerbara Förstärkningsförstärkare och DMA-styrenheter.

även om 16-bitars mikrokontroller kan hittas från olika tillverkare som mikrochip (deras dsPIC33 är ett populärt val), NXP, Infineon eller Cypress, kommer TI MSP430-serien att presenteras här som ett typiskt exempel på detta mikrokontrollersegment.

TI MSP430-serien

MSP430 är en serie mycket låg effekt 16-bitars mikrokontroller som finns i många smaker. De sträcker sig från allmänna ändamål till mycket specialiserade modeller.

en intressant sak om de specialiserade varianterna av dessa mikrokontroller är att den faktiskt grenar ut i två ytterligheter: mycket dedikerade, mycket billiga modeller och avancerade modeller med analoga sensorgränssnitt och Digital signalbehandling (DSP).

ett exempel på en avancerad applikation är denna ultraljudsflödessensor. I den låga änden gör TI också MSP430-baserade chips som löser många mycket specifika hårdvarufunktioner. För mer information se detta e-papper.

vill du till exempel ha ETT SPI till UART-gränssnitt, en I/O-expander eller en UART-till-UART-bro? Det är allt där inne, och allt för mindre än $0,30 för detta chip.

slutligen stöds naturligtvis MSP430 av ett antal billiga verktyg och utvecklingssatser.

Tabell 1 nedan visar de ytterligare funktioner som finns på några av de vanliga versionerna.

MSP430FR2x MSP430FR4x MSP430FR5x MSP430FR6x
Programminne upp till 32KB upp till 16KB upp till 256KB upp till 128KB
antal stift 16 till 64 i en mängd olika paket 48 till 64 i en mängd olika paket 24 till 100 i en mängd olika paket 56 till 100 i en mängd olika paket
kringutrustning som vanligtvis inte finns i 8-bitars styrenheter DAC, PGA, Transimpedans & driftförstärkare ir-moduleringslogik DMA, AES DMA, AES
LCD-segment drivrutiner — upp 256 — upp till 320

Tabell 1-Mainstream MSP430 sammanfattning av funktioner

32-bitars mikrokontroller

32-bitars mikrokontroller är kraftfulla enheter med mikroprocessorliknande funktioner. Några av de avancerade funktionerna inkluderar instruktions pipelining, gren förutsägelse, kapslade Vektorerade avbrott (NVI), Flyttalsenheter (FPU), minnesskydd, och ombord debuggers.

OBS: var noga med att ladda ner din gratis PDF guide 15 steg för att utveckla din nya elektroniska hårdvaruprodukt.

instruktions pipelining innebär att processorkärnan Pre-hämtar efterföljande instruktioner i förväg, och gren förutsägelse Pre-hämtar nästa instruktioner för båda resultaten av en if-else villkor, vilket påskyndar exekvering av kod.

NVI föreskriver avbrottsprioriteringar, där ett avbrott kan förhindra en lägre prioritet.

FPU: s kan göra flytpunktsberäkningar mycket snabbare än SW-implementerade metoder.

minnesskydd säkerställer att programkoden inte oavsiktligt kan skriva över kritiska avsnitt som är avsedda för operativsystemet, till exempel.

slutligen tillåter felsökning ombord att kika in i register och andra delar av systemet för att underlätta felsökning av applikationskod. Alla dessa tillsammans tillåter dessa mikrokontroller att köra stora, snabba och robusta applikationer.

dessutom innebär deras råa processorkraft att de enkelt kan stödja realtidsoperativsystem (RTOS) som i sin tur ger multitasking-funktioner.

även om det finns många 32-bitars mikrokontroller på marknaden kommer fokus i denna anteckning att ligga på ARM Cortex M-baserade enheter, med ett särskilt omnämnande av ESP32 från Espressif.

ARM Holdings designar faktiskt bara processorkärnor IP, som de sedan licensierar till olika halvledarleverantörer som införlivar dem, tillsammans med vissa kringutrustning, i sina egna kiselchips. Många chiptillverkare erbjuder mikrokontroller baserade på Cortex-M-arkitekturen.

två framstående leverantörer av ARM-baserade chips är Atmel med sin SAM – enhetslinje och STMicroelectronics med sin STM32-produktlinje.

Sam-enheterna förtjänar att nämnas här på grund av deras användning i vissa Arduino-kompatibla kort. Men i allmänhet erbjuder STM32-enheterna fler val och bör beaktas vid design i en inbäddad 32-bitars mikrokontroller.

STM32 mikrokontroller

ARM Cortex M-kärnor finns i många versioner. De mest populära är M0 / M0+, M1, M3, M4 och M7, som alla erbjuder gradvis högre prestanda. STM32 mikrokontroller innehåller M0 / M0+, M3, M4 eller M7 kärnor.

Figur 1 visar STM32-familjen av ARM Cortex M-baserade mikrokontroller och deras avsedda applikationssegment.


Figur 2-STM32 familj av mikrokontroller

inom var och en av kategorierna som visas i Figur 1 finns det många familjer som kan väljas för att närmare matcha en given applikation.

till exempel visar figur 2 de huvudsakliga varianterna som finns i kategorin ”mainstream” och deras relativa prestandakurva. Observera att inom varje familj själv finns det många varianter med olika kombinationer av kringutrustning och mängder minne.

faktum är att det för närvarande finns över trehundra STM32-mikrokontroller tillgängliga i denna kategori.


Figur 3-familj av mikrokontroller i STM32 Mainstream kategori

STM32 hårdvarustöd: STM32-familjen stöds av ett brett utbud av hårdvaruverktyg som tillhandahålls både av ST Microelectronics och tredje part.

en billig in-circuit debugger / programmerare är STLink V2. Den är gjord av ST, och är tillgänglig från platser som Digi-Key; dock, mycket billiga kloner finns också.

ST Microelectronics har också ett stort urval av utvecklingsbrädor under deras nukleo-och Upptäcktsfamiljer.

båda innehåller ett stlink-felsökningsgränssnitt. Allt som behövs är en dator med USB, som kör lämpligt programverktyg för att utvärdera den valda mikrokontroller.

Discovery boards inkluderar ytterligare externa kringutrustning såsom MEMs-sensorer och kapacitiva beröringsplattor. Nukleos har dock rubriker som är kompatibla med Arduino-sköldar.

 en kretskortbeskrivning genereras automatiskt Figur 4 – St Discovery development board för en STM32F407 mikrokontroller

innan du lämnar detta avsnitt är det värt att nämna ännu ett mycket billigt utvecklingskort. Allmänt känd som Blue Pill, sportar detta bräde ett STM32F103 Cortex M3-baserat chip och kostar mindre än $2.00 från vissa källor.

ett tilltalande inslag i denna styrelse är att den kan göras kompatibel med Arduino så att Arduino IDE, eller plattform IO, kan användas för att skriva och ladda ner kod för snabb bevis på konceptdesign.

medan processen att göra den Arduino kompatibel är lite involverad, finns det flera ställen som säljer Arduino-färdiga brädor. Gör bara en sökning efter ’STM32duino’.

för att lära dig hur du utformar en anpassad STM32-baserad mikrokontroller, var noga med att titta på den här handledningen och kolla in den här fördjupade kursen.

STM32 software support: STMicroelectronics ger en version av ARM: s mbed development suite för alla sina STM32 produktlinje. Detta inkluderar en IDE, kompilator och en omfattande uppsättning bibliotek.

för utvecklare som föredrar att använda andra kompilatorer, St ger sin STMCube. Detta är kodgeneratorprogramvara som producerar initialiseringskoder för STM32-kringutrustning.

med det är det inte nödvändigt att helt gå igenom bitinställningarna för flera register för att ställa in kringutrustning som IO-portar eller timers, till exempel.

ESP32

ESP32 är en mikrokontroller från Espressif Systems. Som visas i Figur 3 har den alla funktioner på en typisk 32-bitars mikrokontroller.

en kretskortbeskrivning genereras automatiskt Figur 5 – Espressif ESP32-modul

det som skiljer denna speciella mikrokontroller från andra är dock införandet av WiFi och Bluetooth-hårdvara på chipet.

det inkluderar inte bara protokollstackarna, utan också de faktiska radiosändarna. ESP32 finns också som en liten förcertifierad modul med integrerad antenn.

för applikationer som kräver WiFi eller Bluetooth-anslutning förtjänar ESP32 allvarligt övervägande. Priset på ESP32 (både diskret chip och modul) är mycket prisvärt, särskilt med tanke på antalet funktioner och prestanda packade i detta chip.

Figur 6 – ESP32 funktionellt blockschema

slutsats

mikrokontroller är utan tvekan den viktigaste komponenten du måste välja för din produkt. Att byta till ett nytt mikrokontroller mittprojekt kan vara en mardröm, så se till att du får det här valet direkt.

andra komponenter i en design kan vanligtvis ändras utan att kräva massiva, systemomfattande förändringar. Det är inte fallet med mikrokontroller som fungerar som kärnan i din produkt.

när du väljer en mikrokontroller vill du i allmänhet välja en som ger din produkt lite utrymme att växa. Om du till exempel bestämmer att du behöver 16 GPIO-stift vill du inte välja en mikrokontroller med endast 16 GPIO-stift.

vad händer om du bestämmer dig för att lägga till en ny knapp i framtiden så att du behöver en annan GPIO-pin? Om din mikrokontroller inte ger dig utrymme att växa, kan du upptäcka att det är uppenbart att enkla designuppgraderingar i framtiden kommer att kräva en massiv redesign eftersom en ny mikrokontroller är nödvändig.

å andra sidan vill du inte välja mer prestanda eller funktioner än du någonsin förväntar dig att behöva.

om din produkt till exempel bara övervakar temperatur och fuktighet behöver du aldrig en avancerad 32-bitars mikrokontroller som körs på hundratals MHz. Det skulle vara overkill som kommer att lägga onödiga kostnader och design komplexitet till din produkt.

istället måste du hitta den söta platsen mellan att ha utrymme att växa om det behövs, men ändå inte betala för prestanda eller funktioner som du aldrig behöver.

slutligen glöm inte att ladda ner din gratis PDF: Ultimate Guide för att utveckla och sälja din nya elektroniska hårdvaruprodukt. Du kommer också att få mitt veckobrev där jag delar premiuminnehåll som inte är tillgängligt på min blogg.

annat innehåll du kanske gillar:

  • introduktion till Ultra High-Performance STM32H7 32-bitars mikrokontroller
  • introduktion till STM32CubeIDE för STM32 mikrokontroller
  • ATmega versus STM32 – vilken mikrokontroller är bäst för din applikation
  • mikrokontroller eller mikroprocessor: vilken är rätt för din nya produkt?
  • använda Arduino som en inbäddad utvecklingsplattform
51rösta
Artikelbetyg

Write a Reply or Comment Avbryt svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Senaste inläggen

  • Calcific trochanteric bursit: upplösning av förkalkningar och klinisk remission med icke-invasiv behandling. En fallrapport
  • bildörr ljuddämpning
  • utveckling av allergier: dold risk för syre
  • Byggnadschef arbetsbeskrivning
  • Mozzarella och tomat Caprese Flatbread
  • vanilj brunt socker Scrub recept! {DIY Body Scrub}
  • det här är när din Canker öm Är något mer allvarligt
  • 5 Saker din kamera kan göra som din Smartphone kanske inte kan göra

Arkiv

  • februari 2022
  • januari 2022
  • december 2021
  • november 2021
  • oktober 2021
  • september 2021
  • augusti 2021
  • juli 2021
  • juni 2021
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • NorskNorsk
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語
  • 한국어한국어

Copyright Jidian Stone 2022 | Theme by ThemeinProgress | Proudly powered by WordPress