Fórum témák

» Több friss téma
Fórum » MSP430 mikrovezérlők
 
Témaindító: gomzito, idő: Ápr 21, 2006
Témakörök:
Lapozás: OK   42 / 139
(#) szitko hozzászólása Feb 28, 2012 /
 
Egy újabb kérdés.
Két kontroller közötti kommunikáció UART-on. Az egyik vezérlő (legyen 1-es) 130Hz-ként küldi az infót a másiknak (legyen 2-es), ami fogadja, feldolgozza, stb... Raktam a 2-es prociba, egy olyan funkciót, hogy ha megnyomok egy gombot (amit megszakításban kezelek), akkor reseteli magát a proci. A probléma itt kezdődik. Amikor újraindul a proci (2-es), resetelné az 1-es procit, de az még mindíg küldi az infót, és van úgy, hogy pont akkor küld, amikor fogadnia kellene. Ezért leáll a 2-es proci.
Szóval a lényeg, azt kéne megoldanom, hogy a 2-es addíg küldje a reset infót, amíg az 1-es végre nem hajtja.
Ha nem érthető, megpróbálom máshogy leírni.

Icserny: Köszönöm, megtaláltam, sikeresen megoldottam.
(#) bedoweb válasza szitko hozzászólására (») Feb 28, 2012 /
 
Szerintem érthető.... azzal lehetne próbálkozni, hogy mielőtt a 2-est reseteled, küldesz vele az egyesnek egy parancsot, ami az (vagyis az 1est) várakoztatja kicsit, amíg a 2es reset-el...
(#) szitko válasza bedoweb hozzászólására (») Feb 28, 2012 /
 
Az az út sajnos nem járható, mert a Port megszakításból nem akar átmenni az UART megszakításba. (próbáltam) Mind két vezérlőnek újra kell indulnia, úgy hogy először a 2-es, majd miután elindult, kiadja a reset parancsot az 1-nek. Az UART küldést úgy állítottam be, hogy miután kiküldi az adatot, kapjon visszajelzést a fogadásról, és itt áll meg a 2-es vezérlő, mert az 1-es rossz visszajelzést küld, azaz nem a visszajelzést küldi, hanem az infót, de csak akkor, ha a 2-es pont akkor küld amikor az 1-es is. Kb. 10-ből 2-szer.
(#) icserny válasza szitko hozzászólására (») Feb 28, 2012 /
 
Nem volna egyszerűbb a nyomógombot direktben rákötni mindkét mikrovezérlő RESET bemenetére?
(#) szitko válasza icserny hozzászólására (») Feb 28, 2012 /
 
De, talán az lenne, bár elég "távol" vannak egymástól. A másik probléma az, hogy ha össze vannak kötve a vezérlők (RX, TX), akkor hiába nyomkodom a reset gombot nem történik semmi. Sőt tovább megyek. Ha a számítógépre csatlakoztatok két LP.-ot, és összekötöm őket UART-on, (RX, TX, GND) és kihúzom az egyik usb kábelt, az UART-on keresztül működik a mikrovezérlő. Ugyan ez a helyzet az i2c vonalon. Természetesen az RX TX jamperek nincsenek fenn. Arra viszont még nem sikerült rájönnöm, hogy hogy tud működni a vezérlő úgy, hogy csak az RX TX GND, vagy a P1.6-7 GND lábak vannak bekötve, és, hogy miért nem lehet resetelni.

Ui. Azt még hozzátenném, hogy a reset időbeli eltolásának is van szerepe. Ha más nincs, lesz egy plusz gomb.
(#) colosseum válasza szitko hozzászólására (») Feb 28, 2012 /
 
Nekem ugyen az a helyzet csak SPI vonalon elég 1 usb és megy a másik is tiszta "vicc"
(#) szitko válasza colosseum hozzászólására (») Feb 28, 2012 /
 
Nem ez a vicc, hanem az, hogy úgy is próbáltam, hogy pl. az egyik vezérlőn P1.0 kimenet a másikon meg bemenet, és úgyis megy mindkét vezérlő,úgy hogy csak az egyik tápot. Viszont amikor véletlenül rátettem az ampermérőt a P1.4-es lábra, úgy hogy a multi egyik vége a GND a máski pedig a P1.4, rögtön elszált a láb, de csak az az egy. Na ez a vicc.
(#) icserny válasza szitko hozzászólására (») Feb 28, 2012 /
 
Minden I/O kivezetésen van egy védődióda, ami kinyit, ha a láb magasabbra kerül, mint a VDD. Amikor kinyit a dióda, a VDD megkapja a bejövő feszültséget, s akkor természetesen működni kezd a mikrovezérlő.
(#) szitko válasza icserny hozzászólására (») Feb 28, 2012 /
 
Valami hasonlót olvastam,csak nem értettem. Tehát ha jól értem, VDD = 0V, P1.x = 3,3V akkor nyit a védődiódadióda, és elindul a vezérlő. Érdekes. Már csak azért is mert az adatvonalakon négyszögjelet kap. Akkor már csak azt nem értem, hogy miért nem megy a reset gomb, ha össze van kötve a két LP. Bár ott lehet, hogy Én szúrok el valamit.
(#) szitko hozzászólása Feb 29, 2012 /
 
IAR használók segítségét szeretném kérni.
Írtam egy programot, és ha debugban lépésenként szeretném futtatni, akkor egy pár lépéset megcsinál, és se-szó se-beszéd, bezárja magát az egész IAR.
Mitől lehet ez?
Op. Win 7 x64
IAR 5.40.3 30 napos.

U.i Csak annál az egy programnál csinálja. A többi programot normálisan tudom debug-olni.
(#) icserny hozzászólása Márc 1, 2012 / 1
 
Jön a Torkosborz!

A Texas Instruments MSP430 mikrovezérlőinek legújabb, jelenleg még fejlesztés alatt álló generációja a Torkosborz (Wolverine) néven fut. Egyelőre még csak egy brosúra tölthető le a www.ti.com/wolverine címről, s néhány kósza hír kering a világhálón (ezek szerint június körül lehet majd hozzájutni az első mintákhoz).

Az új generáció elsősorban a kis energiafogyasztást tűzte ki célul, amit az új, ultra alacsony szivárgású IC technológia tett lehetővé, de a kis fogyasztás érdekében a perifériakészletet is áttervezték. A főbb jellemzők:

- 100 uA/MHz aktív áramfelvétel (az MSP430G2231-nél ez 220 uA/MHz 2,2 V-on)
- 75 uA miközben a 12 bites ADC másodpercenként 200 000 mintát vesz
- 0,36 uA standby mód, működő RTC (real time clock) mellett
- 50 nA "adatmegőrző" alvás módban (LPM4)
- FRAM memória, ami gyorsabb és 250x kisebb fogyasztású, mint a Flash memória, s nem mellékesen 100 trilliószor újraírható...

Nürbergben, az "Embedded World ? 2012" kiállítás és konferencia keretében már bemutattak egy Launchpadhoz hasonló demókártyát, ami kapacitív érzékelőkket és e-ink kijelzőt tartalmazó "booster pack"-kal is ki volt egészítve. (A www.43oh.com portál közzé is tette a képet).

wolverine.jpg
    
(#) röntgen válasza icserny hozzászólására (») Márc 1, 2012 / 1
 
Ez nem semmi fejlődés......Szörnyű, hogy ezek az oroszok mit ki nem találnak.
(#) szitko válasza szitko hozzászólására (») Márc 1, 2012 /
 
Mivel nem jöttem rá, hogy mi a baja az IAR-nak, átraktam a programot a CCS4-be, ahol tudom használni a "Setp Into" funkciót, és nem áll le a program. -Érdekes.
Viszont nem találom a LaunchPad configot. Pontosabban azt a részt, ahol kiválasztom a LP com portját.
(#) colosseum hozzászólása Márc 2, 2012 /
 
Használt már valaki rfm12b rf modult LP--al?

Ha igen megoszthatná velem tapasztalatát.
Én most kaptam 2t megpróbálkozok vele , hogy a 2t kommunikációra bírjam
(#) colosseum hozzászólása Márc 2, 2012 /
 
update: ha van valaki aki megtudná mondani hogy az spi-t miképpen kell beállítani rajta vagy pedig valami hasznos magyar nyelvű(lehet angol is de inkább magyar) leirást tudna adni SPiből megköszönném.
(#) monsun hozzászólása Márc 2, 2012 /
 
Sziasztok,
icserny cikke alapján összeraktam az LCD vezérlést, de elakadtam. Nem szöveget, hanem egy int típusú változót szeretnék kiíratni, de sehogy nem sikerül.
(#) icserny válasza monsun hozzászólására (») Márc 2, 2012 /
 
Már többször felmerült ez a kérdés, itt nézz körül!
(#) mechanika hozzászólása Márc 3, 2012 /
 
Sziasztok!

Csak most ismerkedem a témával és a következő kérdésem lenne:

Port1 és port2 esetében is csak egy-egy programmegszakítást írhatok függetlenül attól, hogy melyik I/O kezdeményezi a megszakítást, vagy porton belül minden I/O-hoz írható külön-külön megszakítás?
Köszönöm!
(#) icserny válasza mechanika hozzászólására (») Márc 3, 2012 /
 
Egy-egy megszakítási vektor tartozik a portokhoz, de a megszakítást kiszolgáló eljárásban vizsgálható, hogy a P1IFG (vagy P2IFG) melyik bitje okozta a megszakítást.
(#) mechanika válasza icserny hozzászólására (») Márc 3, 2012 /
 
Köszönöm!

Ha nem gond esetleg meg tudnád mutatni, hogy hogyan néz ki ez a programban?

Előre is köszönöm!
(#) szitko hozzászólása Márc 3, 2012 /
 
Az UART-on érkező adatot, hogyan tudnám megkülönböztetni, hogy 1 ill. 2 bájtos-e?
Ha 2 bájtos adatot fogadok, akkor ezt használom,
  1. h_rx = UCA0RXBUF;
  2.     while (!(IFG2&UCA0RXIFG));
  3.     l_rx = UCA0RXBUF;
  4.     while (!(IFG2&UCA0RXIFG));

megszakításban, de ha csak 1 bájtos adat jön, akkor leáll a program, hisz várja a másodikat.
(#) kissi válasza szitko hozzászólására (») Márc 3, 2012 /
 
Ha 2 byte-os jön, akkor adott idő múlva ott kell lennie a másodiknak, ezt figyelve el tudod különíteni az 1 v. 2 byte-os adatot ( ha nincs egyéb jelölési mód! ). --> tehát kiolvasod és ha x időn belül nem jött második, akkor 1 byte-os az adat!

Steve
(#) szitko válasza kissi hozzászólására (») Márc 3, 2012 /
 
Erre gondoltam Én is, de már látom, hogy összetettebb a problémám. Menet közben kiderítettem, hogy a legnagyobb probléma (téged idézve) a "jelölési módal" van.
Azért köszi.
(#) icserny válasza mechanika hozzászólására (») Márc 3, 2012 /
 
Idézet:
„hogyan néz ki ez a programban?”
Nem csináltam még ilyet, de ilyesmivel próbálkoznék:
  1. #pragma vector=PORT1_VECTOR
  2. __interrupt void Port_1(void)
  3. {   if(P1IFG_bit.P3) {
  4.         P1IFG &= ~BIT3;           // P1.3 interrupt jelzőbit törlése
  5.         //itt csináljuk, amit kell
  6.     }
  7.     if(P1IFG_bit.P4) {
  8.         P1IFG &= ~BIT4;           // P1.4 interrupt jelzőbit törlése
  9.         //itt csináljuk, amit kell
  10.     }
  11.     if(P1IFG_bit.P4) {
  12.         P1IFG &= ~BIT5;           // P1.5 interrupt jelzőbit törlése
  13.         //itt csináljuk, amit kell
  14.     }  
  15. }
(#) mechanika válasza icserny hozzászólására (») Márc 3, 2012 /
 
Köszönöm, kipróbálom!
(#) szitko hozzászólása Márc 3, 2012 /
 
Érdekesség.
Nem hagyott nyugodni az IAR hibája, (amit pár hsz-el ezelött írtam) hogy debug közben leáll. Ma egy kicsit forglalkoztam vele, és sikerült megoldanom a problémát. Kb. öt újratelepítés után, (minden verziót kipróbáltam) ugyan azt csinálta. (ha debuggolni akartam azt az egy progit, leállt, hibaüzi nélkül) A megoldást az jelentette, hogy nyitottam egy új projektet, bemásoltam az új projektbe a forráskódot, és láss csodát, minden megy mint a karikacsapás.

U.i Mindenesetre a régi projektet megőriztem, hátha egyszer lesz kedvem, megkeresni benne a hibát. Még annyit hozzáraknék, hogy feltettem egy másik gépre az IAR-t, és a rossz projektet, és ott is ugyanazt csinálta. De, hogy mitől, vagy miért?
(#) kissi válasza szitko hozzászólására (») Márc 4, 2012 /
 
Kollégám szerint: " Ezen már csak a szentelt víz segít !" Steve
(#) szitko válasza kissi hozzászólására (») Márc 4, 2012 /
 
Hát igen. Már majdnem ott tartottam, hogy leöntöm egy vödör "szentelt" vízzel.
Így , hogy már látom, hogy mit csináltam, és normálissa működik minden, még az UART kommunikációs problémák is megoldódtak.
(#) monsun válasza icserny hozzászólására (») Márc 4, 2012 /
 
Köszönöm, pont erre volt szükségem. Már működik is
(#) maser_dude hozzászólása Márc 5, 2012 /
 
UART kérdésem lenne...

2400 baud 8E1 irást és olvasást szeretnék csinálni. A kommunikáció megy 2400 8N1-gyel (2553 és HyperTerminál között). De amikor beállitom a paritást:

UCA0CTL0 = UCPEN+UCPAR;

akkor is csak 8N1-et látok a Hyperterminál alján (Auto Detect), akár hogy állitom a HyperTerminált mindig 8N1-et mutat. Amikor 8O1-re állitom a 2553-mast, akkor eggyáltalán nem tudok a HyperTerminállal kommunikálni (UCA0CTL0 = UCPEN. Probáltam az adat bitet 7-re, a Stop bitet 2-re állitani, csak a Stop bit allitás sikerült.

A program 8E1 beállitással csatolva (8N1-et mutat a HyperTerminál...)

Mit csinálok rosszul?
Következő: »»   42 / 139
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem