Hirdetés

Építsünk mobiltelefont - II. rész kiegészítés

Változik a lábkiosztás, mert

A0: szabad // teszt láb + ideiglenes
A1: gombsor (digitális módban)
A2: gombsor (digitális módban)
A3: gombsor (digitális módban)
A4-A5: SDA, SCL (I2C lábak)... flash, kijelző, digital potmeter, stb...
A6: gombsor (digitális módban)
A7: gombsor analóg bemenete

Hirdetés

D0: RX (hardveres)
D1: TX (hardveres)
D2: sleep interrupt key, ez lesz a bekapcsoló gomb + valószínűleg a képernyőt is ezzel fogom kikapcsolni.
D3: RX1 (szoftveres) - ez még függőben marad, lásd lent
D4: TX1 (szoftveres) - ez még függőben marad, lásd lent
D5: Mivel PWM-es, így billentyűzet háttérvilágításra tökéletes lesz
D6: SZABAD (PWM) - SIM800L sleep interrupt ? -> sim800L reset
D7: fenntartom arra a célra, ha esetleg kellene egy "mini tápegységet csinálni", a perifiriáknak, modulokanak tápot adni de leginkább elvenni kikapcsolás után - bár így a SIM800 modulban lévő RTC nem tudom hogy fog működni. Lehet, hogy kelleni fog külön RTC modul vagy meg kell oldanom az automatikus időszinronizálást minden egyes bekapcsolásnál. Meglátjuk. Úgy tűnik nem lesz rá szükség.
D8: Töltés érzékelés
D9: SZABAD (PWM) - SIM800L csengetés szenzor
D10-13: SPI, ICSP

Annak ellenére, hogy az SSD1309 állítólag kompatíbilis az SSD1306-al, nem tudom meghajtani a kijelzőimet SSD1306 I2C beállításokkal. U8g2 library-vel próbáltam mert ezt találtam. Régebben is ezt használtam. Végigpróbáltam az összes I2C opciót, de nem sikerült elindítani semmivel. Még az is lehet, hogy rosszak a kijelzőim. Na de mindkettő?
Átállok SPI-re, végülis marad annyi pin, amivel ez lehetséges, szóval szerintem kijelző terén elengedem az I2C-t. Legalábbis egyelőre. Lehet, hogy a végleges kijelzővel menni fog.

Fel kellett húzni VCC-re a RST lábát a kijelzőnek egy 10K ellenállással.

A SIM800L-en van egy láb (POWER_OFF pin), amit ha HIGH-ra kötök, akkor elméletileg elmegy alvásba a modul és 1mA lesz az áramfelvétele. Kérdés, hogy ilyenkor mi történik vele, hívást, sms-t lehet-e vele fogadni vagy egyáltalán mire való, azt nem tudom, de egyelőre D6-ra tervezem ezt a lábat kötni.
SIM800L-nek nincs kivezetve ez a lába, csak szoftveresen lehet alvásba küldeni. A felébresztés egyelőre kérdéses. Legrosszabb esetben ha kap egy resetet akkor talán felébred, de bízom benne, hogy egyébként serial kommunikációra vagy/és telefonos aktivitásra felébred.

D7 valószínűleg kelleni fog csak nem a SIM800L miatt. Nézegettem LDO 3.3V stab IC-ket, amiknek van ENable pin-je. Szerintem a digitális potméter miatt kelleni fog de elgondolkodom azon is, hogy esetleg PWM-el vezéreljek egy tranzisztoros erősítő áramkört, mert egyelőre úgy tűnik, hogy csak miatta (+ az erősítő) lenne rá szükség. Így akkor mindkét alkatrészt kiválthatnám.

SIM800L-re visszatérv: POWER_OFF mód. Ilyenkor teljesen leáll a modul szóval nem fog kelleni külön tápvezérlés. Lényegében áram alatt marad, csak uA-es áramfelvétellel. Gondolom az RTC marad áram alatt és ennyi. Utána elindítani elméletileg egy power OFF/ON fizikai beavatkozás után lehetséges, ami annyira nem tetszik, mert akkor az RTC-ről is elvesszük az áramot. Majd megpróbálom, hogy a reset pin-re mit reagál. Ha úgy elindulna és az RTC nem felejtené el a beállított időt, az lenne a legjobb. Ha nem indul el, akkor viszont SolidState relére kell kötni, hogy újra tudjam indítani ha kell. Ahhoz viszont kelleni fog még pin. Esetleg az A0-t tudom még felszabadítani erre a célra, ha átcsoportosítom az A6-ra, az A6-ot pedig eltolom az A7-re. - pipa

D9: csengetés
Van a SIM800L-nek egy csengetés pin-je, amit elég figyelni, mert ha hívás vagy sms érkezik akkor ezen jelezni tud a mikrokontroller felé. Ez azért jó, mert akkor nem kell folyamatosan a serial portot figyelni, ami memóriaigényes. Már csak azt kell kitalálni, hogyan jelez, mert eddig még nem jöttem rá. Lehet megnézem logikai analizátorral.

Apropó serial port...
Ha jól emlékszem, gyárilag 150 bájtot foglal a puffer a memóriából, ami különböző részekből épül fel de igazából 30 bájt hosszú karaktersorozatot tud egyszerre fogadni. Ebben nem vagyok teljesen biztos, de így emlékszem. A gond az, hogy egy sms 160 karakter GSM formátumban, unicode-ban 70. Az sms-ek tartalmát serial porton keresztül dobja át a SIM800L, szóval a buffer méretét meg kell növelni mert minden bizonnyal nem fog beleférni és hiányozni fog az sms vége. Ez nem jó, mert az értékes memóriából fogy megint.
Ha még software serialt is csinálok, akkor duplán foglaljuk a puffer méretét, szóval durván 500bájt elmegy így a 2048-ból, ezért még meggondolom, hogy legyen-e software serial. Ha nem lenne, akkor felszabadulna egy csomó memóriám és 2 digital pin.

Valószínűleg azt fogom csinálni, hogy a software serial ki lesz kapcsolva és megpróbálok egy debug módot tenni a menübe, ahol be lehet kapcsolni ha kell.

Légy az első hozzászóló!

Még nem szólt hozzá senki sem.

Hozzászólok