Czy mikrokontrolery zastąpiły prostsze układy scalone?

37

Czy warto na przykład nauczyć się stroić licznik 555 za pomocą rezystorów i kondensatorów, kiedy można napisać program czasowy dla mikrokontrolera w zrozumiałym dla człowieka języku programowania?

Lub, inaczej mówiąc, czy są problemy z tym, że układy scalone są dobre dla tych mikrokontrolerów?

955
źródło
4
@ jes5199 - Nie jestem pewien, jak to pytanie zasługuje na metatag; czy możesz skomentować swoje uzasadnienie?
J. Polfer,
3
sądziłem, że nie zadałem pytania o konkretny problem, ale o całą dziedzinę. To wydawało mi się trochę meta.
user955
Płytka drukowana z dyskretnymi elementami i chipem oznaczonym jako zegar 555 jest znacznie bardziej czytelna dla człowieka niż program zapisany na chipie.
Kaz

Odpowiedzi:

35

Najczęściej mikrokontrolery zastąpiły dyskretne układy scalone. Uważam, że nawet gdybym mógł zaprojektować obwód z 555, prawdopodobnie ten sam obwód będzie musiał zostać poprawiony za kilka tygodni, aby zrobić coś innego, a mikro zachowa tę elastyczność.

Ale jest kilka wyjątków.

Dyskretna logika jest wciąż szybsza niż większość mikrokontrolerów. Opóźnienie propagacji i czasy przełączania dla logiki dyskretnej mieszczą się w zakresie 1-10 ns. Aby dopasować to do mikrokontrolera, musisz być w stanie zaimplementować dowolną logikę w 1 instrukcji i mieć zegar w zakresie od 100 MHz do 1 GHz. Możesz to zrobić, ale może nie na desce do krojenia w garażu.

Dobrym przykładem tego jest dekoder kwadraturowy HCTL2020. Przyjmuje dwie serie impulsów i informuje, w którą stronę obraca się silnik. Jest zaimplementowany jako nieprogramowalny układ ze względu na szybkość.

Kolejnym interesującym obszarem, w którym zawodzi zarówno logika cyfrowa, jak i mikrokontrolery, jest filtrowanie sygnałów. Jeśli masz sygnał analogowy, który chcesz filtrować cyfrowo, musisz próbkować go z pewną częstotliwością. Bez względu na to, jak szybko go próbkujesz, szum w sygnale, który pojawia się przy częstotliwościach przekraczających połowę częstotliwości próbkowania, zostanie obniżony do niższych częstotliwości, gdzie może zakłócać sygnał. Możesz rozwiązać ten problem z filtrem dolnoprzepustowym, wykonanym z nasadki i rezystora, zanim nastąpi próbkowanie. Po pobraniu próbki jesteś wkręcony. (Oczywiście często zdarza się, że szum nie nakłada się na częstotliwość sygnału, a wtedy filtr cyfrowy będzie działał świetnie.)

pingswept
źródło
> Dyskretna logika jest wciąż szybsza niż większość mikrokontrolerów. Chyba że używasz Cypress PSoC3.
Rocketmagnet
3
@Rocketmagnet - PSoC, podobnie jak FPGA, jest nadal surową logiką. To nie jest dyskretne, jasne, ale równie szybkie.
Kevin Vermeer
29

O dziwo, właśnie jedna z naszych chińskich fabryk próbowała dodać mikro do projektu, w którym było to całkowicie przesadzone, i powiedziałem im, żeby zamiast tego użyli 555. 555 kosztuje może 6 centów, w porównaniu z tanim mikrokontrolerem za 60 centów. Kiedy produkujesz produkty w dużych ilościach, ta różnica kosztów jest ważna i na pewno będziesz chciał wiedzieć, jak korzystać z tańszego układu scalonego. Więc tak, lepiej kosztują mniej. :)

endolit
źródło
12
Równie dobrze możesz dodać do tego niezawodność. Każde oprogramowanie ma jeden pozostały błąd po usunięciu ostatniego.
stevenvh
13

