Aktualizacja: 2013-08-13

Moduł TTMSB USB - Time Temperature Motor Switch Beeper

ARTYKUŁ W OPRACOWANIU.

Cele

Celem projektu jest budowa modułu który za pośrednictwem otrzymanych z portu USB lub UART instrukcji będzie realizował następujące funkcje:

Zasilanie urządzenia realizowane jest z portu USB, natomiast silników opcjonalnie z portu USB bądź z zewnętrznego źródła (możliwość dostarczenia wyższego napięcia i mocy).

1. Projekt PCB

Urządzenie zostało zaprojektowane z zastosowaniem podzespołów montowanych metodą przewlekaną (THT). Rozmiar PCB wynosi 110mm na 86mm.

Rys. Projekt PCB urządzenia wraz z umiejscowieniem podzespołów.


2. Podzespoły urządzenia

Głównym podzespołem jest mikrokontroler PIC18F4550, który otrzymując instrukcje przez port USB lub UART odsyła ewentualne wyniki zapytań i steruje podłączonymi układami realizującymi założone cele.

 

Rys. Relacje między głównymi podzespołami modułu TTMSB.

Wykaz podzespołów

OznaczenieWartość
R1, R2, R3 10k
R7, R5, R6 4,3k
R8 4,7k
R4, R9 470
C3 220nF
C1, C2 22pF
C4 100nF
C5 100uF
U1 PIC18F4550
U2 DS1307
U3 CR2032 (bateria 3,3V)
U4 HCM1005 (brzęczyk 5V)
U5 DS18B20
Q1, Q2, Q3 2N3904
D1, D15 dioda LED
D2 - D14 1N4004
IC2 L298N
K1, K2 HFKW 005-1ZW (przekaźnik 5V)
X1 20MHz (kwarc)
X2 32,768 kHz (kwarc)
J1 USBB-G (gniazdo kątowe 90st.)
J2 - J10 listwa kołkowa

 

2.1. Złącza

 

Rys. Złącza modułu TTMSB.

Tab. Oznaczenia złącz modułu TTMSB

Oznaczenie Funkcja
UART Szeregowy port komunikacyjny do wymiany danych z innymi urządzeniami
USB Port komunikacyjny z urządzeniem sterującym
I2C Szeregowa magistrala danych I2C
1W Magistrala 1Wire
ICSP Łącze programatora mikrokontrolera
A/C Port przetwornika analogowo-cyfrowego
R1 Wyjście pierwszego przekaźnika, włącz/wyłącz urządzenie zewnętrzne
R2 Wyjście drugiego przekaźnika, włącz/wyłącz urządzenie zewnętrzne
M1 Gniazdo pierwszego silnika DC
M2 Gniazdo drugiego silnika DC
Z Zwora wyboru źródła zasilania silników (zewnętrzne / USB)
V1 Gniazdo zewnętrznego zasilania silników

 

2.1.1. Złącze UART

Szeregowy port komunikacyjny pracuje w standardzie napięć TTL.

2.1.1. Gniazdo USB

Gniazdo USB dostarcza zasilania głównym podzespołom modułu, za jego pośrednictwem odbywa się komunikacja z urządzeniem sterującym.

2.1.2. Złącze I2C

Złącze szeregowej magistrali danych zostało rozszerzone o dwa piny zasilające podłączone do magistrali urządzenia.

2.1.3. Złącze 1Wire

Złącze magistrali 1Wire zostało wyposażone w pin zasilający, umożliwia to zasilanie urządzeń do niej podłączonych trybem normalnym i pasożytniczym.

 

2.1.4. Złącze ICSP

Mikrokontroler programowany jest w standardzie wysokonapięciowym, złącze ICSP zostało wyposażone w diody zabezpieczające przed uszkodzeniem pozostałe podzespoły urządzenia w trakcie programowania.

Rys. Wyprowadzenia złącza ICSP

2.1.5. Złącze A/D

W opracowaniu

2.1.6. Złącze Przekaźnika

W opracowaniu

2.1.7. Złącze silnika

W skład złącza silnika wchodzą dwie pary pinów dla dwóch silników prądu stałego:

2.1.8. Zwora wyboru źródła zasilania silników

Silniki prądu stałego podłączone do złącza S1 i S2 mogą być zasilane z jednego z dwóch źródeł:

2.1.9. Gniazdo zewnętrznego zasilania silników

Z uwagi na małą wydajność prądową portu USB oraz stosunkowo niskie napięcie, moduł został wyposażony w gniazdo opcjonalnego zewnętrznego zasilania silników, które należy podłączyć do zasilacza o napięciu zależnym od napięcia pracy silników. Gniazdo posiada zabezpieczenie w postaci diody, chroniącej przed podłączeniem odwrotnej polaryzacji.

