Fråga:
Har mikrokontroller bytt ut enklare IC: er?
user955
2010-07-13 07:06:45 UTC
view on stackexchange narkive permalink

Är det fortfarande värt att lära sig, till exempel hur man ställer in en 555-timer med motstånd och kondensatorer, när man kan skriva ett timerprogram för en mikrokontroller på ett läsbart programmeringsspråk?

Eller , för att uttrycka det på ett annat sätt, finns det problem som IC: er är bra för att mikrokontroller inte är det?

@jes5199 - Jag är inte helt säker på hur denna fråga förtjänar en metatagg; kan du kommentera din motivering?
min uppfattning var att jag inte ställde en fråga om ett specifikt problem utan om hela fältet. Det verkade lite meta för mig.
Ett kretskort med diskreta komponenter och ett chip märkt som en 555-timer är mycket mer läsbar än det program som lagras på ett chip.
Tretton svar:
pingswept
2010-07-13 08:32:04 UTC
view on stackexchange narkive permalink

För det mesta har mikrokontroller ersatt diskreta IC: er. Jag tycker att även om jag kunde utforma en krets med en 555 så är det troligt att samma krets kommer att behöva justeras om några veckor för att göra något annat, och en mikro bevarar den flexibiliteten.

Men där är några få undantag.

Diskret logik är fortfarande snabbare än de flesta mikrokontroller. Utbredningsfördröjningen och omkopplingstiderna för diskret logik ligger i intervallet 1-10 ns. För att matcha det med en mikrokontroller måste du kunna implementera vilken logik du behöver i en instruktion och ha en klocka i intervallet 100 MHz till 1 GHz. Du kan göra det, men kanske inte på ett brödbräda i ditt garage.

Ett bra exempel på detta är HCTL2020 kvadraturavkodaren. Det tar in två serier av pulser och berättar vilken väg din motor snurrar. Det implementeras som ett icke-programmerbart chip för hastighetens skull.

Ett annat intressant område där både digital logik och och mikrokontroller misslyckas är signalfiltrering. Om du har en analog signal som du vill filtrera digitalt, måste du prova den i någon takt. Oavsett hur snabbt du samplar det kommer brus i signalen som visas vid frekvenser som är mer än hälften av din samplingsfrekvens alias ner till lägre frekvenser, där det kan störa din signal. Du kan lösa detta problem med ett lågpassfilter, tillverkat av ett lock och ett motstånd, innan din provtagning sker. Efter provtagningen är du skruvad. (Naturligtvis är det ofta så att bullret inte överlappar din signal i frekvens, och då kommer ett digitalt filter att fungera bra.)

> Diskret logik är fortfarande snabbare än de flesta mikrokontroller, såvida du inte använder en Cypress PSoC3.
@Rocketmagnet - PSoC, som en FPGA, är fortfarande rå logik. Det är inte diskret, visst, men det är lika snabbt.
endolith
2010-07-13 08:10:38 UTC
view on stackexchange narkive permalink

Konstigt nog hade jag bara en av våra kinesiska fabriker som försökte lägga till ett mikro till ett projekt där det var helt överdrivet, och jag sa till dem att använda en 555 istället. En 555 kostar kanske 6 cent, jämfört med en billig mikrokontroller för 60 cent. När du tillverkar produkter i stora mängder är den kostnadsskillnaden viktig och du vill definitivt veta hur du använder billigare IC. Så ja, de är bättre på att kosta mindre. :)

Du kan lika gärna lägga till tillförlitlighet till det. Varje programvara har en återstående bugg efter att den senaste togs bort.
Connor Wolf
2010-07-14 05:55:17 UTC
view on stackexchange narkive permalink

Ett område där diskret logik fortfarande slår ut mikro är långvarig delstabilitet.

Kommer denna mikro att finnas tillgänglig om tio år? 20? Kommer IDE och verktygskedja att stödja det under den tiden?

Du kan ganska mycket garantera att diskret logik fortfarande kommer att vara diskret logik i framtiden. Micros, inte så mycket. Om du designar en produkt som du förväntar dig en lång livslängd, generisk logik och så mycket som möjligt kommer generiska delar att minska behovet av att omforma enheten när reservdelarnas tillgänglighet ändras.

Dessutom, du är inte SOL om din chiptillverkare har restorder. Många gör kompatibel generisk logik, medan det i princip inte finns någon generisk mikro.

Thomas O
2011-03-23 05:47:34 UTC
view on stackexchange narkive permalink

