무려 3년전쯤에 산 MSP-FET Flash Emulator tool을 며칠전에 꺼내어서 기존에 사용했던 데모보드에 연결을 해봤다.

테스트 환경이 8년 전에 테스트할 땐 windows xp와 iar 컴파일러 그리고 프린터 포트에 연결해야 하는 에뮬레이터였다면 최근엔 windows10 64비트, 새로산 usb 에뮬레이터 그리고 ccs v7을 무료로 제공하기에 낯선 환경이지만 설치를 끝낸후 소스코드는 예전에 작성했던 그대로해서 컴파일및 다운로드를 시도했다. 


ccs v7은 자바 프로그래밍할 때 배운 이클립스 환경과 거의 비슷해서 쉽게 프로젝트를 생성 및 컴파일은 아무이상 없이 무사히 잘 되었고  binary 파일 또한 제대로 잘 만들어졌다.

에뮬레이터를 첫 개봉해서 pc와  데모보드에 연결하고 디버그 모드를 눌러  테스트 프로그램이 동작하는 확인하려고 했는데  새로운 환경이라 그런지  수십초 동안 펌웨어 업데이트를 해서 무사히 잘 진행되는줄 알았다. 그런데 갑자기   ulp advisor라는 창이 뜨는데 첨 보는 환경이라 어리둥절 뭐 대충 proceed하고 넘어가려 했으나 바로 다음에






아래 그림과 같은 창이 뜨면서 더이상 진행이 안 되었다.  ccs v7 창을 닫고  새로운 툴도 usb 제거하고 다시 연결했는데도 증상은 똑같았다. 헐 새로산 에뮬레이터가 고장이란 말인가??


MSP430: Error initializing emulator: The voltage 1234 value is not correct/allowed for the USB FET





ulp가 뭔지 잘 모르니 일단 이 귀찮은 메시지를 끄기 위해서 현재 프로젝트에서 property 들어가 ulp advisor 옵션을 다 꺼도 마찬가지로 오류를 뿜으면서 진행이 안 되었다. 그러니까 새로산 에뮬레이터 동작 안하는것과 ulp 옵션은 전혀 무관한 것이였다.


하드웨어 안가지고 논지도 꽤 되어서 잊어 먹은것도 많고 새로운 컴파일러에 의한 낯선 환경이라 잘 안되는거라고 자기 위안을 해봤다 ㅡ.ㅡ; 다시 익숙했던 iar msp430 컴파일러를 설치해서 마찬가지로 작업을 해봤다. 역시나 새로산 툴로는 전혀 되지 않았다. 그래서 툴이 이상한가 보다 생각해서 예전에 쓰던걸로 바꿔 보자고 했지만 현재 사용중인 컴퓨터는 프린터 포트가 없다. 물론 프린터포트가 달린 예전 컴퓨터는 램이 적출되고 ssd도 제거된 상태로 모셔져 있긴 하다.


그렇지만 나의 방 어딘가엔  몇해전 ebay에서 산 usb용 msp-UIF를 그때 당시 잠깐 테스트해보고 어 안되네...그냥 재수없게 불량품이 걸린거라 생각해서 다른 판매자한테서 약간 다른 중국산을 샀지만 마찬가지로 안 되어서 역시 중국산 짝퉁은 별수없구나 포기했던게 기억난다. 2015년 초인가 아무튼 그때쯤 정품 MSP-FET Flash emulator tool를 ti에서 특가로 판매하길래 7~ 8만원정도쯤 주고 산걸로 기억한다. 귀차니즘때문에 오늘 개봉한것이지만 -.-V


이렇게 에뮬레이터의 고장만 의심한 이유는  몇년전까지 LPT용 jtag로 테스트할 때는 잘 동작했기 때문에 또한 10년전 회사에서 참고용으로 수십번 넘게 정품 MSP-FET430UIF와는 동작을 잘했기 때문이였다.


