2013. június 14., péntek

Univerzális Digitális számláló 1.

Van nekünk egy sütőnk, meg egy fritunk itthon. Mindkettőben nagyjából ugyanaz a digitális időzítő van. Az időzítőnek van egy kétdigites 7 szegmenses kijelzője két gombja, meg egy hátulütője. Csak csipog az idő lejártakor, de az eszközt nem kapcsolja ki.
Rájöttem, hogy szükségem van egy ilyesmi időzítőre több feladathoz, természetesen kapcsolási képességgel együtt.
A következő felhasználásokat tervezem:
  • A fenti fritu külső vezérlése
  • Kicsi asztali időzítő (ehhez valószínüleg majd LCD kijelző kell a LED helyett az elemes működés miatt)
  • A (tervezett) UV levilágítóm vezérlése amit a forrasztásgátló réteg előhívására akarok használni
  • Forrasztóállomás "watchdog" (folyamatosan félek attól, hogy egyszer bekapcsolva felejtem a forrasztóállomásomat. Ezért azt találtam ki, hogy rákötök egy időzítőt ami akkor indul, ha a páka a helyen van a tartóban és öt perc múlva kikapcsolja az egész állomást)

A project az MSP430-as value line uC szérián alapul (igérem lesz más is előbb-utóbb). A tervezési alapelvek a következőek:
  • A uC külső csatlakozásainak bele kell férnie a maximum 20 lábba. Ezt azért szabtam meg, hogy akár DIP tokkal akár SMD-vel megépíthető legyen.
  • A lehető legkevesebb külső alkatrész használata. Hogy őszinte legyek a kijelző multiplex digitjeinek két meghajtó tranzisztorán kívül nem szeretnék külső aktív elemet használni
  • Az eredmény egy olyan SMD alapú terv legyen ami nyomógombokon kívül befér a kijelző alá és breadboard kompatibilis
  • Legyen a szerkezetnek egy PC-s programozói felülete (ez nagy valószínüséggel egy soror port lesz)
Az első két tervezési elv kihívások elé állított. Nézzük meg a szükséges lábszámokat a különböző funkciókhoz:
  • A uC saját felhasználása: 4 láb (VCC, GND, RST, TEST). Ezekre a lábakra minden időben szüksége van.
  • Két digites 7 szegmenses kijelző: 10 láb (7 szegmens, 1 tizedespont, 2 digit multiplex láb)
  • Külső időalap kvarc: 2 láb
  • PC kommunikáció: 2 láb (UART: TXD, RXD)
  • Nyomógombok: 2 láb
  • Külső indítás: 1 láb
  • A terhelés kapcsolása: 1 láb
  • Piezo csipogó (jelezni az idő leteltekor): 1 láb
Számoljuk meg, összesen: 4+10+2+2+2+1+1+1 = 23 láb. Hopp! Ez sok.
Na tehát a következő lehetőségem van:
  • Használok valamilyen buszkiterjesztő áramkört (valami I2C, SPI alapú cucc vagy egy egyszerű shift register mint a 74HC595)
  • Használok egy 7 szegmenses kijelző meghajtót/dekódert
  • Átszervezem a lábhasználatot okosabbra
Nézzük meg ez utóbbit:
  • A uC saját dolgaival nem tudok mit kezdeni (legalábbis, ha nem muszály, nem nyúlok hozzá). Marad 4 láb
  • A második digit meghajtó tranzisztort inverterként használom (az első meghajtó tranzisztor  kollektoráról vezérlem). A koncepció kipróbálva. Marad 9 láb.
  • Használjuk a beépített DCO-t a kvarc helyett. Ezt a koncepciót nem kedvelem, tehát a lábak maradnak. Marad 2 láb.
  • PC kommunikáció. Itt nincs sajnos semmi trükk. Marad 2 láb.
  • Nyomógombok: Ha multiplexálom a nyomógombokat a digit meghajtó tranzisztorokról akkor egyetlen lábról tudom érzékelni a gombokat. Koncepció kipróbálva. Marad 1 láb.
  • Külső indítás. Nincs trükk. Marad 1 láb.
  • A terhelés kapcsolása. Nincs trükk. Marad 1 láb.
  • Piezo csipogó: A kijelzőből, csak az egyik tizedes pontra van szükségem. Mi van, ha a másik helyére bekötöm a csipogót? Ez a koncepció. Ha alá tudom támasztani: Marad 0 láb.
Számoljuk újra: 4+9+2+2+1+1+1+0  = 20 láb. Megvagyunk!!!

Mi van már készen:
  • A kapcsolási rajz (a csipogó működését még bizonyítani kell)
  • Működő áramkör a próbapanelen
  • A kijelző meghajtó kódja
  • A prellmentesített nyomógomb meghajtó
  • A számláló kódja (nyomógombos beállítással)
Mi van még hátra (nem feltétlenül ebben a sorrendben):
  • A csipogó kódja (a fenti elmélet bizonyítása)
  • Házigyártású nyák
  • Flash-be írás futásidőben (a PC intefészen keresztül jövő beállítások tárolására)
  • Soros kommunikáció
  • Karakteres menüvezérelt felhasználói felület (a uC-be belülre
  • Soros bináris parancskészlet (a pc-s felülethez)
  • A számláló kódjának kiterjesztése a programozható funkcionalitásra (mint pl. a watchdog)
  • PC-s felhasználói felület (legvalószínübb, hogy C#-ban megírva)
  • SMD nyák terv és rendelés
Ez az új projectem. Bármilyen megjegyzés,t ötletet, vágyott funkcionalitást szívesen fogadok.



Nincsenek megjegyzések:

Megjegyzés küldése