<?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 Newbie SCI1 question in S12 / MagniV Microcontrollers</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Newbie-SCI1-question/m-p/134635#M2106</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;HI all.&amp;nbsp; I'm new to using the HCS12 for serial applications.&amp;nbsp; I just started using Codewarrior last week so bear with me.&amp;nbsp; I'm trying to set it up so it receives information from my GPS and displays it on the LCD.&amp;nbsp; I can hook my GPS up to my computer with a baud rate of 4800 and i can read it through hyperterminal.&amp;nbsp; All I want to do at this point is trip the&amp;nbsp;SCI1SR1 register so it is equal to 0x02. &amp;nbsp;When I hook it up to my HCS12 board it doesn't receive anything, and the SCI1SR1 register is 0xC0 when I look at the memory.&amp;nbsp; I have it hooked up to my SC1 port on my evaluation board (the Dragon 12).&amp;nbsp; &amp;nbsp;I've been looking in the SCI1SR1 for the RDRF flag to trip.&amp;nbsp; It doesn't.&amp;nbsp; Here is my code.&amp;nbsp; Any help would be great.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;#define RDRF 0x20&amp;nbsp;&amp;nbsp; // Receive Data Register Full Bit&lt;BR /&gt;#define TDRE 0x80&amp;nbsp;&amp;nbsp; // Transmit Data Register Empty Bit&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;void SCI1_Init(void) {&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;SCI1BDH=1;&amp;nbsp; //9600 Baud rate&lt;BR /&gt;&amp;nbsp;SCI1BDL=56;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;SCI1CR1 = 0;&lt;BR /&gt;/*&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; LOOPS&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; WOMS&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; RSRC&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; M&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; WAKE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; ILT&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; PE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; PT */&lt;BR /&gt;&amp;nbsp;SCI1CR2 = 0x0C;&lt;BR /&gt;/*&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; TCIE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; RIE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; ILIE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; TE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; RE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; RWU&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; SBK */&lt;/DIV&gt;&lt;DIV&gt;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;char InChar(void) {&lt;BR /&gt;&amp;nbsp;while((RDRF &amp;amp; SCI1SR1)== 0){};&amp;nbsp; //It gets caught HERE and loops infinitely&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;return(SCI1DRL);&lt;/DIV&gt;&lt;DIV&gt;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;void InString(char *string, unsigned short max) {&amp;nbsp;&lt;BR /&gt;int length=0;&lt;BR /&gt;char character;&lt;BR /&gt;&amp;nbsp;char character1;&lt;BR /&gt;&amp;nbsp;character = InChar();&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;while(length&amp;lt;max){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*string++=character;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;length++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;character = InChar();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;writeLine(string, 1);//Writes to LCD&lt;BR /&gt;}&lt;BR /&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 30 Oct 2006 07:16:04 GMT</pubDate>
    <dc:creator>RoboMan</dc:creator>
    <dc:date>2006-10-30T07:16:04Z</dc:date>
    <item>
      <title>Newbie SCI1 question</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Newbie-SCI1-question/m-p/134635#M2106</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;HI all.&amp;nbsp; I'm new to using the HCS12 for serial applications.&amp;nbsp; I just started using Codewarrior last week so bear with me.&amp;nbsp; I'm trying to set it up so it receives information from my GPS and displays it on the LCD.&amp;nbsp; I can hook my GPS up to my computer with a baud rate of 4800 and i can read it through hyperterminal.&amp;nbsp; All I want to do at this point is trip the&amp;nbsp;SCI1SR1 register so it is equal to 0x02. &amp;nbsp;When I hook it up to my HCS12 board it doesn't receive anything, and the SCI1SR1 register is 0xC0 when I look at the memory.&amp;nbsp; I have it hooked up to my SC1 port on my evaluation board (the Dragon 12).&amp;nbsp; &amp;nbsp;I've been looking in the SCI1SR1 for the RDRF flag to trip.&amp;nbsp; It doesn't.&amp;nbsp; Here is my code.&amp;nbsp; Any help would be great.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;#define RDRF 0x20&amp;nbsp;&amp;nbsp; // Receive Data Register Full Bit&lt;BR /&gt;#define TDRE 0x80&amp;nbsp;&amp;nbsp; // Transmit Data Register Empty Bit&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;void SCI1_Init(void) {&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;SCI1BDH=1;&amp;nbsp; //9600 Baud rate&lt;BR /&gt;&amp;nbsp;SCI1BDL=56;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;SCI1CR1 = 0;&lt;BR /&gt;/*&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; LOOPS&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; WOMS&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; RSRC&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; M&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; WAKE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; ILT&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; PE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; PT */&lt;BR /&gt;&amp;nbsp;SCI1CR2 = 0x0C;&lt;BR /&gt;/*&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; TIE,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; TCIE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; RIE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; ILIE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; TE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; RE&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; RWU&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; SBK */&lt;/DIV&gt;&lt;DIV&gt;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;char InChar(void) {&lt;BR /&gt;&amp;nbsp;while((RDRF &amp;amp; SCI1SR1)== 0){};&amp;nbsp; //It gets caught HERE and loops infinitely&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;return(SCI1DRL);&lt;/DIV&gt;&lt;DIV&gt;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;void InString(char *string, unsigned short max) {&amp;nbsp;&lt;BR /&gt;int length=0;&lt;BR /&gt;char character;&lt;BR /&gt;&amp;nbsp;char character1;&lt;BR /&gt;&amp;nbsp;character = InChar();&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;while(length&amp;lt;max){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*string++=character;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;length++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;character = InChar();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;writeLine(string, 1);//Writes to LCD&lt;BR /&gt;}&lt;BR /&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 30 Oct 2006 07:16:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Newbie-SCI1-question/m-p/134635#M2106</guid>
      <dc:creator>RoboMan</dc:creator>
      <dc:date>2006-10-30T07:16:04Z</dc:date>
    </item>
    <item>
      <title>Re: Newbie SCI1 question</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Newbie-SCI1-question/m-p/134636#M2107</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Hello,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;You say that you need to set hyperterminal for a baud rate of 4800 to communicate with the GPS receiver.&amp;nbsp; However, you appear to be setting your SCI code for 9600 bits per second.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Have you also checked your RS232 to logic level conversion?&amp;nbsp; Can you actually observe the presence of data, using an oscilloscope,&amp;nbsp;at the Rx pin?&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Regards,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Mac&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;Message Edited by bigmac on &lt;SPAN class="date_text"&gt;2006-10-30&lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;12:05 PM&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 30 Oct 2006 09:57:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Newbie-SCI1-question/m-p/134636#M2107</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2006-10-30T09:57:44Z</dc:date>
    </item>
    <item>
      <title>Re: Newbie SCI1 question</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Newbie-SCI1-question/m-p/134637#M2108</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Yeah thats a mistake.&amp;nbsp; Its for the correct baud rate.&amp;nbsp; I had changed the baud rate a couple times, but forgot to change the comment.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Josh&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 30 Oct 2006 10:02:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Newbie-SCI1-question/m-p/134637#M2108</guid>
      <dc:creator>RoboMan</dc:creator>
      <dc:date>2006-10-30T10:02:36Z</dc:date>
    </item>
    <item>
      <title>Re: Newbie SCI1 question</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Newbie-SCI1-question/m-p/134638#M2109</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Just be aware of the odd way Freescale clears the flags in SCI and SPI. They are cleared by reading the flag register, followed by reading the data register. So if you look at those flags in a debugger memory map, the debugger is likely clearing the flags for you and the program will hang. Try it without the debugger and check if it works (set a led or something when you receive a letter).&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 01 Nov 2006 21:44:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Newbie-SCI1-question/m-p/134638#M2109</guid>
      <dc:creator>Lundin</dc:creator>
      <dc:date>2006-11-01T21:44:57Z</dc:date>
    </item>
  </channel>
</rss>

