Miniscope v2e

Bardzo prosty oscyloskop PC/USB z mikrokontrolerem STM32F042.

Specyfikacja:

Zapowiedziana w styczniu 2014 podrodzina mikrokontrolerów z rdzeniem Cortex-M0 wyposażona w interfejs USB full-speed zdolny do pracy bez rezonatora kwarcowego pozwala na obcięcie części kosztów przy budowie oscyloskopu/rejestratora podobnego do miniscope v2c/v2d. W szczególności interesujące są mikrokontrolery STM32F042F ze względu na zastosowanie obudowy TSSOP20 i minimalną liczbę linii zasilających co upraszcza druk.

STM32F042F4 wyposażony jest w bootloader USB (DFU), pojedynczy przetwornik analogowo-cyfrowy 1MSps, 16 kB pamięci FLASH i 6 kB pamięci RAM.

Schemat

miniscope_v2e_20140501.pdf
Rezystor 1k5 (USB pull-up) nie powinien być montowany - STM32F042 posiada wewnętrzny pull-up, używany też przez wbudowany bootloader.
Wersja z 2015.02.20 używa dzielnika napięciowego R8 27k + R4 51k.
Wykorzystać można stabilizator 3V (użyty przeze mnie) lub 3,3V.
Z porównania schematu ze schematem kitu Discovery dla STM32F072 wynika, że prawdopodobnie układ mógłby obyć się bez kilku elementów RC stanowiących filtr na liniach USB data.
Jeżeli częste zmiany firmware nie są przewidywane przełącznik SMD wprowadzający mikrokontroler w tryb bootloader może być zastąpiony zworką/jumperem.

Pliki Eagle

Miniscope v2e Eagle PCB

Wczesna, niezoptymalizowana wersja płytki mieszająca techniki THT i SMD: miniscope_v2e_eagle.zip
Biblioteka Eagle z STM32F042Fx: STM32F042Fx.lbr
Bieżąca wersja: miniscope_v2e_eagle_20150113.zip. Oparta tylko o elementy SMD (praktycznie - z wyjątkiem otworów na kołki będące elementem gniazda USB - brak konieczności wiercenia). Przeznaczona do opakowania w rurkę termokurczliwą i używania jak sondy.
PDF do wydruku dla metody termotransferowej: miniscope_v2e_pcb_panelized.pdf
miniscope v2e PCB
Z przylutowaną sondą (spinacz do papieru), krokodylkiem łączącym masę i kablem mini-USB:
miniscope v2e assembled
Top: (prawie) brak potrzeby wiercenia:
miniscope v2e top
Aplikacja PC (miniscope v4):
miniscope v4
Z testów praktycznych - wygoda użytkowania zależy w dużym stopniu od giętkości i ciężaru kabla USB - w szczególności kable z filtrem ferrytowym przy wtyku mini-USB nie są dobrym wyborem.

Firmware

Pierwsza wersja (nie polecana!).
Konfiguracja ADC: 8bit (9.5 cykli SAR), czas próbkowania 13.5 cykla, zegar ADC 12MHz. Wynikowa częstotliwość próbkowania = 12M/(13.5+9.5) = 521.7k [Sps].
Uwaga: biblioteka DLL jest skompilowana z myślą o zaresie pomiarowym 6V (użyty regulator napięcia 3V). Dla zaresu 6.6V (gdy użyte jest zasilanie 3.3V i dzielnik 1:2 wymagane jest przekompilowanie biblioteki lub użycie funkcji kalibracji w GUI (miniscope v4).
Firmware (Keil v5 Lite): miniscope_v2e_20150215.7z
DLL (TC++ Explorer) + win driver: miniscope_v2e_dll_20150215.7z

2015.02.20 update

Komplet plików wynikowych (GUI, firmware, DLL, sterownik): miniscope_v2e_20150220.7z.

Start

Miniscope v2e jest bardzo podobny do v2d ze względu na to, że zarówno STM32F0x2 jak i STM32F3 używają bootloadera USB zawartego w pamięci ROM.

Dla wprowadzenia w tryb bootloader należy przy odłączonym przewodzie USB wcisnąć przycisk i nie puszczając go podłączyć USB. Urządzenie powinno zostać wykryte jako urządzenie klasy DFU. Do zapisu firmware można użyć aplikacji STM DFUse demo lub podobnej. Bezpośrednio po zapisie wykryte zostanie nowe urządzenie.

Firmware Miniscope v2e bazuje na przykładzie CDC i jest wykrywane jako urządzenie złożone. Interfejs 01 jest interfejsem obsługującym transfer bulk i odpowiadający mu sterownik (libusb) jest zawarty w pakiecie. Po zainstalowaniu sterownika urządzenie będzie widoczne w menedżerze urządzeń w grupie libusb-win32. Interfejs 00 (pozostałość po CDC, control interface) jest nieużywany i pozostanie bez sterownika.

Analogicznie do miniscope v2c i v2d główna aplikacja jest odrębnym projektem - miniscope v4. Po rozpakowaniu biblioteka miniscope_v2e.dll powinna być skopiowana do podkatalogu /device a następnie wybrana w konfiguracji po uruchomieniu.

Problemy