sobota, 27 lutego 2016

Układy SMD - obudowy cz. 1.

Ten post będzie zawierał prezentację niektórych obudów układów wraz z przykładowymi modelami tych układów. Elementy zwane SMD Surface Mount Devices, przeznaczone są do montażu powierzchniowego zwanego Surface Mount Technology. 

W tej części przedstawię obudowy diod, kondensatorów, rezystorów oraz tranzystorów jakie występują w opisywanej technologii. 

ESD - podłączenie stanowiska, pomiary

W tym poście chciałbym poruszyć dwa tematy, jeden z nich będzie dotyczył poprawnego uziemienia pracownika na stanowisku, drugi natomiast będzie dotyczył sposobu dokonywania pomiarów.

Aby mieć pewność co do zabezpieczeń, oraz możliwości uszkodzenia układów należy przestrzegać czterech podstawowych zasad:
  1. Należy z góry przyjąć iż wszystkie komponenty elektroniczne są wrażliwe na wyładowania elektrostatyczne.
  2. Komponenty należy dotykać tylko w odpowiednim zabezpieczeniu, a najlepiej w strefie EPA.
  3. Transport oraz przechowywanie elementów powinno się odbywać tylko w przystosowanych do tego pojemnikach i z odpowiednim ich zabezpieczeniem.
  4. Zastosowane środki ochronne należy regularnie sprawdzać np. opaska nadgarstkowa powinna być codziennie sprawdzana.

czwartek, 25 lutego 2016

ESD - Wyładowania elektrostatyczne. jak się przed nimi chronić

Ten post będzie zawierał czym są wyładowania elektrostatyczne, co mogą powodować oraz jak się przed nimi chronić.


Rys. 1. Symbol elementów bezpiecznych przeciw ESD

poniedziałek, 22 lutego 2016

[0] Altium Designer - Tworzenie biblioteki, element DIP

W tym poście chciałbym przedstawić sposób tworzenia biblioteki z modelami elementów do schematu oraz PCB w programie Altium Designer. Jako przykład zostanie wykonana ATmega328P w obudowie DIP 28.

Nowy element powinien składać się z dwóch lub trzech elementów, pierwszym z nich jest model PCB, gdzie należy pilnować wszystkich wymiarów, zgodnych z dokumentacją producenta. Drugim elementem jest model schematu, w tym przypadku obowiązkowo trzeba mieć na uwadze odpowiednie podpisanie pinów, sam wygląd jest dowolny. Trzecim, opcjonalnym elementem jest model 3D. Taki model można wykonać np. w programie Solid Works.

sobota, 20 lutego 2016

[22] Arduino - Czujnik opadów

Ten post będzie zawierał opis programu pozwalającego na zastosowanie czujnika opadów YL-83. Czujnik składa się z dwóch elementów próbówki oraz samego czujnika.


Rys. 1. Czujnik opadów YL-83

czwartek, 18 lutego 2016

Zasady pisania zrozumiałego i czytelnego kodu

Ten post będzie zawierał wskazówki oraz zasady jakimi należy się kierować, aby przygotować maksymalnie czytelny i zrozumiały kod, nie tylko dla innego użytkownika, ale też dla autora gdy przyjdzie mu po dłuższym czasie do niego zaglądnąć.

Podstawowe zasady


Przy pisaniu kodu programu należy pamiętać o kilku bardzo istotnych elementach:

Zmienne stosowane w programie powinny być o możliwie jak najmniejszym zasięgu. Oznacza to, że jeżeli jest ona potrzebna tylko w jednej funkcji, to zostaje zdeklarowana tylko w niej. Nie należy jej deklarować tak aby była dostępna dla całego programu. Dzięki takiemu zabiegowi kod jest mniejszy przez co wykonuje się szybciej ponieważ nie wykorzystuje pamięci ram tylko bezpośrednio rejestry układu.

środa, 17 lutego 2016

[0] STM32F4 - Discovery - Ustawienie maksymalnej częstotliwości taktowania

W pierwszej części opisałem sposoby taktowania mikrokontrolera zamontowanego na płytce Discovery czyli STM32F407VG.

Keil uVision - zewnętrzne źródło taktujące


W celu odpalenia maksymalnej częstotliwości z zewnętrznego oscylatora należy dokonać następujących zmian w plikach programów.

poniedziałek, 15 lutego 2016

[2] STM32F4 - Discovery - Biblioteka - Niezależny układ czuwający Watchdog

