www.elektronik.si
ATmega328P - Bujenje preko RS232

www.elektronik.si -> Osnove programiranja AVR-jev

Avtor: borzonKraj: Postojna PrispevekObjavljeno: Sre Apr 07, 2021 8:34 pm    Naslov sporočila:  ATmega328P - Bujenje preko RS232
----------------------------------------------------------------------------
Pozdravljeni,

Ker sam nisem niti približno dober programer imam za vas nekaj vprašanj.
Spravil sem se izdelovat eno zadevo na osnovi Atmega328P čipa, ki bo baterijsko napajana. Zaradi energijske "požrešnosti" čipa sem primoram izvesti "deep sleep mode". Vezije se bo "zalaufalo" vsakodnevno 1x, 2x, mogoče 3x in bi najraje videl da bi bilo fizično nedostopno.
Vem, da se lahko Atmego328P zbudi preko dveh zunanjih "interrupt" pinov.

Zanima me ali obstaja kakšna možnost, da bi čip iz deep sleep mode zbudil preko RS232 povezave oziroma preko serijske povezave?

Avtor: Jaka57Kraj: Grosuplje PrispevekObjavljeno: Sre Apr 07, 2021 8:42 pm    Naslov sporočila:  
----------------------------------------------------------------------------
V deep sleep načinu je serijski port onemogočen. Ni pa v idle načinu, ki porabi nekaj mA več kot v deep sleep načinu.
Malo več o tem najdeš tukaj, nekaj več na to temo in nekaj dodatnih povezav pa najdeš tukaj.

Avtor: borzonKraj: Postojna PrispevekObjavljeno: Sre Apr 07, 2021 9:17 pm    Naslov sporočila:  
----------------------------------------------------------------------------
Jaka57 je napisal/a:
V deep sleep načinu je serijski port onemogočen. Ni pa v idle načinu, ki porabi nekaj mA več kot v deep sleep načinu.
Malo več o tem najdeš tukaj, nekaj več na to temo in nekaj dodatnih povezav pa najdeš tukaj.


Zahvaljujem se ti za hiter odgovor in pomoč.
Težava je v tem, ker vsak mA v mojem primeru zelo veliko pomeni.

Predpostavljam dejstvo, da se iz deep sleep mode Atmega328p proži tako, da se interrupt vhod sklene z GNDjem. RS232 9 žilen kabel in da sta je za RS232 uporabljen le 1 par in zdraven še GND. Če bi nekako uporabil še 4 žilo kabla in jo peljal direktno na Interrupt vhod. Po domače povedano, da bi na koncu vodnika nekako spojil GND z vodnikom ki gre na interupt.
Bi ta ideja "pila vodo" ali bi bila sama upornost vodnika previsoka in do proženja interrupta ne bi prišlo? Predpostavljamo dolžino kabla 2 metra.

Avtor: BrusliKraj: Hrastnik PrispevekObjavljeno: Sre Apr 07, 2021 9:26 pm    Naslov sporočila:  
----------------------------------------------------------------------------
Predlagam ti, da si prelistaš datasheet za ATmega328p.
https://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061B.pdf

Poglavje 10 opsuje razne načine spanja in načine kako čip prebuditi iz spanca. Za zunanje interrupte (INT0 in INT1) mislim, da je možno tudi nastaviti kdaj oz kako se prožijo (rising/falling edge, glej poglavje 12 in 13).

Avtor: JanKraj: Dolenjska PrispevekObjavljeno: Sre Apr 07, 2021 10:32 pm    Naslov sporočila:  
----------------------------------------------------------------------------
Ena izmed možnosti je ta, da RS232 RX linijo priklopiš ne samo na RX pin na mikrokontrolerju, ampak vporedno še na en INT pin.
Ob aktivnosti na RS232 liniji tako lahko preko INT pina zbudiš procesor z navadno zunanjo prekinitvijo.
Je pa tak način primeren samo, če so podatki na RS232 liniji samo občasni oz. samo takrat, ko bi ti rad procesor zbudil.
Če je prisotno neko stalno pošiljanje podatkov, potem boš težko to izvedel, oz. boš imel malo več dela.

Jan

Avtor: Jaka57Kraj: Grosuplje PrispevekObjavljeno: Čet Apr 08, 2021 8:19 am    Naslov sporočila:  
----------------------------------------------------------------------------
Jan, drži, to je opisano na zadnji povezavi, ki sem jo dal.
S tem pa se izgubi nekaj začetnih podatkov, ki so poslani na serijski port.
Torej, lahko pošlje, recimo, nekaj na serijski port samo zaradi bujenja, ko je zbujen, izklopi prekinitev, nato sprejme pravilne podatke,
ko je končano pošiljanje vklopi prekinitev in gre zopet v spanje.

Avtor: borzonKraj: Postojna PrispevekObjavljeno: Čet Apr 08, 2021 2:00 pm    Naslov sporočila:  
----------------------------------------------------------------------------
Vsem se iskreno zahvaljujem za odgovore in pomoč.

@jaka57
Ravno to sem imel v mislih ob prebiranju tvoje posredovane povezave.

Zanima pa me, ali je potrebno med interrupt vhodom in RX pinom postavit kak upor ali je direktna povezava ok?
Sprašujem namreč, ker se na spletu zasledil, da nekateri stavijo upore med vhodoma.

l.p

Avtor: JanKraj: Dolenjska PrispevekObjavljeno: Čet Apr 08, 2021 7:18 pm    Naslov sporočila:  
----------------------------------------------------------------------------
Lahko povežeš direktno, ampak moraš potem zagotoviti, da bosta oba pina vedno konfigurirana kot vhoda.
Če pa daš vmes upor ranga kOmega pa tudi ni nič narobe, včasih to pride prav med testiranjem, da lahko upor vzameš ven in tako fizično ločiš pina.

Jan

Stran 1 od 1

Powered by phpBB © 2001,2002 phpBB Group