Det blir ofta billigare att använda diskreta kretsar för att göra en enkel uppgift. Till exempel en blinkande lysdiod. Den billigaste PIC, en PIC10F200, är ​​ungefär 0,35 US $ i 5ku, och det är innan programmeringskostnader och med hänsyn tagen till den lilla storleken (och tillhörande problem med tillverkningen.) En NE555-timer kan å andra sidan hämtas för ungefär USA 0,10 dollar från TI i 5ku, och en komplett lösning skulle troligen väga cirka 0,20 US $.

En annan sak att ta hänsyn till är att mikrokontroller i sig är digitala enheter. Visst, de flesta har ADC och vissa har till och med DAC, men de arbetar fortfarande på diskreta tidsenheter och arbetar på enskilda bitar och byte. En analog krets kan ställas in exakt för att göra det som designern behöver eftersom analog i teorin har oändlig upplösning **. En digital krets begränsas av den långsammaste komponenten.

Slutligen är det frågan om leverans. Återgår till mitt första exempel, NE555. Det har funnits i mer än 20 år och kommer förmodligen att finnas i ytterligare 50 efter detta. Det är en sådan jellybean-del att den förmodligen kommer att tillverkas för alltid (eller åtminstone tills konventionella elektroner blir föråldrade inom elektronik.) En PIC10F kan göras NRND när som helst. Med en enda leverantör som Microchip finns det en betydande risk att detta kan förstöra en produkt.

** Okej, det här är inte riktigt sant. I verkligheten är vi begränsade till upplösningen av elektroner. 1 ampere = 6,24 × 10 18 elektroner / sekund. Så den bästa strömupplösningen du kan få är attoampere, eller 10 ^ -18 ampere, vilket är ungefär 6 elektroner per sekund. Men för de flesta praktiska ändamål är det okej. :)

du förvirrar upplösning med precision, ett ofta gjort fel. Det är ingen mening med att ha> 10 siffror i upplösning om drift orsakar effektiv precision bara dubbelsiffror. Den digitala lösningen kan ha en ** högre precision trots ** med en diskret och därför ** mer begränsad upplösning **.
Leon Heller
2010-07-14 18:26:06 UTC
view on stackexchange narkive permalink

Glöm inte programmerbar logik - CPLD och FPGA. Genom att ersätta diskret logik med en CPLD påverkas du inte av att delar avbryts och kan få mycket mer prestanda, minskad storlek och lägre kostnad. Om du har en FPGA i systemet kan du implementera en mjuk kärna i den, som enkelt kan uppgraderas om kraven ändras, och det hela kan enkelt göras "framtidssäkert".

jeremy
2010-07-13 07:25:45 UTC
view on stackexchange narkive permalink

Jag skulle lära mig att ställa in en 555-timer som "just in case" -kunskap. Det är detsamma som människor säger "Jag har levt hela mitt liv utan algebra, varför lär vi det för barn?" Om du inte vet hur du använder ett verktyg kommer du aldrig att se ett problem det kan tillämpas på.

När det gäller ett specifikt svar: mycket snabb digital logik implementeras i FPGA / ASIC idag eftersom den skulle vara för långsam på en mikrokontroller / processor (såvida det inte var en speciellt utformad processor som en DSP).

Wouter Simons
2010-07-13 16:26:43 UTC
view on stackexchange narkive permalink

I mitt nuvarande projekt använder vi ett Marvell ARM9-chip som körs på 500 MHz med en FPGA för att erbjuda många DIO-portar. Ändå finns det saker som hanteras i diskret logik. Till exempel behövs en stegmotorstyrning för fyra stegmotorer som styrs individuellt. Det finns en oscillator som genererar en frekvens med en räknare som gör att ett antal pulser kan gå igenom. Räknaren ställs in från mikrokontrollern, men fungerar sedan utan ytterligare kontroll från mikrokontrollern, vilket ger det tid att arbeta med andra uppgifter.

Vi kunde ha valt fler mikrokontroller. Men en central styrenhet som arbetar med traditionell diskret logik kan visa sig vara en kraftfull och mycket pålitlig lösning.

Om du har ett problem som är klart definierat, bör lösningen alltid vara så enkel som möjligt, men inget enklare (citat gömt där inne ;-)). Om en 555 fungerar, varför skulle du inte använda den? Flexibilitet kan vara ett argument som någon annan valde, men det kanske inte är det. Allt beror på ditt problem och din tolkning av vad den enklaste lösningen är.

