지난번에 다운받아 설치한 controlSUITE[바로가기]에 보면 흔히 시리얼 통신이라고 부르는 DSP에서는 SCI 통신이라고 하는 통신을 테스트하는 예제가 있습니다. 한 번 이걸 돌려봤습니다. 사용한 보드는 SMC150보드에 소형 28335보드를 사용했지요~^^
smc150보드의 회로도[바로가기]를 보면 저렇게 D_Sub 단자와 CN6300을 연결해 주어야 합니다.
이렇게 말이죠~~~. 아무튼... 요걸 몰라서 상당히 삽질을.~~ ㅎㅎ 아무튼 하드웨어 연결은 마쳤구요... 예제를 보죠~~ 구동방식은 이미 controlSUITE 설치할 때 이야기 했으니까요^^
#include "DSP28x_Project.h" void scia_echoback_init(void); void scia_fifo_init(void); void scia_xmit(int a); void scia_msg(char *msg); Uint16 LoopCount; Uint16 ErrorCount; void main(void) { Uint16 ReceivedChar; char *msg; InitSysCtrl(); InitSciaGpio(); DINT; InitPieCtrl(); IER = 0x0000; IFR = 0x0000; InitPieVectTable(); LoopCount = 0; ErrorCount = 0; scia_fifo_init(); scia_echoback_init(); msg = "\r\n\n\nHello World!\0"; scia_msg(msg); msg = "\r\nYou will enter a character, and the DSP will echo it back! \n\0"; scia_msg(msg); for(;;) { msg = "\r\nEnter a character: \0"; scia_msg(msg); while(SciaRegs.SCIFFRX.bit.RXFFST !=1) { } ReceivedChar = SciaRegs.SCIRXBUF.all; msg = " You sent: \0"; scia_msg(msg); scia_xmit(ReceivedChar); LoopCount++; } } void scia_echoback_init() { SciaRegs.SCICCR.all =0x0007; SciaRegs.SCICTL1.all =0x0003; SciaRegs.SCICTL2.all =0x0003; SciaRegs.SCICTL2.bit.TXINTENA =1; SciaRegs.SCICTL2.bit.RXBKINTENA =1; SciaRegs.SCIHBAUD =0x0001; SciaRegs.SCILBAUD =0x00E7; SciaRegs.SCICTL1.all =0x0023; } void scia_xmit(int a) { while (SciaRegs.SCIFFTX.bit.TXFFST != 0) {} SciaRegs.SCITXBUF=a; } void scia_msg(char * msg) { int i; i = 0; while(msg[i] != '\0') { scia_xmit(msg[i]); i++; } } void scia_fifo_init() { SciaRegs.SCIFFTX.all=0xE040; SciaRegs.SCIFFRX.all=0x204f; SciaRegs.SCIFFCT.all=0x0; }
전체 코드입니다. (주석빼구요~) 에제에서 다룬 각 레지스터의 설명은 TI가 배포하는 SCI관련 Reference Guide[바로가기]가 있습니다 그 중애 SciaRegs.SCIHBAUD와 LBAUD는
이런 표에 맞춰 입력해주시면 됩니다. 여기서는 9600bps입니다.^^. 아.. 혹시 마땅히 사용할 시리얼 통신용 터미널 프로그램이 없으시다면.... 저랑 조금 아는(^^) 사이의 지인이신 양연구원님께서 배포해주신 프로그램[바로가기]을 사용하는 것도 괜찮을 겁니다.
유용한 기능이 많거든요.^^ 아무튼.. 단독 시리얼 테스트는 해보았네요....
반응형
'Hardware > MCU' 카테고리의 다른 글
[28335] DSP 28335 타이머 인터럽트 사용하기 Timer Interrupt (2) | 2016.05.11 |
---|---|
[28335] DSP 28335 GPIO 기초 확인하기 (9) | 2016.05.04 |
[28335] TI 공식 홈페이지에서 28335용 예제와 라이브러리를 다운받자 - controlSUITE - (6) | 2016.04.27 |
[28335] Code Composer Studio (CCS) V6에서 28335 프로젝트 시작해보기 (20) | 2016.04.22 |
DC 모터의 모션(서보)제어 (Servo Control - Motion Control) (68) | 2011.07.06 |
[Cortex M3] 엔코더해석 결과를 일정시간간격으로 시리얼통신으로 전송하기 (42) | 2009.06.04 |
[Cortex M3] 단순 시리얼통신 테스트 ComPortMaster (4) | 2009.06.04 |