- przetwornik cyfrowo-analogowy o rozdzielczości 10 bitów z jednym wyjściem,
- komunikacja poprzez magistralę I²C,
- zakres napięcia wyjściowego DAC wynosi 0...2,5 V, a prąd obciążenia nie może przekraczać 5 mA,
- praca w szerokim zakresie napięcia zasilania 2,7...5,5 V.
Przetwornik DAC to układ typu LTC1663, który wymaga do pracy tylko kilku elementów zewnętrznych. Jego struktura wewnętrzna została pokazana na rysunku 1. Jako źródło napięcia odniesienia przetwornika może posłużyć napięcie zasilania lub wbudowane źródło referencyjne o wartości 1,25 V.
Budowa i działanie
Schemat minimodułu został pokazany na rysunku 2. Komunikacja odbywa się poprzez magistralę I²C doprowadzoną do złącza I²C zgodnego ze standardem Grove. Rezystory R1, R2 polaryzują magistralę. Układ przetwornika U1 typu LTC1663 wymaga do pracy tylko odsprzęgnięcia zasilania elementami C1, CE1, FB1. W przypadku współpracy z wbudowanym źródłem zakres napięcia wyjściowego DAC wynosi 0...2,5 V. Buforowane napięcie wyjściowe przetwornika dostępne jest na złączu OUT, które nie powinno być obciążone prądem większym niż 5 mA.
Konfiguracja źródła odniesienia oraz trybu pracy U1 odbywa się poprzez zapis rejestru Command. Dane zapisywane są w dwóch ośmiobitowych rejestrach LSB/MSB. Zapis odbywa się zgodnie z rysunkiem 3 podczas jednego cyklu.
W rejestrze Command ustawiane są trzy bity określające konfigurację:
B7...B3 – niewykorzystane,
B2 – BG, określa użyte napięcie odniesienia:
- BG=1 – wewnętrzne 1,25 V, napięcie wyjściowe 0...2,5 V,
- BG=0 – napięcie zasilania (domyślne);
B1 – SD, tryb pracy układu:
- SD=1 – tryb obniżonego poboru mocy, napięcie wyjściowe ustawione na 0 V,
- SD=0 – tryb pracy (domyślne);
B0 – SY tryb zapisu danych:
- SY=1 – aktualizacja tylko przy potwierdzeniu SYNC,
- SD=0 – aktualizacja po wykryciu sygnału Stop (domyślne).
Montaż i uruchomienie
Moduł zmontowany jest na dwustronnej płytce drukowanej, której schemat został pokazany na rysunku 4.
Sposób montażu jest klasyczny i nie wymaga opisu. Dla szybkiego sprawdzenia działania moduł można podłączyć do magistrali I²C Raspberry Pi. Za pomocą biblioteki i2ctools sprawdzamy obecność układu na magistrali poleceniem i2cdetect -y 1. Następnie do wyjścia OUT podłączamy woltomierz napięcia stałego i uruchamiamy prosty skrypt ltc1663.sh (listing 1), który umożliwia sprawdzenie poprawności działania DAC, ustawiając 4 wartości napięcia wyjściowego, przy napięciu odniesienia skonfigurowanym na zasilanie BG=0.
#!/bin/bash
echo "LTC1663 DAC ADR:0x20"
echo "DAC 0%"
i2ctransfer -y 1 w3@0x20 0x00 0x00 0X00
sleep 2
echo "DAC 25%"
i2ctransfer -y 1 w3@0x20 0x00 0xFF 0X00
sleep 2
echo "DAC 50%"
i2ctransfer -y 1 w3@0x20 0x00 0xFF 0x01
sleep 2
echo "DAC 100%"
i2ctransfer -y 1 w3@0x20 0x00 0xFF 0x03
sleep 2
Jeżeli wszystko działa poprawnie, można moduł zastosować we własnej aplikacji.
Układ dostępny jest pod adresem 0x20 i nie ma sprzętowej możliwości zmiany adresu. Jeżeli potrzebne jest użycie większej liczby przetworników, dostępne są układy ze zmienioną fabrycznie adresacją: LTC1663-1 (0x21), LTC1663-2 (0x22). Należy zwrócić uwagę na możliwą kolizję adresu z popularnymi ekspanderami PCF8574.
Adam Tatuś, EP
- R1, R2: 4,7 kΩ (SMD0603)
- C1: 0,1 μF ceramiczny 10 V (SMD0603)
- CE1: 10 μF tantalowy 10 V (SMD3216)
- U1: LTC1663CS5 (SOT-23-5)
- FB: koralik ferrytowy BLM18AG102 (SMD0603)
- I²C: złącze Grove (110990030)
- OUT: złącze śrubowe (DG381-3.5-2)