Witam
Mam taki problem.
Muszę wykonać TEORETYCZNIE projekt o następującej treści:
Wielokanałowy przetwornik A/C komunikujący się z uP.
Podać schemat układu oraz schemat blokowy programu. (RAM i ROM zewnętrzne)
Ilość przetwornikó - 4
czas rejestracji danych dla jednego przetwornika nie mniejszy niż 20sek.
przetworniki 12 - bit
Mikroprocesor 8051
Tak naprawde jestem z tego zielony a muszę wykonać to na zaliczenie a nie wiem od czego zacząć. gdyby ktoś był pomocny to ja byłbym wdzięczny....
wielokanałowy przetwornik A/C z 8051
Jeżeli to oznacza wybranie jakiegoś z dostępnych na rynku przetworników i jego podłączenie do '51 tomarcin_op pisze:Wielokanałowy przetwornik A/C komunikujący się z uP.
popatrz co mają w Analog Devices http://www.analog.com/IST/SelectionTabl ... ble_id=192 (wybrane same 12-bitowe)
pooglądaj dokumentację tych kostek i zobacz, która Ci podpasuje...
Polecam raczej jakiś z wyjściami szeregowymi I²C/Ser/SPI, ponieważ mając kontroler z zewnętrzym ROM/RAM aby zapiąć przetwornik
na magistralę trzeba będzie dobudować (lub przerobić istniejący) dekoder adresowy, a tak to wystarczy kilka wolnych bitów I/O
A potem to już z górki - na bazie dokumentacji rysujesz schemat aplikacyjny przetwornika, jeżeli wybierzesz jednokanałowy
no, to wtedy trzeba dać na wejściu jakiś analogowy multiplekser np. czterokanałowy typu CD4052B...albo zastosować cztery
przetworniki, skoro to teoretycznie ma być, to można sobie pozwalać...
Jak długo będziesz w stanie zbierać próbki z przetwornika to zależy od dwóch rzeczy:marcin_op pisze:czas rejestracji danych dla jednego przetwornika nie mniejszy niż 20sek
od częstotliwości odczytu próbek i rozmiaru dostępnej pamięci na ich przechowywanie.
prosta wyliczanka zakładająca 8 kilo RAM, 12-bitowy i 4-kanałowy przetwornik oraz czas akwizycji danych T = 20sek.
8192 / 4 = 2048 - tyle bajtów mamy na dane z jednego kanału
ponieważ ADC jest 12-bitowe, to dane z jednego pomiaru zajmą dwa bajty (jedno 16-bit słowo), cztery bity będą się niestety marnować
2048 / 2 = 1024 - tyle pomiarów można będzie zgromadzić dla jednego kanału
ponieważ czas jest 20 s, więc 20 / 1024 = ~19 ms - wykonując pomiar co około 19 milisekund, dostępną pamięc zapełnisz po 20 sek.
co do samego algorytmu...można zrobić taki jakby data-logger, czyli program będzie czekał w nieskończonej pętli
na polecenie rozpoczęcia zbierania danych, jak je odbierze, zacznie chomikować dane z przetwornika w pamięci czyli:
1024 razy wykona sekwencję:
ustaw kanał 1, wykonaj pomiar, zapisz wynik.....ustaw kanał 4, pomiar, zapis wyniku
a gdy skończy - odeśle np. przez RS232 zebrane dane i będzie czekał na następny rozkaz zbierania danych...
ale to już różnie można zrobić, niekoniecznie tak....
pozdrawiam,
tasza