Jednym z obszarów, gdzie dyskretna logika wciąż bije mikroskopy, jest długoterminowa stabilność części.

Czy ta mikro będzie dostępna za 10 lat? 20? Czy IDE i toolchain nadal będą go obsługiwać w tym czasie?

Możesz w zasadzie zagwarantować, że logika dyskretna nadal będzie logiką dyskretną w przyszłości. Micros, nie tak bardzo. Jeśli projektujesz produkt, który ma mieć długą żywotność, ogólną logikę i tak dużo, jak to możliwe, ogólne części zmniejszą potrzebę przeprojektowania urządzenia, gdy zmieni się dostępność części.

Ponadto nie jesteś SOL, jeśli twój producent układów ma zaległe zamówienia. Wiele osób tworzy zgodną logikę ogólną, podczas gdy zasadniczo nie ma generycznej mikro.

Connor Wolf
źródło
11

Często tańszym rozwiązaniem jest użycie dyskretnych obwodów do wykonania prostego zadania. Na przykład migająca dioda LED. Najtańszy PIC, PIC10F200, kosztuje około 0,35 USD w 5ku, a to przed kosztami programowania i biorąc pod uwagę niewielki rozmiar (i związane z tym problemy z produkcją). Z drugiej strony, zegar NE555 można odebrać za około USA 0,10 USD od TI w 5ku, a kompletne rozwiązanie prawdopodobnie ważyłoby około 0,20 USD.

Inną rzeczą, którą należy wziąć pod uwagę, jest to, że mikrokontrolery są z natury urządzeniami cyfrowymi. Oczywiście większość ma ADC, a niektóre nawet DAC, ale nadal działają na dyskretnych jednostkach czasu i działają na poszczególnych bitach i bajtach. Obwód analogowy można dostroić dokładnie tak, aby spełniał potrzeby projektanta, ponieważ teoretycznie analog ma nieskończoną rozdzielczość **. Obwód cyfrowy jest ograniczony przez jego najwolniejszy element.

Wreszcie pojawia się kwestia podaży. Wracając do mojego pierwszego przykładu, NE555. To jest już od ponad 20 lat, a potem prawdopodobnie będzie to jeszcze przez kolejne 50 lat. Jest to taka część żelowa, że ​​prawdopodobnie będzie produkowana na zawsze (a przynajmniej dopóki konwencjonalne elektrony nie staną się przestarzałe w elektronice). Natomiast PIC10F można w dowolnym momencie zrobić z NRND. W przypadku jednego dostawcy, takiego jak Microchip, istnieje znaczne ryzyko, że może to zepsuć produkt.

** OK, to nie do końca prawda. W rzeczywistości jesteśmy ograniczeni do rozdzielczości elektronów. 1 amper = 6,24 × 10 18 elektronów / sekundę. Najlepsza rozdzielczość prądu, jaką można uzyskać, to attoampere, czyli 10 ^ -18 amperów, czyli około 6 elektronów na sekundę. Ale ze względów praktycznych jest to w porządku. :)

Thomas O
źródło
4
rozdzielczość jest myląca z precyzją, często popełnianym błędem. Posiadanie> 10 cyfr rozdzielczości nie ma sensu, jeśli dryf powoduje, że efektywna precyzja jest tylko dwucyfrowa. Rozwiązanie cyfrowe może mieć wyższą precyzję pomimo dyskretnej, a zatem bardziej ograniczonej rozdzielczości .
stevenvh
8

Nie zapomnij o programowalnej logice - CPLD i FPGA. Zastąpienie dyskretnej logiki CPLD nie ma wpływu na wycofywanie części i może uzyskać znacznie większą wydajność, zmniejszone rozmiary i niższy koszt. Jeśli masz układ FPGA w systemie, możesz zaimplementować w nim miękki rdzeń, który można łatwo zaktualizować, jeśli zmienią się wymagania, a całość można łatwo uczynić „przyszłościową”.

Leon Heller
źródło
6

Uczę się dostroić dostrajanie licznika 555 jako wiedzy „na wszelki wypadek”. To samo, co ludzie mówią: „Całe życie przeżyłem bez algebry, dlaczego uczymy to dzieci?” Jeśli nie wiesz, jak korzystać z narzędzia, nigdy nie zobaczysz problemu, do którego można go zastosować.