W tym poście zaprezentuję sposób wykonania biblioteki dla niezależnego układu czuwającego, który został opisany w poście [8]. Całość będzie się składała z dwóch plików.

Elementy biblioteki:

[8] STM32F4 - Discovery - Watchdog - Niezależny układ czuwający

Ten post będzie zawierał przerobiony program z mikrokontrolera STM32F103RB, który został opublikowany w jednym z poprzednich postów.

Watchdog w STM32F4


Podobnie jak poprzednio w tym mikrokontrolerze występują dwa rodzaje układów czuwających, niezależny i okienkowy.

Pierwszy z nich taktowany jest z LSI, którego częstotliwość oscyluje w okolicach 32 kHz. Co jest jego niewątpliwą zaletą, ponieważ może działać właściwie w każdym przypadku poprawnie. Dodatkowo ten sygnał może zostać podzielony przez wartości będące potęgą dwójki, maksymalnie dzielnik może wynosić 256 minimalnie 4. Wobec tego najmniejsza wartość częstotliwości może wynosić 128Hz. 

sobota, 13 lutego 2016

[14] STM32 M3 - Nucleo - F103RB - Watchdog

W tym poście opiszę sposób w jaki obsłużyć układ Watchdoga w mikrokontrolerze F103RB.

Watchdog


Watchdog inaczej układ czuwający jest odpowiedzialny za automatyczne zresetowanie mikrokontrolera gdy zostanie wykryte zawieszenie programu. Cały proces odbywa się bez udziału użytkownika. Stosowany jest on jako środek zaradczy w przypadku wystąpienia nieprzewidzianego problemu. 

Jego działanie jest dosyć proste, opiera się na zasadzie działania licznika, który jest wywoływany w programie co określony interwał czasowy. Jeśli licznik z jakiegoś powodu nie zliczy do zera, będzie to oznaczało zawieszenie mikrokontrolera, co spowoduje jego zresetowanie przez układ watchdoga.

środa, 10 lutego 2016

[13] STM32 M3 - Nucleo - F103RB - EEPROM, I2C

Niedawno przedstawiłem opis programowanej EEPROM poprzez układ Arduino. Tym razem przyszła kolej na STM32. Może to być w niektórych projektach wyjątkowo przydatny element do zastosowania, ponieważ STM32F103 jak i również STM32F4 nie posiada wbudowanej pamięci EEPROM. Do komunikacji z pamiecią zostanie wykorzystany interfejs I2C. 

I2C


Inter-Integrated Circuit został opracowany przez firmę Philips. Jest wykorzystywany do transmisji szeregowej, synchronicznej w trybie naprzemiennego odbierania i nadawania danych (half-duplex). 

Dostępne są trzy wersje tego interfejsu różniące się między sobą szybkością transmisji:
  • Standardowy (Standard) - 100kb/s
  • Szybki (Fast Mode) - 400kb/s
  • Wysoka prędkość (High Speed Mode) - 3,4 Mb/s

poniedziałek, 8 lutego 2016

C - Pętla Do...While

W tym poście chciałbym przedstawić opis pętli Do..While.

Wygląda ona następująco:

do
{
  //Wykonywalne
  //Instrukcje
}while(warunek)

niedziela, 7 lutego 2016

Wymiana pasty termoprzewodzącej na procesorze

W tym poście przedstawię w jaki sposób wymienić pastę na procesorze zamontowanym w laptopie firmy Asus.

Odkręcenie mocowania:


W pierwszym kroku należy odkręcić tylną klapę zasłaniającą dojście do układu chłodzenia. Całość należy oczywiście poprzedzić odłączeniem źródła zasilania oraz wyciągnięciem baterii.


Rys. 1. Tylna klapa w laptopie

piątek, 5 lutego 2016

C - Pętla While

Tym razem opiszę zasadę działania oraz sposoby wykorzystywania pętli while.

Wygląd pętli while:

while(warunek)
{
   //Dalsza część
}

Pętla ta będzie się wykonywać dopóki warunek wpisany w nawiasie będzie prawdziwy. Nie zostanie wykonana nawet raz, w przeciwieństwie do pętli for, jeżeli warunek nie zostanie spełniony.

poniedziałek, 1 lutego 2016

C - zamiana liczby całkowitej na binarną

W tym poście przedstawię krótki program, którego zadaniem będzie zamiana wartości liczbowej całkowitej na binarną.

C - Pętla For

Ten post będzie zawierał opis działania i wykorzystania pętli for. Prezentuje się ona w następujący sposób.

for(start; stop; krok)
{
  //...
}