Texas Instruments MSP430

Diskusija o MSP, ARM / LPC, PLC kontrolerima.

Moderators: pedja089, stojke369, [eDo], trax

jazz
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 207
Joined: 21-10-2010, 21:18
Location: Hrvatska

Re: Texas Instruments MSP430

Post by jazz »

Josko wrote:BSL se može koristiti samo za update firmware, preko njega nije moguće debugirati mikrokontroler. Preko Jtaga se može raditi update firmware i debug...usb i porodicu nisam koristio...
JTAG mi ne sviđa jer koristi previše pinova uC, što može biti problem na uC s manjm brojem pinova (npr. msp430f2012). SBW je OK, ali flash-anje je puno sporije nego s BSL-om. BSL opet ima svojih problema. Kod nekih primjeraka, npr. msp430f2131, jedina moguća naredba, bez znanja passworda, je mass erase. E sad, to bi sve bilo OK, da mass erase ne obriše i info memoriju, odnosno kalibracijski dio. Kao što sam već prethodno naveo, sekvenca za ulaz u BSL mod kod msp430f5510 ima specifične time-ing zahtijeve i tako. BTW, TI datasheet-ovi su inače poznati kao "pouzdani", ne samo što se uC tiče.

Debagiranje (ne samo za MSP430 uC) radim tako da ubacim debug asm liniju na svako sumnjivo mjesto, i onda uC pošalje PC-u u text formatu, izlist registara, stack-a, memorije, num/str varijable, whatever. Znači pokrenem program i na kraju dobijem na PC strani klasičan log file u text formatu.
Josko
Posts: 9
Joined: 12-02-2012, 13:53

Re: Texas Instruments MSP430

Post by Josko »

Da, Jtag koristi puno pinova. Na malom čipu se lako tako potroše, zato pinout mali chipovi imaju dvožični SBW, slično ima i Motrorola BDM. Na MSP430F2001 sam koristio SBW i iskustva su mi dobra....Inače JTAG se u serijskoj proizvodnji "spali" zbog krađe firmware.
Download BSL se koristi za update flasha ako bude naknadno problema...Npr kad se uređaji vrate s terena...On line debug je dobar zbog praćenja procesa s vanjskom periferijom u realnom vremenu. Kad je koji uzorak došao? I kad je paket došao?....Prije 10 godina programiranje uC je bilo puno nezgodnije, JTAG, BSL,i ostale stvari su puno pomogle....
jazz
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 207
Joined: 21-10-2010, 21:18
Location: Hrvatska

Re: Texas Instruments MSP430

Post by jazz »

Kao što sam ranije već napisao, počeo sam se igrati sa MSP430F5xx serijom (MSP430F5510). Prva (p2p) pločica napravljena je nevezano za USB, sa BSL (RS232) i SBW konekcijom. Planirao sam, najprije natjerat stvar da proradi, a kasnije se sa pozabavit sa USB-om. Ostavio sam mogućnost eksternog ili USB napajanja, premještanjem nekoliko jumper-a.

Napravio sam ranije BSL/SBW hardware/software za MSP430F2xx seriju (potrošio tonu slobodnog vremena). Nisam mislio da će biti velikih problema, ako bude to trebalo malo prilagoditi za novu igračku. Nije riječ o debug-iranju, nego samo nešto jednostavno za flash-anje. Nažalost, krajnji rezultat, nula bodova.

Promijenili su timing za ulazak u BSL mode, odnosno, serijski port PC-a (ili PL2303 USB/RS232) više nije dovoljno brz za to. Malo sam pročešljao BSL source za MSP430F5xx seriju i izgleda to skroz drugačije od onoga za MSP430F2xx.

Nova MSP430F5xx serija dolazi s novom (CPUX) jezgrom, tako da je SBW/JTAG potpuno drugačiji, odnosno umjesto SBW-a za MSP430F2xx seriju, treba napisati kod iz početka. I počeo sam jednog dana, i planiram jednog dana i završiti, ali trenutno nemam baš previše vremena za to.

I na kraju mi je ostao BSL preko USB-a, korištenjem TI, gotovog software-a. Plan odabira napajanja jumper-ima nije baš ispao kako treba, i na kraju sam odustao od prve pločice.
jazz
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 207
Joined: 21-10-2010, 21:18
Location: Hrvatska

Re: Texas Instruments MSP430

Post by jazz »

