Przedstawiam "CLR2313"; czyli miernik pojemności, indukcyjności i rezystancji na ATtiny2313 (AT90S2313).
Pomiar parametrów elementów pasywnych to jeden z problemów w pracy majsterkowicza. Chciałem zaprojektować urządzenie, które parametrami nie będzie zbytnio odbiegać od podobnych amatorskich konstrukcji. Oczywiście, i wśród konstrukcji amatorskich jest sporo poważnych projektów. Ale zazwyczaj są one zbyt trudne do odtworzenia i wymagają elementów, które sporo kosztują, a także trudno je prawidłowo ustawić. Dlatego chciałem stworzyć urządzenie niezbyt drogie i przy użyciu najbardziej popularnych elementów.
Schemat został oparty na "generacyjnej" metodzie pomiaru. Jako generatora użyjemy przerzutnik Schmitta, który zapewni urządzeniu zdolność do pracy w pełnym zakresie pomiarów.
Ze schematu przedstawionego na rysunku 1 wynika, że w celu zmierzenia C i LR należy zastosować oddzielne generatory, przełączane za pomocą mikrokontrolera w zależności od wymaganego trybu pracy. Wyjścia generatorów za pośrednictwem układu przechodzą na wejście ICP mikrokontrolera ATtiny2313 (AT90S2313), taktowanego rezonatorem kwarcowym.
Parametry urządzenia
Zakres pomiarowy:
C 0,0 pF ... >9999µF
L 0,0 µH ... ~9999 mH
R 0,0 Om ... >9999 kOm
Jest podzielony na automatycznie wybierane zakresy z wyświetlaniem wartości na wyświetlaczu TIC8148(TIC55).
Źródłem zasilania jest ogniwo (bateria) 3,6V ze stabilizatorem 3V. Zużycie prądu w trybie pracy wynosi < 4,5mА, w trybie standby - < 2µA.
Czas pomiaru wynosi przykładowo ~0.3s dla wszystkich zakresów z wyjątkiem najwyższego.
Przełączenie kanałów pomiarowych za pomocą przycisku „TRYB” („РЕЖИМ”).
Korekcja parametrów pasożytniczych sond wejściowych przy użyciu przycisku „>0<”. Ten przycisk jest również wykorzystywany do kalibracji układu w celu ustawienia „0” na wyświetlaczu.
Włączanie/wyłączanie za pomocą przycisku „ON/OFF”.
Wzór na obliczenie wartości pojemności i rezystancji:
Cx=Co*(nx*No/no*Nx)-Co= Co*[(nx*No/no*Nx)-1]
Rx=Ro*(nx*No/no*Nx)-Ro= Ro*[(nx*No/no*Nx)-1]
Wzór na obliczenie wartości indukcyjności:
Lx=Lo*(nx*No/no*Nx)^2-Lo=Lo*[(nx*No/no*Nx)^2-1]
W powyższych wzorach przyjęto, że:
Cx(Lx,Rx) = wartość mierzonego parametru
Co(Lo,Ro) = wartość elementu wzorcowego
No = pełna liczba okresów generacji z podłączonym elementem wzorcowym
Nx = pełna liczba okresów generacji z podłączonym mierzonym elementem
no = pełna liczba okresów Fo w czasie przebiegu No
Nx = pełna liczba okresów Fo w czasie trwania Nx
Fo = częstotliwość taktowania mikrokontrolera
Kalibracja urządzenia odbywa się w sposób tradycyjny. Na początku określa się się punkt zerowy, następnie mnożnik, który będzie określać nachylenie skali.
Na rysunku 2 pokazano, jak należy to zrobić. W momencie pierwszego włączenia układu, wyświetlane wartości będą dość nieprzewidywalne, co zaznaczono liniami w kolorze żółtym i niebieskim. Czerwona linia wskazuje prawidłową pracę urządzenia. Jeśli w tym momencie włączymy przycisk „>0<”, niebieska i żółta linia przemieszczą się w taki sposób, że będą przechodzić przez początek współrzędnych. Praktycznie oznacza to tyle, że jeśli nic nie będzie podłączone do wejść kanału „C” lub wejścia „L”(„R”) będą zwarte, na wskaźniku pojawi się „0.0”. Jeśli teraz podłączymy element przyjęty za wzorcowy i odczytamy wartości, będzie można określić odchylenie położenia skali od wymaganego i je skorygować. Niestety, ostatnią procedurę w tym schemacie trzeba będzie przeprowadzić ręcznie, ponieważ zabrakło miejsca w pamięci programu, a nie chciało mi się przechodzić na bardziej „pojemny” mikrokontroler.
Procedurę kalibracji zaś najlepiej przedstawić na konkretnym przykładzie.
Załóżmy, że mamy wzorcowy kondensator o pojemności 669pF.
Po zaprogramowaniu sterownika (FLASH, EEPROM, FUSE bity) i odłączenia go od programatora, pozwólmy popracować układowi przez jakieś 10 minut dla wygrzania i ustalenia się punktu pracy. W tym czasie można sprawdzić reakcję na przyciski.
Kalibracja:
1. Za pomocą przycisku „Tryb” wybieramy kanał „C”.
2. Upewniamy się, że do wejść kanału „C” nic nie jest podłączone.
3. Wciskamy przycisk „>0<”. Po wyświetleniu się „0.0” puszczamy przycisk.
4. Do wejść kanału „C” podłączamy wzorcowy kondensator.
5. Wyniki zapisujemy.
W moim przypadku wyszło „531.0”.
Kolejne czynności, które wykonujemy:
- odnajdujemy współczynnik korekcji 669:531=1,2598870056497175141242937853107,
- otwieramy kod źródłowy i widzimy, że w EEPROM przy znaczniku COEFF_Co dopisano 000102FA==66'298,
- mnożymy 66'298*1,2598870056497175141242937853107=83'528==0001 4648,
- podłączamy programator, odczytujemy EEPROM,
- wartość E_CONST_C otrzymaną poprzez wciśnięcie przycisku „>0<” przenosimy do „źródła”. Przenosimy również otrzymaną wartość COEFF_Co=0001 4648,
- kompilujemy „źródło”,
- otrzymane wartości zapisujemy w .hex i .eep w pamięci mikrokontrolera,
- całość sprawdzamy.
Kalibracja kanałów „L” i „R” jest przeprowadzana w sposób analogiczny, ale przed wciśnięciem przycisku „>0<'”, aby otrzymać wartość punktu zerowego, wszystkie gniazda wejściowe powinny być zwarte.
Z pewnością trzeba będzie powtórzyć tę procedurę, żeby otrzymać dokładniejsze wyniki.
Elementy
Cewka indukcyjna jest ciasno nawinięta izolowanym drutem miedzianym o średnicy 0,2mm, zwój przy zwoju, na pierścieniu ferrytowym ze starej płyty głównej. Następnie uzwojenie pokryłem dobrym klejem i wysuszyłem.
W tym momencie nie jest ważne jaką indukcyjność otrzymaliśmy. Najważniejsza jest stałość jej parametrów. Właściwie to dotyczy wszystkich elementów generatora.
Dopuszczalne zamiany
1.Rezonator kwarcowy 6...10MHz.
2.Rezystory wzorcowe R1, R2 1...3kOm
Postarałem się, aby na schemacie były widoczne pewne cechy konstrukcyjne, a dokładniej:
- oddzielne obwody zasilania, mające na celu wykluczenie zakłócania generatorów pomiarowych przez mikrokontroler czy wyświetlacz.
- w celu zwiększenia stabilności częstotliwości rezonatora kwarcowego, jego obudowę połączono z dziesiątą nóżką (GND) mikrokontrolera.
Również postanowiłem odejść od stosowania wszelkich zworek, przewodów taśmowych. Całe urządzenie zostało zmontowane na jednej płytce. No cóż, może nie jest zbyt piękna - to moje pierwsze doświadczenia z robieniem płytek domowym sposobem.
Program
Został napisany w asemblerze AVR STUDIO 3.21. Uruchomiłem go za pomocą AT90S2313, a przy testach na sprzęcie użyłem ATtiny2313. W ten sposób układ powinien pracować i z AT90S2313.
Archiwalny rysunek stanu FUSE bitów powinien pomóc prawidłowo je ustawić dla prawidłowej pracy układu.
Wadą programu jest konieczność ręcznego zapisu EEPROM przy kalibracji układu (mikrokontroler ma za małą pamięć).
Źródło: http://radiokot.ru/circuit/digital/measure/38/
Załączniki:
Płytka drukowana w formacie SL 5.0.
Wsad do mikrokontrolera wraz ze źródłem.
Pomiar parametrów elementów pasywnych to jeden z problemów w pracy majsterkowicza. Chciałem zaprojektować urządzenie, które parametrami nie będzie zbytnio odbiegać od podobnych amatorskich konstrukcji. Oczywiście, i wśród konstrukcji amatorskich jest sporo poważnych projektów. Ale zazwyczaj są one zbyt trudne do odtworzenia i wymagają elementów, które sporo kosztują, a także trudno je prawidłowo ustawić. Dlatego chciałem stworzyć urządzenie niezbyt drogie i przy użyciu najbardziej popularnych elementów.
Schemat został oparty na "generacyjnej" metodzie pomiaru. Jako generatora użyjemy przerzutnik Schmitta, który zapewni urządzeniu zdolność do pracy w pełnym zakresie pomiarów.

