Przydasie

Pozostałe układy mikrokontrolerów, układy peryferyjne i inne, nie mieszczące się w powyższych kategoriach.
Awatar użytkownika
gaweł
Geek
Geek
Posty: 1259
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Przydasie

Postautor: gaweł » czwartek 12 wrz 2019, 02:47

Moduł mikrokontrolera C51 (PLCC)
przc51_ilu00.jpg


Jak mówi przysłowie: „Potrzeba jest matką wynalazku”. I taka potrzeba zaistniała. Konieczność sprawdzenia różnych fragmentów programu lub wypróbowanie nowych podzespołów w systemach mikrokontrolerowych wymaga zawsze zbudowania jakiegoś minimalnego (ale wystarczającego do konkretnego zastosowania) środowiska badawczego. Jak to zwykle bywa, po badaniach środowisko już nie jest potrzebne, więc ulega demontażowi. Po jakimś czasie ponownie pojawia się potrzeba i … dosyć tego, czas na innowację. Za każdym razem sprawdzanie, czy środowisko jest poprawne, bo … później nie wiadomo, czy przy eksperymentach jest walka z nową koncepcją czy starym (w sensie już znanym, tylko może z błędem odtworzonym) środowiskiem. Za każdym razem istnieje możliwość pomyłki. By ułatwić sobie pracę, to nawet mam zaprogramowany procek z napisem na naklejce „mrugacz”, ponieważ jego zadaniem jest mruganie LED'em. Jak po włączeniu LED w określonym rytmie zapala się i gaśnie, to znaczy, że środowisko jest OK i można zmienić proca na inny przeznaczony do eksperymentów, a „mrugacz” do torebki z napisem „mrugacz” i do szuflady. Nadszedł czas na integrację minimalnego środowiska dla proca. Co prawda nie jest to przesadnie odkrywczy pomysł, jednak wymagał trochę przemyśleń (czy zrobić tak … a może w ten sposób... a może w...) i wysiłku by go zbudować. Generalnie najtrudniejsze jest podjęcie decyzji by pójść określoną drogą, bo przecież to stara technologia, coś co powoli umiera i czy warto. Trochę przypomina to dyskusję o wyższości jednych świąt nad drugimi, ale skoro doszedłem do wniosku, że warto... to dzieła należy dokończyć. Każde „poszerzanie horyzontów” wymaga badań i eksperymentów i w sumie w ogromnej liczbie przypadków nie ma żadnego znaczenia co zostanie użyte. Robiąc coś po raz pierwszy zawsze idzie się „po omacku”, no bo każdy nowy peryferal ma jakieś swoje narowy, na początku będzie kopał i gryzł zanim da się oswoić. Sam pamiętam cierniową drogę jaką trzeba było pokonać przykładowo przy okazji czujnika temperatury czy wilgotności. Przykładów można znaleźć wiele. Taki termometr na I2C to nic trudnego (z punktu widzenia elektronicznego można rzec wręcz banalne, bo nie ma tu żadnego manewru → przyłączyć jak napisali w dokumentacji i koniec) – reszta to już oprogramowanie. Jednak nie zawsze tak bywa, bardziej złożone układy pozwalają na pewne manewry, bo można tak... lub tak... ewentualnie inaczej. Stojąc przed dylematem, bo zaprojektowana i wykonana PCB nie daje się już modyfikować (z wyjątkiem brutalnego podejścia z nożem do cięcia ścieżek). Zawsze trzeba coś sprawdzić, wypróbować. Bez eksperymentu nie ma wiedzy. Niby można posiłkować się dokumentacją, ale prawie zawsze rzeczy najciekawsze i najistotniejsze są „między wierszami”. Stojąc na decyzyjnym rozdrożu wykonanie próby pozwoli wnieść trochę stabilizacji w chaos możliwych rozwiązań (pozostaje jeszcze, wzorem różnych teleturniei telefon do przyjaciela). Wtedy im prostszy system, tym lepiej.
Zaczynamy od schematu:
przc51_ilu01.png
Jest to typowe rozwiązanie jednostki centralnej. Dodałem drabinkę rezystorów do wstępnego podciągnięcia wyjść portu P0 do napięcia VCC (bo często o niej zapominam) i później tracę czas na niepotrzebne ruchy.
Do tego jest projekt PCB (na płytce dałem numerki pinów w narożnikach i małą kreskę co 5 pinów, ma to ułatwić znajdowanie określonych pinów procka):
przc51_ilu02.png
przc51_ilu03.png
przc51_ilu04.png