Za drugu pločicu (p2p) sam se malo bolje pripremio. Za fash-anje sam stavio SBW i USB konektore, nema (RS232) BSL-a. Napajanje je preko USB, nema nikakvih jumpera. Jednostavnije ne može biti, MSP430F5510 chip, nekoliko otpornika i kondenzatora, jedan 12MHz quartz za USB i dvije diode (power, P1.0). Krajnji rezultat OK.

Za flashanje (BSL) preko USB-a, potrebna su samo 2 file-a (priloženi flash.rar) iz paketa...
http://www.ti.com/tool/msp430usbdevpack

Image

Image
Attachments
flash.rar
(80.66 KiB) Downloaded 481 times
jazz
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 207
Joined: 21-10-2010, 21:18
Location: Hrvatska

Re: Texas Instruments MSP430

Post by jazz »

Kod uboda USB kabela u komp, za ulazak u USB BSL mod provjerava se S3 button (PUR/VUSB spoj). Ako se za S3 umjesto tipkala (TI exp board) stavi sklopka ili jumper, puno je jednostavnije raditi. Jednostavno, ostavi se PUR/VUSB kontakt stalno zatvoren. Ako nakon uboda USB kabela u komp, postoji PUR/VUSB veza, uC ulazi u BSL mod. Nakon BSL flash postupka, veza PUR/VUSB više nije bitna (nije problem ako postoji), uC se resetira i krene sa izvođenjem programa.

Da bi se izbjeglo non-stop štekanje USB kabela u komp, može se koristiti neko 4 polno minijaturno tipkalo.

I da, nije baš sve savršeno. Ipak su dečki iz TI-ja malo usrali stvar. Aplikacija za flash-anje, nakon odabira file-a, zaključa file, tako da mu linker ne može pristupiti (totalni amaterizam). Nego treba svaki put nakon izmjene koda zatvoriti aplikaciju za flash-anje, proizvesti novi firmware, otvoriti aplikaciju...
:azdaja:

Image
jazz
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 207
Joined: 21-10-2010, 21:18
Location: Hrvatska

Re: Texas Instruments MSP430

Post by jazz »

Ispravak netočnog navoda. :roll:

IAR ima problem sa ponovnim build-anjem programa, ako je generirana exe verzija (TI txt format u mom slučaju) otvorena sa USB BSL flash programom. Nemam pojma zašto.

Ako prevedem i poslije toga linkam asembler source (korištenjem IAR a430 i xlink) manualno, bez korištenja IAR sučelja, nikakvih problema nema.
jazz
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 207
Joined: 21-10-2010, 21:18
Location: Hrvatska

Re: Texas Instruments MSP430

Post by jazz »

TI Firmware upgrade program dolazi zajedno sa Blink LED, CDC i HID primjerima, spremnim za flash-anje.

Blink LED radi OK, a problem sa USB CDC/HID je vjerojatno u tome što su pripremljeni za MSP430F5529, a ne za MSP430F5510, pa flash postupak ne uspije, jer kod vjerojatno sjeda na pogrešne adrese (odnosno nepostojeći flash adresni prostor).

Gotovi USB primjeri, natipkan u C-u za IAR ili CSS mogu se naći ovdje...
http://www.ti.com/tool/msp430usbdevpack

Probao sam C1_Example (CDC - LED Control Demo). Treba odabrat MSP430F5510 kao target i komentirati par linija u main.c source-a koji se odnose na portove MSP430F5529 kojih nema na MSP430F5510...

//P7OUT = 0x00;
//P7DIR = 0xFF;
//P8OUT = 0x00;
//P8DIR = 0xFF;

Pomoću USB Descriptor-a se podese parametri i kreiraju konfiguracijski file-ovi te inf driver...

Image

Prije kompajliranja, potrebno je zamjeniti orginalne file-ove IAR projekta sa file-ovima dobivenim pomoću USB Descriptor-a. Na kraju se sve build-a u IAR-u, i flash-a sa USB BSL-om.

Nakon pokretanja programa Windowsi traže driver, pa ih se uputi na onaj inf file dobiven USB Descriptor-om. Pokrene se Hyper Terminal, odabere virtualni port i to je to.

Image

Image
jazz
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 207
Joined: 21-10-2010, 21:18
Location: Hrvatska

Re: Texas Instruments MSP430

Post by jazz »

Postupak sa HID primjerom (H1_Example) je potpuno isti, osim što na Win za HID driver nije potreban, a za testiranje se umjesto Hyper Terminal-a koristi TI program...

