<?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: CAN transmit enable register in S12 / MagniV Microcontrollers</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/CAN-transmit-enable-register/m-p/199529#M8028</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There are 3 CAN TX buffers.&amp;nbsp;There are three corresponding "TX buffer is empty" flags in CANxTFLG register.&amp;nbsp;And&amp;nbsp;there are three "TX buffer is empty"-interrupt enable bits in CANxTIER register.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you want interrupt on TX buffer 0 is empty, then you do CAN0TIER |= CAN0TIER_TXEIE0_MASK; .&lt;/P&gt;&lt;P&gt;If you want interrupt on any TX buffer is empty, then you set all three TXEIE bits.&lt;/P&gt;&lt;P&gt;You do CAN0TFLG =&amp;nbsp;CAN0TFLG_TXE0_MASK; &amp;nbsp;to clear buffer 0 flag and send TX buffer 0. TX1 - for TX buffer 1, TX2 - for TX buffer 2.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 12 May 2010 16:27:58 GMT</pubDate>
    <dc:creator>kef</dc:creator>
    <dc:date>2010-05-12T16:27:58Z</dc:date>
    <item>
      <title>CAN transmit enable register</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/CAN-transmit-enable-register/m-p/199528#M8027</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;&amp;nbsp; can anyone tell me which flag should be enabled for transmitting data&amp;nbsp; on CAN in MC9S12XHZ512 controller.&lt;/P&gt;&lt;P&gt;&amp;nbsp;I want to send some CAN request&amp;nbsp;data from controller after certain time interval.&lt;/P&gt;&lt;P&gt;For this should I set&amp;nbsp; CAN0TFLG =1 so that&amp;nbsp; it automatically reaches to interrupt function&amp;nbsp; or is there any other register&amp;nbsp;&amp;nbsp;.&lt;/P&gt;&lt;P&gt;let me know if anyone has some idea&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;rgds&lt;/P&gt;&lt;P&gt;SARY&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 May 2010 15:59:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/CAN-transmit-enable-register/m-p/199528#M8027</guid>
      <dc:creator>SARY</dc:creator>
      <dc:date>2010-05-12T15:59:58Z</dc:date>
    </item>
    <item>
      <title>Re: CAN transmit enable register</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/CAN-transmit-enable-register/m-p/199529#M8028</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There are 3 CAN TX buffers.&amp;nbsp;There are three corresponding "TX buffer is empty" flags in CANxTFLG register.&amp;nbsp;And&amp;nbsp;there are three "TX buffer is empty"-interrupt enable bits in CANxTIER register.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you want interrupt on TX buffer 0 is empty, then you do CAN0TIER |= CAN0TIER_TXEIE0_MASK; .&lt;/P&gt;&lt;P&gt;If you want interrupt on any TX buffer is empty, then you set all three TXEIE bits.&lt;/P&gt;&lt;P&gt;You do CAN0TFLG =&amp;nbsp;CAN0TFLG_TXE0_MASK; &amp;nbsp;to clear buffer 0 flag and send TX buffer 0. TX1 - for TX buffer 1, TX2 - for TX buffer 2.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 May 2010 16:27:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/CAN-transmit-enable-register/m-p/199529#M8028</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2010-05-12T16:27:58Z</dc:date>
    </item>
    <item>
      <title>Re: CAN transmit enable register</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/CAN-transmit-enable-register/m-p/199530#M8029</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi kef&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I got the answer .I can transmit data using this. But there is another problem coming.It &lt;FONT color="#999999"&gt;always&lt;/FONT&gt; keeps on sending same data even if I have changed data.&lt;/P&gt;&lt;P&gt;Like I want to send two request,I am sending them like&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;///Fuel cons req.&amp;nbsp;uisng EA00 PGN&lt;BR /&gt;&amp;nbsp;&amp;nbsp; CAN0TFLG|=CAN0TFLG_TXE0_MASK;&lt;BR /&gt;&amp;nbsp; Fuel_cons=(unsigned long)J1939TripFuelCalc;//reading fuel cons data&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;///Eng hours req.&amp;nbsp;uisng EA00 PGN&lt;BR /&gt;&amp;nbsp;&amp;nbsp; CAN0TFLG|=CAN0TFLG_TXE0_MASK;&lt;BR /&gt;&amp;nbsp; EngHr=J1939HrsCalc;//reading engine hrs&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#c0c0c0"&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;But I am able to receive only first request message.I cant receive second request message.&lt;/P&gt;&lt;P&gt;so what could be the posible reason for that.even&amp;nbsp;I tried to&amp;nbsp;put some &amp;nbsp;delay between the two request.&lt;/P&gt;&lt;P&gt;but still its not coming.&lt;/P&gt;&lt;P&gt;wating for reply&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;SARY&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 May 2010 14:16:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/CAN-transmit-enable-register/m-p/199530#M8029</guid>
      <dc:creator>SARY</dc:creator>
      <dc:date>2010-05-13T14:16:52Z</dc:date>
    </item>
    <item>
      <title>Re: CAN transmit enable register</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/CAN-transmit-enable-register/m-p/199531#M8030</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;First of all, ORing CANTFLG with something is wrong!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;&amp;nbsp;&amp;nbsp; CAN0TFLG|=CAN0TFLG_TXE0_MASK;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;^^ this clears not only TXE0 bit, but also TXE1 and TXE0 if they are set! In other words if TX1 and TX2 buffers are empty, then red line with send those empty buffers.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#99CC00"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color="#339966"&gt;&amp;nbsp; CAN0TFLG = CAN0TFLG_TXE0_MASK;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;^^ this will send only buffer TX0.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I don't see where are you filling TX buffers. I hope you fill TX buffer only when TXE0 bit is set. Is it so? Because your code looks bit weird: 1) you send TX0 buffer, 2) you do something to Fuel_cons, 3) you send TX0 buffer again, though I don't see where you are waiting for TX0 buffer to become empty (while TXE0 is clear), 4) you do something to EngHr&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 May 2010 14:56:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/CAN-transmit-enable-register/m-p/199531#M8030</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2010-05-13T14:56:39Z</dc:date>
    </item>
    <item>
      <title>Re: CAN transmit enable register</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/CAN-transmit-enable-register/m-p/199532#M8031</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have removed Oring also.It is behaving in the same manner.And I am putting data in the transmit buffer&amp;nbsp; in the CAN transmit interrupt function.Code is somewhat like below&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;CAN0TBSEL = CAN0TFLG;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Select lowest empty buffer&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; u8TxBuffer = CAN0TBSEL;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Backup selected buffer&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;&amp;nbsp;*((unsigned long*) ((unsigned long)(&amp;amp;CAN0TXIDR0)))= u32ID; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Load data to Data Segment Registers&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i=0;i&amp;lt;u8Length;i++) {&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;amp;CAN0TXDSR0 + i) = u8TxData[i]; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TXDLR = 8;&amp;nbsp;&amp;nbsp; // Set Data Length Code&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TXTBPR = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set Priority&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN0TFLG = u8TxBuffer;&amp;nbsp; // Start transmission&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ( (CAN0TFLG &amp;amp; u8TxBuffer) != u8TxBuffer);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;&lt;BR /&gt;return; &amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#ff0000"&gt;&lt;BR /&gt;&lt;/FONT&gt;But I am able to&amp;nbsp; receive Only one&amp;nbsp; data(request frame) in regular intervals.&lt;/P&gt;&lt;P&gt;I want to know how can I transmit two data frames(request) one after the other in regular intervals.&lt;/P&gt;&lt;P&gt;SARY&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 15 May 2010 17:46:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/CAN-transmit-enable-register/m-p/199532#M8031</guid>
      <dc:creator>SARY</dc:creator>
      <dc:date>2010-05-15T17:46:09Z</dc:date>
    </item>
    <item>
      <title>Re: CAN transmit enable register</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/CAN-transmit-enable-register/m-p/199533#M8032</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;you can use easily the code&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;CAN0TFLG = CAN0TBSEL&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Jun 2010 14:27:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/CAN-transmit-enable-register/m-p/199533#M8032</guid>
      <dc:creator>VickLiui</dc:creator>
      <dc:date>2010-06-18T14:27:57Z</dc:date>
    </item>
    <item>
      <title>Re: CAN transmit enable register</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/CAN-transmit-enable-register/m-p/199534#M8033</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;while(!((CAN0TFLG ==0x7)||(CAN0TFLG == 0x6)));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;CAN0TBSEL = CAN0TFLG;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;CAN0TXIDR3 = (unsigned char)((id &amp;amp; 0x7f)&amp;lt;&amp;lt;1) ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;CAN0TXIDR2 = (unsigned char)((id&amp;gt;&amp;gt;7) &amp;amp; 0xff) ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;CAN0TXIDR1 = (unsigned char)(((id&amp;gt;&amp;gt;15) &amp;amp; 0x07) | 0x18 | ((id&amp;gt;&amp;gt;13) &amp;amp; 0xe0));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;CAN0TXIDR0 = (unsigned char)((id &amp;gt;&amp;gt; 21) &amp;amp; 0xff);&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;CAN0TXDSR0 = packet[0]; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;CAN0TXDSR1 = packet[1];&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;CAN0TXDSR2 = packet[2];&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;CAN0TXDSR3 = packet[3];&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;CAN0TXDSR4 = packet[4];&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;CAN0TXDSR5 = packet[5];&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;CAN0TXDSR6 = packet[6];&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;CAN0TXDSR7 = packet[7];&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;CAN0TXDLR = length;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;CAN0TXTBPR = 0;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;CAN0TFLG = CAN0TBSEL;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Jun 2010 14:30:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/CAN-transmit-enable-register/m-p/199534#M8033</guid>
      <dc:creator>VickLiui</dc:creator>
      <dc:date>2010-06-18T14:30:22Z</dc:date>
    </item>
    <item>
      <title>Re: CAN transmit enable register</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/CAN-transmit-enable-register/m-p/199535#M8034</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello I'm also working on MC9S12XHz512 CAN module and getting same problem can someone help me?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 07 Dec 2014 04:44:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/CAN-transmit-enable-register/m-p/199535#M8034</guid>
      <dc:creator>kdn</dc:creator>
      <dc:date>2014-12-07T04:44:51Z</dc:date>
    </item>
  </channel>
</rss>