Ze schematu przedstawionego na rysunku 1 wynika, że w celu zmierzenia C i LR należy zastosować oddzielne generatory, przełączane za pomocą mikrokontrolera w zależności od wymaganego trybu pracy. Wyjścia generatorów za pośrednictwem układu przechodzą na wejście ICP mikrokontrolera ATtiny2313 (AT90S2313), taktowanego rezonatorem kwarcowym.
Parametry urządzenia
Zakres pomiarowy:
C 0,0 pF ... >9999µF
L 0,0 µH ... ~9999 mH
R 0,0 Om ... >9999 kOm
Jest podzielony na automatycznie wybierane zakresy z wyświetlaniem wartości na wyświetlaczu TIC8148(TIC55).
Źródłem zasilania jest ogniwo (bateria) 3,6V ze stabilizatorem 3V. Zużycie prądu w trybie pracy wynosi < 4,5mА, w trybie standby - < 2µA.
Czas pomiaru wynosi przykładowo ~0.3s dla wszystkich zakresów z wyjątkiem najwyższego.
Przełączenie kanałów pomiarowych za pomocą przycisku „TRYB” („РЕЖИМ”).
Korekcja parametrów pasożytniczych sond wejściowych przy użyciu przycisku „>0<”. Ten przycisk jest również wykorzystywany do kalibracji układu w celu ustawienia „0” na wyświetlaczu.
Włączanie/wyłączanie za pomocą przycisku „ON/OFF”.
Wzór na obliczenie wartości pojemności i rezystancji:
Cx=Co*(nx*No/no*Nx)-Co= Co*[(nx*No/no*Nx)-1]
Rx=Ro*(nx*No/no*Nx)-Ro= Ro*[(nx*No/no*Nx)-1]
Wzór na obliczenie wartości indukcyjności:
Lx=Lo*(nx*No/no*Nx)^2-Lo=Lo*[(nx*No/no*Nx)^2-1]
W powyższych wzorach przyjęto, że:
Cx(Lx,Rx) = wartość mierzonego parametru
Co(Lo,Ro) = wartość elementu wzorcowego
No = pełna liczba okresów generacji z podłączonym elementem wzorcowym
Nx = pełna liczba okresów generacji z podłączonym mierzonym elementem
no = pełna liczba okresów Fo w czasie przebiegu No
Nx = pełna liczba okresów Fo w czasie trwania Nx
Fo = częstotliwość taktowania mikrokontrolera
Kalibracja urządzenia odbywa się w sposób tradycyjny. Na początku określa się się punkt zerowy, następnie mnożnik, który będzie określać nachylenie skali.