Image

Image
jazz
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 207
Joined: 21-10-2010, 21:18
Location: Hrvatska

Re: Texas Instruments MSP430

Post by jazz »

Pločica je diy uradak, baziran na exp/fet primjerima za MSP430F5xx seriju, sa minimalnim brojem elemenata za funkcioniranje uC (i USB-a). Svi pinovi uC su dostupni. Na pločici je jedan 4-pinski konektror za USB (gore desno) i jedan za SBW (gore lijevo).

Sve je rađeno p2p tehnikom. Radni stol uz prozor, danje svijetlo, dobro povečalo, lemilica sa tankim vrhom, mirna ruka i boca rakije sa strane.

Image
jazz
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 207
Joined: 21-10-2010, 21:18
Location: Hrvatska

Re: Texas Instruments MSP430

Post by jazz »

Zadnji primjer koji sam isprobao je M2_Exmple. Radi se o tome da uC služi kao sučelje između PC-a i SD kartice, odnosno kao običan čitač kartica. SD kartica se spoji na UCB1 port uC. Nakon uboda USB-a u PC, pojavljuje se novi removable disk u win. Nažalost postoji neki problem kod mene (možda u SD diy konektoru ili nečem drugom u vezi razlike MSP430F5510/MSP430FF5529) tako da se katica ne pojavljuje (ostalo radi OK). Kad budem imao vremena vidit ću u čemu je problem.

Image

Image

Malo sam bacio oko na USB Descriptor Tool. Kod "običnog" korištenja nije potrebno generirati posebne konfiguracijske file-ove, jer jedino što se vjerojatno mijenja je takt uC i USB-a. Dovoljno je samo pogledati/promijeniti par linija u "descriptors.h" file-u projekta...

Code: Select all

// MCLK frequency of MCU, in Hz
// For running higher frequencies the Vcore voltage adjustment may required.
// Please refer to Data Sheet of the MSP430 device you use
#define USB_MCLK_FREQ 25000000   // MCLK frequency of MCU, in Hz
#define USB_PLL_XT 2             // Defines which XT is used by the PLL (1=XT1, 2=XT2)
#define USB_XT_FREQ USBPLL_SETCLK_12_0 // Indicates the freq of the crystal USB_PLL_XT
#define USB_DISABLE_XT_SUSPEND 1 // If non-zero, then USB_suspend() will disable the osc
jazz
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 207
Joined: 21-10-2010, 21:18
Location: Hrvatska

Re: Texas Instruments MSP430

Post by jazz »

I na kraju (stvarno zadnji) primjer M1_Example. Radi se o tome da uC radi sam sa svojim napajanjem (baterija ili što već) i prikuplja podatke, te ih sprema u file (kombinacija interne RAM/flash memorije uC). Kad je potrebno vidjeti rezultate, samo se ubode USB u komp. U Win se pojavi novi Removable Disk, na kojem se nalazi spomenuti file, koji se može otvoriti notepad-om kao bilo koji drugi file. Stvarno zgodno.

Image

Image
jazz
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 207
Joined: 21-10-2010, 21:18
Location: Hrvatska

Re: Texas Instruments MSP430

Post by jazz »

Tražio sam nešto jednostavno/jeftino, da radi na malom naponu, na baterije, i da je potrošnja mala. Da je struja port-a dovoljno jaka da može tjerati LED-icu. Tada sam se počeo družiti sa MSP430F2xx serijom.

E sad kad sam se već (dobro) upoznao sa assemblerom i napravio SBW/BSL programatore po svom ukusu, šteta je bilo ostati na jednostavnim stvarima (početni cilj). Bez obzira što se radilo o 16-bitnim uC, ipak je tu bila riječ o "samo" 16 MHz, i nešto malo periferija.

I onda je TI izbacio MSP430F5xx seriju, 25 MHz sa USB-om, točno ono što me zanima. MSP430F5510, jeftin i brz-16 bitni uC sa USB-om, flash-anje direktno preko USB-a. Uopće ne sumnjam da ostali proizvođači nude jednako dobru ili bolju gotovu software-sku open-source podršku, spremnu za pogon u roku odmah. Ali ovo što je TI priredio (http://www.ti.com/tool/msp430usbdevpack) stvarno je za prste polizat. Jednostavno, ne pada mi na pamet što bi mi ikada u životu još moglo zatrebati, vezano za uC/USB kombinaciju, a što nije već napravljeno od strane TI-a. To je baš to, a cijenu MSP430F5510 i tih nekoliko elemenata na pločici, potrebnih da uC prodiše, ne želim ni spominjati.

Eto, sad mogu počet radit. 8)
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7871
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Texas Instruments MSP430

