ZL27ARM: obsługa cyfrowego termometru TC77

 

Projektując urządzenia elektroniczne niejednokrotnie konieczny jest pomiar temperatury otoczenia. W opisywanym projekcie przedstawiono wykorzystanie scalonego termometru TC77 firmy Microchip z wyjściem cyfrowym (SPI) we współpracy z mikrokontrolerem z rodziny STM32. Dla wygody wykorzystano zestaw uruchomieniowy ZL27ARM z mikrokontrolerem STM32F103, w którym jest zamontowany układ TC77. Prezentacja zmierzonej temperatury odbywa się na dodatkowym module KAmodLCD1 z graficznym wyświetlaczem LCD.

Na rysunku 1 przedstawiono sposób dołączenia modułu wyświetlacza KAmodLCD1 do płytki ZL27ARM. Wyprowadzenia układu TC77 są dołączone do złącza szpilkowego w zestawie ZL27ARM – należy je dołączyć do odpowiednich linii portu PA (rysunek 1). Połączenie wygodnie jest wykonać za pomocą kolorowych przewodów CAB_A pokazanych na rysunku 2. Na rysunku 3 pokazano wyświetlacz LCD podczas pracy programu.

 

 

Rys. 1. Sposób dołączenia wyświetlacza i układu TC77 do mikrokontrolera STM32

Rys. 1. Sposób dołączenia wyświetlacza i układu TC77 do mikrokontrolera STM32

 

 

 

Rys. 2. Kolorowe przewody CAB_A ułatwiające wykonanie połączeń

Rys. 2. Kolorowe przewody CAB_A ułatwiające wykonanie połączeń

 

 

 

Rys. 3. Widok wyświetlacza podczas pracy programu

Rys. 3. Widok wyświetlacza podczas pracy programu

 

 

Zadaniem programu jest wyświetlenie temperatury zmierzonej przez układ TC77. Transmisja pomiędzy układem TC77 i mikrokontrolerem STM32 odbywa się przez interfejs SPI następująco:

  • ustawienie stanu niskiego na linii CS,
  • odczyt 16 bitów rejestru temperatury,
  • zapis 16 bitów do rejestru konfiguracyjnego,
  • odczyt 16 bitów rejestru ID,
  • wysłanie 8 lub 16 bitów do ustawienia trybu przetwarzania,
  • zakończenie transmisji przez ustawienie stanu wysokiego linii CS.

Należy zaznaczyć, że do odczytania tylko danych o temperaturze nie trzeba wykonywać przedstawionego procesu – wystarczy po odczycie rejestru temperatury zakończyć transmisję. Numer identyfikacyjny układu TC77 jest zapisywany w pierwszych 8 bitach rejestru i powinien mieć wartość 0x54.

Szczególną uwagę należy poświecić na obsługę transmisji SPI przez mikrokontroler STM32. Kierunek transmisji jest zależny od ustawienia bitu BIDIOE w rejestrze SPI_CR1. Jeśli ten bit jest ustawiony, linia działa jako wyjście. Jeśli bit BIDIOE jest wyzerowany, to linia działa jako wejście. Co ważniejsze, w trybie wysyłania danych na linii SCK jest generowany sygnał tylko podczas wysyłania danych, jednak już w trybie obioru sygnał zegarowy jest generowany ciągle. Należy zwrócić także uwagę na znaczniki w rejestrze SPI_SR. Wysyłanie danych można uznać za zakończone po wyzerowaniu znacznika BSY. Ustawienie znacznika TXE informuje o przesłaniu danych z bufora do wysyłania, a sam proces transmisji może nadal trwać. Trzecim ważnym znacznikiem jest RXNE – w momencie jego ustawienia dostajemy informacje, że w buforze znajdują się odebrane dane.

Główny program mikrokontrolera jest stosunkowo prosty. Składa się on z inicjalizacji bloku RCC mikrokontrolera oraz termometru cyfrowego. Następnie jest realizowana operacja pobrania ID układu TC77 oraz zapisanie wyświetlacza odpowiednimi danymi, a także konfiguracja przerwania pochodzącego od SysTick. Na listingu 1 przedstawiono funkcję main programu.

 

List. 1

Do pobrania

O autorze