i finalnie rzeczywiste PCB:
przc51_ilu05.jpg
przc51_ilu06.jpg
Czas na montaż:
przc51_ilu07.jpg
przc51_ilu08.jpg
Do integracji modułu procka z płytą Solderless Breadboard przewiduję dedykowane kabelki. Stosuję zestawy 8-bitowe oraz pojedyncze. Wszystkie końcówki mają przylutowane resztki z obciętych długich nóżek od LED'ów i są obkurczone rurkami w różnych kolorach. Dałem czerwone (+) i niebieski (-) na zasilanie, żółte do pinów portów i czarne do pozostałych sygnałów jednobitowych. Stwarza to możliwości mniejszych pomyłek przy integracji modułu z dziurkowaną płytą.
przc51_ilu09.jpg
Zestawy 8-bitowe przeznaczone są do portów (4 sztuki), jednobitowe do zasilania, sygnałów pojedynczych jak RESET, PSEN, EA , ALE.
przc51_ilu10.jpg
Po integracji modułu z płytą Solderless Breadboard, włożeniu w podstawkę procka z napisem „mrugacz”, włączeniu zasilania następuje chwila napięcia (emocjonalnego). Trwa to jednak króciutką chwilę, bo LED rzecz jasna mruga. Potrzeba stworzenia następnego środowiska do eksperymentów będzie trwała … ile może trwać wtykanie potrzebnej liczby przewodów do dziurkowanej płyty.
Najistotniejsze jest w tym to, że nie ma pomyłek w podstawowych połączeniach jednostki centralnej. To znacząco skraca czas w eksperymentach.
przc51_ilu11.jpg
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
gaweł
Geek
Geek
Posty: 1259
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: Przydasie

Postautor: gaweł » czwartek 19 wrz 2019, 14:32

Czyściciel

Każdy, kto dotknął „ręcznego generowania impulsów” już zna to zjawisko. Przykładowo, chcąc sprawdzić na piechotę licznik, można wetknąć takowy w dziurkowaną płytę SB, wykonać kilka połączeń by po pierwsze zasilić, bo bez zasilenia, to nic nie działa i przykładowo podpiąć kilka LED'ów by zobrazować stan. Jeżeli jako źródło impulsów weźmiemy jakiś przycisk (taki co łączy i rozłącza styki), to... spotka nas niespodzianka. Takie rozwiązanie nie bierze pod uwagę zjawiska dzwonienia styków. Nie wszyscy są świadomi pewnych zjawisk. To, że ktoś nie jest świadomy, nie oznacza, że zjawisko nie występuje. Wręcz przeciwnie, występuje i im bardziej będzie ignorowane, tym bardzie „boleśnie” się o tym można przekonać. Jednak na każdą koncepcję można zaproponować anykoncepcję. Takim klasycznym czyścicielem od niechcianych impulsów jest niesynchronizowany żadnym zegarem przerzutnik typu RS. Koncepcję ilustruje poniższy rysunek.
przydasie02_i01.png
Tak zapętlone bramki NAND tworzą właśnie taki przerzutnik. Jak nic się nie dzieje (nie jest przypięty żaden przełącznik), to na obu wejściach panuje stan logicznej jedynki. Z „cyferek” wiadomo, że jest to stan pasywny i nie wpływa on na nic. Jeżeli na jakiekolwiek wejście (pin 1 lub 5 na rysunku) podane zostanie logiczne zero, to oznacza, żądanie wpisania na odpowiednim wyjściu stanu logicznej jedynki (bez względu co było dotychczas → historia nas nie interesuje a istotny jest stan aktualny). Podanie zera na pin 1 daje na pinie 3 stan jedynki. Taki zabieg jest trwały i nawet jak „wycofa się” wymuszenie, nowy stan pozostanie. Zagadnienie jest symetryczne i podanie zera na pin 5 oznacza stabilny stan jedynki na pinie 6. Oczywiście świat musi pozostać w równowadze, co oznacza, że na „symetrycznym” wyjściu zaistnieje stan zanegowany. Jak na wyjściu 3 jest jedynka, to na wyjściu 6 jest zero (i rzecz jasna symetrycznie: jak na wyjściu 6 jest jedynka, to na wyjściu 3 jest zero). Sam przerzutnik jest „przedłużony” przez dwie bramki (bo były w zestawie, więc by nie obijały się w robicie dostały jakieś zadanie), które sygnalizują stan przez diodę LED. Sam stan po „separacji” przez bramkę wychodzi na zewnątrz (na pin do płyty SB).
Rozpatrzmy, jak to działa. Podanie przykładowo na pin 1 stanu „dzwoniącego” zera (jest ciąg kilku impulsów zer i jedynek) oznacza, że pierwsze zero ustawi na wyjściu jedynkę (bez względu na stan poprzedni). Każde jeden (wynikające z dzwonienia) oznacza brak akcji, taki stan pasywny, stan przetrwania. Kolejne zero (wynikające z dzwonienia) ponownie „wpisze” w przerzutnik jedynkę (ale taka tam już była, wynikła z pierwszego impulsu dzwonienia). Powstaje odporne na środowisko rozwiązanie do przeciwdziałania różnym impulsowym fanaberiom. Na wyjściu jest czysty, niczym nie zanieczyszczony wręcz piękny impuls. Ten impuls, to już może pobudzić do działania bardziej szczytne zastosowania. Mając właściwe podstawy, można fraktalnie tworzyć większą doskonałość.
By nie borykać się za każdym razem ciągle z tym samym, warto wejść na wyższy level i posiłkować się swoim zbudowanym gotowcem. Rozwiązania najprostsze są najlepsze.
przydasie02_i02.jpg
Ten mały układzik jest przystosowany do współdziałania z płytą SB, jego piny wchodzą w dziurki bez kłopotów. Widoczny 3-pinowy GOLDPIN można zintegrować z
przydasie02_i03.jpg
monostabilnym przełącznikiem, który łączy środkowy pin (przyłączony do GND) z lewym lub prawym pinem.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
gaweł
Geek
Geek
Posty: 1259
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: Przydasie

