Part Number: TMS570LC4357
Tool/software:
1)How to achieve 2000000 baudrate in SCI1
2)Microcontroller was interface with sierra gsm rc7620 modem through UART(sci1). I cross verify with sierra team regarding response time of gsm modem for some at commands , they ensure that response time was within 1mili second or interns of microsecond, but in my application it taking in milli second of around 500 ms. how can i achieve it in micro second
below is the c function to send, receive and compare with the response
uint16 command_AT(void)
{
int rec=0;
m=0;
uint8 at_response[500]={0}; //Array to receive Response from GSM modem
char sts[100];
int length=0;
char *s;
uint8 p=0;
strcpy(sts,"AT\r\n"); //copy AT\r\n into sts buffer
sciSend(sciREG1,strlen(sts),(uint8 *)sts); //send AT command to gsm modem
wait(20); //Small delay after sending command to GSM modem
timeout_timer1=0;
Timer_10ms=0;
while(Timer_10ms<5) //Wait for 5milli second to receive response from gsm modem
{
Life_Sign_Counter++;
rec=sciReceiveChar(sciREG1); //Receive character through polling method
if(rec>=0)
{
at_response[m] =(char)rec;
if( at_response[m]==0x00) //Remove null character from GSM response and replace with A
{
at_response[m]='A';
}
m++;
s=strstr((const char *)at_response,"OK"); //Function to compare the OK with GSM response
if(s!=NULL)
{
memset(at_response,0,500); //Make The response buffer as zero once OK found in response
return OK;
}
}
}
length=sizeof(at_response);
if(length==0)
return TIMEOUT; // return the function if no response received in 5ms
else{
#ifdef AT_CMD_DEBUG
for(p=0;p<m;p++)
sciSendByte(sciREG3, at_response[p]); //Send the response for dock light for debug purpouse
#endif
return ERROR;
}
}