Post by pedja089 »

Evo bas citam ceo dan sta radis, i zanimljivo nema sta...
Ja se vec dugo vremena nakanjujem naruciti nesto, pa da probam...
Svaka cast...
Edit:
Upravo skidam apllikaciju da probam..
jazz
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 207
Joined: 21-10-2010, 21:18
Location: Hrvatska

Re: Texas Instruments MSP430

Post by jazz »

Download stranica za MSP430 USB Developers Package...
http://software-dl.ti.com/msp430/msp430 ... x_FDS.html

Tablica je podijeljena na dva dijela:
1. MSP430_USB_Developers_Package Product Downloads
2. USB Collateral Installers

Prvi dio sadrži sve primjere, odnosno sve IAR/CCS source file-ove za uC.
U paketu se još nalaze i programi (exe): Descriptor Tool, HID API Demo App, Firmware Downloader.

Drugi dio sadrži exe i source file-ove (PC strana) za HID API Demo App i Firmware Downloader (MSP430.dll BSL source).

TI je nedavno potpuno otvorio svoj DLL, tako da je od sada open source, pa ako netko želi napraviti svoj flash uređaj ili SBW/JTAG debuging hardware za MSP430 i natjerati IAR/CCS da radi s njim, može.
http://processors.wiki.ti.com/index.php/MSP_Debug_Stack
jazz
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 207
Joined: 21-10-2010, 21:18
Location: Hrvatska

Re: Texas Instruments MSP430

Post by jazz »

Za debugiranje koda ne trebaju skupe igračke. Može to i za nula jura. Napisao sam ranije...
jazz wrote:Debagiranje (ne samo za MSP430 uC) radim tako da ubacim debug asm liniju na svako sumnjivo mjesto, i onda uC pošalje PC-u u text formatu, izlist registara, stack-a, memorije, num/str varijable, whatever. Znači pokrenem program i na kraju dobijem na PC strani klasičan log file u text formatu.
Danas sam baš to prilagodio za MSP430F5510, pa evo kako to izgleda. Ispod koda koji se izvršava na uC, nalazi se prozor log aplikacije na PC strani. Debug funkcije se pozivaju sa bilo kojeg mjesta unutar sumnjivog koda, a rezultat se prati na PC-u. Radi se o uC/PC serijskoj vezi.

Code: Select all

    253    008418 34403412                     mov.w #01234h, R4
    254    00841C 35407856                     mov.w #05678h, R5
    255    008420 36401090                     mov.w #09010h, R6
    256    008424 37407698                     mov.w #09876h, R7
    257    008428 38405476                     mov.w #07654h, R8
    258    00842C 39401032                     mov.w #03210h, R9
    259    008430              
    260    008430 B0128880                     call #DbgPC
    261    008434              
    262    008434 3A402211                     mov.w #01122h, R10
    263    008438 3B404433                     mov.w #03344h, R11
    264    00843C 3C406655                     mov.w #05566h, R12
    265    008440 3D408778                     mov.w #07887h, R13
    266    008444 3E409191                     mov.w #09191h, R14
    267    008448 3F402143                     mov.w #04321h, R15
    268    00844C              
    269    00844C 12D3                         setc
    270    00844E 22D3                         setz
    271    008450                              
    272    008450 B0124A81                     call #DbgSR
    273    008454              
    274    008454 0512                         push.w R5
    275    008456 0F12                         push.w R15
    276    008458 0812                         push.w R8
    277    00845A 0712                         push.w R7
    278    00845C                              
    279    00845C B012D080                     call #DbgStack
    280    008460              
    281    008460 B012C081                     call #DbgRegs
    282    008464              
    283    008464 82440224                     mov.w R4, &02402h
    284    008468 824F0624                     mov.w R15, &02406h
    285    00846C              
    286    00846C 34400024                     mov.w #02400h, DbgReg
    287    008470 B0127482                     call #DbgMem
  
Image
jazz
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 207
Joined: 21-10-2010, 21:18
Location: Hrvatska

Re: Texas Instruments MSP430

Post by jazz »

