Przydasie
: czwartek 12 wrz 2019, 02:47
Moduł mikrokontrolera C51 (PLCC)
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: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):
i finalnie rzeczywiste PCB:
Czas na montaż: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ą.Zestawy 8-bitowe przeznaczone są do portów (4 sztuki), jednobitowe do zasilania, sygnałów pojedynczych jak RESET, PSEN, EA , ALE.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.
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: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):
i finalnie rzeczywiste PCB:
Czas na montaż: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ą.Zestawy 8-bitowe przeznaczone są do portów (4 sztuki), jednobitowe do zasilania, sygnałów pojedynczych jak RESET, PSEN, EA , ALE.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.