Jag skulle tro att din I / O-expander FPGA skulle vara en utmärkt plats för den "logiska" delen av en stegkontroll.
JustJeff
2010-07-13 07:15:33 UTC
view on stackexchange narkive permalink

Högfrekventa kommunikationsapplikationer kommer att tänka på. Även om vi nu har "programvarudefinierad radio", skulle det vara mycket förvånande om 100 MHz + signalbehandling fortfarande inte har åtminstone några analoga steg.

tcrosley
2010-07-13 22:33:20 UTC
view on stackexchange narkive permalink

Mycket få av mina senaste mikrokontroller-design har krävt någon diskret logik. Ett undantag var att implementera en Ctrl-Alt-Del-typ av återställning genom att trycka på två specifika tangenter på ett anpassat tangentbord i två sekunder skulle göra en hård återställning av mikro. Jag använde en NOR-grind (använd som en AND-grind med 2 inverterade ingångar), en AND-grind och en 74HC123. Var bekvämt att kunna få de specifika grindarna jag behövde i enstaka grindar i ett SMT-paket, istället för de 4 grindarna / paketet under DIP-dagarna.

hmdz
2014-06-11 23:55:37 UTC
view on stackexchange narkive permalink

Jag har haft chansen att vara programutvecklare i flera år och arbetar nu som elektronikingenjör.

Alla system med komplexitet kommer med fel och fel. Både mikrokontroller och IC har sina fördelar och nackdelar baserat på deras användningsområden.

För småskaliga projekt är IC: er snabbare, billigare och mer tillförlitliga än mikrokontroller. För storskaliga projekt med miljontals ingångs-, analys- och jämförelselogik, har mikrokontroller säkert kanten över IC: er.

All programvara misslyckas någon gång, även bugslös kod är benägen att modifieras eftersom den sparas på en ROM, vilket resulterar i logiska fel (t.ex. minnesläckor) som är svåra att upptäcka men någon gång slutar i katastrof.

För kulsäkra programvarubaserade system från fel i kritiska applikationer (såsom militärklass eller livräddningssystem som tågstyrningssystem) implementeras och utvecklas "felsäker" -koncept.

Felsäkra system återgår till ett säkert tillstånd om ett exceptionellt fel inträffar. Vanligtvis kör två processorer samma kod, jämför resultaten för varje instruktion, och om de är lika utförs instruktionen. Annars använder systemet fysiska elektriska reläer för att återgå till ett säkert tillstånd.

Felsäkra programvarubaserade system används i tågförregling och ATP-system (Automatic Train Protection).

Att designa samma komplexa system med Ics är en stor huvudvärk för alla ingenjörer. Och det är därför programvaran designades från dag 1!

Robert
2010-07-14 00:00:15 UTC
view on stackexchange narkive permalink

IC kan vara mycket domänspecifikt. Jag tänker på en DTMF-avkodare. Jag kunde programmera en mikrokontroller för att avkoda de två frekvenserna, men det är lättare, snabbare och billigare att använda ett hylsa-chip.

Jag tycker att det är viktigt att ha tillräcklig kunskap om alla verktyg för att vet vilket verktyg du ska använda.

Beror naturligtvis på om du ändå behöver en mikrokontroller i kretsen. Jag hade nyligen ett projekt där jag behövde en DMTF-avkodare. Chipsen kostar ungefär dollar i kvantitet. Prisskillnaden mellan en PIC24F eller en motsvarande dsPIC33F (som också har en DSP) var också ungefär en dollar i kvantitet. DTMF-avkodaren DSP-rutiner var fria från Microchip. Dessutom har jag nu en DSP för andra saker.
FYI, jag skrev en ganska bra DTMF-avkodare för en PIC 16C622 för några år sedan, med bara komparatorn som ingång.
hlovdal
2011-08-21 03:53:33 UTC
view on stackexchange narkive permalink

Det är en stor skillnad mellan att utforma något med bara diskreta komponenter kontra att använda en mikrokontroll; programvara har fel. Om tillförlitlighet är en viktig aspekt är det möjligt att verifiera konstruktionen av något gjord av diskreta komponenter. Inte ens Knuth vågar påstå att hans programvara är utan fel.

Naturligtvis kan din design också ha fel och de kanske bara dyker upp i mycket sällsynta fall, men de blir enklare att förstå och fixa. Det är möjligt för programvara att misslyckas på extremt obskyra och icke-uppenbara sätt, som du aldrig kommer att hitta.