Postautor: gaweł » poniedziałek 23 wrz 2019, 12:09

Adaptery
przyd03_f00.jpg


Zabawa w elektronikę, szczególnie w sytuacjach, gdy są przecierane po raz pierwszy ścieżki, często wymaga wykonania układów próbnych. Do niedawna takie “badania” nie stanowiły zbyt wielkich problemów. Jednak w obecnych czasach coraz powszechniej stosowane są układy do montażu powierzchniowego. Cóż, takie nastały czasy, gdzie istotne są koszty w produkcji masowej. Automatyzacja z jednej strony, mająca wiele pozytywnych cech w procesach produkcji, implikuje coraz większe problemy zarówno w pracach nad prototypami, jak i w “zabawach hobbystycznych”, ale czego się nie dla niej nie robi. Przy odrobinie cierpliwości, i samozaparcia problemy są do pokonania. Do “przećwiczenia” działania fragmentów lub wręcz całych opracowywanych urządzeń można zaprojektować i wykonać płytki drukowane. Ta metoda ma jednak poważne wady jak duża pracochłonność i brak możliwości korekty w połączeniach wynikłych w trakcie eksperymentów. Interesującą alternatywą jest użycie odpowiednich zestawów do prototypów jak przykładowo “Solderless Breadboard”.
przyd03_f01.jpg
Pomimo znacznego ułatwienia w budowie próbnych rozwiązań, nadal jest kilka problemów do rozwiązania. Użycie w takim zestawie układów w obudowach dwurzędowych typu DIP jest wręcz naturalne. Większe problemy występują w przypadku konieczności użycia układów w obudowach typu PLCC. Pomimo, że dla tych układów są łatwo dostępne podstawki, to jednak jej użycie nie jest możliwe w płytce prototypowej, która jest przystosowana do układów w obudowach dwurzędowych (układ w obudowie PLCC należy rozpatrywać w kategorii obudowy czterorzędowej). Pewnym rozwiązaniem jest użycie specjalnej podstawki, ale ich cena sięga kosmosu.
przyd03_f02.jpg
Taki narządź łatwo się integruje z układami w obudowie PLCC44, wystarczy położyć układ i lekko nacisnąć, by wszedł do środka. Ten pochodzi z innego świata, jest od programatora ELNEC (programuje wszystko co się rusza).
przyd03_f03.jpg
Wyjęcie układu z podstawki nie wymaga żadnych dodatkowych narzędzi, wystarczy nacisnąć na górę podstawki i układ sam wyskakuje (ma taki specjalny wyrzutnik).
przyd03_f04.jpg
Największe problemy występują w przypadku układów w obudowach typu QFP. Do tych układów są produkowane specjalne podstawki, ale ich cena jest jeszcze bardziej kosmiczna.
Rozwiązaniem problemów jest użycie nieskomplikowanych adapterów pozwalających “zamienić” różnego typu obudowy układów scalonych na obudowy dwurzędowe.
przyd03_f05.jpg
Po przylutowaniu do płytek odpowiednich listw pinowych można uzyskać funkcjonalne moduły.
przyd03_f06.jpg
W odróżnieniu od typowych listw (typu GOLDPIN), te mają mniejszą średnicę wyprowadzeń, przez co bez problemów nadają się do płyty “Solderless Breadboard”. Duży otwór w obrębie podstawki ułatwia wyjmowanie układów z podstawki. Zamiast używać skomplikowanych i drogich narzędzi do wyjmowania układów PLCC z podstawek, można wypchnąć go z podstawki za pomocą małego śrubokręta. Również duże znaczenie mają zagięte od góry końce listwy pinowej. Konstrukcja mechaniczna listwy i sposób jej przylutowania do płytki gwarantują jej dużą wytrzymałość mechaniczną dla operacji wciskania układu w płytkę “Solderless Breadboard”. W operacjach wyjmowania takiego modułu istnieje niebezpieczeństwo urwania wyprowadzeń. Zagięcie wyprowadzeń ma za zadanie przeciwdziałać temu zjawisku.
przyd03_f07.jpg
Na podobnej zasadzie wykonana jest przejściówka dla układów w obudowach QFP.
przyd03_f08.jpg
W tym przypadku piny nie wymagają żadnych dodatkowych zabiegów związanych ze zwiększeniem mechanicznej wytrzymałości. Od spodu płytki w sposób naturalny opierają się o laminat, w drugiej struny są przylutowane do punktów lutownicznych.
przyd03_f09.jpg
Na zasadzie “eskalacji oczekiwań”, można wykonać w podobny sposób dodatkowo inne moduły spełniające określoną funkcję. Często występuje w technice mikroprocesorowej potrzeba transmisji szeregowej oraz potrzeba sygnalizacji dowolnego rodzaju informacji o charakterze bitowym.
przyd03_f10.jpg
W przypadku transmisji szeregowej zaprojektowany został moduł interfejsu RS232 z użyciem popularnego układu MAX232. Kompletny interfejs składa się z wymienionego układu, czterech kondensatorów po 10 uF (mikro) i złącza DB9 (męskiego). Zmontowany układ interfejsu jest następujący:
przyd03_f11.jpg
Do sygnalizacji stanów bitowych użyte są diody świecące LED, które są sterowane przez układ ULN2803. Zmontowany moduł wygląda następująco:
przyd03_f12.jpg
W cele zwiększenia wytrzymałości mechanicznej warto po odpowiedniej stronie zagiąć “łapki” mocujące złącze.
przyd03_f13.jpg
Do sygnalizacji stanów bitowych użyte są diody świecące LED, które są sterowane przez układ ULN2803. Zmontowany moduł wygląda następująco:
przyd03_f14.jpg
przyd03_f15.jpg
W oparciu o te moduły można w ciągu kilku minut zbudować wymagane środowisko uruchomieniowe dla mikrokontrolera. W tym przypadku jest to użycie mikrokontrolera AT90S8515 z użyciem interfejsu szeregowego do połączenia do z komputerem oraz kilkoma diodami LED do sygnalizacji pewnych zdarzeń. Sam schemat połączeń jest na tyle prosty, że praktycznie nie wymaga wcześniejszego jego przygotowania (jedynie konieczny jest rysunek z topologią wyprowadzeń mikrokontrolera). Zbudowany układ jest następujący:
przyd03_f16.jpg
W roli programatora wystąpił zestaw uruchomieniowy STK500.
przyd03_f17.jpg
Po włączeniu zasilania wszystko działa tak jak powinno. Programator nie miał problemów z zaprogramowaniem mikrokontrolera, załadowany program obsługiwał transmisję szeregową i sterował diodami LED.
przyd03_f18.jpg
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse


Wróć do „Inne mikroklocki, również peryferyjne”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 3 gości