2013. május 29., szerda

LED Display 2. - Dilemma

A hétvégén elkövettem némi breakout board-ot a Texas-tól mintaként kapott MSP430G2553IPW28-aimhoz.
Meg kellett állapítanom, hogy ez az SMD dolog még nem megy nekem igazán. Mind a két kísérletemből zárlat lett. Elkezdtem boncolgatni az okokat és a következőkre jutottam:
  • Béna vagyok - ezen gyakorlással lehet javítani, ezért tervezem, hogy veszek néhány 10 db-ot a legolcsóbb TSSOP tokos IC-ből és azzal fogok kísérletezni
  • Nem volt jó az alkatrész design a KiCAD-ben (persze az is lehet, hogy csak nem találtam pontosan ide valót és amit választottam az nem volt igazán jó) - Ma reggel előszedtem a Texas eredeti rajzait és átrajzoltam az alkatrész layout-ot (pl. eredetileg 0,42 mm széles pad-ek voltak, most a Texas féle rajz (0,30/0,19) középértékénél egy picit nagyobbat választottam ami 0,27 lett)
  • Az alkatrész alatt is vannak vezetékek. Ezek túl közel kerültek a pad-ekhez - Átrajzoltam ezt is. Még keresgélek módszert arra (pl. ezt), hogy készüljön a panelre solder mask, ami még javítja az eredményességet.
  • A vasalásnál túlságosan rányomtam a vasalót a papírra így kicsit szétterült a festék - Erre a következőkben jobban oda kell figyelnem.
Boncolgatás ide, boncolgatás oda, ez nem jött össze. A következő lehetőségeim vannak:
Szerzek újabb adagot a tokból és újragyártom - Nem túl régen rendeltem a TI-től utóljára és nem akarom feszegetni a lehetőségeimet (kézen közön ezt ugyan megoldottam, de ez nem az üdvözítő állapot). Körülnéztem és nem igazán találtam elfogadható beszerzési forrást ahhoz a pár darabhoz amire szükségem van.
  • Küzdök a meglévőekkel: Új panel, kiforraszt, beforraszt - Gondolom ezt elő fogom adni, de akkor is fejfájást okoz a dolog.
  • A programozás idejére kialakítok egy átmeneti megoldást (pl. 74HC595-ös shift-registerekkel) amivel a 20 lábú DIP tokos uC-vel is össze tudom rakni az egészet.
  • Lecserélem az egész MSP430-as core-t mondjuk egy ARM Cortex-M0/M0+ core-ra.
Ez utóbbi folyamatosan motoszkál a fejemben. Veszíteni maximum a nem túl nagy MSP430 tapasztalatomat veszíthetem vele, nyerni viszont sokat nyerhetek vele. Akár ebben a project-ben is, mint plusz funkciók, kiterjesztett lehetőségek:
  • 12 bites ADC a 10 bit helyett
  • magasabb órajel
  • DAC (lehet pl DDS Funkciógenerátort csinálni vele)
  • Több memóra (RAM is Flash is)
  • Nem kell breakout boardot csinálni, mert a fejlesztőkészleten ki van vezetve a szükséges mennyiségű GPIO
Ráadásul se a fejlesztőkészlet ára, se a tok ára nincs túlzottan az MSP430-é fölött:
Freescale FRDM-KL05Z fejlesztőkészlet: ~2700Ft+Áfa
Freescale MKL05Z32VLC4 uC: ~420Ft+Áfa
Ha olvassa ezt és veszi a fáradságot, hogy megjegyzést fűzzön hozzá, érdekel a véleménye, hogy MSP430 vagy Freescale Kinetis KL05 legyen a célplatform

2013. május 28., kedd

LED Display 1.

Különböző fejlesztési projectekhez jó ha van a háznál egy egyszerűen valamilyen soros interface-en (I2C, SPI) keresztül meghajtható néhány digites hétszegmenses LED kijelző.
Ilyen alapvetően könnyen építhető pl. a Maxim Integrated MAX7219/MAX7221-ből.
Ez remek is lenne, két dolgot leszámítva:
  • Ha fejlesztéshez akarjuk használni akkor nem minden esetben megfelelő az SPI interface, inkább olyasmi kellene aminél az adott feladathoz határozható meg az interface
  • Az ár. A fenti tokok darabára kb. 1500Ft-nál kezdődik ami elég borsos ahhoz képest, hogy mikrocontrollert kb. 200Ft-tól kapunk a projectjeinkhez.
Ha már mikrokontroller. Mi lenne, ha fognénk egy alap uC-t mögé tennénk valami teljesítménymeghajtót (tipikusan egy uC GPIO nem képes meghajtani a LED kijelző közös anód/katód lábait ami nyugodtan lehet 100mA fölött is), és írnánk valami programot ami szimulálja mondjuk egy MAX7219 működését.
Ez nekem már magában is jól hangzik. Behelyettesítve azokkal a dolgokkal amikkel mostanában dolgozom fogok egy MSP430G2202-t meg egy ULN2803-at és 300Ft-ból megvan a LED meghajtóm.
De mi van, ha itt nem állunk meg?
Fogjunk uC-ből egy kicsit nagyobb tudásút, mondjuk egy MSP430G2553-at, és kezdjük el felvértezni interface-ekkel:
  • Először is legyen valami amin keresztül tudunk üzemmódokat váltani. Pl. fogjunk meg 8 db mikrokapcsolót, kössük rá a LED kijelzők katódjaira és egyetlen bemenet felhasználásával kaptunk 8 gombot aminek elégnek kell lennie, hogy beállítsuk az üzemmódokat
  • Legyen egy SPI interface, elvégre ebből indultunk ki
  • Legyen egy I2C és legyen egy UART (mondjuk RS232, csak szintillesztés nélkül)
