Pentru o lungă perioadă de timp am avut o idee de făcut. dar nu au nevoie
era, iar ideea se odihnea. Ca un prieten a vizitat câteva USB flash drives. unul
a murit și a ajuns la mine liberă. De curând, ei sunt în mod constant în spatele lor
Vânez, pentru că în cele mai multe cazuri, controlerul arde, iar blițul NAND este în viață + SMD
cuarț. Și nu se află pe drum.
Deci, cu această unitate flash am avut: SMD
cuarț la 12 MHz, un conector USB pe placă și un mic caz, precum și dezvoltarea ideii
a.
În decurs de o săptămână au fost elaborate:
1. Diagrama aparatului;
2. Cablajul
PCB în locuințele existente;
3. Programul pentru MK ATtiny45;
4.
Programul gazdă (gazdă dalele simple) pentru a primi date de la MK.
După cum se poate vedea din diagramă, baza facilității este ATtiny45 MC. Alegerea lui este condiționată de
necesitatea de a minimiza dimensiunea plăcii de circuite imprimate și prezența a 4 KB
memorie flash necesară pentru implementarea USB și pentru lucrul cu DS18B20.
Senzor (DS18B20)
funcționează într-un mod de putere parazitară, adică nu necesită o abordare separată
și este conectat la dispozitiv prin 2 fire. Intrare circuit USB -
standard, recomandat de dezvoltatorii avrusb, cu excepția faptului că
pull-up rezistențe în versiunea mea sunt incluse după protecția la 68 ohmi.
Programul pentru MK este dezvoltat în mediul AVR Studio utilizând
GCC pe baza bibliotecii avrusb și a surselor unui Martin Martin Thomas pentru
DS18B20 (nu a fost timpul să-l scriu eu). Modul în care interacționează gazda
dispozitivul este implementat sub forma trimiterii dispozitivului unui cod condițional (în conformitate cu
cu care dispozitivul va efectua operațiile necesare), precum și solicitarea unui pachet
date cu valoarea curentă a temperaturii. Deoarece dimensiunea trimis și
datele primite sunt mici, atunci raportul viitor (tipul de pachete de date) a fost ales în funcție de
simplitatea de a lucra cu ea.
Dacă doriți să remediați programul pentru MC,
vă rugăm să citiți cu atenție documentul USBID-License.txt,
localizat în folderul usbdrv.
Există o serie de reguli și
utilizarea bibliotecii avrusb.
Programul gazdă este scris în Borland Delphi 7
Folosind biblioteca de componente JEDI-VCL, care include
componentul TJvHidDeviceController, care implementează accesul proxy la HID compatibil
Dispozitive USB. Pentru a face ca utilizarea dispozitivului să fie cât mai comod posibil
sa decis implementarea gazdei sub forma unei pictograme cu valoarea temperaturii din tava de sistem
(aproape de ceas) fără interfață grafică, cu excepția
meniul contextual făcând clic pe butonul din dreapta al mouse-ului de pe pictograma din tavă.
Am făcut-o
WinXP SP3, pe alt sistem, programul nu a fost probyval.
În general, gazda operează conform următorului algoritm:
1. Prin cronometru
(la fiecare 2 secunde) începeți căutarea dispozitivului nostru. Criterii de căutare - text
numele vânzătorului și dispozitivului;
2. Acceptăm informațiile
de la dispozitivul care verifică numeroase erori. Dacă apar -
puneți pictograma "NA" - fără acces;
3. Dați comanda pentru a citi temperatura de la
senzor. Așteptăm;
4. Dați comenzii pentru a începe măsurarea temperaturii;
5. Întoarceți
la punctul 1 în 2 secunde.
Se pare că a spus totul ... oh, aici, dispozitivul ăsta sunt eu
prezentată sub forma unui cadou pentru ziua de naștere a aceluiași prieten, care a înșelat
mort flash USB.
Iată câteva fotografii ale dispozitivului terminat.
Materiale suplimentare, fișiere către dispozitiv (schemă):