Co do konkretnej odpowiedzi: obecnie bardzo szybka logika cyfrowa jest implementowana w układach FPGA / ASIC, ponieważ byłaby zbyt wolna na mikrokontrolerze / procesorze (chyba że byłby to specjalnie zaprojektowany procesor taki jak DSP).

penjuin
źródło
6

W moim obecnym projekcie korzystamy z układu Marvell ARM9 pracującego z częstotliwością 500 MHz z FPGA, aby zaoferować wiele portów DIO. Są jednak rzeczy, które są obsługiwane w dyskretnej logice. Na przykład sterowanie silnikiem krokowym jest potrzebne dla 4 silników krokowych sterowanych indywidualnie. Istnieje jeden oscylator do generowania częstotliwości z licznikiem, który pozwoli przejść szereg impulsów. Licznik jest ustawiany z mikrokontrolera, ale następnie działa bez dalszej kontroli z mikrokontrolera, co daje czas na pracę nad innymi zadaniami.

Mogliśmy wybrać więcej mikrokontrolerów. Ale centralny sterownik pracujący z tradycyjną logiką dyskretną może okazać się potężnym i bardzo niezawodnym rozwiązaniem.

Ponadto, jeśli masz jasno zdefiniowany problem, rozwiązanie powinno być zawsze tak proste, jak to możliwe, ale nie prostsze (cytat tam ukryty ;-)). Jeśli 555 działa, dlaczego nie miałbyś go używać? Elastyczność może być argumentem wybranym przez kogoś innego, ale może nie być. Wszystko zależy od twojego problemu i twojej interpretacji tego, co jest najprostszym rozwiązaniem.

Wouter Simons
źródło
1
Sądzę, że twój ekspander we / wy FPGA byłby doskonałym miejscem dla „logicznej” części sterowania krokowego.
Chris Stratton
5

Przychodzą mi na myśl aplikacje komunikacyjne o wysokiej częstotliwości. Mimo że mamy teraz „radio programowe”, byłoby bardzo zaskakujące, gdyby przetwarzanie sygnału 100 MHz + nie miało jeszcze przynajmniej niektórych stopni analogowych.

JustJeff
źródło
4

Bardzo niewiele moich ostatnich projektów mikrokontrolerów wymagało dyskretnej logiki. Wyjątkiem było wdrożenie resetowania typu Ctrl-Alt-Del, w którym naciśnięcie dwóch określonych klawiszy na niestandardowej klawiaturze przez dwie sekundy spowodowałoby twardy reset mikro. Użyłem bramki NOR (używanej jako bramka AND z 2 odwróconymi wejściami), bramki AND i 74HC123. Wygodne było uzyskanie konkretnych bramek, których potrzebowałem w pojedynczych bramkach w pakiecie SMT, zamiast 4 bramek / paczki w dniach DIP.

tcrosley
źródło
4

Przez lata miałem szansę być programistą, a teraz pracuję jako inżynier elektroniki.

Każdy system o złożonej strukturze zawiera błędy i błędy. Zarówno mikrokontrolery, jak i układy scalone mają swoje zalety i wady w zależności od obszarów użytkowania.

W przypadku małych projektów układy scalone są szybsze, tańsze i bardziej niezawodne niż mikrokontrolery. W przypadku dużych projektów z milionami danych wejściowych, logiką analiz i porównań, na pewno mikrokontrolery mają przewagę nad układami scalonymi.

Całe oprogramowanie ulega awarii w pewnym momencie, nawet bezbłędny kod jest podatny na modyfikacje, ponieważ jest zapisywany na pamięci ROM, co powoduje błędy logiczne (np. Wycieki pamięci), które są trudne do wykrycia, ale czasami kończą się katastrofą.

Aby kuloodporne systemy oparte na oprogramowaniu od awarii w krytycznych aplikacjach (takich jak systemy wojskowe lub ratownicze, takie jak systemy sterowania pociągiem), są wdrażane i rozwijane koncepcje „bezpieczne w razie awarii”.