Már van is egy univerzális kijelzőnk, de mi van, ha még tovább lépünk?
Van egy AD konverterünk ami tud 10bitet. Mit tudunk ebből kihozni? Egyszerre bármelyik kettőt a következőkből:
  • Hőmérő (ugye van egy belső hőszenzorunk. Nem túl pontos, de akár kalibrálhatjuk is)
  • 3 digites DVM panelméter (egyszerre kettő is)
  • Saját tápfeszültség mérés
Persze impulzust is tudunk számlálni
Ha ezt még megfejeljük valami időalappal, akkor a frekvencia, periódusidő, impulzusszélesség, kitöltési tényező is szóba jöhet.
Kezd egy igen széleskörben használható dolog körvonalazódni. Ráadásul a fenti két tok befér a LED kijelzők lábai közé, csak a miniatűr nyomógombok foglalnak minimális plusz helyet.

Project elindítva.

2013. május 27., hétfő

Bugot fogtam 2.

Az Apple-nél bugot bejelenteni egy kifejezetten egyszerű dolog (próbálnád ezt a Microsoftnál):
Odamész a https://bugreport.apple.com-ra bejelentkezel a developer Apple ID-dal (az AppStore ID ide nem jó, de nekem szerncsére volt ilyen), beírod, hogy mi a bajod és ennyi. Kapsz vissza egy azonosítót, és nézheted, hogy mi történt.
Várom a fejleményeket.

2013. május 24., péntek

Hőmérő 6.

Egy kis frissítés a project státuszáról.
  • A megrendelt panelek és a "Sick Of Beige" készülékházak elindultak Kínából. Csak a világ postáin múlik, hogy mikor érnek ide (ha egyáltalán ideérnek, bár eddig még nem veszítettek el semmit).
  • Elkészült a magyar nyelvű cikk, egyenlőre csak Word formátumban.
Ami még hátra van:
  • Összeszedni a teljes dokumentációt és kirakni a webre
  • A programban kipróbálni az LCD meghajtó csökkentett áramfelvételű üzemmódját.
  • Megépíteni a cuccot (már amikor megjöttek a cuccok)

2013. május 23., csütörtök

Teljesen hülyének érzem magam

Vettem egy pár két digites hétszegmenses kijelzőt. Pontosabban a Kingbright DA03-11SRWA és DA03-11GWA típusokat. Ezek multiplexeltek, van kilenc lábuk amiből kettő az anód és hét a szegmensek. Van raja tizedespont, de se az adatlap, se az én méréseim szerint nincs kivezetve.
Nézek ki hülyén a fejelmből.
Megyek és megkérdem a gyártót, hogy akkor most mi van?

Bugot fogtam

Ép a mai konferenciához végeztem az utolsó simításokat a demón amikor egy érdekes dologra lettem figyelmes. Kb. ötödször vágtam nyakon a teszt iPhone-t az Exchange-ről (remote wipe) amikor látom a safariban, hogy az automatikus címkiegészítés felhozza a saját certificate authority-m címét.
Kipróbáltam más címmel, szigorúan ügyelve arra, hogy az iCloud, vagy más szinkronizáció ne induljon el a telefon beüzemelésekor. A másik cím is feljött a listában. Puff neki, ennek bug szaga van, méghozzá biztonsági.
Telefon: iPhone 4/16gb
OS:  iOS 6.1.3
Már csak egy Apple oldalt kell keresnem, ahol bejelenthetem.

2013. május 17., péntek

Hőmérő 5.

Jelenlegi állapot szerint a hőmérő összeállt, a panel gyártásra kész (miuátn az alkatrészek többsége SMD és viszonylag sokat kellett volna szórakozni azzal, hogy kevés átkötés legyen a panelen, úgy döntöttem, hogy ezútal nem készül otthoni kiveitel).
A programkód is kész annyira, hogy már kiadható:
- Benne van a telepfeszültség mérése
- Az I2C-n kívül mindent optimalizáltam méretre. Jelenleg 1925 Byte-nál tartok ami remélhetően nem fog gondot okozni a 2k-s uC-ben
Így néz ki a panelterv:
Így pedig az aktuális, működő deszkamodell:
A menetrend a továbbiakban:
- Azért, hogy szuper biztos legyen, hogy a kódméret belefér a végleges helyére, még beletöltöm egy MSP430G2231-be ami a legközelebb áll a véglegeshez (csak nem 8 lábú, hanem 14), és csak ezután rendelem meg a panelt (legkésőbb hétfő reggel)
- Kipróbálom az utolsó kimaradt funkciót, az LCD vezérlő alacsony fogyasztású módját (ez nem "show stopping feature")
- Amíg megjön Kínából a panel és a doboz, megírom a cikket a cuccról