이보드는 뒷면에 전원용으로 배터리 연결단자가 있지만 에뮬레이터에서 전원을 공급받아서 충분히 동작했었다.


아무튼 심호흡을 가다듬고 먼저 고장났다고 생각한 중국산 UIF를 pc에 연결해서 장치관리자에 들어가봤다.



오잉 windows xp 에서 UIF jtag이  com port에 설정이 되었었나? 의심이 많이 들었지만 예전하곤 좀 다른거 같긴 하지만  windows환경도 달라졌고 에뮬레이터도 바꼈으니 그럴거라 생각하고 넘어감.





이건 Ti 정품 MSP-FET Flash Emulator Tool을 pc에 연결했을때 상태임.

기존 UIF완 다르게 이건 2개가 뜨면서 UART1이라고 하나 더 있는데 에뮬레이터를 통해서 데모 보드와 pc간에 시리얼 통신을 할수 있을것 같다.



아무튼 iar컴파일러에서도 아무 이상없이 컴파일 잘되었고  중국산 uif가 또 열심히 펌웨어를 업데이트를 했다. 그러나 역시 한번에 잘 될리가 있나. iar컴파일러에서 debugger setup에서  driver에서 simulator에 설정해놓은걸 변경 안해놓고 다운로드를 했으니... 



드디어 성공 ㅜ.ㅜ



생긴건 정품 UIF처럼 보이지만 엄연히 중국산임. 아무튼 컴파일러 설치하고 이것저것 에뮬레이터 찾아내면서5시간 이상 걸렸지만 자정 무렵에 성공해서 잤음. 다음날에 다시 했는데 또 안되어서 왜 그렇지 했지만 이내 문제점을 찾고 성공. 또다른 중국산으로 해도 성공. 이제 마지막 Ti jtag으로만 성공하면 되는데 iar 컴파일러에서는 안 되었다.


그럼 ccs v7과 iar msp 컴파일러 설정차이 때문에 그런가 싶어서 이번엔 ccs v7에서 두개의 중국산 uif를 먼저 테스트했는데 iar에서와  마찬가지로 잘 되었다.

그런데 정품 툴만 ccs와 iar에서 안 되니 이쯤해서 정품툴 만을 의심해야 하는게 당연하나 구글링해서 찾아본 기억으론  jtag핀중에 2번인가 3번인가 몇번핀에 전원이 공급되고 있는지 확인하라는 어느 외국인의 댓글이 기억나 nexp님에게 분양받은 msp430f-1xx evm rev03보드에 연결해보았다. mcu는 msp2418을 장착했음.

이보드는 아주 작지만 마이크로 usb에서 전원을 공급받는거라서 jtag 핀 전원 문제도 없고 해서 정품 툴에 연결하니 지금까지 안 되던게 마침내 성공하게 되었다.



동작 성공한 모습.



그래서 결론을 내자면 구형 중국산 UIF 툴은 타겟보드에 전원이 없어도 에뮬레이터에서 나온 전원으로 충분히 보드를 문제 없이 동작 시키나 신형은 타켓보드에 전원이 공급되지 않으면 에러를 내뿜는것으로 봐서 에뮬레이터에서 전원을 체크하는 동작이 추가 되었는걸로 추정됨. <-------------이라고 처음엔 생각했는데

nexp님 보드에서 usb 전원을 제거하고 정품툴에서 테스트했더니 잘 되었다.  따라서 결론은 타켓보드의 상태에 따라서 외부에서 충분한 전원이 공급되어야 하는  보드와  외부전원이 필요없을 정도로 간소하고 작은 보드에 따라서 jtag 에뮬레이터가 오류를 뿜는것으로 결론 지어야겠다. 그리고  혹시나 해서 컴퓨터 뒷면 usb포트와 전면 포트에 따라서 달라지는가 해봤는데 현재의 컴퓨터에서는 동일한 결과로 아래와 같았다.


