Grunn velger du mikro-kontrollere for et prosjekt, er at du satse minimumskrav til maskinvare i innebygde prosjektene du prøver å implementere. Mikro-kontrollere er nyttige fordi de inneholder de fleste knyttet ressurser (minne, porter i/u, etc.) på prosessorbrikken. De har andre vanlige enheter inkludert også. En UART eller en lignende seriell kommunikasjon enheten er vanligvis en felles enhet. Vanligvis avhenger hva er tilgjengelige på hva produsentene mener er passende for markedssegmentet enheten er adressert til. Noen analoge enheter er ofte tilgjengelig i-chip. Dermed er den aller første skrittet å sikre at de eksterne enhetene må finnes på chip.
Selv om vi snakker om fremgangsmåten, som innebærer en sekvensiell prosess, det er ikke strengt så. Du må kanskje gå over skritt frem og tilbake et par ganger.
Samtidig med dette trinnet må du avgjøre om du trenger en 8 bit/16 bit eller 32 bit enhet for prosjektet. 8-biters enheter er de billigste alternativene ofte, men nyere enheter kan være mindre makt-sulten. Du kan komme unna med en 8-biters enhet hvis programmet trenger ikke mye tallknusing. Det er hovedsakelig en kontroll type program, og 8-biters portene er nok til å kontrollere eksterne enheter som skal kontrolleres. Flere porter er ofte tilgjengelig, og som bør ta vare på situasjonen at det er mer enn 8 elementer skal kontrolleres i prosjektet. En annen relatert aspektet ville være å se etter kundestøtte for noen av de standard grensesnittene. Disse vil inkludere USB, I2C, PWM, etc.
16 og 32 bits enheter kan du håndtere en større tallområdet. Bruker en 8-biters enhet vil holde deg våken for en sammenlignbare klokkehastigheten på en 16-bit eller 32 bit enhet. Andre fordeler disse enhetene ville gi vil være evnen til adressen større minne. Vanligvis er det innebygde minnet. Disse enhetene skal kunne løse eksternt minne også, hvis nødvendig.
Etter å ha besluttet kontrolleren familien, må du begrense til noen bestemte medlemmer fra målet familiene. Familiemedlemmer forskjellig størrelse ressursene (med faktiske ressurser). For eksempel varierer permanent og flyktig minne fra medlem til medlem.
Når du velger en familie, er en av de viktigste aspektene ved å gjøre et valg om mikro-kontrolleren å sikre at utviklingen programvare støtte. Vanligvis vil hva du trenger være en kompilator å kjøre på en utvikling systemet (oftest PC eller Mac). Mens assembler programmering er gjort noen ganger, utvikle ofte du programvaren i noen høyt nivå språk som C eller C++. Kobling og andre fasiliteter for å generere en fullt lastbare objektmodulen kreves. Like skulle viktig anlegget muligheten til å laste inn koden i målet maskinvaren. Debug støtte for utføre kode i sted i målet maskinvaren vil være nødvendig for.