Systemy bezpieczne w razie awarii powracają do stanu bezpiecznego na wypadek wystąpienia wyjątkowego błędu. Zwykle dwa procesory uruchamiają ten sam kod, porównują wyniki każdej instrukcji, a jeśli są one równe, instrukcja jest wykonywana. W przeciwnym razie system wykorzystuje fizyczne przekaźniki elektryczne do powrotu do stanu bezpiecznego.

Systemy oparte na oprogramowaniu odpornym na awarie są stosowane w systemach blokowania pociągów i ATP (Automatic Train Protection).

Projektowanie tego samego złożonego systemu za pomocą Ics jest wielkim problemem dla każdego inżyniera. I dlatego oprogramowanie zostało zaprojektowane od pierwszego dnia!

Hmdz
źródło
3

Układy scalone mogą być bardzo specyficzne dla domeny. Mam na myśli dekoder DTMF. Mógłbym zaprogramować mikrokontroler do dekodowania dwóch częstotliwości, ale korzystanie z gotowego układu jest łatwiejsze, szybsze i tańsze.

Myślę, że ważne jest, aby mieć wystarczającą wiedzę na temat wszystkich narzędzi, aby wiedzieć, jakiego narzędzia użyć.

Robert
źródło
Zależy oczywiście od tego, czy potrzebujesz mikrokontrolera w obwodzie. Niedawno miałem projekt, w którym potrzebowałem dekodera DMTF. Żetony kosztują około dolara w ilości. Różnica w cenie między PIC24F lub równoważnym dsPIC33F (który również ma DSP) również wynosiła około dolara. Procedury DSP dekodera DTMF były wolne od Microchip. Dodatkowo mam teraz DSP do innych rzeczy.
tcrosley,
Do twojej wiadomości, kilka lat temu napisałem całkiem niezły dekoder DTMF dla PIC 16C622, używając tylko komparatora jako wejścia.
supercat
3

Jest jedna duża różnica między projektowaniem czegoś przy użyciu tylko dyskretnych komponentów a mikrokontrolerem; oprogramowanie ma błędy. Jeśli niezawodność jest ważnym aspektem, możliwe jest zweryfikowanie projektu czegoś wykonanego z dyskretnych elementów. Nawet Knuth nie ośmiela się twierdzić, że jego oprogramowanie nie zawiera błędów.

Oczywiście Twój projekt może również zawierać błędy i mogą pojawiać się tylko w bardzo rzadkich przypadkach, ale będą łatwiejsze do zrozumienia i naprawy. Możliwe jest, że oprogramowanie ulegnie awarii w bardzo niejasny i nieoczywisty sposób, którego nigdy nie znajdziesz.

