<?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>ColdFire/68K Microcontrollers and ProcessorsのトピックRe: understanding CF5234's UART TX Interrupt</title>
    <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/understanding-CF5234-s-UART-TX-Interrupt/m-p/126877#M334</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;First, check that UART&amp;nbsp;Interruptions are enabled in your UART Initialisation Code:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;MCF_UART_UIMR0 = ( 0 | MCF_UART_UISR_TXRDY&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 Interruption TxRDY&lt;BR /&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| MCF_UART_UISR_RXRDY_FU );&amp;nbsp; // EnableInterruption RxRDY&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;Second, to transmit chars, Enable the UART TX, this will automatically set USR0[TxEMP,TxRDY] and cause an interrupt.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;MCF_UART_UCR0 = MCF_UART_UCR_TX_ENABLED;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;I Hope this helps..&lt;BR /&gt;&lt;BR /&gt;Bye&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 19 Mar 2007 16:50:37 GMT</pubDate>
    <dc:creator>Arev</dc:creator>
    <dc:date>2007-03-19T16:50:37Z</dc:date>
    <item>
      <title>understanding CF5234's UART TX Interrupt</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/understanding-CF5234-s-UART-TX-Interrupt/m-p/126876#M333</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;Hello,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;UART TRX works fine at the moment using polling, but I'd like to use interrupts.&lt;/DIV&gt;&lt;DIV&gt;RX interrupt is no problem but I am not sure what I have to do for TX. Maybe someone can give a hint?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;status quo:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;1) set interrupt vector&lt;/DIV&gt;2) init UART&lt;/DIV&gt;&lt;DIV&gt;3) fill UART_TX_q&lt;/DIV&gt;&lt;DIV&gt;4) activate TX interrupt (&lt;SPAN style="font-size: 2;"&gt;UART.UISR.TXRDY = 1)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;Now my ISR is called and the TX_q will be send.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 2;"&gt;When finished, I switch off TX interrupt (UART.UISR.TXRDY = 0)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I'd like to do an internal loopback test to ensure everything is&amp;nbsp;okay before granting access to UART.&lt;/DIV&gt;&lt;DIV&gt;For&amp;nbsp;testing, I activate TX interrupt. My ISR is called and in the ISR, one Byte is put to UART.UTB and TX interrupt is switched off. Due to loopback,&amp;nbsp;UART.USR.RXRDY&amp;nbsp;is set and the interrupt should be triggered again, but nothing happens. UART.USR.RXRDY is set but the ISR is not called. It seems, my programm does not recognize the RX interrupt.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;SPAN class="msg_source_code"&gt;&lt;SPAN class="text_smallest"&gt;Code:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;PRE&gt;char BUTX = 64;&lt;/PRE&gt;&lt;PRE&gt;char BURX = 255;&lt;/PRE&gt;&lt;PRE&gt;interrupt void UART0_isr(void){// RX if ((UART0.USR.R &amp;amp; 0x1) == 0x1) {&amp;nbsp; BURX = UART0.UTRB.B.BUF; } else// TX if ((UART0.UISR.R &amp;amp; 0x1) == 0x1) {&amp;nbsp; UART0.UTRB.B.BUF = BUTX;&amp;nbsp; UART0.UISR.B.TXRDY = 0; }}&lt;/PRE&gt;&lt;PRE&gt;&lt;/PRE&gt;&lt;PRE&gt;void main()&lt;/PRE&gt;&lt;PRE&gt;{&lt;/PRE&gt;&lt;PRE&gt; setISR();&amp;nbsp; // set interrupt and isr&lt;/PRE&gt;&lt;PRE&gt; initUART();&amp;nbsp; // set local loopback mode&lt;/PRE&gt;&lt;PRE&gt; &lt;SPAN style="font-size: 2;"&gt;UART.UISR.TXRDY = 1; // enable UART TX interrupt&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN style="font-size: 2;"&gt;// Now ISR is called&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN style="font-size: 2;"&gt;while (BUTX != BURX) // Wait for RX interrupt&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN style="font-size: 2;"&gt;{&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN style="font-size: 2;"&gt; // Do nothing&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN style="font-size: 2;"&gt;}&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;}&lt;/PRE&gt;&lt;DIV&gt;&lt;BR /&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;please&amp;nbsp;note that i have replaced the q with a single char (BUTX / BURX) for testing.&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;Thanks for your suggestions.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;best regards (vy 73)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Sir Lenzelot&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Mar 2007 16:04:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/understanding-CF5234-s-UART-TX-Interrupt/m-p/126876#M333</guid>
      <dc:creator>sirlenzelot</dc:creator>
      <dc:date>2007-03-19T16:04:02Z</dc:date>
    </item>
    <item>
      <title>Re: understanding CF5234's UART TX Interrupt</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/understanding-CF5234-s-UART-TX-Interrupt/m-p/126877#M334</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;First, check that UART&amp;nbsp;Interruptions are enabled in your UART Initialisation Code:&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;MCF_UART_UIMR0 = ( 0 | MCF_UART_UISR_TXRDY&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 Interruption TxRDY&lt;BR /&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;| MCF_UART_UISR_RXRDY_FU );&amp;nbsp; // EnableInterruption RxRDY&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;Second, to transmit chars, Enable the UART TX, this will automatically set USR0[TxEMP,TxRDY] and cause an interrupt.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;MCF_UART_UCR0 = MCF_UART_UCR_TX_ENABLED;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;I Hope this helps..&lt;BR /&gt;&lt;BR /&gt;Bye&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Mar 2007 16:50:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/understanding-CF5234-s-UART-TX-Interrupt/m-p/126877#M334</guid>
      <dc:creator>Arev</dc:creator>
      <dc:date>2007-03-19T16:50:37Z</dc:date>
    </item>
    <item>
      <title>Re: understanding CF5234's UART TX Interrupt</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/understanding-CF5234-s-UART-TX-Interrupt/m-p/126878#M335</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Hello Arev,&lt;/DIV&gt;&lt;DIV&gt;thanks for your fast answer.&lt;/DIV&gt;&lt;DIV&gt;For enabling the transmission of data i did not switch&amp;nbsp;UART TX. I switched the interrupt on and off using UART.&lt;FONT size="2"&gt;UIMR.TXRDY. Maybe that was the mistake.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Thanks again.&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;best regards (vy73)&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Sir Lenzelot&lt;/FONT&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Mar 2007 14:42:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/understanding-CF5234-s-UART-TX-Interrupt/m-p/126878#M335</guid>
      <dc:creator>sirlenzelot</dc:creator>
      <dc:date>2007-03-20T14:42:06Z</dc:date>
    </item>
  </channel>
</rss>

