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   12 / 139
(#) icserny válasza icserny hozzászólására (») Okt 28, 2011 /
 
(#) Spumifater válasza vilmosd hozzászólására (») Okt 28, 2011 /
 
Hálás köszönet érte. A google ezt nem mutatta!
Sose találtam voltana meg. Adnék egy valami jutalmat, vagy pontot de esélyem sincs.

:worship:
(#) DecebaL hozzászólása Okt 28, 2011 /
 
Kicseréltük a TUSB3410 -et a Launchpad -on, sajnos továbbra sem üzemel, lehet az EEPROM se jó.
Az nem lehet hogy az EEPROM tartalmát az F1612 tölti föl ?
(#) Spumifater válasza icserny hozzászólására (») Okt 28, 2011 /
 
Ezeket már láttam, de valahogy érteni is szeretném!
(#) balux33 válasza Spumifater hozzászólására (») Okt 28, 2011 /
 
Szia!
Én ez alapján értettem meg a működését:
Bővebben: Link
Igaz hogy ez nem a hardveres I2C-t használja de szerintem könnyebb megérteni ez alapján.
Abból az ic-ből én is rendeltem már de még nem szorultam a használatára, de nem egy nagy nehézség használni.
Ja és ez csak egy példa nem muszáj EEPROM-hoz használni.
(#) icserny hozzászólása Okt 29, 2011 /
 
Ma zártam le a Launchpad cikksorozat második részét, már csak engedélyezésre vár. A lementett nyers változat addig is elérhető ezen a címen. Ugyanott elérhetők a cikk mintapéldái is, összecsomagolva.
(#) szitko válasza icserny hozzászólására (») Okt 29, 2011 /
 
Csak beleolvastam egy-két oldalba, de minden elismerésem. Kitünő munka.
Már csak a C kellene megtanuljam.
(#) balux33 válasza icserny hozzászólására (») Okt 29, 2011 /
 
Ugyanaz a véleményem mint az előttem szólónak, nagyon hasznos és szép munka.
Köszönöm :worship:
(#) Spumifater válasza icserny hozzászólására (») Okt 30, 2011 /
 
Kifejezetten jó munka! Egycsomó dologról fény gyúlt az agyamban általa. Köszönet a sok munkáért!
(#) t0bi válasza icserny hozzászólására (») Okt 30, 2011 /
 
Nagyon szép munka megint, köszi! Nekem is sok gyertya gyúlt a fejemben , bár még csak barátkozom a C-vel és az msp-vel. Tényleg kicsit rágósabb ez a második rész, de a regiszterek beállítása az egyik legizgalmasabb dolog.
Most azért már próbálkozom a Nokia LCD életre keltésével, PC-s progival szépen megy. Lenne néhány kérdésem, talán nem baj, ha előreszaladok a tanulmányokban. Mi a különbség az io430xxxxx.h és az msp430xxxxx.h header fájlok használatában? Szinte teljesen megegyeznek.
Bízom benne, hogy majd az msp430 spi regisztereiről is fogsz írni. Itt azt olvastam, hogy csak 7 vagy 8 bites spi-t tud hardveresen. A Nokia LCD-hez 9 bit kell. Meg lehet ezt valósítani, vagy csak bitbang a megoldás?
(#) doni8 hozzászólása Okt 30, 2011 /
 
Üdv!
Tanulás céljából vásároltam egy Launchpad-ot. Egy gyors kérdésem lenne. Ha felülírom a gyári hőmérő demót, azt később vissza lehet rá égetni? Ezen az oldalon "Complete Projects" alcím alatt megtaláltam a programot. Ez megegyezik gyári demóval? Addig nem nagyon merek belenyúlni...
Előre is köszönöm!
(#) icserny válasza doni8 hozzászólására (») Okt 30, 2011 /
 
Idézet:
„Ha felülírom a gyári hőmérő demót, azt később vissza lehet rá égetni?”

Igen vissza lehet írni. Az egyik megoldás a közvetlen kimentés. Itt írtam le, hogy hogyan.

A másik lehetőség a gyári forráskód újrafordítása.
(#) icserny válasza t0bi hozzászólására (») Okt 30, 2011 /
 
Idézet:
„A Nokia LCD-hez 9 bit kell. Meg lehet ezt valósítani, vagy csak bitbang a megoldás?[/quote Ebben a hozzászólásban már válaszoltam erre a kérdésre.
[quote]Mi a különbség az io430xxxxx.h és az msp430xxxxx.h header fájlok használatában? Szinte teljesen megegyeznek.”
A különbség az, amiben nem egyeznek meg. Az msp430.h állítólag jó assembly programokhoz is. Az io430.h csak C-hez.
(#) szikorapéter hozzászólása Okt 30, 2011 /
 
Sziasztok.Azt szeretném megkérdezni hogy a msp 430-as nak honnét lehet letölteni a programját regisztráció nélkül.Ha tudtok kérlek segítsetek.Előre is kössz.
(#) icserny válasza szikorapéter hozzászólására (») Okt 30, 2011 /
 
Ha a gyártó (ingyenes) regisztrációhoz köti a letöltést, akkor ezt illik tiszteletben tartani! Vagy használd az MSPGCC-t, az letölthető regisztráció nélkül is!
(#) szikorapéter válasza icserny hozzászólására (») Okt 30, 2011 /
 
Kössz. Regisztráltam és már meg van a program.Mégegyszer kössz.
(#) Spumifater válasza icserny hozzászólására (») Okt 30, 2011 /
 
Végre sikerült a CodeComposert feltelepíteni.
Végső elkeseredésemben a regisztriben megkerestem az összes olyan kulcsot, ami "redistributable" szöveget tartalmaz. Ott leltem rá a jelzett hiba okaira. Egy korábbi telepítés már bejegyezte a registrybe. Majd később vagy helytelen volt az uninstall vagy csak simán törölve lett a könyvtár, a bejegyzés meg bent maradt. Egy olyan helyre hivatkozott, ami már nem létezett. Ezeket a kulcsokat töröltem. Majd telepítés. És láss csodát települt hiba nélkül, és működik szintén hiba nélkül.

Az IAR-ral más a helyzet. Az most sem müxik. Települ hibajelzés nélkül. Indítás, majd kiírja, hogy nem tud üres lapot nyitni.
Na mindegy, a lényeg, hogy legalább az egyik megy. Úgyi jobban kézreáll a CCS.

(Csak visszajelzésként írtam)
(#) Spumifater hozzászólása Okt 30, 2011 /
 
Szeretném kipróbálni a launchpad <-> PC kommunikációt, kellene egy példaprogram, hogy lássam a menetét, ill. a módját. Eddig is sokat tanultam tőletek, főleg icserny volt aki többször is rásegített a megoldásra.

Szóval ha valaki már használta ilyen módon a launchpadot kérem segítsen!
(#) t0bi válasza icserny hozzászólására (») Okt 30, 2011 /
 
Köszönöm, csak kicsit konkrétabb megoldás iránt érdeklődtem volna. Aztán észrevettem, hogy régebben ajánlottad (#1073767) a Family User's Guide -ot, amit csak később vettem észre
Ebben tényleg szépen írva vagyon a lényeg.
(#) icserny válasza Spumifater hozzászólására (») Okt 31, 2011 /
 
Az MSP430G2xx1 mintalprogramok SLAC463 között mindenre találsz mintapéldát.

msp430g2xx1_ta_uart2400.c
Timer_A, Ultra-Low Pwr UART 2400 Echo, 32kHz ACLK

msp430g2xx1_ta_uart9600.c
Timer_A, Ultra-Low Pwr Full-duplex UART 9600, 32kHz ACLK

A hardveres UART periféria hiánya miatt elég komplikált a működése, szerintem korai még ezzel foglalkozni (nekem is!).
(#) doni8 válasza icserny hozzászólására (») Okt 31, 2011 /
 
Köszönöm!
Valamiért ez a közvetlen kimentés nem működik és (egyenlőre) túl bonyolult nekem, hogy rájöjjek miért. De majd a gyári kódot újrafordítom ha nagyon szükségem lenne rá.
(#) icserny válasza doni8 hozzászólására (») Okt 31, 2011 /
 
Idézet:
„Valamiért ez a közvetlen kimentés nem működik”
A FET hardver működéséhez előtte telepíteni kell az eszközmeghajtót, ami a IAR vagy CCS fejlesztői környezettel együtt települ.

A kiadott parancs pedig betűhíven így néz ki:
  1. MSP430Flasher.exe -n MSP430G2231 -r [firmware.txt,MAIN]

A firmware.txt fájlnév helyett természetesen írhatsz mást.
(#) mzozo95 hozzászólása Nov 1, 2011 /
 
HI!

Nagyon kezdő vagyok a témában...

Találtam egy megoldást a hardweres pwm-re, csak sajnos nem sikerült megértenem hogy mi micsoda... link

  1. void main(void)
  2. {
  3.  WDTCTL = WDTPW + WDTHOLD;  // Stop WDT
  4.  
  5.  P1DIR |= BIT2;             // P1.2 to output
  6.  P1SEL |= BIT2;             // P1.2 to TA0.1
  7.  
  8.  CCR0 = 1000-1;             // PWM Period
  9.  CCTL1 = OUTMOD_7;          // CCR1 reset/set
  10.  CCR1 = 250;                // CCR1 PWM duty cycle
  11.  TACTL = TASSEL_2 + MC_1;   // SMCLK, up mode
  12.  
  13.  _BIS_SR(LPM0_bits);        // Enter LPM0
  14. }


A CCR0-nál mi az az 1000-1?

a CCR1-nél a 250 az 25.0% os "kitöltést" jelent? ( ez alapján gondoltam:>wikilink<)

Valaki tudna segíteni?

Zoltán
(#) icserny válasza mzozo95 hozzászólására (») Nov 1, 2011 /
 
A hardveres PWM-nél Timer_A számlálója (TAR) a TACCR0 regiszterben megadott számig számol, s csak a következő órajelnél megy vissza nullára (ezért veszünk el egyet CCR0 értékéből). Az 1000 tehát a PWM jel periódusideje, az alapértelmezett 1 MHz körüli frekvenciára való tekintettel ez mikroszekundumban értendő.

TASSEL_2 az SMCLK jelet választja ki Timer_A forrásául. MC_1 a fent említett "számlálás adott értékig" módot állítja be.

A TACCR1 regiszter a kitöltést állítja be. Az OUTMOD_7 pedig a Reset/Set módot (minden periódusban '1'-be áll TA1 kimenet, majd TACCR1 elérésekor '0'-ba megy).

A P1SEL |= BIT2 beállítással P1.2 lesz a PWM kimenet, de lehetne helyette P1.6-ot vagy P2.6-ot is választani (MSP430G2231 vagy G2211 esetén).

Bővebb leírást a megjelenés az engedélyezésre váró cikkemben találsz majd. addig is: Cikk1, Cikk2 kézirat
(#) icserny válasza icserny hozzászólására (») Nov 1, 2011 /
 
Azt elfelejtettem hozzátenni, hogy a CCR0, CRR1, CCTL1 nevek a "hivatalos" TACCR0, TACCR1, TACCTL nevek alternatív megnevezései.

A több perifériával szerelt nagyobb kiépítettségű MSP430 mikrovezérlőknél az elnevezések tovább bonyolódnak, mert azokban több Timer_A, sőt, Timer_B is lehet. Ezeknél a TA vagy TB után egy sorszám is belép. például TA0CCR0, TA0CCR1, TA1CCR0, TA1CCR1, stb.
(#) mzozo95 válasza icserny hozzászólására (») Nov 1, 2011 /
 
Köszönöm a gyors választ, így már minden világos!

A cikkeid nagyon jók, az első nyújtotta nekem a kiindulópontot a már rég tervezett programozás felé...
(#) t0bi hozzászólása Nov 1, 2011 /
 
Sikerült végre életet lehelni a Nokia LCD-be MSP-vel, nagy-nagy köszönet érte icsernynek. Sajnos csak egy darab idevágó cikket találtam a netenBővebben: Link, ezért életem első C progiját ebből kellett kiollózni.
  1. #include <msp430g2231.h>
  2.  
  3. //*******************************************************
  4. //          GPIO Definitions
  5. //*******************************************************
  6. #define LCD_CS_PIN    BIT6
  7. #define LCD_SCK_PIN   BIT7
  8. #define LCD_DIO_PIN   BIT5
  9. #define LCD_RES_PIN   BIT4
  10.  
  11. #define LCD_RES_PORT  P1OUT
  12. #define LCD_CS_PORT   P1OUT
  13. #define LCD_DIO_PORT  P1OUT
  14. #define LCD_SCK_PORT  P1OUT
  15.  
  16. //*******************************************************
  17. //          Color Definitions
  18. //*******************************************************
  19. #define BLACK       0xFFF
  20. #define WHITE       0x000
  21. #define CYAN        0xF00
  22. #define MAGENTA     0x0F0
  23. #define YELLOW      0x00F
  24. #define RED         0x0FF
  25. #define GREEN       0xF0F
  26. #define BLUE        0xFF0
  27. #define BROWN       0x4DD
  28. #define ORANGE      0x05F
  29. #define PINK        0x095
  30.  
  31. //*******************************************************
  32. //          EPSON Controller Definitions
  33. //*******************************************************
  34. #define DISON       0xAF
  35. #define SLPOUT      0x94
  36. #define COMSCN      0xBB
  37. #define PASET       0x75
  38. #define CASET       0x15
  39. #define DATCTL      0xBC
  40. #define RAMWR       0x5C
  41. #define LCD_OSCON   0xD1
  42. #define PWRCTR      0x20
  43. #define VOLCTR      0x81
  44.  
  45. //*******************************************************
  46. //      Macros
  47. //*******************************************************
  48. #define sbi(var, bit)  (var |= bit)
  49. #define cbi(var, bit)  (var &= ~bit)
  50.  
  51.       //Sends a 9 bit command over SPI to the LCD with
  52.       //the first bit HIGH indicating "command" mode.
  53. void lcd_command(unsigned char data)
  54. {
  55.       char j;
  56.  
  57.       cbi(LCD_CS_PORT, LCD_CS_PIN);      // enable chip, p0.20 goes low
  58.       cbi(LCD_DIO_PORT, LCD_DIO_PIN);    // output low on data out (9th bit low = command), p0.19
  59.  
  60.       cbi(LCD_SCK_PORT, LCD_SCK_PIN);    // enable chip, p0.20 goes low
  61.       sbi(LCD_SCK_PORT, LCD_SCK_PIN);    // enable chip, p0.20 goes high
  62.  
  63.       for (j = 0; j < 8; j++)
  64.       {
  65.       if ((data & 0x80) == 0x80) sbi(LCD_DIO_PORT, LCD_DIO_PIN);
  66.       else                       cbi(LCD_DIO_PORT, LCD_DIO_PIN);
  67.  
  68.       // send clock pulse
  69.       cbi(LCD_SCK_PORT, LCD_SCK_PIN);  
  70.       sbi(LCD_SCK_PORT, LCD_SCK_PIN);    
  71.  
  72.       // left most bit first: LSB
  73.       data <<= 1;
  74.       }
  75.       sbi(LCD_CS_PORT, LCD_CS_PIN);        // disable
  76. }
  77.  
  78.       //Sends a 9 bit command over SPI to the LCD with
  79.       //the first bit LOW indicating "data" mode.
  80. void lcd_data(unsigned char data)
  81. {
  82.       char j;
  83.  
  84.       cbi(LCD_SCK_PORT, LCD_SCK_PIN);      // send clock pulse
  85.       cbi(LCD_CS_PORT, LCD_CS_PIN);        // enable chip, goes low
  86.       sbi(LCD_DIO_PORT, LCD_DIO_PIN);      // output high on data out (9th bit high=data)
  87.  
  88.       cbi(LCD_SCK_PORT, LCD_SCK_PIN);      // send clock pulse
  89.       sbi(LCD_SCK_PORT, LCD_SCK_PIN);
  90.  
  91.       for (j = 0; j < 8; j++)
  92.       {
  93.       if ((data & 0x80) == 0x80) sbi(LCD_DIO_PORT, LCD_DIO_PIN);
  94.       else                       cbi(LCD_DIO_PORT, LCD_DIO_PIN);
  95.  
  96.       cbi(LCD_SCK_PORT, LCD_SCK_PIN);  
  97.       sbi(LCD_SCK_PORT, LCD_SCK_PIN);    
  98.  
  99.       data <<= 1;
  100.       }
  101.       sbi(LCD_CS_PORT, LCD_CS_PIN);         // disable
  102. }
  103.  
  104. //************************************************************************
  105. //************************************************************************
  106.  
  107. void main(void)
  108. {
  109.       WDTCTL = WDTPW + WDTHOLD;  // Letiltjuk a watchdog időzítőt
  110.       P1DIR = 0xFF;              // P1 legyen digitális kimenet
  111.       #define COLOR RED        // Szín kiválasztása
  112.  
  113.       // reset display
  114.       cbi(LCD_RES_PORT, LCD_RES_PIN);
  115.       __delay_cycles (200000);
  116.      
  117.       sbi(LCD_RES_PORT, LCD_RES_PIN);
  118.  
  119.       lcd_command(COMSCN);       // common scanning direction(EPSON)
  120.       lcd_data(0x01);
  121.    
  122.       lcd_command(LCD_OSCON);    // internal oscialltor ON(EPSON)
  123.  
  124.       lcd_command(SLPOUT);       // sleep out(EPSON)
  125.  
  126.       lcd_command(PWRCTR);       // power ctrl(EPSON)
  127.       lcd_data(0x0F);            //everything on, no external reference resistors
  128.  
  129.       lcd_command(DATCTL);       // data control(EPSON)
  130.       lcd_data(0x03);            //correct for normal sin7
  131.       lcd_data(0x00);            // normal RGB arrangement
  132.       lcd_data(0x02);            // 16-bit Grayscale Type A
  133.  
  134.       lcd_command(VOLCTR);  // electronic volume, this is the contrast/brightness(EPSON)
  135.       lcd_data(0x24);       // volume (contrast) setting - fine tuning, original
  136.       lcd_data(0x03);       // internal resistor ratio - coarse adjustment
  137.  
  138.       lcd_command(DISON);        // display on(EPSON)
  139.  
  140.        //LCDClearScreen
  141.        long  i;    // loop counter
  142.  
  143.        // Row address set  (command 0x2B)
  144.        lcd_command(PASET);
  145.        lcd_data(0);
  146.        lcd_data(131);
  147.  
  148.        // Column address set  (command 0x2A)
  149.        lcd_command(CASET);
  150.        lcd_data(0);
  151.        lcd_data(131);
  152.  
  153.        // set the display memory to COLOR
  154.        lcd_command(RAMWR);
  155.        for(i = 0; i < ((132 * 132) / 2); i++)
  156.        {
  157.        lcd_data((COLOR >> 4) & 0xFF);
  158.        lcd_data(((COLOR & 0xF) << 4) | ((COLOR >> 8) & 0xF));
  159.        lcd_data(COLOR & 0xFF);
  160.        }
  161.  
  162.        // LED villogtatása, ha az LCD-be írás kész
  163.        while(1)
  164.        {
  165.          P1DIR |= BIT0;
  166.          P1OUT ^= BIT0;              //P1.0 állapotának átbillentése
  167.        __delay_cycles(250000);       //Várakozás kb. 250 ms ideig
  168.        }
  169. }
Megpróbálok majd ábrákat, feliratokat, bmp képeket is az LCD-re rakni az MSP430G2231 segítségével, de már kaptam két 2452-t is, azzal is próbálkozom. Aztán megpróbálom megérteni, hogy működik, mert még nem minden tiszta
Nagyon várom már a cikkek folytatásait!

P1010318.JPG
    
(#) doni8 válasza icserny hozzászólására (») Nov 1, 2011 /
 
Már működik! Köszönöm a segítséget!
IAR segítségével egy C-ben írt programot le lehet fordítani gépi kódra (*.txt-be), hogy aztán MSP430Flasher-el tudjam felprogramozni?
(#) icserny válasza doni8 hozzászólására (») Nov 1, 2011 /
 
Sok értelmét nem látom a IAR és az MSP430Flasher kombinálásának, mert az IAR Embedded Workbench saját programozót/debuggert tartalmaz.
(#) icserny válasza doni8 hozzászólására (») Nov 2, 2011 / 1
 
Idézet:
„IAR segítségével egy C-ben írt programot le lehet fordítani gépi kódra (*.txt-be)?”
A Project/Options/Linker/Output menüpontban és fülön csaknem százféle formátumot lehet választani. Az alapértelmezett az msp430-txt formátum.
Következő: »»   12 / 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