2018년 6월 21일 결과

인텔 dx79sr e5-1650 32기가 램 3rsys t200케이스

타켓보드에는 외부 전원이 공급되어 있지 않음

중국산 UIF 1  <----------> A20860, nexp님 보드  둘다 성공

중국산 UIF 2 <-----------> A29860, nexp님 보드 둘다 성공


Ti 정품 <----------> A20860  실패

Ti 정품 <----------> nexp님 보드 성공


그럼 왜 예전에는 구형 중국산 UIF는 동작 안했는가?  아무래도 잠깐 동안 테스트하면서 구형 컴퓨터의 전면 usb포트에 충분한 전원 공급이 안되어서 중국산 에뮬레이터도 오동작 했을거라고 추측함.

amd phenom black edition , 16G, asus M4a77td

타겟보드에는 외부 전원이 공급되어 있지 않음

중국산 UIF 1, 2 <---------------> A20860  둘다 실패




jtag 4형제중 3형제의 다정한 모습 lpt용은 옆방에 있음


iar embedded workbench for msp430  v 7.11.1

iar 테스트코드.zip



ti용 테스트 코드 ccs v7.0


msp2418.zip


msp430fg439.zip



msp430fg439.zip
0.04MB
iar 테스트코드.zip
0.16MB
msp2418.zip
0.03MB

'Texas Instruments > msp430fg439' 카테고리의 다른 글

msp430fg439를 이용한 A20860 보드 테스트  (0) 2013.01.01


2007년도 초에 msp430으로 개발해야 되어서 관련 업체를 찾던중에 조그만한 테스트 보드를 제공 받았다.

led 제어하는거와  커스텀 lcd 제어하고  시리얼 통신외 부가 기능을 테스트할 수 있다.


회로도

2005_MSP430_Tech_Seminar_Demo_Board.pdf

msp430fg439와 칩은 다르지만 회로도는 완전 동일하다.


데이터 시트

slas713.pdf


User’s Guide와 정오표

slau056j.pdf

slaz063.pdf


소스코드

slac047c.zip

slac047f.zip


MSP430 Seminar June 2005

MSP430Seminar1.pdf


///////////////////////////////////////////////////////////////////////////////////////////

커스텀 lcd 테스트를 할 때 첨부된 fet430lcd_01.c 소스 코드를 실행 시키면  lcd에 제대로 된 값이 안 나온다.  이상하다 ㅡ.ㅡ; 보드를 처음 받았을 때도 그렇고 지금 역시도 그렇다. 컴파일러 버젼을 바꿔도 똑같다.

iar에서 plug in의 lcd 옵션을 켜서 확인해도 보드랑 똑같이 잘 못 된 값으로 나오는데...




#define a 0x80
#define b 0x40
#define c 0x20
#define d 0x01
#define e 0x02
#define f 0x08
#define g 0x04
#define h 0x10


원래 소스 코드의 정의된 값을  아래의 값으로 바꿔서 테스트 해야 한다.


#define e 0x80
#define h 0x40
#define f 0x20
#define a 0x01
#define b 0x02
#define g 0x08
#define d 0x04
#define c 0x10





포트 6.6에서 1v 출력되는 DAC01 예제 테스트 결과

<fet430_dac12_01.c - DAC12_0, Output 1V on DAC0>



dac 출력단에서 1v에 근접한 출력을 보여주고 있다.

커스텀 lcd라서 문자 출력이 너무 안 좋음


a+b+c+d+e+f,  //Display "D"
a+b+c+e+f+g,  //Display "A"
a+d+e+f,        //Display "C"
a+e+f,          //Display "T"
a+d+e+f+g,    //Display "E"
a+c+d+f+g,   //Display "S"
a+e+f          //Display "T"


lcd 관련 소스를 dac 예제에 붙여주면 저렇게 나옴



끝으로  fet430_adc12_01.c 예제를 테스트하는것으로 끝내겠다.

