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   130 / 139
(#) lorylaci válasza vottokar hozzászólására (») Aug 25, 2014 /
 
FDH-nál biztosan van, legalábbis én az MSP430G2553-at jó áron láttam legutóbb!
(#) vottokar válasza lorylaci hozzászólására (») Aug 26, 2014 /
 
Köszönöm, rápislantottam, a Farnellnál tényleg van. Legalább akkor elérhető.
(#) icserny hozzászólása Aug 26, 2014 / 1
 
Iskolakezdési akciót hirdettek a TI eStore-ban, az akció szeptember 3-ig tart. A feltüntetett kedvezményeket fizetésnél a kupon kódok beírásával lehet érvényesíteni. Egy vevő mindegyik kupon kódot csak egyszer használhatja, 1-1 termék vásárlására. Bővebben: Link

Termék Kedvezmény Kupon kód
----------------------------------------------------------------------------
MSP-FET programmer/debugger 50% MSPSCOOL1
MSP-EXP430FR5969 35% MSPSCOOL2
MSP-EXP430G2 Launchpad 20% MSPSCOOL3
MSP-EXP430F5529LP 10% MSPSCOOL4
A hozzászólás módosítva: Aug 26, 2014
(#) SBahadurD hozzászólása Szept 25, 2014 /
 
Hali!

Valakinek sikerült már MSP430-at és az Eclipse-t összehozni?
Ha valaki tudja, le tudná írni, hogyan kell windows alatt? Köszi előre is!
(#) icserny válasza SBahadurD hozzászólására (») Szept 25, 2014 /
 
Idézet:
„Valakinek sikerült már MSP430-at és az Eclipse-t összehozni?”
Hát persze! A Texas Instruments-nek már évekkel ezelőtt sikerült. Code Composer Studionak hívják.

A 6-os verziót érdemes kipróbálni, ami az Energia vázlatokat (sketch) is hajlandó importálni. Érdemes az ingyenes MSP430 GCC fordítót is telepítésre jelölni (a telepítési opciókat figyelmesen meg kell nézni), mert a Texas saját MSP430 fordítója méretkorlátos (16 kB). Mondjuk az MSP430G2553-nál ez még pont nem érdekes, de a nagyobb memóriájú típusoknál ez már fontos lehet.
(#) sunyeb hozzászólása Okt 7, 2014 /
 
Sziasztok!
Az alábbi problémával találtam szembe magam. Adott egy áramkör, aminek az indítása táp ráadással történne. A gond ott kezdődik, hogy a programot, ha leküldöm LPM4-be és elveszem a tápot, akkor van amikor simán elindul, de van amikor kb. 20mp tápelvét, majd ráadás kell neki, hogy elinduljon. A táp 3V elem., össz-vissz 1db 100nF hidegítő kondi van rajta. Ha tápot ráadva (amikor magától nem indul) resetelem, akkor minden esetben elindul.
Ha más nem lesz, akkor folyamatosan rajta lesz a táp és resettel fogom inditani a programot. Az alap áramfelvétel lmp4-ben 20uA, 2x1,5V ceruzáról, ha 2,5V-ig engedem lemenni a feszültséget max., akkor is évekig el kell így mennie, ha jól gondolom...
Ötlet?
(#) SBahadurD válasza sunyeb hozzászólására (») Okt 7, 2014 /
 
Csak egy tipp:
Nem lehet, hogy LPM4-ben még az a 100nF-os kondenzátor is elég tápnak?
(#) sunyeb válasza SBahadurD hozzászólására (») Okt 7, 2014 /
 
Próbáltam anélkül is. Sőt olyat is, hogy tápelvétel után a plusz-mínuszt rövidre zárom és úgy adom rá a tápot. Akkor is ez a jelenség
(#) icserny válasza SBahadurD hozzászólására (») Okt 7, 2014 /
 
Idézet:
„Nem lehet, hogy LPM4-ben még az a 100nF-os kondenzátor is elég tápnak?”
Nem.
(#) icserny válasza sunyeb hozzászólására (») Okt 7, 2014 /
 
A RESET láb hogy van bekötve? Meg lehetne késleltetni egy kicsit. Pl. 47 kOhm és 100 nF... (A felhúzó ellenállás és a RESET lábra kötött kondenzátor R*C időállandója számít).

Programozáskor viszont nem szabad otthagyni a RESET lábon a "lassító" kondenzátort (a Launchpad kártyán 1 nF van, annyit elvisel)!
(#) sunyeb hozzászólása Okt 7, 2014 /
 
Akkor még küzdök vele. Ha végképp nem bírok vele, akkor marad a reset-es módszer. Esetleg valakinek EAGLE-hez 2452-höz library-ja?
(#) sunyeb válasza icserny hozzászólására (») Okt 7, 2014 /
 
Jelenleg egy 4k7 van felhúzónak és egy 100nF a föld felé. Eredetileg 47K volt, csak gondoltam, lecsökkentem, hátha folyamatos resetelgetés miatt mókázik tápráadáskor.
(#) kisstomi5545 hozzászólása Okt 24, 2014 /
 
Üdv!
Megépítettem a vonalkövető robotot, és az áramkör működik is rendesen, de ha rácsatlakotatom az msp-t, akkor megbolondul. Nem működik a Serial Monitor sem. Mi lehet a probléma? Esetleg tönkrevághattam a mikrovezérlőt valamivel, vagy beragad az egyik if-be?
  1. #define EN1 9 // Pin9 (P2.1) : Motor1 sebesseg (PWM)
  2.  
  3. #define M1 10 // Pin10 (P2.2) : Motor1 irany (Bal Motor)
  4.  
  5. #define EN2 12 // Pin12 (P2.4) : Motor2 sebesseg (PWM)
  6.  
  7. #define M2 11 // Pin11 (P2.3) : Motor2 irany (Jobb Motor)
  8.  
  9.  
  10.  
  11. int BalSzenzor = A4; // Bal oldali szenzor az A4 analog labra kotve - Pin6 (P1.4)
  12.  
  13. int JobbSzenzor = A7; // Jobb oldali szenzor az A7 analog labra kotve - Pin15 (P1.7)
  14.  
  15. int balertek; // Bal szenzoron mert ertek
  16.  
  17. int jobbertek; // Jobb szenzoron mert ertek
  18.  
  19. int Hatarertek = 720; // szenzor hatarertek
  20.  
  21. int MotorSebesseg = 30; // Kezdeti motorsebesseg megadasa
  22.  
  23.  
  24.  
  25. void setup()
  26.  
  27. {
  28.  
  29. pinMode(EN1, OUTPUT); // Motor1 sebesseg (PWM)
  30.  
  31. pinMode(EN2, OUTPUT); // Motor2 sebesseg (PWM)
  32.  
  33. pinMode(M1, OUTPUT); // Motor1 irany (Bal Motor)
  34.  
  35. pinMode(M2, OUTPUT); // Motor2 irany (Jobb Motor)
  36.  
  37. MotorBal(MotorSebesseg); // Robot: Elore
  38.  
  39. MotorJobb(MotorSebesseg);
  40.  
  41. Serial.begin(9600); // 9600 baud-os soros kommunikacio beallitasa
  42.  
  43. }
  44.  
  45.  
  46.  
  47. void loop() // vegtelen ciklus
  48.  
  49. {
  50.  
  51. balertek = analogRead(BalSzenzor); // Bal szenzoron levo feszultseg merese (0 - 1023 kozotti ertek)
  52.  
  53. jobbertek = analogRead(JobbSzenzor); // Jobb szenzoron levo feszultseg merese (0 - 1023 kozotti ertek)
  54.  
  55.  
  56.  
  57. // Ha mindket szenzor a vilagos padlo felett van: Elore
  58.  
  59. if (balertek>Hatarertek && jobbertek>Hatarertek)
  60.  
  61. {
  62.  
  63. MotorBal(MotorSebesseg); //Bal motor: elore
  64.  
  65. MotorJobb(MotorSebesseg); //Jobb motor: elore
  66.  
  67. }
  68.  
  69. // Ha a Bal szenzor a vonal felett, a Jobb pedig a padlo felett van: Balra kanyarodas
  70.  
  71. else if (balertek<Hatarertek && jobbertek>Hatarertek)
  72.  
  73. {
  74.  
  75. MotorBal(0); // Bal motor: stop
  76.  
  77. MotorJobb(MotorSebesseg); // Jobb motor: elore
  78.  
  79. }
  80.  
  81. // Ha a Jobb szenzor a vonal felett, a Bal pedig a padlo felett van: Jobbra kanyarodas
  82.  
  83. else if (balertek>Hatarertek && jobbertek<Hatarertek)
  84.  
  85. {
  86.  
  87. MotorBal(MotorSebesseg); // Bal motor: elore
  88.  
  89. MotorJobb(0); // Jobb motor: stop
  90.  
  91. }
  92.  
  93. // Mindket szenzor a vonal felett van (keresztezodes): Elore
  94.  
  95. else if (balertek<Hatarertek && jobbertek<Hatarertek)
  96.  
  97. {
  98.  
  99. MotorBal(MotorSebesseg); // Bal motor: elore
  100.  
  101. MotorJobb(MotorSebesseg); // Jobb motor: elore
  102.  
  103. }
  104.  
  105.  
  106.  
  107. // A mert szenzoradatok elkuldese a PC-re
  108.  
  109. // (szenzor hatarertek meghatarozasakor es tesztelesnel hasznaltam)
  110.  
  111. Serial.print("Bal Szenzor = " );
  112.  
  113. Serial.print(balertek);
  114.  
  115. Serial.print(" Jobb Szenzor = ");
  116.  
  117. Serial.println(jobbertek);
  118.  
  119.  
  120.  
  121. delay(50); // Varakozas 50ms-ig
  122.  
  123. }
  124.  
  125.  
  126.  
  127. void MotorBal(int sebesseg)
  128.  
  129. {
  130.  
  131. if (sebesseg>0)
  132.  
  133. {
  134.  
  135. digitalWrite(M1,HIGH);
  136.  
  137. analogWrite(EN1,sebesseg*255/100);
  138.  
  139. }
  140.  
  141. else
  142.  
  143. {
  144.  
  145. digitalWrite(M1,LOW);
  146.  
  147. analogWrite(EN1,abs(sebesseg)*255/100);
  148.  
  149. }
  150.  
  151. }
  152.  
  153. void MotorJobb(int sebesseg)
  154.  
  155. {
  156.  
  157. if (sebesseg>0)
  158.  
  159. {
  160.  
  161. digitalWrite(M2,HIGH);
  162.  
  163. analogWrite(EN2,sebesseg*255/100);
  164.  
  165. }
  166.  
  167. else
  168.  
  169. {
  170.  
  171. digitalWrite(M2,LOW);
  172.  
  173. analogWrite(EN2,abs(sebesseg)*255/100);
  174.  
  175. }
  176.  
  177. }


Előre is köszönöm a segítséget!
(#) SBahadurD válasza icserny hozzászólására (») Okt 24, 2014 /
 
Hopp, valóban. Nem számoltam, nem gondolkodtam, csak egyből jött ki a hülyeség, ami eszembe jutott...
Utána számolva már tényleg látszik, hogy nem elég neki a 100nF még egy tized másodpercre sem.
(#) kocsgab002 hozzászólása Okt 28, 2014 /
 
Sziasztok.
A következő problémám lenne. Adott egy MSP430G2553 SMD tokban. Kapcsolási rajz és fotó mellékelve.
Szeretném ezt felprogramozni. Mellékelem a programot. Hogyan induljak neki, milyen programmal, milyen programozóval? Eddig PIC és AVR volt terítéken, ez az első ilyen projekt.
Előre is köszönöm a segítséget.
A hozzászólás módosítva: Okt 28, 2014
(#) kisedison válasza kocsgab002 hozzászólására (») Okt 28, 2014 /
 
Sima launchpaddal fel tudod programozni. Bekötöd a TEST, RESET, GND lábakat, adsz a cuccnak tápot, és már mehet is.
(#) kocsgab002 válasza kisedison hozzászólására (») Okt 28, 2014 /
 
Köszönöm, akkor kell szereznem egy ilyen launchpadot..Milyen software-t ajánlasz hozzá?
(#) lorylaci válasza kocsgab002 hozzászólására (») Okt 28, 2014 /
 
Először meg kellene nézni, hogy az adott forráskódokat (c fájlokat láttam) melyik compiler-re szánják. Én Code Composer Studio-t használok, ott van a TI-os eredeti compiler, és van GCC is.
Ezen kívül elterjedt még az IAR.
Mindkettő ingyenesen letölthető a TI oldaláról. Kódkorlátosak, de az MSP430G2553-nál nem lesz probléma a korláttal.
(#) kisedison válasza kocsgab002 hozzászólására (») Okt 29, 2014 /
 
Én Energia IDE-t használtam/ok, olyan mint az Arduino-é sokban kompatibilisek is. Egyszerű vele programot írni nagyon, én ezt javaslom. Aztán van még a Code Composer Studio, itt nem az egyszerűsített programnyelv van, hanem keményen C.
(#) kocsgab002 válasza kisedison hozzászólására (») Okt 29, 2014 /
 
Nem szeretnék programozni rajta, semmit, csak a megadott programot egyszer beégetni, és kész.
Azt honnan tudom meg, hogy az adott forráskódokat melyik compiler-re szánják?
(#) icserny válasza kocsgab002 hozzászólására (») Okt 29, 2014 /
 
Idézet:
„Azt honnan tudom meg, hogy az adott forráskódokat melyik compiler-re szánják?”

1. Az a legegyszerűbb, ha a forráskódot közzétevő személy megmondja.
2. Ki lehet nyomozni. Itt pl a Makefile ezt mondja: CC = msp430-gcc, MSPDEBUG = mspdebug
Tehát a szerző (feltehetőleg Linux alatt) a GCC MSP430-hoz való keresztfordítóját használta, a programletöltéshez pedig az mspdebug alkalmazást. Ezek külön is beszerezhetők, de az Energia-ban is benne vannak.

Mielőtt Launchpad kártya vásárlásba fognál, nézz utána, hogy az általad használt operációs rendszer alatt melyik használható fájdalommentesen! (Az MSP-FET430UIF lenne az "igazi" programozó/nyomkövető eszköz, de annak az ára nagyon húzós, ezért kellemesebb valamelyik MSP430 Launchpad kártya beszerzése.)
(#) steelgoofy hozzászólása Nov 1, 2014 /
 
Üdv,

MSP 430 g2553 chippel szerelt launchpaden szeretném az ADC-t használni.Régebben már használtam és akkor tökéletesen működött, most viszont nem jól működik. Az a gond hogy mikor a külső forrásból rákapcsolom a feszültséget a bemeneti csatornára (BIT1), akkor az addig 1,8V os külső feszültség felugrik 2,6 V ra, és a mérés nem jól működik.
Itt a kódom, ami jelenleg csak teszt. Amikor a bemeneti feszültség 1,8V-nál nagyobb akkor egy led kigyullad. A baj az, hogy mint említettem a rákapcsolt 1,8 V mikor rákapcsolom már 2,6 V, próbáltam potenciométerrel is, amit ha a feléig tekerek el akkor kellene 1,8V ot kapnom, ehelyett már a negyedénél megkapom, ha leválasztom a poti kimenetét a BIT1-ről akkor visszaáll a rend.
  1. #include "msp430g2553.h"
  2.  
  3. int value = 0;            // adc értékét tároló változó
  4. int main( void )
  5. {
  6.   // Stop watchdog timer to prevent time out reset
  7.   WDTCTL = WDTPW + WDTHOLD;
  8.  
  9.   ADC10CTL0 |= SREF_0 | ADC10ON | ADC10IE;            
  10.  // Vref = Vcc, ADC = ON , interrupt enabled
  11.   ADC10CTL1 |= INCH_1 | ADC10SSEL_3;                  
  12.  // A1 = BIT1-en mérünk, SMCLK órajelforrás ~ 1Mhz
  13.  
  14.   P1DIR |= BIT6;
  15.   P1OUT &= ~BIT6;
  16.  
  17.   ADC10CTL0 |= ENC;                                    
  18.   // enable conversion
  19.  
  20.   _BIS_SR(GIE);                                        
  21.   // intterupts enabled
  22.  
  23.   ADC10CTL0 |= ADC10SC;                                
  24.   // start konverzió
  25.  
  26.   while(1)
  27.   {
  28.           if( value > 520)
  29.           {
  30.             P1OUT |= BIT6;
  31.           }
  32.           else P1OUT &= ~BIT6;
  33.   }
  34. }
  35.  
  36. #pragma vector = ADC10_VECTOR
  37. __interrupt void analodgigital_ISR(void)              
  38. {
  39.   value =  ADC10MEM;                                    
  40.   // érték kiolvasása
  41.   ADC10CTL0 |= ADC10SC;                                
  42.    // új konverzió
  43. }
(#) szitko válasza steelgoofy hozzászólására (») Nov 1, 2014 /
 
Az analóg bemenet engedélyezése elmaradt: ADC10AE0 |= BIT1;
(#) steelgoofy válasza szitko hozzászólására (») Nov 1, 2014 /
 
Valóban kimaradt,viszont ezt beírva sem lett más a helyzet sajnos.
(#) szitko válasza steelgoofy hozzászólására (») Nov 2, 2014 / 1
 
Akkor valamit rosszul csinálsz, vagy rossz az MCU. Próbálj ki egy másik analóg bemenetet...
(#) steelgoofy hozzászólása Nov 2, 2014 /
 
Kivettem a uC-t a Launchpadból,kitettem breadbordra és ott már tökéletesen működik. Valami baja lehet a launchpadnek, mert így üresbe 3,56V (Vcc) kerül a BIT1 pinre.
(#) g1rdon válasza steelgoofy hozzászólására (») Nov 2, 2014 /
 
Vedd le az UART (RX, TX) jumpereket J3-ról.
(#) Andras89 hozzászólása Nov 5, 2014 /
 
Sziasztok!

Lehet hogy már itt volt erről szó, de hogy lehet Assembly-ben char-t, int-et, tömböt definiálni?
(Microcontroller-ben kezdő igen csak kezdő vagyok még)
A Family UG kicsit zavaros (mondjuk nem is túl jó az angolom...), a cikkek között meg csak C kódot találtam. Esetleg ha van valakinek kedve leírni még azt, hogy hogyan tudom kibogarászni a Family UG-ból, hogy honnan és mennyi memória áll rendelkezésemre ilyen változók definiálásához, azt is nagyon megköszönném.
(#) g1rdon válasza Andras89 hozzászólására (») Nov 5, 2014 /
 
CCS assembler esetén SLAU131 "Assembler directives" fejezet, GNU assembler esetén Assembler Directives.

Adott konkrét kontroller adatai a device-specific data sheetben vannak, nem a family guide-ban, ahogy pl. itt: MSP430G2x53, MSP430G2x13 Mixed Signal Microcontroller látszik: device-specific data sheet, errata sheet, family guide.

A három dokument csak együtt írja le a konkrét kontrollert, és mind a három dokument szükséges a konkrét kontroller leírásához.
(#) Ádám123 válasza kisstomi5545 hozzászólására (») Nov 14, 2014 /
 
Szia, hogyan van megoldva a táplálása az MCU-nak? Nálam akkor fordult elő ilyen probléma, amikor a motor és a mikrokontroller is ugyanarról a forrásról kapta az áramot. A motor nagy áramfelvétele és a zajai miatt folyamatosan újraindult az msp... (brownout reset) szerintem tápláld más forrásból egy külön akkuról a vezérlőt, ha úgysem működik akkor még szükséges az optocsatolós leválasztás is.
Következő: »»   130 / 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