Eftersom diskreta komponenter i det här fallet antagligen betyder IC: er och inte transistorer, vad får dig att tro att IC är utan buggar? Välskriven programvara slutar med buggar inte för att det är programvara, utan för att det löser komplicerade krav - en hårdkopplad version kan också vara buggy. När du har hittat ett fel är det billigare att distribuera korrigeringar till programvara än att modifiera PCB, såvida du inte har fått någon att bränna ett stort lager av OTP-mikro åt dig. Du kan träna någon att ansluta en programmerarkabel och följa ESD-reglerna mycket snabbare än du kan träna dem för att vara bra på att omarbeta SMT-kretskort.
IC finns i alla typer av komplexitetsnivåer, inklusive mikrokontroller. Sannolikheten för fel i en IC är proportionell mot IC: ns komplexitet. Frågan handlade om enklare IC som 555-timern, och jag tror att den kumulativa sannolikheten för en sådan IC och ytterligare komponenter att ha fel är mycket lägre än sannolikheten för att mikrokontrollern ersätter dem med fel. Naturligtvis om du byter ut 1000 komponenter med en mikrokontroller kommer oddsen troligen att ändras, så bilden är inte helt svartvitt. Men för alla LED-blinkande enheter eller liknande som jag ...
... uppfattar den här frågan att handla om, jag tror fortfarande att diskreta komponenter har potential att vara mer tillförlitliga. Och för programvarufel är de icke-deterministiska. Naturligtvis är inget 100% garanterat, men om du implementerar en trafikljuskontroll med komponenter kan du verifiera den och distribuera den, med vetskap om att den kommer att fortsätta arbeta i X år tills fysiskt slitage gör att enheten troligen kommer att misslyckas och bytas ut det med en ny enhet långt innan det. Det finns inget sätt du kan uppskatta att programvaran fungerar tillförlitligt under vilken tidsperiod som helst.
Programvara med jämförbar komplexitet med några få diskretar kan på lämplig cpu bevisas matematiskt. Diskret logik med jämförbar komplexitet med vanligare programvara kan inte riktigt göras helt säker mot det ofattbara heller - men i båda fallen kan du ofta använda ytterligare komplexitet för att tillhandahålla säkerhetskopior om den primära mekanismen misslyckas.
user34920
2014-06-12 02:18:53 UTC
view on stackexchange narkive permalink

Svaret är JA!

Du måste se på det som en hårdvarudesigner med produktionskostnadsorientering. 555 är en gammal IC som anses vara mycket grundläggande. Om du är en EE-chans har du sett det flera gånger i digitala elektronikklasser. Att installera det är väldigt enkelt eftersom du behöver lösa 2 eller 3 formler för de vanligaste applikationerna. Det tar nästan ingen tid (eftersom du redan känner till delen och hur du använder den och matematiken är lätt). Den tid det tar att installera utvecklingen för till och med en 8-bitars MCU och validera programvaran kan ta från dagar till månader, beroende på den miljö du arbetar i. Så detta kan hålla ingenjörskostnaderna nere med belopp som du inte kan föreställa dig möjligt och möjligen också förkorta tiden till marknaden.

Sann historia - Jag arbetade för ett stort medicinskt företag. Jag designade testjiggar för produktvalidering. Jiggarna var en del hårdvara och en del inbäddad programvarubaserad. Produkten som företaget tillverkar samverkar med utsatta kroppsdelar så att inspektionsmängden allt vi gjorde var nötter. Den här gången var jag tvungen att justera kommunikationsprotokollet för att återspegla förändringar i själva produkten. Förändringen var kanske 10 rader kod i C och kristalloscillatorn byttes också ut eftersom baudhastigheten ändrades och det som ursprungligen installerades var inte 11.0592MHz ... Det tog mig cirka 2 timmar att få detta gjort inklusive dokumentation. Kostnaden för företaget var troligen 300 dollar eller mindre med beställningen från Digikey för de nya delarna. Valideringen av den förbättrade testjiggen tog flera månader (!) Och höll cirka 3 eller 4 personer upptagna åtminstone flera gånger om dagen i relaterade frågor. Hur mycket kostar detta företaget? Förmodligen norr om $ 10K - $ 15K. Denna kostnad återspeglar den verkliga kostnaden för den mindre designförändringen. Många gånger kan du spara det och att veta några nästan färdiga lösningar kan spara en liten förmögenhet.



Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 2.0-licensen som det distribueras under.
Loading...