Set P5.1 if A0 > 0.5*AVcc 소스코드에 이렇게 나오는데 A0포트에 3.3 * 0.5 정도의 전압이 걸리면

led가 토글되는 예제인데 이 보드는 led가 포트5가 아니라 PORT1.0 포트이므로 코드를 변경해야 한다.

A0에는 vref+에서 전압이 걸려서 1.758v입력되고 있다.


P1DIR |= 0x01;


if (ADC12MEM0 < 0x7FF)
      P1OUT &= ~0x01;                       // Clear P1.0 LED off
    else
      P1OUT |= 0x01;                        // Set P1.0 LED on



A0포트의 입력값에 따라 led 토글 시키는 영상




slau056j.pdf
2.64MB
slac047f.zip
0.24MB
slac047c.zip
0.06MB
slas713.pdf
0.89MB
MSP430Seminar1.pdf
1.26MB
slaz063.pdf
0.15MB
2005_MSP430_Tech_Seminar_Demo_Board.pdf
0.1MB

'Texas Instruments > msp430fg439' 카테고리의 다른 글

MSP-FET Flash emulator tool 사용 삽질기  (0) 2018.06.21



ezdsp2407a 보드가 동작중에 갑자기 전원이 나가거나 보드에 약간의 전기적 충격을 받게 되면 꼭 ccs v3.3

프로그램이 먹통이 되었다. 그래서 강제 종료 시키고 다시 ccs를 실행시키고 emulator를 연결시키면 그림과 같이 Halted 된 상태에서 메뉴 버튼을 누르면 프로그램이 응답없음 이렇게 꽁꽁 얼게 된다.

어떨땐 xp를 재부팅 시켜서 실행하면 잘 될때도 있는데 어떨땐 계속해서 같은 증상이  발생했다.





무슨 이유인지는 모르겠고 임시 해결책은 process explore를 띄운 상태에서 cc_app.exe를 선택하고 마우스 오른쪽 버튼 눌러서 restart를 해주니까  emulator 연결한다음에 동작이 잘 되었다. 그런데 ccs 3.3를 종료 시키고 다시 시작하면 똑같은 증상이 발생했다.

아무튼 결론은  cc_app.exe를  restart 시키면 임시 방편으로는 잘 된다는거.



'Texas Instruments > tms320lf2407a' 카테고리의 다른 글

eZdspLF2407A 보드  (0) 2012.12.26



아래 문서는 스펙트럼 디지털 사에서 내려 받은 자료와 Ti에서 받은 자료임

http://c2000.spectrumdigital.com/ezlf2407a/


ezDsp 에뮬레이터 설치 방법

ezlf2407a_qsg.pdf


ezDSP2407  보드 사용법

ezlf2407a_techref.pdf


ezDsp 리얼타임 예제 설명서

c24xquickstart.pdf

리얼타임 예제파일

RealTime.zip

code composer 3.1, 3.3 버젼 설치 폴더안에 들어있는거랑 차이가 있음


jtag 관련 예제 파일

setup_sdtsrvExamples_eZdsp2000_v303003.zip


///////////////////////////////////////////////////////////////////////////////////


April 4, 2001:
“Debugging Your C24x™ DSP Design Using Code
Composer Studio™ Real-Time Monitor”

dm20010404_kbase.pdf

///////////////////////////////////////////////////////////////////////////////////


2407A 예제 파일

ez2407test(2407A).zip


SPI.asm     Program to output serial data through the SPI port
SCI.asm    Program to check the SCI module in 240xA
PC_ECHO.asm Program to echo received characters back to the source
ADC.asm Program to check ADC of 240xA
GPIO_OUT.asm Program that checks GPIO pins of 240xA as outputs
GPIO_IN.asm Program that checks GPIO pins of 240xA as inputs
REM_ANS.asm
REM_REQ.asm

