Artykuły

Odkąd moja ulubiona staruszka – sonda TTL przestała wystarczać do uruchamiania większości układów, szukałem alternatywnego rozwiązania. Miałby to być jakiś uniwersalny przyrząd, którego mógłbym używać w różnych sytuacjach, niezależnie od poziomów logicznych na wyjściach/wejściach układów i ich napięć zasilania. Idealny byłby oscyloskop cyfrowy, jednak po pierwsze, nieco odstręczała jego cena, a po drugie, konieczność taszczenia ze sobą w teren dodatkowego przyrządu. Mógłbym pokusić się o wykonanie własnego instrumentu pomiarowego np. na bazie mikrokontrolera, ale na przeszkodzie stał czas jego opracowania. Świetne rozwiązanie zostało kiedyś zaproponowane kiedyś przez firmę Microchip („Engineer’s Assistant” Voji Antonica), który zdobył pierwszą nagrodę na konkursie na aplikację z mikrokontrolerem PIC), ale parametry urządzenia były niewystarczające. Ponadto, irracjonalnie nie wierzę aplikacjom, w których mikrokontroler próbkuje stan swojego portu wejściowego. Myślę, że to pozostałość po dawnych czasach, kiedy wiadomo było, że czas reakcji przeciętnego układu TTL jest znacznie krótszy, niż większości dostępnych mikroprocesorów. O ile w tym pierwszym wypadku można było mówić o reakcji w czasie rzeczywistym, o tyle w drugim na pewno nie. Czasy zmieniły się, ale (niestety) nawyki pozostały… czytaj więcej
Czujniki zbliżeniowe to jedne z najpowszechniej stosowanych sensorów we wszelkich urządzeniach automatyki. Najczęściej do ich zadań należy wykrycie i sygnalizacja obecności obiektu bez kontaktu fizycznego z nim samym. Może to być jednak nie tylko produkt na taśmie przenośnika, ale również uchwyt narzędzia, dźwignia, krzywka automatu. Typowe aplikacje związane są najczęściej z maszynami pakującymi, drukującymi, wtryskarkami, obrabiarkami metali, liniami technologicznymi służącymi do produkcji żywności itd. Zastosowania można mnożyć. W niniejszym artykule omówione zostaną podstawowe typy czujników zbliżeniowych oraz będą podane elementarne informacje na temat zasad użytkowania najpopularniejszych z nich – sensorów indukcyjnych. Pozwoli to konstruktorom uniknąć podstawowych błędów przy ich stosowaniu. czytaj więcej
Zwykle w typowych zastosowaniach są używane wyświetlacze 7-segmentowe, jednak prezentowany moduł mający 16 segmentów LED umożliwia również wyświetlenie napisów. Owszem, niektóre znaki są troszkę kombinowane, jednak mimo wszystko czytelne. Prezentowany moduł został zaprojektowany w taki sposób, aby można było moduły łączyć w szeregi, co daje praktycznie nieograniczone możliwości wyświetlania dowolnych komunikatów. Moduł był opisywany w Elektronice Praktycznej nr 8/2010. Płytki do niego można nabyć poprzez stronę sklep.avt.pl. czytaj więcej
Aktualnie w większości zastosowań królują wyświetlacze LCD. Są jednak pewne zastosowania, w których stary, dobry wyświetlacz LED jest po prostu niezastąpiony. Zwykle są używane wyświetlacze 7-segmentowe, jednak prezentowany moduł mający 35 kropki LED daje znacznie bardziej czytelne znaki oraz umożliwia wyświetlenie napisów. Dodatkowo, moduły są zaprojektowane w taki sposób, aby można je było łączyć w szeregi, co daje praktycznie nieograniczone możliwości wyświetlania dowolnych komunikatów. Moduł był opisywany w Elektronice Praktycznej nr 8/2010. Płytki do niego można nabyć poprzez stronę sklep.avt.pl. czytaj więcej
Nowoczesne diody LED umożliwiają budowę energooszczędnych, wydajnych źródeł światła. Do ich zasilania niezbędne są obwody o stabilizowanym prądzie wyjściowym. Można je wykonać jako liniowe, jednak to układy impulsowe umożliwiają uzyskanie najwyższej sprawności. Przykładami takich zasilaczy LED są układy scalone produkowane przez niemiecką firmę Prema Samiconductor. Użyty przeze mnie w „żarówce” PR4101A jest zaawansowanym funkcjonalnie, impulsowym zasilaczem diod LED i umożliwia ich zasilanie stabilizowanem prądem o natężeniu 0,1...1 A. W opisanym dalej projekcie użyto czterech bardzo jasnych, białych diod LED o poborze prądu 80 mA każda. Układ był opisywany w Elektronice Praktycznej nr 8/2010. Płytki do niego można kupić poprzez sklep.avt.pl. czytaj więcej
Troszeczkę przez sentyment do ST6, troszeczkę ze względu na cenę i bogate „uzbrojenie” w układy peryferyjne, do kilku ostatnio budowanych przeze mnie urządzeń, postanowiłem użyć mikrokontrolera ST7FLITE29 oraz oprogramowania napisanego za pomocą kompilatora języka C dla ST7 firmy Metrowerks. Moim zdaniem to bardzo dobry mikrokontroler, dobrze wyposażony i doskonale działający. Oczywiście jak każdy – ma swoje wady i zalety, jednak przy odrobinie akcji marketingowej oraz lepszym zaopatrzeniu dystrybutorów, firma ST Microelectronics ma ogromną szansę na przełamanie hegemonii niektórych producentów na polskim rynku, również w zastosowaniach amatorskich. Niniejszy artykuł będzie próbą opisu moich doświadczeń i wrażeń z pracy nad aplikacjami z ST7FLITE19/29 i być może pozwoli zaoszczędzić komuś czas, którego osobiście potrzebowałem bardzo dużo. czytaj więcej
Pisząc programy często zadawałem sobie pytanie : na ile bezpieczny jest mój program wewnątrz mikrokontrolera? Na ile urządzenie, na którego konstrukcję i rozwój poświęciłem na przykład dwa lata, a którego (w większości przypadków) główną wartością jest program, nie da się skopiować? Na ile pewne są ustawienia bitów blokujących dostęp do pamięci programu? Jak ma się blokada dostępu do pamięci typu FLASH w stosunku do odwracalnych przecież jej właściwości? Pewnego razu zadałem tego rodzaju pytanie na forum programistów, znajdującym się na stronie http://www.8052.com. Odpowiedzi, które uzyskałem lekko mnie zaskoczyły. Była między nimi na przykład sugestia, że jeżeli program do urządzenia, które chcę skopiować, wart jest dla mnie milion dolarów, to pieniądze takie przesłane do firmy X, notabene producenta między innymi mikrokontrolerów, spowodują, że udostępni mi ona technologię umożliwiającą odczyt pamięci programu, mimo jej blokady. Na poparcie tej tezy, autor przysłał mi artykuł rosyjskiego stypendysty pracującego na Uniwersytecie Cambridge w Wielkiej Brytanii - Sergieja Skorobogatov. Pracuje on w laboratorium komputerowym w grupie pracowników naukowych zajmujących się zabezpieczeniami komputerów osobistych oraz mikrokontrolerów. Grupa ta bada, na ile skuteczne są wszelkiego rodzaju zabezpieczenia programów. Badania te wykonywane są najczęściej na zlecenia firm producentów hardware i software. Jak pisze sam Sergiej o swojej pracy, polega ona na zrozumieniu, jak dane zabezpieczenie może zostać złamane i udzielenie wskazówek producentowi, jak powinno ono zostać wzmocnione. Badania te, w związku z rosnącym zastosowaniem mikrokontrolerów, na przykład w kartach płatniczych, mają ogromne znaczenie. czytaj więcej
Pamięci są dzielone na dwie kategorie. Pierwszą z nich są pamięci nieulotne. Od wielu lat są one używane w aplikacjach w celu zapamiętania pewnych stałych, niezmiennych informacji. Może to być program realizowany przez mikroprocesor czy też dla przykładu wzorce znaków wyświetlanych na ekranie wyświetlacza LCD. Podstawową cechą tego rodzaju pamięci jest stałość przechowywanych informacji również wtedy, gdy brak jest napięcia zasilania. Zazwyczaj zapis pamięci stałej (często zwany jej programowaniem), nawet mimo użycia technologii EEPROM czy też FLASH EEPROM, jest dość trudny i zajmuje dużo czasu, jeśli odnieść to do czasu odczytu tej pamięci. Druga grupa to pamięci ulotne, tzw. RAM. Są one łatwe do zapisu i pracują bardzo szybko, więc służą do przechowywania danych, które często ulegają zmianie. Inaczej niż w pamięciach nieulotnych, dane przechowywane w RAM giną po odłączeniu napięcia zasilającego i jeśli konieczne jest z jakiś względów zachowanie niezmiennego stanu RAM, to jest wymagane stosowania pomocniczych źródeł zasilania. Jest to swego rodzaju wyzwanie dla konstruktora układu. Wad wyżej opisanych układów nie ma nowy rodzaj pamięci, której technologia wytwarzania przed kilkunastu laty opuściła laboratoria naukowe. Jest to pamięć FRAM. Skrót nazwy tłumaczy się jako Ferroelectric Random Access Memory. Oznacza on technologię wytwarzania (uwaga!) nieulotnej pamięci RAM, czyli pamięci łączącej w sobie szybkość pracy RAM i trwałość ROM. czytaj więcej
We wczesnych latach 60. instytucja znana dziś pod nazwą Electronic Industries Association opracowała wspólną specyfikację standardu interfejsu szeregowego dla urządzeń przesyłających dane. W tamtych latach jako „przesyłanie danych” rozumiano przede wszystkim komunikację pomiędzy głównym komputerem mainframe i dołączonymi doń terminalami lub też pomiędzy terminalami, bez angażowania komputera centralnego. Ci przodkowie współczesnego komputera PC byli połączeni ze sobą przeważnie za pomocą linii telefonicznej i modemu. Jakkolwiek jest to bardzo prosta koncepcja, to jednak zamiana sygnału cyfrowego na analogowy, przesłanie go przez linię telefoniczną, a następnie ponowna konwersja do postaci cyfrowej, wiąże się z możliwością powstania licznych błędów transmisji. czytaj więcej
Czasami zaczyna brakować pamięci na program puchnący wraz z wymaganiami klienta, który już nauczył się, że można od mikrokontrolera oczekiwać czegoś więcej i zaczynamy się rozglądać za mikrokontrolerami alternatywnymi. Czasami również jest konieczne zwiększenie szybkości wykonywania programu. Tak było i w moim wypadku: stanąłem przed obiema tymi kwestiami jednocześnie. Używałem AT89S8252 i kod wynikowy programu przekroczył rozmiar pamięci FLASH. Potrzebowałem mikrokontrolera o większej ilości pamięci lub zewnętrznej pamięci programu. Potrzebowałem również większej szybkości CPU, ponieważ niebezpiecznie rozrosły się funkcje realizowane w obsłudze przerwania jednego z Timer’ów. czytaj więcej