Naravno da poziv debug funkcija ne smije promijenti ništa od registara, odnosno da orginalni program ostaje netaknut.

Zaboravio sam u prijašnjem post-u na string-ove...

Code: Select all

    253    00845A B0120480                     call #DbgStr
    254    00845E 546573742042*                db 'Test Begin', 10, 13, 0, 0
    255    00846C              
    256    00846C 34403412                     mov.w #01234h, R4
    257    008470 35407856                     mov.w #05678h, R5
    258    008474 36401090                     mov.w #09010h, R6
    259    008478 37407698                     mov.w #09876h, R7
    260    00847C 38405476                     mov.w #07654h, R8
    261    008480 39401032                     mov.w #03210h, R9
    262    008484              
    263    008484 B012CA80                     call #DbgPC
    264    008488              
    265    008488 3A402211                     mov.w #01122h, R10
    266    00848C 3B404433                     mov.w #03344h, R11
    267    008490 3C406655                     mov.w #05566h, R12
    268    008494 3D408778                     mov.w #07887h, R13
    269    008498 3E409191                     mov.w #09191h, R14
    270    00849C 3F402143                     mov.w #04321h, R15
    271    0084A0              
    272    0084A0 12D3                         setc
    273    0084A2 22D3                         setz
    274    0084A4                              
    275    0084A4 B0120480                     call #DbgStr
    276    0084A8 537461747573*                db 'Status Register -> ', 0
    277    0084BC              
    278    0084BC B0128C81                     call #DbgSR
    279    0084C0              
    280    0084C0 0512                         push.w R5
    281    0084C2 0F12                         push.w R15
    282    0084C4 0812                         push.w R8
    283    0084C6 0712                         push.w R7
    284    0084C8                              
    285    0084C8 B0120480                     call #DbgStr
    286    0084CC 537461636B20*                db 'Stack -> ', 0
    287    0084D6              
    288    0084D6 B0121281                     call #DbgStack
    289    0084DA              
    290    0084DA B0120282                     call #DbgRegs
    291    0084DE              
    292    0084DE B0120480                     call #DbgStr
    293    0084E2 4D656D6F7279*                db 'Memory...', 10, 13, 0
    294    0084EE              
    295    0084EE 82440224                     mov.w R4, &02402h
    296    0084F2 824F0624                     mov.w R15, &02406h
    297    0084F6              
    298    0084F6 34400024                     mov.w #02400h, DbgReg
    299    0084FA B012B682                     call #DbgMem
    300    0084FE              
    301    0084FE B0120480                     call #DbgStr
    302    008502 546573742045*                db 'Test End', 10, 13, 0, 0
Image
jazz
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 207
Joined: 21-10-2010, 21:18
Location: Hrvatska

Re: Texas Instruments MSP430

Post by jazz »

Program za obradu (milling/drilling) PCB-a sam prvo nakucao (uC strana) za DS89C4x0. Kasnije sam skužio da bi za to bolji izbor bio MSP430F5xx (brzina/cijena/USB). Nakon prevođenja algoritma (asm koda) na MSP430F5xx i debagiranja, danas sam prvi put zavrtio kod na MSP430F5xx, i odvezao do kraja u potpunosti. Još se uvijek radi o serijskoj vezi, odnosno, USB je sada na redu.

Image
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7871
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Texas Instruments MSP430

Post by pedja089 »

Moze malo vise informacija o cemu se radi?
jazz
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 207
Joined: 21-10-2010, 21:18
Location: Hrvatska

Re: Texas Instruments MSP430

Post by jazz »

Može :shock:

Nešto sam započeo krajem 2009, ali zbog manjka slobodnog vremena stvar nije do danas završena. :roll:
http://www.audiofil.net/forum/forum_pos ... 0672&PN=15

CNC mašina za obradu PCB-a, sa X, Y i dvije Z osi (bušilica i glodalica), koja bi bila u stanju obraditi pločicu u jednom cugu, bez ikakve intervencije (izmjena alata) sa strane. Kao ulaz za aplikaciju se koriste G-Code datoteke, koje se mogu generirati Eagle-om. Sve ostalo (software/hardware, PC/uC/stepper drive) je mojih ruku dijelo. Nisam vezan za nikoga, sve radim sam, tako da će na kraju (jednog dana) sve izgledati... baš kako ja želim. 8)
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7871
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Texas Instruments MSP430

Post by pedja089 »

Svaka cast.
Post Reply