Tab. Parametry zewnętrznego źródła zasilania

Maksymalne napięcie zasilania 46 V
Maksymalne obciążenie 2 A

 

2.2. Mikrokontroler

Czterdziestopinowy mikrokontroler PIC18F4550 o mocy obliczeniowej 12 MIPS został wyposażony przez producenta w sprzętowy port USB 2.0, UART oraz magistralę I2C oraz SPI. Pracuje w przedziale napięć od 2V do 5,5V. Oddaje do dyspozycji 32KB pamięci programu typu Flash i 2048 B pamięci RAM. Posiada 10 bitowy przetwornik analogowo cyfrowy, timer 8 bitowy i trzy timery 16 bitowe.

Rys. Wyprowadzenia PIC18F4550.

 

 

2.3. Sterownik silników

Za sterowanie dwoma silnikami napięcia stałego odpowiedzialny jest układ L298N, będący dwukanałowym mostkiem H. Jego Napięcie zasilania może wynosić maksymalnie 46V a prąd chwilowy 2A. Sterownik znajduje się w obudowie Multiwatt15. 

Rys. Sterownik silnika L298N.

2.4. Zegar czasu rzeczywistego

Układ scalony DS1307 jest zegarem czasu rzeczywistego. Mikrokontroler odczytuje aktualny czas z zegara za pośrednictwem magistrali I2C. W przypadku zaniku zewnętrznego zasilania, zegar automatycznie przełącza się na zasilanie awaryjne z baterii 3,2V.

Rys. Zegar czasu rzeczywistego DS1307.

W pamięci mikrokontrolera zarezerwowane jest miejsce dla sześciu zmiennych typu byte w których przechowywana jest aktualna data i czas.

byte sec,min,hour,day,month,year;

Funkcja odczytująca dane z zegara czasu rzeczywistego odwołuje się do funkcji "read_ds1307" zdefiniowanej w bibliotece napisanej dla tego układu (biblioteka dostępna w dziale 4 - Pliki).

void read_time(){
  sec=bcdToDec(read_ds1307(0));
  min=bcdToDec(read_ds1307(1));
  hour=bcdToDec(read_ds1307(2));
  day=bcdToDec(read_ds1307(4));
  month=bcdToDec(read_ds1307(5));
  year=bcdToDec(read_ds1307(6));
}

2.5. Czujnik temperatury

Odczyt temperatury realizowany jest za pomocą czujnika DS18B20. Komunikacja między mikrokontrolerem a czujnikiem odbywa się po magistrali 1Wire, która umożliwia jednoczesne podłączenie wielu czujników. Jeden układ zainstalowany jest na płycie modułu, kolejne mogą zostać podłączone do złącza 1Wire (rodział 2.1.3).

 

Rys. Wyprowadzenia układu DS18B20

 

3. Komunikacja

Komunikacja z modułem TTMSB może odbywać się na dwa sposoby:

Tab. Parametry połączenia

  UART USB CDC (wirtualny COM)
Prędkość 9600 bps 115200 bps
Bity danych 8 8
Parzystość brak brak
Bity stopu 1 1
Kontrola brak sprzętowa

 

3.1 Protokół komunikacyjny

Urządzenie nadrzędne, wysyła polecenia w postaci literałów znakowych typu char.

Tab. Instrukcje sterujące modułem TTMSB 

Instrukcja Opis
HEX ASCII Działanie Uwagi
73 s Sygnał dźwiękowy  
6D m Włączenie/wyłączenie przełącznika 1  
6E n Włączenie/wyłączenie przełącznika 2  
74 t Odczyt temperatury Zwracana liczba typu float
6C l Silnik I w lewo  
72 r Silnik I w prawo  
64 d Silnik II w lewo  
75 u Silnik II w prawo  
63 c Konfiguracja pracy silnika Należy wybrać długość trwania impulsu napięcia:
1 - 1ms
2 - 400ms
3 - 1s
79 y Odczyt danych z zegara Zwracany aktualna data i czas w formacie: dd-mm-yy hh:mm:ss
6F o Ustawienie aktualnego czasu Po wydaniu komendy "o" mikrokontroler oczekuje na podanie kolejno:
dnia, miesiąca, roku, godziny, minuty, sekundy.
70 p Instrukcja testująca Oczekiwana odpowiedź urządzenia "ok".

 

4. Pliki

Pliki projektu.

Noty katalogowe.

5. Odnośniki

Wyślij komentarz