hlovdal
źródło
2
Ponieważ dyskretne komponenty w tym przypadku prawdopodobnie oznaczają układy scalone, a nie tranzystory, co sprawia, że ​​uważasz, że układy scalone nie zawierają błędów? Dobrze napisane oprogramowanie kończy się błędami nie dlatego, że jest oprogramowaniem, ale dlatego, że rozwiązuje skomplikowane wymagania - wersja z okablowaniem może być również błędna. Po znalezieniu błędu rajdowanie jest tańsze we wdrażaniu poprawek do oprogramowania niż w przypadku modyfikowania płytek drukowanych, chyba że ktoś spalił dla ciebie duży spis mikroprocesorów OTP. Możesz wyszkolić kogoś, jak podłączyć kabel programatora i przestrzegać zasad ESD o wiele szybciej niż możesz wyszkolić go, aby był dobry w przerabianiu płytek SMT.
Chris Stratton
Układy scalone istnieją na wszystkich poziomach złożoności, w tym mikrokontrolerów. Prawdopodobieństwo błędów w układzie scalonym jest proporcjonalne do złożoności układu scalonego. Pytanie dotyczyło prostszych układów scalonych, takich jak zegar 555, i myślę, że łączne prawdopodobieństwo, że taki układ scalony i dodatkowe komponenty będą miały błędy, jest znacznie niższe niż prawdopodobieństwo zastąpienia ich przez mikrokontroler błędami. Oczywiście, jeśli zastąpisz 1000 elementów jednym mikrokontrolerem, szanse prawdopodobnie się zmienią, więc obraz nie będzie całkowicie czarno-biały. Ale dla każdego urządzenia migającego LED lub podobnego, że ja ...
hlovdal
... widzę, że chodzi o to pytanie, wciąż uważam, że dyskretne elementy mogą być bardziej niezawodne. A w przypadku błędów oprogramowania są one niedeterministyczne. Oczywiście nic nie jest w 100% gwarantowane, ale jeśli zaimplementujesz kontroler sygnalizacji świetlnej z komponentami, możesz go zweryfikować i wdrożyć, wiedząc, że będzie on działał przez X lat, dopóki fizyczne zużycie nie spowoduje, że jednostka ulegnie awarii i zastąpi z nową jednostką na długo przedtem. Nie ma możliwości oszacowania, że ​​oprogramowanie będzie działać niezawodnie przez dowolny okres czasu.
hlovdal
Oprogramowanie o porównywalnej złożoności do kilku dyskrecji można, na odpowiednim procesorze, udowodnić matematycznie. Dyskretna logika o porównywalnej złożoności do bardziej powszechnego oprogramowania nie może być tak naprawdę całkowicie zabezpieczona przed niewyobrażalnym - choć często w obu przypadkach można użyć dodatkowej złożoności, aby zapewnić pewne zabezpieczenia kopii zapasowych na wypadek awarii podstawowego mechanizmu.
Chris Stratton
3

Odpowiedź brzmi tak!

Musisz spojrzeć na to jako projektant sprzętu zorientowany na koszty produkcji. 555 to stary układ scalony uważany za bardzo podstawowy. Jeśli jesteś EE, najprawdopodobniej widziałeś go kilka razy w klasach elektroniki cyfrowej. Konfiguracja jest bardzo łatwa, ponieważ musisz rozwiązać 2 lub 3 formuły dla większości popularnych aplikacji. Nie zajmuje to prawie czasu (ponieważ znasz już tę część i jak z niej korzystać, a matematyka jest łatwa). Czas potrzebny do skonfigurowania rozwoju nawet 8-bitowego MCU i sprawdzenia poprawności oprogramowania może zająć od kilku dni do kilku miesięcy, w zależności od środowiska, w którym pracujesz. Może to obniżyć koszty inżynierii o kwoty, o których nie wyobrażasz sobie, że są możliwe i może także skrócić czas wprowadzania na rynek.

Prawdziwa historia - pracowałem dla dużej firmy medycznej. Zaprojektowałem przyrządy testowe do walidacji produktu. Przyrządy były częściowo oparte na sprzęcie i częściowo na oprogramowaniu. Produkt wytwarzany przez firmę wchodzi w interakcję z wrażliwymi częściami ciała, więc ilość inspekcji, którą przeszliśmy, była szalona. Tym razem musiałem dostosować protokół komunikacyjny, aby odzwierciedlić zmiany w samym produkcie. Zmiana dotyczyła może 10 wierszy kodu w C, a oscylator kwarcowy również został zamieniony, ponieważ zmieniono szybkość transmisji, a to, co pierwotnie zainstalowano, nie było 11,0592 MHz ... Zajęło mi to około 2 godzin, aby zrobić to wraz z dokumentacją. Koszt firmy wyniósł prawdopodobnie 300 USD lub mniej przy zamówieniu od Digikey na nowe części. Sprawdzanie poprawności przyrządu testowego trwało kilka miesięcy (! ) i zajmował około 3 lub 4 osoby co najmniej kilka razy dziennie w powiązanych sprawach. Ile to kosztuje firmę? Prawdopodobnie na północ od 10 000 USD - 15 000 USD. Koszt ten odzwierciedla rzeczywisty koszt niewielkiej zmiany w projekcie. Wiele razy możesz go zapisać, a znajomość prawie gotowych rozwiązań może uratować małą fortunę.

użytkownik34920
źródło