W zależności od tego, czy urządzenie zawiera układy logiczne wykonane w technologii TTL bądź CMOS, poziom napięć odpowiadający stanom logicznego zera i jedynki będzie różny dla każdej z rodzin układów. Poniżej przedstawiono projekt sondy logicznej przystosowanej do pracy z układami TTL i CMOS, wykonanej z użyciem minimalnej ilości elementów.
Układy logiczne należące do rodziny TTL są zasilane napięciem +5V, podczas gdy układy CMOS działają przy napięciach z zakresu 3-15V. Zgodnie ze standardami TTL, stan niski odpowiada każdemu napięciu poniżej 0,8V, a stan wysoki – powyżej 2,2V. W przypadku rodziny CMOS, napięcia niższe od 1/3 napięcia zasilania odpowiadają stanowi niskiemu, a napięcia wyższe niż 2/3 napięcia zasilania – stanowi wysokiemu. Napięcia między tymi wartościami są zdefiniowane jako stan przejściowy. Opisywana sonda współpracuje z układami TTL i CMOS zasilanymi napięciem od +5V do +15V.
Układ składa się ze stabilizatora napięcia 78L05, mikrokontrolera PIC12F683 i rejestru przesuwnego CD4094BE (CMOS) sterującego wyświetlaczem 7-seg. Stabilizator zapewnia napięcie +5V do zasilania mikrokontrolera, przy napięciu zasilania z zakresu +5-15V. W układzie znajdują się również dwa dzielniki rezystorowe (9,1kΩ / 1kΩ, tolerancja 1%) przyłączone do wejść AN0 i AN1 procesora. Kanał AN0 służy do pomiaru poziomów logicznych, natomiast AN1 – do pomiaru napięcia zasilania układu. Kiedy wynosi ono więcej niż 5V, sonda uznaje, że pracuje z układami CMOS.
Kod procesora został napisany w języku C, przy wykorzystaniu gotowej biblioteki przetwornika A/D z oprogramowania MikroC PRO for PIC. Poza główną pętlą programu istnieje sześć dodatkowych funkcji. Funkcja setup() odpowiada za ustalenie kierunków działania (I/O) portów procesora i inicjalizuje działanie przetwornika A/D. Funkcja test_display() sprawdza działanie wyśw. LED i rejestru przesuwnego. W obrębie funkcji test_supply() sprawdza, czy sonda pracuje z układami TTL czy CMOS. display(unsigned char val) odpowiada za wyświetlanie wartości na wyśw. 7-seg. poprzez rejestr przesuwny. Funkcja adc_avg(unsigned char ch) odpowiada za konwersję A/D – zapisanie wartości 16 próbek, przekształcenie na wartości napięcia i uśrednienie. Finalnie, check_logic() odpowiada za odczyt i zdefiniowanie wartości badanego stanu logicznego.
Projekt pokazuje nie tylko konstrukcję prostej sondy logicznej, ale ilustruje sposób rozszerzania portów mikrokontrolera z użyciem rejestru przesuwnego. Do urządzenia może zostać zaprojektowana niewielka płytka drukowana lub działający układ można zmontować na płytce stykowej.
Źródło
Układy logiczne należące do rodziny TTL są zasilane napięciem +5V, podczas gdy układy CMOS działają przy napięciach z zakresu 3-15V. Zgodnie ze standardami TTL, stan niski odpowiada każdemu napięciu poniżej 0,8V, a stan wysoki – powyżej 2,2V. W przypadku rodziny CMOS, napięcia niższe od 1/3 napięcia zasilania odpowiadają stanowi niskiemu, a napięcia wyższe niż 2/3 napięcia zasilania – stanowi wysokiemu. Napięcia między tymi wartościami są zdefiniowane jako stan przejściowy. Opisywana sonda współpracuje z układami TTL i CMOS zasilanymi napięciem od +5V do +15V.
Układ składa się ze stabilizatora napięcia 78L05, mikrokontrolera PIC12F683 i rejestru przesuwnego CD4094BE (CMOS) sterującego wyświetlaczem 7-seg. Stabilizator zapewnia napięcie +5V do zasilania mikrokontrolera, przy napięciu zasilania z zakresu +5-15V. W układzie znajdują się również dwa dzielniki rezystorowe (9,1kΩ / 1kΩ, tolerancja 1%) przyłączone do wejść AN0 i AN1 procesora. Kanał AN0 służy do pomiaru poziomów logicznych, natomiast AN1 – do pomiaru napięcia zasilania układu. Kiedy wynosi ono więcej niż 5V, sonda uznaje, że pracuje z układami CMOS.
Kod procesora został napisany w języku C, przy wykorzystaniu gotowej biblioteki przetwornika A/D z oprogramowania MikroC PRO for PIC. Poza główną pętlą programu istnieje sześć dodatkowych funkcji. Funkcja setup() odpowiada za ustalenie kierunków działania (I/O) portów procesora i inicjalizuje działanie przetwornika A/D. Funkcja test_display() sprawdza działanie wyśw. LED i rejestru przesuwnego. W obrębie funkcji test_supply() sprawdza, czy sonda pracuje z układami TTL czy CMOS. display(unsigned char val) odpowiada za wyświetlanie wartości na wyśw. 7-seg. poprzez rejestr przesuwny. Funkcja adc_avg(unsigned char ch) odpowiada za konwersję A/D – zapisanie wartości 16 próbek, przekształcenie na wartości napięcia i uśrednienie. Finalnie, check_logic() odpowiada za odczyt i zdefiniowanie wartości badanego stanu logicznego.
Kod: C / C++
Projekt pokazuje nie tylko konstrukcję prostej sondy logicznej, ale ilustruje sposób rozszerzania portów mikrokontrolera z użyciem rejestru przesuwnego. Do urządzenia może zostać zaprojektowana niewielka płytka drukowana lub działający układ można zmontować na płytce stykowej.
Źródło
Fajne? Ranking DIY
