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   66 / 139
(#) icserny válasza Grebi hozzászólására (») Júl 22, 2012 /
 
Ha valamelyik portlábat kimenetre állítod, akkor az totem-pole kimenet lesz. Ha bemenetre állítod, akkor pedig tri-state lesz (nem vezérli a kimenetet).

Nem tudom, milyen jellegű a feladat, de azt érdemes megfontolni, hogy az USI perifériával nem oldható-e meg a szembekapcsolási probléma (I2C módban). Az ugyanis nyitott nyelőelektródás (az Open Collector kimenet CMOS megfelelője). Ennél nem gond a szembekapcsolás.

Ha az USI perifériával nem oldható meg a probléma, akkor ikrass be egy soros ellenállást (1 kOhm körüli érték), ami korlátozza a szembekapcsolt kimenetek között folyó áramot.
(#) Grebi válasza icserny hozzászólására (») Júl 22, 2012 /
 
Köszönöm az infót! Így már átlátom a dolgot tejes egészben.
(#) uli hozzászólása Júl 22, 2012 /
 
Sziasztok!
Valaki tudna nekem segíteni egy egyszerű program megírásában? Az ADC használatát szeretném megérteni. G2553-ra írnék.
Egy poti értékét szeretném beolvasni egy változóba (pl 0-255 tartományban). Majd ezt az értéket felhasználni a LED PWM szabályzására. Megköszönném ha a program agyon lenne kommentelve, hogy mi mit jelent. Neten csak sokkal bonyolultabbakat találtam, amit nem tudtam értelmezni.
köszi
(#) Grebi válasza uli hozzászólására (») Júl 22, 2012 /
 
PWM dolgok itt gyönyörűen le vannak írva és a kód fel van kommentezve:

Bővebben: Link

ADC pedig itt van(angol nyelvű, de szépen végig van vezetve):

Bővebben: Link

Saját tapasztalatból viszont azt tudom javasolni, hogy az adatlapot is olvasd mellé, mert ha ténylegesen érteni akarod a dolgokat akkor a forrással célravezető.

ui.: Bocs hogy nem írtam programot, de ahhoz már nekem késő van.
(#) icserny válasza uli hozzászólására (») Júl 23, 2012 /
 
Ebben a hozzászólásban mutattam egy programot, ami egyszerű mérést végez az ADC-vel, a 2,5 V-os belső referenciát használva.

Ha pedig a tápfesz. a referencia, akkor a mérő fv. így néz ki:
  1. /*-------------------------------------------------------------
  2.  * Egyszeri mérés egy ADC csatornában, AVCC a referencia
  3.  *-------------------------------------------------------------
  4.  * chan - csatornaválasztó bitek (a csatorna sorszáma << 12)
  5.  */
  6. uint16_t ADC_single_meas(uint16_t chan) {
  7.   ADC10CTL0 &= ~ENC;                   //Az ADC letiltása újrakonfiguráláshoz
  8.   ADC10CTL0 = ADC10SHT_3               //mintavétel: 64 óraütés
  9.              | ADC10ON                 //Az ADC bekapcsolása
  10.              | SREF_0;                 //VR+ = AVCC és VR- = AVSS
  11.   ADC10CTL1 = ADC10SSEL_0 + chan;      //csatorna = 'chan', ADC10OSC az órajel
  12.   ADC10CTL0 |= ENC + ADC10SC;          //Konverzió engedélyezése és indítása
  13.   while (ADC10CTL1 & BUSY);            //Várakozás a konverzió végére
  14.   return ADC10MEM;                     //Visszatérési érték a konverzió eredménye
  15. }
(#) uli válasza icserny hozzászólására (») Júl 23, 2012 /
 
Köszönöm mindkettőtöknek, sokat segítettetek!
Egy kérdés:
ADC10SHT_x : itt az x helyére milyen számokat írhatok, és mekkora frekvenciákat jelentenek a számok?
Ha egyszer veszünk mintát, mint a programrészletben, akkor erre miért van szükség? Nem elég csak a pillanatnyi értéket beolvasni?
chan helyére INCH_x-et kell írni ugye?
a függvényt ADC_single_meas(); módon kell meghívni ugye? és a későbbiekben ADC10MEM-ben lesz tárolva az érték, amit hasonlítgathatok?
Köszi!
(#) icserny válasza uli hozzászólására (») Júl 23, 2012 /
 
ADC10SHT_x a mintavételezés idejét szabja meg. Én a belső hőmérőt is használtam, ezért a maximumra állítottam. x = 0..3 lehet, bővebben lásd a Family User Guide-ban és a fejléc állományokban!

A függvényt változó = ADC_single_meas(); módon kell hívni, a mért érték ugyanis a fv. visszatérési értéke.
(#) uli válasza icserny hozzászólására (») Júl 23, 2012 /
 
Köszönöm! Rég programoztam már, kicsit megfakultak az emlékek
(#) putr4 válasza uli hozzászólására (») Júl 23, 2012 /
 
Az ADC10 sample and hold time talán az egyik legfontosabb a beállításnál. Ennek a lényege, hogy a mérendő feszültséget mintavételezéskor a kontroller kondik segítségével reprodukálja. Viszont ahhoz, hogy ezek egy adott értékre beálljanak meg kell várni azt az időtartamot amíg kisülnek (/feltöltődnek) a valós feszültségszintre, ellenben ha előbb történne a mintavételezés hamis értéket kapnánk. Kisülésüket befolyásolja az áramkör illetve a belső elemek ellenállása. Van erre egy számítási mód JD könyvében, de szerintem fölöslegesen fárasztanálak csak vele. Legegyszerűbb, ha beállítod a legnagyobbra és a belső oszcillátorjával használod (6.3Mhz), ez így is elég gyors lesz valamennyi mérésedhez a kontroller megismerkedése során.

Válasszolva pár kérdésedre:
1. Attól függ mi az órajele az adc-nek és hogy mit állítasz be mintavételezési időnek. 6,3 Mhz esetén a legnagyobb értelemszerűen 6,3Mhz/64ciklus (ez kb 10us várást jelent minden mérésnél).
2. Ez mintavételezési idő. A fennt leírtakból minden következik.

Mellesleg itt egy nagyon hasonló program, ahhoz amit szeretnél.
(#) mrx23 hozzászólása Júl 26, 2012 /
 
Valaki megtudná mondani, hogy hol találhatóak a regiszterek részletes leírásai MSP430-k esetén?

AVR doksiskban szépen kivan részletezve minden regiszter és funkciója mintakóddal, de mspnél csak felvan sorolva a nevük.
77 oldal 80%a csak elektromos tulajdonságokról szól.
pl. ADC10CTL0 bitjeit hol találom mi mi csinál?

Köszönöm,
(#) kadarist válasza mrx23 hozzászólására (») Júl 26, 2012 /
 
Szia!
Azért van doksi a regiszterekről, csak keresni kell: példa.
(#) icserny válasza mrx23 hozzászólására (») Júl 26, 2012 /
 
Itt minden t megtalálsz...
(#) mrx23 hozzászólása Júl 26, 2012 /
 
köszi
(#) putr4 hozzászólása Júl 29, 2012 /
 
Üdv!

Így utólag belenéztem pár programomba és mivel nagyrésze Icserny cikkéből lett ollózva leírom. Szemet szúrt, hogy a két pwm csatornás megoldásnál a "P1IN_bit.P6"-el (P1IN&BIT6) vizsgáljuk a kitöltés aktuális állapotát (lélegző led), ami felettéb zavaró mivel a főprogramban lett beállítva P6 kimenetnek. Nem értem, hogy mi történik a P1IN regiszterrel, ugyanis értékei (,ha ismereteim nem csalnak), programozva általunk nem definiálhatóak. Azaz (digitális állapotában) az határozza meg értékét, hogy mi van a bemeneten. Röviden; nem értem, hogy ez a kifejezés hogy lesz igaz: "if(P1IN_bit.P6)", (ha P1OUT lenne érteném).
(#) idlob válasza putr4 hozzászólására (») Júl 29, 2012 /
 
A P1IN egy regiszter, ami a lábak logikai szintjét tárolja.

Mindegy hogy azt a P1OUT regiszteren keresztül belülről állítottad, vagy kívülről jövő jelet fogad.
A mikrovezérlő adatlapján (nem a FUG-ban!) találsz rajzot az I/O lábak felépítéséről, szépen látszódik, hogy P1IN.x-re P1DIR.x állapotától függően vagy a bementi puffer vagy a kimeneti puffer kapcsolódik rá.
Ez a viselkedés egyébként gyártótól függetlenül jellemző a uC-ekre.
(#) putr4 válasza idlob hozzászólására (») Júl 29, 2012 /
 
Az adatlapban megtaláltam az ábrát, de nem értem. Akkor, ha jól értelmezem a P1IN egy csak olvasható regiszter. Legalábbis én direkt bele nem írhatok, csak ő amit észlel magasat vagy alacsonyat azt megjegyzi az adott portokon. Így viszont eléggé megtévesztő a neve (bár relatív, hogy mi bemenet és mi kimenet).
Köszi!
(#) icserny válasza putr4 hozzászólására (») Júl 29, 2012 /
 
A P1IN valójában nem regiszter. Amikor ezt a címet adod ki, akkor a kivezetések pillanatnyi állapotát kapuzza be az adatbuszra.

Amelyik portbitet bemenetnek állítottuk, ott külső áramkörök/jelek szabják meg a bemenet állapotát. Amelyik portbitet kimenetnek állítottunk be, ott azt olvashatjuk vissza, hogy mi a kimenet aktuális állapota. Ez a helyzet az általad kérdezett mintaprogramban is: megnézzük, hogy most éppen alacsony vagy magas a kimenet állapota.
(#) krobert hozzászólása Aug 1, 2012 /
 
C2000 Piccolo LaunchPad

Elérhető a TI webshopban 17$.
-Pre-programmed C2000 Piccolo F28027 MCU
-Built in isolated XDS100 JTAG Emulator enables real-time in-system programming and debugging via USB
-CPU reset button and programmable push button
-Enables development on any Piccolo F2802x device
-Free unrestricted version of Code Composer Studio integrated development environment (IDE) v5
-Free download of controlSUITE software with examples, libraries, application software and more

Megéri benevezni rá?
(#) moderboy válasza krobert hozzászólására (») Aug 1, 2012 /
 
Olvasd el a C2000 család bemutató dokumentumát, meg nézdd meg mit tud a proci ami rajta van, aztán dönts el hogy szükséged van-e rá
(#) krobert válasza moderboy hozzászólására (») Aug 1, 2012 /
 
Ez jogos.

De érdekelne, hogy tudása alapján mennyivel jobb/rosszabb más gyártók cuccainál(uC).
Esetleg szuperfantasztikus kategória és
rohanok megrendelni cucc-e? ; )
(#) icserny válasza krobert hozzászólására (») Aug 2, 2012 /
 
Ez egy alsókategóriás 32 bites mikrovezérlő. Nem egy nagy durranás, de az árát megéri.

Valamivel izgalmasabbnak tűnik a The Stellaris ARM Cortex M4F LaunchPad kártya, ami szeptember 25-étől lesz rendelhető. $4.99-os bevezető áron. Bővebben: Link
(#) krobert válasza icserny hozzászólására (») Aug 3, 2012 /
 
Köszönöm az infót!

Az Fram-os launchpad infód is jól jött. ; )
(#) putr4 válasza krobert hozzászólására (») Aug 3, 2012 /
 
Hol olvastad arról, hogy fram-os? Mert én sehol nem találom.
(#) krobert válasza putr4 hozzászólására (») Aug 6, 2012 /
 
Elírtam.

A TI Experimenters Board (MSP-EXP430FR5739)-ra
gondoltam.
(#) JOCO10 hozzászólása Aug 7, 2012 /
 
Sziasztok
Az alábbi kóodot probáltam leforditani az IAR-ral
Bővebben: Link oldalon található
video_ text.zip a Launchpad mappában lévő fáljokat simán bemásoltam az IAR project mappába. Forditásnál a video.asm minden sorára hibát irt. Hogy kell egy asm fáljt beilleszteni a kódba?
Előre is köszönöm a segjtséget.
(#) kisedison hozzászólása Aug 7, 2012 /
 
Üdv mindenkinek!

Lenne egy ötletem Lanuchpadhoz bár nem tudom mennyire lenne nehéz megcsinálni. Tehát Egy SD kártyát rá lehetne kötni mondjuk a P2-re, amin lenne egy üres txt file. Ugye a G2553-nak van hardveres UART-ja. Meg lehet azt oldani valahogyan, hogy uart-on küldök ki szöveget a kontrollernek, és azt a szöveget belementi a txt fájlba? Plussz még esetleg azt is hogy a launchpad S2 gombjának megnyomásakor a txt fájl teljes tartalmát elküldje uarton?

Üdv, kisedison
(#) augre válasza kisedison hozzászólására (») Aug 7, 2012 /
 
Szia,

Persze hogy meglehet oldani, rengeteg példakód van neten SD kártyához és tudod irni.

Ha nem gép-kontroller között akarod hanem kontroller kontroller akkor ezt hagyd figyelmen kivül:
Uart az ugye megy az usbn is csak hozzá kell dugni a géphez és rátenni az UART példakódot, virtuális soros porton persze, de adja a TI a programot.

Meg kell nézni, h. a két funkció nem üti e egmást a példakódokban, ha üti akkor kettővel nehezebb dió.

kontroller-kontroller között meg szintén példakód összedugod őket és kész.
(#) kisedison válasza augre hozzászólására (») Aug 7, 2012 /
 
Engem inkább az a rész érdekel hogy a fogadott adatot (később MAX232-vel, launchpad nélkül) rámentse sd kártyára. az nem világos hogy lehet ezt a kettőt összehozni.
(#) szitko válasza kisedison hozzászólására (») Aug 8, 2012 /
 
Idézet:
„(később MAX232-vel, launchpad nélkül)”

Szerintem egy ilyennel, vagy valami hasonló eszközzel jobban jársz, mint a max232-vel. (A MAX232 -őt már lassan el lehet felejteni.)
Idézet:
„Az nem világos, hogy lehet ezt a kettőt összehozni.”

Úgy ahogy leírtad!
UART-on fogadod az adatot, és kiírod a fogadott adatot az SD kártyára. Ennyi az egész.
Ahogy Augre írta, keresel egy példaprogit az SD írásra, (vagy írsz egyet) és már küldheted is az infót.
(#) kisedison válasza szitko hozzászólására (») Aug 8, 2012 /
 
Egy példaprogit találtam, de csak maga a C file. Meg azt se tudom hogyan kéne összekötni az SD kártyát a kontrollerrel. Csináltam egy "BoosterPack"-ot amire majd lehet akármit forrasztani, SD foglalatom is van csak a bekötése kérdéses.
Következő: »»   66 / 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