miniscope; single-chip DSO

Wprawka przed realizacją projektu wirtualnego oscyloskopu cyfrowego. Głownym celem jest opracowanie koncepcji aplikacji PC współpracującej z oscyloskopem/rejestratorem wirtualnym, przetestowanie kontrolek i algorytmów, wychwycenie potencjalnych problemów związanych z transmisją danych poprzez USB. Wersja pre-pre-alfa;).

Aktualnie rejestrator pozbawiony jest jakiegokolwiek kondycjonera analogowego, część sprzętowa uproszczona jest do minimum. Maksymalna częstotliwość próbkowania wynosi 25kSPS.

Pakiet zawierający istniejącą (bardzo ograniczoną!) dokumentację projektu oraz statycznie skompilowaną aplikację:
miniscope_setup.exe

Program nie jest obecnie wspierany i rozwijany - jeżeli szukasz programu tego typu odwiedź stronę projektu miniscope v3.

Nawiązaniem do projektu jest plugin do programu miniscope v3 umożliwiający wykorzystanie jako urządzenia wejściowego mikrokontrolera Microchip z uruchomionym przykładem Generic HID demo z pakietu MCHPUSB 2.5. Maksymalna częstotliwość próbkowania możliwa do uzyskania bez przerabiania tego programu jest bardzo niska (poniżej 1000Hz) ze względu na to, że w raportach HID przesyłane są pojedyncze próbki.

Ze względu na niechęć do sposobu organizacji projektów wewnątrz nowszych wersji MCHPUSB (wieloplatformowość kosztem przejrzystości) przerobiłem przykład Generic HID demo wraz z zestawem plików stosu USB na potrzeby płytki z PIC18F2550 w taki sposób, aby zawrzeć wszystkie moduły wchodzące w jego skład w jednym katalogu. Poza dir_lib wszystkie ścieżki wewnątrz pliku projektu są względne. Ze względu na utrudniające życie ograniczenie długości ścieżek plików dla narzędzi C18 archiwum powinno zostać rozpakowane blisko katalogu głównego.
PIC18F2550_HID.zip - Generic HID demo

Biblioteka hidpic.dll jest skompilowana z użyciem MinGW z pakietu Code::Blocks 8.02. Ściąganie DDK nie jest wymagane - niezbędne pliki są częścią MinGW. Projekt korzysta z kilku plików nagłówkowych ze źródeł miniscope v3 - oba projekty powinny znaleźć się na tym samym poziomie drzewa katalogów.
Źródła biblioteki zawierają wyodrębnione moduły do komunikacji z urządzeniami klasy HID oraz detekcji dołączenia/odłączenia urządzeń (komunikat WM_DEVICECHANGE przetwarzany w pętli ukrytego okna).
hidpic_dll.zip - plugin dla miniscope v3
Uwaga: użycie nowszej wersji MinGW (dystrybuowanej z C::B 10.05, 4.4.1) wymaga dodania do opcji kompilacji -fshort-enums (użycie pól enum przy deklarowaniu interfejsu nie było najlepszym rozwiązaniem).

Podczas nauki obsługi HID powstał także "wolnostojący" projekt demonstrujący komunikację z układem (sterowanie diodą LED, odczyt stanu przełącznika, odczyt ADC).
hid_test.zip - Generic HID - native demo