<?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>topic Re: SCI not working completely in S12 / MagniV Microcontrollers</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/SCI-not-working-completely/m-p/357152#M10598</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;what exact HCS12 part do you use? It would be good to know the part number. This can help determine the maskset, just to check if there are possible errata.&lt;/P&gt;&lt;P&gt;Did you try connecting the MCU with PC hyperterminal? This is good to test if the communication works OK, to ensure MCU side is works correctly. For example, the echo from the terminal.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 02 Mar 2015 10:53:32 GMT</pubDate>
    <dc:creator>iggi</dc:creator>
    <dc:date>2015-03-02T10:53:32Z</dc:date>
    <item>
      <title>SCI not working completely</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/SCI-not-working-completely/m-p/357151#M10597</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am a rookie so, please speak in layman's terms and I will do my best to keep up. I am trying to create a small SCI network to send/receive messages to/from two motor controllers. The network consists of the HCS12, a Pololu Jrk 21v3 motor controller, and a Orion robotics RoboClaw 2x30 motor controller. I am only planning on using SCI0, so I have the Tx and Rx connected to pins PS0 and PS1. Presently, I can send commands to the motor controllers and they respond as predicted, however I am not able to receive replies from them at this point. I am using the integrated potentiometer on the MCU board to determine the command data value that I am sending, speed and direction in one case, and a target position in the other. At the moment, I am only trying to make sure the communication is formatted correctly before I move on to error handling, using interrupts to send commands, and some other control features, so the code I will post is incomplete. I have my oscilloscope connected to the Tx and Rx pins to see the signal. I can see the Tx&amp;nbsp; going and what I think is a response from the motor controller on the Rx. but that Rx value does not seem to be getting assigned to my variable.&amp;nbsp; Here is the snippet of code that I am using for initialization of the SCI registers, to send movement commands, and receive replies on the Rx pin. The bold underlined part is what does not seem to be working. Thanks in advance for any help or suggestions.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void init_SCI () {&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; SCI0BDH = 0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; SCI0BDL = 0x29;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // baud rate at 9572 bps = bus clk / (16 * 29)&lt;/P&gt;&lt;P&gt;&amp;nbsp; SCI0CR1 = 0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // UART configuration: 8 data bits, No parity bit, 1 stop bit&lt;/P&gt;&lt;P&gt;&amp;nbsp; SCI0CR2 = 0x2C;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Enable Tx, Rx, enable the receive register full flag&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void jrkSetTarget (unsigned int s) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; while(!(SCI0SR1 &amp;amp; 0x80));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // make sure the last bit is gone &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCI0DRL = 0xAA;&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; // send baud rate initialization&lt;/P&gt;&lt;P&gt;&amp;nbsp; while(!(SCI0SR1 &amp;amp; 0x80));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // make sure the last bit is gone &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCI0DRL = 0x0B;&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; // send device name/number&lt;/P&gt;&lt;P&gt;&amp;nbsp; while(!(SCI0SR1 &amp;amp; 0x80));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // make sure the last bit is gone&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCI0DRL = 0x40 + (s &amp;amp; 0x1F);&amp;nbsp; // set target command and lower 5 bits of the target value&lt;/P&gt;&lt;P&gt;&amp;nbsp; while(!(SCI0SR1 &amp;amp; 0x80));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // make sure the last bit is gone&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCI0DRL = (s &amp;gt;&amp;gt; 5) &amp;amp; 0x7F;&amp;nbsp; // send remaining 7 bits of the target value&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay2m ();&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; // kill some time while the linear actuator moves&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay2m ();&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay2m ();&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay2m ();&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay2m ();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; getFeedBack ();&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void getFeedBack (void)&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; int a = 0xA7, c, x;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; while(!(SCI0SR1 &amp;amp; 0x80));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // make sure the last bit is gone &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCI0DRL = 0xAA;&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; // send baud rate initialization&lt;/P&gt;&lt;P&gt;&amp;nbsp; while(!(SCI0SR1 &amp;amp; 0x80));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // make sure the last bit is gone &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCI0DRL = 0x0B;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // send device name/number&lt;/P&gt;&lt;P&gt;&amp;nbsp; while(!(SCI0SR1 &amp;amp; 0x80));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // make sure the last bit is gone&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCI0DRL = (a &amp;amp; 0x1F);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // send command code for scaled feedback&lt;/P&gt;&lt;P&gt;//&amp;nbsp; while(!(SCI0SR1 &amp;amp; 0x80));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; SCI0DRL = (a &amp;gt;&amp;gt; 5) &amp;amp; 0x7F;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;STRONG style="text-decoration: underline;"&gt;&amp;nbsp; while (SCI0SR1 &amp;amp; 0x20);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wait for the last bit&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = SCI0DRL;&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; // get response from the motor controller&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;&lt;STRONG&gt;&amp;nbsp; while (SCI0SR1 &amp;amp; 0x20);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wait for the last bit&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="text-decoration: underline;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x = SCI0DRL;&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; // get response from motor controller&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;//&amp;nbsp; while (SCI0SR1_RDRF);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wait for the last bit&lt;/P&gt;&lt;P&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; x = SCI0DRL;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; lcdPosition(2,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; // lcd position&lt;/P&gt;&lt;P&gt;&amp;nbsp; lcdPuts ("Error: ");&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Put "Error: " on the lcd&lt;/P&gt;&lt;P&gt;&amp;nbsp; lcdPosition (2,7);&lt;/P&gt;&lt;P&gt;&amp;nbsp; lcdPutch (c);&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; &lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 08 Feb 2015 05:32:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/SCI-not-working-completely/m-p/357151#M10597</guid>
      <dc:creator>thms_rw</dc:creator>
      <dc:date>2015-02-08T05:32:55Z</dc:date>
    </item>
    <item>
      <title>Re: SCI not working completely</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/SCI-not-working-completely/m-p/357152#M10598</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;what exact HCS12 part do you use? It would be good to know the part number. This can help determine the maskset, just to check if there are possible errata.&lt;/P&gt;&lt;P&gt;Did you try connecting the MCU with PC hyperterminal? This is good to test if the communication works OK, to ensure MCU side is works correctly. For example, the echo from the terminal.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Mar 2015 10:53:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/SCI-not-working-completely/m-p/357152#M10598</guid>
      <dc:creator>iggi</dc:creator>
      <dc:date>2015-03-02T10:53:32Z</dc:date>
    </item>
    <item>
      <title>Re: SCI not working completely</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/SCI-not-working-completely/m-p/357153#M10599</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;UL style="list-style-type: disc;"&gt;&lt;LI&gt;- SCI_init(): could you please check your setup:&lt;/LI&gt;&lt;/UL&gt;&lt;P style="margin-top: auto; margin-bottom: auto;"&gt;&lt;SPAN style="font-size: 12.0pt; font-family: 'Times New Roman','serif';"&gt;&amp;nbsp; SCI0BDL = 0x29; // baud rate at 9572 bps = bus clk / (16 * 29)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;0x29 or 29 hexadecimal or decimal? there is no info about used MCU to be sure the formula is OK and BUSCLK so full review is not possible.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL style="list-style-type: disc;"&gt;&lt;LI&gt;- I do not understand why you send data again in the get feedback function..&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I will suppose 8MHz BUSCLK in following example. Moreover, the example supposes the data from responder are not sent sooner than everything is sent from sender. othervise receive overflow can happen. In such a case you should use receive interrupt to be able to receive data anytime they are received.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void SCI0_init(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;//........................................&lt;/P&gt;&lt;P&gt;&amp;nbsp; // SCI0&lt;/P&gt;&lt;P&gt;&amp;nbsp; // BR = BUSCLK / (16*Baud rate)&lt;/P&gt;&lt;P&gt;&amp;nbsp; // SCICR1: Loops sciswai rsrc&amp;nbsp;&amp;nbsp; m&amp;nbsp;&amp;nbsp;&amp;nbsp; wake ilt&amp;nbsp;&amp;nbsp; pe&amp;nbsp;&amp;nbsp;&amp;nbsp; pt&lt;/P&gt;&lt;P&gt;&amp;nbsp; // 0-LOOPS=RSRC=0 =&amp;gt; 1 Single-wire mode with Rx input connected to TXD&lt;/P&gt;&lt;P&gt;&amp;nbsp; // 1-SCI dis. in wait mode&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; &lt;/P&gt;&lt;P&gt;&amp;nbsp; // 0-if RSRC=1-RxTx intern. connected if loops=1&lt;/P&gt;&lt;P&gt;&amp;nbsp; // 0-start+8 data+1 stop bit&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; &lt;/P&gt;&lt;P&gt;&amp;nbsp; // 0-IDLE mark wake up&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; &lt;/P&gt;&lt;P&gt;&amp;nbsp; // 1-idle char. bit count begins after stop bit&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; // 0-parity fction disabled&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; &lt;/P&gt;&lt;P&gt;&amp;nbsp; // 0-odd parity&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; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; // SCICR2: tie&amp;nbsp;&amp;nbsp; tcie rie&amp;nbsp; ilie&amp;nbsp;&amp;nbsp; te re&amp;nbsp;&amp;nbsp; rwu&amp;nbsp;&amp;nbsp; sbk&lt;/P&gt;&lt;P&gt;&amp;nbsp; // 0-Tx empty intr disabled&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; &lt;/P&gt;&lt;P&gt;&amp;nbsp; // 0-Tx complete intr disabled&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; &lt;/P&gt;&lt;P&gt;&amp;nbsp; // 0-Rx full + OverRun interrupts&lt;/P&gt;&lt;P&gt;&amp;nbsp; // 0-idle line intr disabled&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; &lt;/P&gt;&lt;P&gt;&amp;nbsp; // 1-transmitter enabled&lt;/P&gt;&lt;P&gt;&amp;nbsp; // 1-receiver enabled&lt;/P&gt;&lt;P&gt;&amp;nbsp; // 0-receiver normal operation&lt;/P&gt;&lt;P&gt;&amp;nbsp; // 0-no break characters&lt;/P&gt;&lt;P&gt;//........................................&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SCI0BD&amp;nbsp; = 0x34 ; //9600Bd at 8MHz BUSCLK&lt;/P&gt;&lt;P&gt;SCI0CR1 = 0x44;&lt;/P&gt;&lt;P&gt;SCI0CR2 = 0x0C;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void send_data(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;while(!SCI0SR1_TC); // wait while data is not sent; the same as while(!(SCI0SR1&amp;amp;0x40));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // or&amp;nbsp; while(!SCI0SR1_TDRE);&amp;nbsp;&amp;nbsp;&amp;nbsp; // wait while Tx buffer is not empty; the same as while(!(SCI0SR1&amp;amp;0x80));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCI0DRL = sci0_data1_out;&lt;/P&gt;&lt;P&gt;while(!SCI0SR1_TC); // wait till previous data is being sent&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCI0DRL = sci0_data2_out;&lt;/P&gt;&lt;P&gt;while(!SCI0SR1_TC); // wait till previous data is being sent&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCI0DRL = sci0_data3_out;&lt;/P&gt;&lt;P&gt;while(!SCI0SR1_TC); // wait till previous data is being sent&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCI0DRL = sci0_data4_out;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void get_data_SCI0(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;while(!(SCI0SR1_TC));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wait while data not received; the same as while(!(SCI0SR1 &amp;amp; 0x20));&lt;/P&gt;&lt;P&gt;sci0_data1_in =&amp;nbsp; SCI0DRL;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // get data&lt;/P&gt;&lt;P&gt;while(!(SCI0SR1_TC));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wait while data not received; the same as while(!(SCI0SR1 &amp;amp; 0x20));&lt;/P&gt;&lt;P&gt;sci0_data2_in =&amp;nbsp; SCI0DRL;&amp;nbsp;&amp;nbsp;&amp;nbsp; // get data&lt;/P&gt;&lt;P&gt;while(!(SCI0SR1_TC));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wait while data not received; the same as while(!(SCI0SR1 &amp;amp; 0x20));&lt;/P&gt;&lt;P&gt;sci0_data3_in =&amp;nbsp; SCI0DRL;&amp;nbsp;&amp;nbsp; // get data&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards, Ladislav&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Mar 2015 09:26:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/SCI-not-working-completely/m-p/357153#M10599</guid>
      <dc:creator>lama</dc:creator>
      <dc:date>2015-03-03T09:26:22Z</dc:date>
    </item>
  </channel>
</rss>

