Šiandien ją gavau, tai nusprendžiau truputį pažaisti. Kadangi pirkau SO8 korpuse teko pasidaryti SO į DIP adapterį. Pajungimas gana paprastas: maitinimas +5V, atraminė įtampa (pas mane tiesiog įtampos daliklis į 2.5V), ir trys signalo laidai (Data, clock, chip select). Dar yra toks LDAC pin'as, jei naudojamas buferis. Tokiu atveju nusiuntus duomenis jie bus patalpinti buferyje iki tol, kol į LDAC bus paduotas žemo lygio impulsas. Jeigu buferis nenaudojamas, LDAC reikia tiesiog prijungti į žemę. Tokiu atveju išėjime įtampa atsiras vos gavus duomenis.
Pajungimas, rezistoriai formuoja daliklį atraminei įtampai. |
Iš kart sakau mano - programavimo žinios labai megėjiškos, tai nerekomenduoju remtis mano kodu :).
Kodas paprastas - įtampa įrašoma į kintamąjį vol, vėliau dauginama iš 4096 (Prisiminkite - tai 12bitų keitiklis), ir dalinama iš išmatuotos atraminės įtampos, mano atveju - 2.53V. Tada paimami pirmi (ar paskutiniai?, painiojuosi :) ) vol 8 bitai ir įrašomi į pirmą baitą. Antro baito atveju sudėtingiau - čia turi būti sudėti likę 4 iš 12 bitų bei dar 4 konfigūracijos bitai. Vėliau tie du baitai paeiliui išsiunčiami. Ką koks bitas reiškia žiūrėjau mikroschemos datasheet'e.
Na ir ką jūs manot? Puikiausiai veikia! Net nustebau :).
Paklaida - 0.6mV. Visai neblogai turint omenyje, kad viskas pakabinta ant ilgų laidų, be kondensatorių, ir dar maitinimas iš USB. Oscilogramos patvirtina kad viskas veikia kaip turėtų.
![]() |
1 kanalas - duomenys, 2 kanalas - chip select signalas |
![]() |
1 kanalas - duomenys, 2 kanalas - clock signalas |
Mldc vyrukas!
AtsakytiPanaikintiDėkui :)
Panaikinti