Programs that perform RTR (Remote Transmission Request) operations in the
CAN module
EV_T1INT.asm Program to check the operation of timer 1 in EVA
CAP.asm Program to check the operation of capture units in the EV modules


이 예제 파일은 아래 spru357c 파일 안의 어셈블리 소스코드를 코드콤포져에서 막바로  사용할 수 있도록

만들었다. 다 만들지는 않고 6개정도??


///////////////////////////////////////////////////////////////////////////////////


예제로 배우는 제어용 DSP 책내용 중  추천 도서


TMS320LF/LC240xA DSP Controllers Reference Guide

spru357c(240x controllers refer guide).pdf



TMS320LF2407, TMS320LF2406, TMS320LF2402 DSP CONTROLLERS      

tms320lf2407.pdf

(SPRS094I)


TMS320 DSP Algorithm Standard API Reference

SPRU360B


TMS320 DSP Algorithm Standard Rules And Guidelines

SPRU352D


TMS320C2x/C2xx/C5x Optimizing  C compiler User's Guide

SPRU024E


TMS320C2xx/TMS320C24x Code composer User's Guide

SPRU490


TMS320F/C24x DSP Controllers CPU and Instruction Set Reference Guide

SPRU160C


///////////////////////////////////////////////////////////////////////////////////

예제로 배우는 제어용 DSP( 성안당) 부록 CD

소스코드

2407.zip

개발환경설정용 파일

CCS V2.zip


개발환경 설정용 파일 라이브러리중에 rts2xxF.lib는 부트로더로 프로그램을 다운로드 받을 때 필요로 함

에뮬레이터 사용시는 불필요


Boot.asm 수정하기


1.dspar -x rts.src boot.asm 해서 boot.asm 을 추출한다

2. boot.asm 소스에  수정을 한다

3. dspar -v2xx boot.asm 해서 boot.asm 파일 어셈블한다 => boot.obj 파일 생성

4. dspar -r rts2xx.lib boot.obj 실행하면 수정된 boot.asm 내용이 런타임 라이브러리에 적용된다


boot.asm 수정하여 .const 섹션 복사하기

CONST_COPY   .set  0

CONST_COPY   .set  1 // .const 섹션의 내용을 플래시 메모리에 가지고 있다가 프로그램 시작시에 데이터 영역에 복사해 주는 기능 수행

이렇게 수정하여 완성된 라이브러리 rts2xxF.lib


링커 커맨드 파일 수정하기

SECTIONS

{

 ....

.....


.const : load = FLASH PAGE 0, run = SARAM PAGE 1

{

__const_run = .;

*(.c_mark)

*(.const)

__const_length = .- __const_run;

}

....

....

}



아래는 첨부된 소스코드 예제를 테스트 해 본 영상임




이건 PWM 예제를 테스트한 동영상

30khz 듀티비는 10% 또는 20%인데

PWM1, PWM2 포트에서 위상이 반대로 출력되는걸 확인






시리얼 통신 예제 테스트한거

a 문자 누르면 led가 토글되면서 문자 전송이 되고 다른 문자는 그냥 에코만 됨

ezdsp2407a 보드에는 통신 관련 회로가 빠져있어서 너굴팬더님이 만든 usb2serial 모듈에 연결

해서 잘 사용하고 있음.


ezlf2407a_qsg.pdf
0.25MB
RealTime.zip
0.06MB
setup_sdtsrvExamples_eZdsp2000_v303003.zip
0.96MB
spru357c(240x controllers refer guide).pdf
2.15MB
dm20010404_kbase.pdf
0.5MB
ezlf2407a_techref.pdf
0.39MB
c24xquickstart.pdf
0.32MB
ezlf2407a_qsg.pdf
0.25MB
CCS V2.zip
2.89MB
ez2407test(2407A).zip
0.09MB
tms320lf2407.pdf
1.49MB
2407.zip
0.32MB

+ Recent posts