Na rysunku 2 pokazano, jak należy to zrobić. W momencie pierwszego włączenia układu, wyświetlane wartości będą dość nieprzewidywalne, co zaznaczono liniami w kolorze żółtym i niebieskim. Czerwona linia wskazuje prawidłową pracę urządzenia. Jeśli w tym momencie włączymy przycisk „>0<”, niebieska i żółta linia przemieszczą się w taki sposób, że będą przechodzić przez początek współrzędnych. Praktycznie oznacza to tyle, że jeśli nic nie będzie podłączone do wejść kanału „C” lub wejścia „L”(„R”) będą zwarte, na wskaźniku pojawi się „0.0”. Jeśli teraz podłączymy element przyjęty za wzorcowy i odczytamy wartości, będzie można określić odchylenie położenia skali od wymaganego i je skorygować. Niestety, ostatnią procedurę w tym schemacie trzeba będzie przeprowadzić ręcznie, ponieważ zabrakło miejsca w pamięci programu, a nie chciało mi się przechodzić na bardziej „pojemny” mikrokontroler.
Procedurę kalibracji zaś najlepiej przedstawić na konkretnym przykładzie.
Załóżmy, że mamy wzorcowy kondensator o pojemności 669pF.
Po zaprogramowaniu sterownika (FLASH, EEPROM, FUSE bity) i odłączenia go od programatora, pozwólmy popracować układowi przez jakieś 10 minut dla wygrzania i ustalenia się punktu pracy. W tym czasie można sprawdzić reakcję na przyciski.
Kalibracja:
1. Za pomocą przycisku „Tryb” wybieramy kanał „C”.
2. Upewniamy się, że do wejść kanału „C” nic nie jest podłączone.
3. Wciskamy przycisk „>0<”. Po wyświetleniu się „0.0” puszczamy przycisk.
4. Do wejść kanału „C” podłączamy wzorcowy kondensator.
5. Wyniki zapisujemy.
W moim przypadku wyszło „531.0”.
Kolejne czynności, które wykonujemy:
- odnajdujemy współczynnik korekcji 669:531=1,2598870056497175141242937853107,
- otwieramy kod źródłowy i widzimy, że w EEPROM przy znaczniku COEFF_Co dopisano 000102FA==66'298,
- mnożymy 66'298*1,2598870056497175141242937853107=83'528==0001 4648,
- podłączamy programator, odczytujemy EEPROM,
- wartość E_CONST_C otrzymaną poprzez wciśnięcie przycisku „>0<” przenosimy do „źródła”. Przenosimy również otrzymaną wartość COEFF_Co=0001 4648,
- kompilujemy „źródło”,
- otrzymane wartości zapisujemy w .hex i .eep w pamięci mikrokontrolera,
- całość sprawdzamy.
Kalibracja kanałów „L” i „R” jest przeprowadzana w sposób analogiczny, ale przed wciśnięciem przycisku „>0<'”, aby otrzymać wartość punktu zerowego, wszystkie gniazda wejściowe powinny być zwarte.
Z pewnością trzeba będzie powtórzyć tę procedurę, żeby otrzymać dokładniejsze wyniki.
Elementy
Cewka indukcyjna jest ciasno nawinięta izolowanym drutem miedzianym o średnicy 0,2mm, zwój przy zwoju, na pierścieniu ferrytowym ze starej płyty głównej. Następnie uzwojenie pokryłem dobrym klejem i wysuszyłem.
W tym momencie nie jest ważne jaką indukcyjność otrzymaliśmy. Najważniejsza jest stałość jej parametrów. Właściwie to dotyczy wszystkich elementów generatora.
Dopuszczalne zamiany
1.Rezonator kwarcowy 6...10MHz.
2.Rezystory wzorcowe R1, R2 1...3kOm
Postarałem się, aby na schemacie były widoczne pewne cechy konstrukcyjne, a dokładniej:
- oddzielne obwody zasilania, mające na celu wykluczenie zakłócania generatorów pomiarowych przez mikrokontroler czy wyświetlacz.
- w celu zwiększenia stabilności częstotliwości rezonatora kwarcowego, jego obudowę połączono z dziesiątą nóżką (GND) mikrokontrolera.
Również postanowiłem odejść od stosowania wszelkich zworek, przewodów taśmowych. Całe urządzenie zostało zmontowane na jednej płytce. No cóż, może nie jest zbyt piękna - to moje pierwsze doświadczenia z robieniem płytek domowym sposobem.
Program
Został napisany w asemblerze AVR STUDIO 3.21. Uruchomiłem go za pomocą AT90S2313, a przy testach na sprzęcie użyłem ATtiny2313. W ten sposób układ powinien pracować i z AT90S2313.
Archiwalny rysunek stanu FUSE bitów powinien pomóc prawidłowo je ustawić dla prawidłowej pracy układu.


Wadą programu jest konieczność ręcznego zapisu EEPROM przy kalibracji układu (mikrokontroler ma za małą pamięć).





Źródło: http://radiokot.ru/circuit/digital/measure/38/
Załączniki:
Płytka drukowana w formacie SL 5.0.
Wsad do mikrokontrolera wraz ze źródłem.
Cool? Ranking DIY