<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>S12 / MagniV MicrocontrollersのトピックSCI port data Overrun problem</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/SCI-port-data-Overrun-problem/m-p/138729#M2809</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;I have an update to my problem.&lt;BR /&gt;&lt;BR /&gt;After monitoring the data received over the Network, it appears that no characters are skipped at the SCI port, but for some very weird reason, some of the UDP packets received are missing specifically a space (0x20) character, at a specific position!&lt;BR /&gt;&lt;BR /&gt;eg&lt;BR /&gt;UDP datagram at the PC in ASCII:&lt;BR /&gt;&lt;PRE&gt;
RYU/@19245 &lt;B&gt;&lt;U&gt;185540579&lt;/U&gt;&lt;/B&gt; 4996 21920 41441 3893 43648 9227 45783 4325 50770 754 39169 57632 8341 40500 59394 19361 37279 24988 17704 17154 19508
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;(Each of the values above should not exceed the value of a 16bit integer.)&lt;BR /&gt;This only happens in some of the packets, and ALWAYS between the 2nd and 3rd number! Especially if you consider that all the values are stored and transmitted 1-by-1 character, it's a bit weird that it's ALWAYS the space missing!&lt;BR /&gt;I'm confused. I don't why my problem occurs so selectively.&lt;BR /&gt;What can be causing this?&lt;BR /&gt;&lt;BR /&gt;Thank you in advance&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 01 Jul 2007 02:27:39 GMT</pubDate>
    <dc:creator>Ryu</dc:creator>
    <dc:date>2007-07-01T02:27:39Z</dc:date>
    <item>
      <title>SCI port data Overrun problem</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/SCI-port-data-Overrun-problem/m-p/138728#M2808</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm trying to receive data on an EVB9S12NE64 board's SCI1 port, and transmit them periodically on the Network.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Everything seems to work fine, but only a little problem.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Out of the ~2048 data values arriving to the SCI1 port, around 60 of them are lost.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I've implemented an ISR with Fifo for my SCI1 receiver, set it to high priority ( HPRIO = 0xD4; ), and removed any additional DEBUGOUT functions I placed for debugging purposes, as they proved to cause even greater data loss before.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Basically I believe the loss is caused by the CPU being busy preparing and transmitting a UDP packet for every 50 received values.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm operating the port at 19200 BAUD rate. I also tried 9200, but still the same problem. If everything works out, hopefully I will be able to increase the BAUD rate even further, to decrease the delay time of receiving the date.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Any ideas how I fix this problem?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If it helps, please find below my SCI1in -&amp;gt; UDP function.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE&gt;
//--------Read Sensor Data----

void read_sensor(void){
&amp;nbsp; UINT16 i=0;
&amp;nbsp; UINT16 tempi=0;
&amp;nbsp; UINT8 pkno=0;
&amp;nbsp; UINT16 datalen = 0;

&amp;nbsp; RxFifo_Init(); //Reset fifo's contents
 
&amp;nbsp; SCI1OutString("SendMeData\n\r"); //Request data for a single Scan

&amp;nbsp; character = SCI1In();
&amp;nbsp; while (character != CR){ //Read all characters of a scan til CR
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; net_buf[UDP_APP_OFFSET+tempi+5] = character; //Add character to buffer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tempi++;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (character == SP){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i++;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (i%50 == 0){ //Packetize and Tx every 50 pixels
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; datalen=tempi+5;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tempi = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; net_buf[UDP_APP_OFFSET+tempi]='R';
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tempi = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; net_buf[UDP_APP_OFFSET+tempi]='Y';
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tempi = 2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; net_buf[UDP_APP_OFFSET+tempi]='U';
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tempi = 3;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; net_buf[UDP_APP_OFFSET+tempi]=(pkno+48);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tempi = 4;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; net_buf[UDP_APP_OFFSET+tempi]='@';
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // UDP Send 50 pixels

(void)udp_send(udp_demo_soch,UDP_DEMO_RMTHOST_IP,UDP_DEMO_RMTHOST_PRT,net_buf+UDP_APP_OFFSET,NETWORK_TX_BUFFER_SIZE-UDP_APP_OFFSET,datalen);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pkno++;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tempi=0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; character = SCI1In();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (i&amp;gt;res){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break; // Resolution value reached and no CR found
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; //CR Found

&amp;nbsp; datalen = tempi+5;

&amp;nbsp; //Send remaining readings 
&amp;nbsp; tempi = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; net_buf[UDP_APP_OFFSET+tempi]='R';
&amp;nbsp; tempi = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; net_buf[UDP_APP_OFFSET+tempi]='Y';
&amp;nbsp; tempi = 2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; net_buf[UDP_APP_OFFSET+tempi]='U';
&amp;nbsp; tempi = 3;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; net_buf[UDP_APP_OFFSET+tempi]=47;
&amp;nbsp; tempi = 4;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; net_buf[UDP_APP_OFFSET+tempi]='@';
&amp;nbsp; (void)udp_send(udp_demo_soch,UDP_DEMO_RMTHOST_IP,UDP_DEMO_RMTHOST_PRT,net_buf+UDP_APP_OFFSET,NETWORK_TX_BUFFER_SIZE-UDP_APP_OFFSET,datalen);
&amp;nbsp; Debugi(pkno+1); 
&amp;nbsp; Debugt(" Packets sent over UDP&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;\n\r"); 
}
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 01 Jul 2007 01:23:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/SCI-port-data-Overrun-problem/m-p/138728#M2808</guid>
      <dc:creator>Ryu</dc:creator>
      <dc:date>2007-07-01T01:23:48Z</dc:date>
    </item>
    <item>
      <title>SCI port data Overrun problem</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/SCI-port-data-Overrun-problem/m-p/138729#M2809</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;I have an update to my problem.&lt;BR /&gt;&lt;BR /&gt;After monitoring the data received over the Network, it appears that no characters are skipped at the SCI port, but for some very weird reason, some of the UDP packets received are missing specifically a space (0x20) character, at a specific position!&lt;BR /&gt;&lt;BR /&gt;eg&lt;BR /&gt;UDP datagram at the PC in ASCII:&lt;BR /&gt;&lt;PRE&gt;
RYU/@19245 &lt;B&gt;&lt;U&gt;185540579&lt;/U&gt;&lt;/B&gt; 4996 21920 41441 3893 43648 9227 45783 4325 50770 754 39169 57632 8341 40500 59394 19361 37279 24988 17704 17154 19508
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;(Each of the values above should not exceed the value of a 16bit integer.)&lt;BR /&gt;This only happens in some of the packets, and ALWAYS between the 2nd and 3rd number! Especially if you consider that all the values are stored and transmitted 1-by-1 character, it's a bit weird that it's ALWAYS the space missing!&lt;BR /&gt;I'm confused. I don't why my problem occurs so selectively.&lt;BR /&gt;What can be causing this?&lt;BR /&gt;&lt;BR /&gt;Thank you in advance&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 01 Jul 2007 02:27:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/SCI-port-data-Overrun-problem/m-p/138729#M2809</guid>
      <dc:creator>Ryu</dc:creator>
      <dc:date>2007-07-01T02:27:39Z</dc:date>
    </item>
  </channel>
</rss>

