]> www.fi.muni.cz Git - kolektor.git/blob - POPIS
schematics.jpg: schema pouzitych soucastek a cest
[kolektor.git] / POPIS
1 Dokumentace k desce
2 ===================
3 (schéma, layout plošného spoje):
4 http://www.fi.muni.cz/~kas/tinyboard/
5
6 Osazení desky:
7 ==============
8
9 U1: ATtiny25-20SSU
10 U2: MCP1703T-500 regulátor napětí 5V, 250 mA
11 Q20, Q50: N-MOSFET IRLML6344TRPBF, 30V, 5A
12 C1, C3: 10uF keramické, typ nevím :-)
13 C2, R10, R30, R40: _kondenzátory_ 220nF keramické X7R
14 R12, R20, R32, R42, R50: odpory 15KOhm
15 R34, R44: odpory 300KOhm (podle nich dimenzovat termistory)
16 D50, R15, R21, R23, R51, R53: propjky 0 Ohm (nebo dráty)
17
18 Nepoužito:
19 R2, R3, R4, R11, R13, R14, R22, R24, R25, R31, R33, R41, R43, R45, R52, R54, R55
20 C11, C51, D10, L10, L50, Q10, Q1, Q2, Q30, Q40, U3
21
22 Možno ještě osadit kontrolku napájení (D1, R1)
23
24 Přiřazení pinů ATtiny:
25 ======================
26 PB0: plovák nebo jiný spínač, zapojit mezi piny 1 a 2 konektoru PB0
27 PB1: ovládání motoru, zapojit mezi piny 2 a 3 konektoru PB1
28 PB2: termistor, zapojit mezi piny 1 a 2+3 konektoru PB2
29 PB3: termistor, zapojit mezi piny 1 a 2+3 konektoru PB3
30 PB4: ovládání motoru, zapojit mezi piny 2 a 3 konektoru PB4
31
32
33 Programování:
34 =============
35 Před programováním odpojit piny PB0-PB2 od zbytku desky vyndáním jumperů J1-J3.
36
37 make program        # přeloží firmware a nakopíruje do CPU (flash+eeprom)
38 make program_flash  # totéž, uploaduje jen programovou paměť (flash)
39 make program_eeprom # totéž, uploaduje jen eeprom
40 make dump_eeprom    # výpis eeprom, například logovacích dat
41
42 Programová flash umožňuje 10_000 přepsání (OK), EEPROM umožňuje
43 "jen" 100_000 přepsání (pozor na to při logování do EEPROM, ať se
44 příliš často nepřepisuje ta stejná adresa, například při zacyklení programu).
45
46
47 Řízení motorů čerpadel:
48 =======================
49 Motory lze řídit buďto posíláním logické 1 nebo 0 na výstupy PB1, PB4,
50 anebo by mělo být možné i plynulé řízení přes PWM (viz dokumentace
51 Timer/Counter 1, pin PB1 je pak OC1A, pin PB4 je OC1B. Doporučuju
52 T/C1 časovat z PLL clock na 32 MHz, čímž se získá PWM o frekvenci 256 kHz,
53 což by mělo na plynulé řízení motoru stačit. Je případně možné použít i
54 64 MHz, což má o něco větší odběr v klidu (asi o 2 mA). Nebo PLL clock
55 zapínat jen na dobu, kdy má jet čerpadlo. Pozor na dostatečně velkou
56 střídu PWM, aby se motor vůbec roztočil.
57
58
59 Analogové vstupy:
60 =================
61 Analogové vstupy PB2, PB3 (ADC1, ADC3) jsou vybaveny low-pass filtrem
62 z 220nF kondenzátoru a 15k odporu, což by mělo ořezávat frekvence vyšší
63 než cca 50 Hz. Tentýž kanál ADC tedy nemá smysl vyhodnocovat častěji.
64 Mezi +5V a horní pin analogového vstupu je umístěn 300K odpor, dolní pin
65 je zapojený na zem. Podle toho je třeba vybírat součástku, jejíž odpor
66 budeme měřit:
67
68 Nejlépe je použít měření A/D převodníkem proti interní
69 1.1V napěťové referenci. ADC má rozlišení 10 bitů, takže chceme
70 na napěťové děličce dělící +5V pomocí 300K odporu a odporu čidla mít rozsah
71 napětí od 0.001 do 1.1 voltu, což dává rozsah odporů cca 60 Ohmů až 84 kOhmů.
72 Podle toho je potřeba volit druh čildla.
73
74 U termistorů tomu odpovídají například tyto NTC termistory s odporem 10kOhm
75 při 25 stupních - tímto pokryjí teploty -15 až 150 stupňů:
76 http://www.gme.cz/ntc640-10k-p118-042
77 http://www.ges.cz/cz/ntc-0-2-10k-GES05303342.html
78
79 U fotoodporů pro detekci pouze denního světla je to víceméně jedno - i velké
80 odpory mají na denním světle pod 1 kOhm:
81 http://www.ges.cz/cz/ldr-05-75-GES05100338.html
82 http://www.gme.cz/vt83n2-p520-059
83
84
85 Digitální vstup pro plovák:
86 ===========================
87 Vstup na pinu PB0 je také vybaven low-pass filtrem jako analogové vstupy,
88 mělo by sloužit k odfiltrování přechodových jevů při spínání a rozepínání
89 kontaktu. Možná ale bude i tak třeba udělat SW test na to, aby změněný stav
90 sepnutí vydržel aspoň nějakou dobu (50 ms).
91
92 Pro vstup je třeba mít zapnutý interní pull-up rezistor (příslušný bit
93 v registru PORTB nastavit na jedničku).
94
95
96 Náměty:
97 =======
98 - Použít interní teploměr (ADC4) jako odhad teploty vzduchu
99         (podle toho, kde bude zařízení umístěno).
100 - Časování dělat přes watchdog, například s rozlišením 16 s:
101         watchdog probudí CPU (viz firmware "step-up" na stránce tinyboard),
102         je potřeba potvrdit. Druhý příchod watchdogu bez potvrzení může
103         resetovat CPU (pro případ zacyklení)
104 - Proudové nároky: běží-li čerpadlo, nemá cenu řešit. Jinak PLL clock
105         má asi 6mA v 64MHz režimu, 2mA v 32MHz režimu, ADC má asi 2mA,
106         CPU taky 2mA, nějaké mA sežerou napěťové děličky u analogových vstupů.
107 - Osadit LEDku pro signalizaci napájení? Cca 2-10 mA podle typu.
108 - Regulace termistor + fotoodpor: fotoodporem poznat den/noc, termistorem
109         na vstupu od kolektoru do nádrže řídit vypnutí (až začne příchozí
110         teplota klesat, vypnout čerpadlo).
111 - Regulace 2x termistor: zapnout čerpadlo, pokud za pár vteřin nezačne
112         růst teplota příchozí vody do nádrže nad teplotu odchozí vody,
113         vypnout čerpadlo a počkat hodinu, dvě.
114 - Dívat se na stav registru MCUSR (viz logging.c) a rozlišovat, jestli
115         jsme se probudili resetem, power-on, watchdog resetem, brown-outem,atd.
116 - Mít uložené regulační proměnné v eeprom a při ladění upravovat jen EEPROM,
117         ne program samotný.
118 - a už mě to nebaví, stejně to nikdo nebude číst :-)
119