<?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>LPCXpresso IDEのトピックRe: CAN Problems</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/CAN-Problems/m-p/561771#M16458</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by klaschudi on Wed Mar 06 03:40:48 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;No, i don't.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I can only see a Overload-Message on the Bus.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;But why do i get a positive result for the self test? Doesn't that mean that everything between controller and transiver is right?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 23:40:40 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T23:40:40Z</dc:date>
    <item>
      <title>CAN Problems</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/CAN-Problems/m-p/561767#M16454</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by klaschudi on Wed Mar 06 01:15:06 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm trying to send something over the CAN1-Bus. With the following code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
void can_init(unsigned char bitrate)
{
LPC_SC-&amp;gt;PCONP |= (1 &amp;lt;&amp;lt; PCCAN1); // enable can1 clock
LPC_SC-&amp;gt;PCLKSEL0 |= (0x10 &amp;lt;&amp;lt; PCLK_CAN1);// canclk = 60MHz

LPC_PINCON-&amp;gt;PINSEL0 &amp;amp;= ~(3 &amp;lt;&amp;lt; 0)&amp;amp;(3 &amp;lt;&amp;lt; 2); // select can pin function
LPC_PINCON-&amp;gt;PINSEL0 |= (1 &amp;lt;&amp;lt; 0)|(1 &amp;lt;&amp;lt; 2);

LPC_CAN1-&amp;gt;MOD = (1 &amp;lt;&amp;lt; 0);&amp;nbsp;&amp;nbsp;&amp;nbsp; // enter reset mode
LPC_CAN1-&amp;gt;IER = 0;&amp;nbsp; // disable receive interrupts
LPC_CAN1-&amp;gt;GSR = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Reset error counter when CANxMOD is in reset

LPC_CAN1-&amp;gt;BTR = bitrate;
LPC_CAN1-&amp;gt;MOD = 0x0;&amp;nbsp; // leave reset mode, enter normal operation mode

LPC_CANAF-&amp;gt;AFMR |= (1 &amp;lt;&amp;lt; 1); // all rx messages are accepted&amp;nbsp; (acceptance filter)

NVIC_EnableIRQ(CAN_IRQn);

LPC_CAN1-&amp;gt;IER = 0x01; // Enable receive interrupts
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
uint8_t CAN1_SendMessage( CAN_MSG *pTxBuf )
{
&amp;nbsp; uint32_t CANStatus;

&amp;nbsp; CANStatus = LPC_CAN1-&amp;gt;SR;
&amp;nbsp; if ( CANStatus &amp;amp; (1 &amp;lt;&amp;lt; 2) )
&amp;nbsp; {
LPC_CAN1-&amp;gt;TFI1 = pTxBuf-&amp;gt;Frame;
LPC_CAN1-&amp;gt;TID1 = pTxBuf-&amp;gt;MsgID;
LPC_CAN1-&amp;gt;TDA1 = pTxBuf-&amp;gt;DataA;
LPC_CAN1-&amp;gt;TDB1 = pTxBuf-&amp;gt;DataB;
LPC_CAN1-&amp;gt;CMR = (1 &amp;lt;&amp;lt; 0)|(1 &amp;lt;&amp;lt; 5);
return ( TRUE );
&amp;nbsp; }

&amp;nbsp; else if ( CANStatus &amp;amp; (1 &amp;lt;&amp;lt; 10) )
&amp;nbsp; {
LPC_CAN1-&amp;gt;TFI2 = pTxBuf-&amp;gt;Frame;
LPC_CAN1-&amp;gt;TID2 = pTxBuf-&amp;gt;MsgID;
LPC_CAN1-&amp;gt;TDA2 = pTxBuf-&amp;gt;DataA;
LPC_CAN1-&amp;gt;TDB2 = pTxBuf-&amp;gt;DataB;
LPC_CAN1-&amp;gt;CMR = (1 &amp;lt;&amp;lt; 0)|(1 &amp;lt;&amp;lt; 6);
return ( TRUE );
&amp;nbsp; }
&amp;nbsp; else if ( CANStatus &amp;amp; (1 &amp;lt;&amp;lt; 18) )
&amp;nbsp; {
LPC_CAN1-&amp;gt;TFI3 = pTxBuf-&amp;gt;Frame;
LPC_CAN1-&amp;gt;TID3 = pTxBuf-&amp;gt;MsgID;
LPC_CAN1-&amp;gt;TDA3 = pTxBuf-&amp;gt;DataA;
LPC_CAN1-&amp;gt;TDB3 = pTxBuf-&amp;gt;DataB;
LPC_CAN1-&amp;gt;CMR = (1 &amp;lt;&amp;lt; 0)|(1 &amp;lt;&amp;lt; 7);
return ( TRUE );
&amp;nbsp; }

&amp;nbsp; return ( FALSE );
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But after setting the CMR-Register for the first time the Controller starts to periodically transmit CAN-Messages with a weird ID (0C889249...). And after sendig once with each Transmit Buffer they are all marked as busy.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I already tried the Local Self test, which seemed to be OK. So I don't think that this is a Hardware Problem.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Did I forget anything in the Initialisation?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for your help!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:40:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/CAN-Problems/m-p/561767#M16454</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:40:37Z</dc:date>
    </item>
    <item>
      <title>Re: CAN Problems</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/CAN-Problems/m-p/561768#M16455</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ex-Zero on Wed Mar 06 02:03:18 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;This is a standard Init and Send function and not showing much :confused:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If your Local Self Test was really working and now stopped working, you have a hardware :confused: problem or no correct CAN bus :confused:&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:40:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/CAN-Problems/m-p/561768#M16455</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:40:38Z</dc:date>
    </item>
    <item>
      <title>Re: CAN Problems</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/CAN-Problems/m-p/561769#M16456</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by klaschudi on Wed Mar 06 02:07:40 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;this is what i did for the local self test:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
LPC_SC-&amp;gt;PCONP |= (1 &amp;lt;&amp;lt; PCCAN1); // enable can1 clock
LPC_SC-&amp;gt;PCLKSEL0 |= (0x10 &amp;lt;&amp;lt; PCLK_CAN1);// canclk = 60MHz
LPC_PINCON-&amp;gt;PINSEL0 &amp;amp;= ~(3 &amp;lt;&amp;lt; 0)&amp;amp;(3 &amp;lt;&amp;lt; 2); // select can pin function
LPC_PINCON-&amp;gt;PINSEL0 |= (1 &amp;lt;&amp;lt; 0)|(1 &amp;lt;&amp;lt; 2);

LPC_CANAF-&amp;gt;AFMR |= (1 &amp;lt;&amp;lt; 1); // all rx messages are accepted&amp;nbsp; (acceptance filter)

LPC_CAN1-&amp;gt;MOD = 1; // enter reset mode
LPC_CAN1-&amp;gt;MOD = (1 &amp;lt;&amp;lt; 2); // enable local self test

NVIC_EnableIRQ(CAN_IRQn);

while (1)
{
LPC_CAN1-&amp;gt;CMR |= 0x30;
LPC_CAN1-&amp;gt;CMR |= 0x50;
LPC_CAN1-&amp;gt;CMR |= 0x90;
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I paused the Debugger in the loop and the MOD register was still 4. Is this the right procedure for the self test?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:40:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/CAN-Problems/m-p/561769#M16456</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:40:38Z</dc:date>
    </item>
    <item>
      <title>Re: CAN Problems</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/CAN-Problems/m-p/561770#M16457</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ex-Zero on Wed Mar 06 02:27:20 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;That's the Rambo version &lt;SPAN class="lia-unicode-emoji" title=":winking_face:"&gt;&lt;LI-EMOJI id="lia_winking-face" title=":winking_face:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I prefer to check transmit buffers and use a timer (or loop) :eek:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
//Check status of Transmit Buffer 1
&amp;nbsp;&amp;nbsp;&amp;nbsp; if ([COLOR=Red]CANx-&amp;gt;SR &amp;amp; (1&amp;lt;&amp;lt;2)[/COLOR])
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Transmit Channel 1 is available */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Write frame informations and frame data into its CANxTFI1,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * CANxTID1, CANxTDA1, CANxTDB1 register */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TFI1 &amp;amp;= ~0x000F0000;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TFI1 |= (CAN_Msg-&amp;gt;len)&amp;lt;&amp;lt;16;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(CAN_Msg-&amp;gt;type == REMOTE_FRAME)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TFI1 |= (1&amp;lt;&amp;lt;30); //set bit RTR
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TFI1 &amp;amp;= ~(1&amp;lt;&amp;lt;30);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(CAN_Msg-&amp;gt;format == EXT_ID_FORMAT)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TFI1 |= (1&amp;lt;&amp;lt;31); //set bit FF
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TFI1 &amp;amp;= ~(1&amp;lt;&amp;lt;31);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Write CAN ID*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TID1 = CAN_Msg-&amp;gt;id;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Write first 4 data bytes*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data = (CAN_Msg-&amp;gt;dataA[0])|(((CAN_Msg-&amp;gt;dataA[1]))&amp;lt;&amp;lt;8)|((CAN_Msg-&amp;gt;dataA[2])&amp;lt;&amp;lt;16)|((CAN_Msg-&amp;gt;dataA[3])&amp;lt;&amp;lt;24);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TDA1 = data;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Write second 4 data bytes*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data = (CAN_Msg-&amp;gt;dataB[0])|(((CAN_Msg-&amp;gt;dataB[1]))&amp;lt;&amp;lt;8)|((CAN_Msg-&amp;gt;dataB[2])&amp;lt;&amp;lt;16)|((CAN_Msg-&amp;gt;dataB[3])&amp;lt;&amp;lt;24);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TDB1 = data;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Write transmission request*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(self_recep)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;CMR = 0x30;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;CMR = 0x21;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return SUCCESS;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; //check status of Transmit Buffer 2
&amp;nbsp;&amp;nbsp;&amp;nbsp; else if([COLOR=Red]CANx-&amp;gt;SR &amp;amp; (1&amp;lt;&amp;lt;10)[/COLOR])
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Transmit Channel 2 is available */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Write frame informations and frame data into its CANxTFI2,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * CANxTID2, CANxTDA2, CANxTDB2 register */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TFI2 &amp;amp;= ~0x000F0000;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TFI2 |= (CAN_Msg-&amp;gt;len)&amp;lt;&amp;lt;16;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(CAN_Msg-&amp;gt;type == REMOTE_FRAME)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TFI2 |= (1&amp;lt;&amp;lt;30); //set bit RTR
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TFI2 &amp;amp;= ~(1&amp;lt;&amp;lt;30);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(CAN_Msg-&amp;gt;format == EXT_ID_FORMAT)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TFI2 |= (1&amp;lt;&amp;lt;31); //set bit FF
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TFI2 &amp;amp;= ~(1&amp;lt;&amp;lt;31);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Write CAN ID*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TID2 = CAN_Msg-&amp;gt;id;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Write first 4 data bytes*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data = (CAN_Msg-&amp;gt;dataA[0])|(((CAN_Msg-&amp;gt;dataA[1]))&amp;lt;&amp;lt;8)|((CAN_Msg-&amp;gt;dataA[2])&amp;lt;&amp;lt;16)|((CAN_Msg-&amp;gt;dataA[3])&amp;lt;&amp;lt;24);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TDA2 = data;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Write second 4 data bytes*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data = (CAN_Msg-&amp;gt;dataB[0])|(((CAN_Msg-&amp;gt;dataB[1]))&amp;lt;&amp;lt;8)|((CAN_Msg-&amp;gt;dataB[2])&amp;lt;&amp;lt;16)|((CAN_Msg-&amp;gt;dataB[3])&amp;lt;&amp;lt;24);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TDB2 = data;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Write transmission request*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(self_recep)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;CMR = 0x50;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;CMR = 0x41;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return SUCCESS;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; //check status of Transmit Buffer 3
&amp;nbsp;&amp;nbsp;&amp;nbsp; else if ([COLOR=Red]CANx-&amp;gt;SR &amp;amp; (1&amp;lt;&amp;lt;18)[/COLOR])
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Transmit Channel 3 is available */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Write frame informations and frame data into its CANxTFI3,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * CANxTID3, CANxTDA3, CANxTDB3 register */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TFI3 &amp;amp;= ~0x000F0000;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TFI3 |= (CAN_Msg-&amp;gt;len)&amp;lt;&amp;lt;16;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(CAN_Msg-&amp;gt;type == REMOTE_FRAME)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TFI3 |= (1&amp;lt;&amp;lt;30); //set bit RTR
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TFI3 &amp;amp;= ~(1&amp;lt;&amp;lt;30);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(CAN_Msg-&amp;gt;format == EXT_ID_FORMAT)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TFI3 |= (1&amp;lt;&amp;lt;31); //set bit FF
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TFI3 &amp;amp;= ~(1&amp;lt;&amp;lt;31);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Write CAN ID*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TID3 = CAN_Msg-&amp;gt;id;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Write first 4 data bytes*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data = (CAN_Msg-&amp;gt;dataA[0])|(((CAN_Msg-&amp;gt;dataA[1]))&amp;lt;&amp;lt;8)|((CAN_Msg-&amp;gt;dataA[2])&amp;lt;&amp;lt;16)|((CAN_Msg-&amp;gt;dataA[3])&amp;lt;&amp;lt;24);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TDA3 = data;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Write second 4 data bytes*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data = (CAN_Msg-&amp;gt;dataB[0])|(((CAN_Msg-&amp;gt;dataB[1]))&amp;lt;&amp;lt;8)|((CAN_Msg-&amp;gt;dataB[2])&amp;lt;&amp;lt;16)|((CAN_Msg-&amp;gt;dataB[3])&amp;lt;&amp;lt;24);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;TDB3 = data;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Write transmission request*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(self_recep)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;CMR = 0x90;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CANx-&amp;gt;CMR = 0x81;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return SUCCESS;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ERROR;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;SPAN&gt;But the main question is if you scope / receive correct signals / messages on your CAN bus :confused:&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:40:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/CAN-Problems/m-p/561770#M16457</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:40:39Z</dc:date>
    </item>
    <item>
      <title>Re: CAN Problems</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/CAN-Problems/m-p/561771#M16458</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by klaschudi on Wed Mar 06 03:40:48 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;No, i don't.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I can only see a Overload-Message on the Bus.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;But why do i get a positive result for the self test? Doesn't that mean that everything between controller and transiver is right?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:40:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/CAN-Problems/m-p/561771#M16458</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:40:40Z</dc:date>
    </item>
    <item>
      <title>Re: CAN Problems</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/CAN-Problems/m-p/561772#M16459</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by klaschudi on Wed Mar 06 07:04:09 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I solved a part of the Problem now:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I didn't had the right bitrate because the defines in the example seem to be wrong.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;But the controller still sends out the same frame (ID and Data are OK) periodically (with a break of 50ms) when I start the first transmission. The buffer isn't available from then on.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Do I have to take care when the controller transmitted the Message and stop it then. Or what could be a reason for that behaviour?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks...&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:40:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/CAN-Problems/m-p/561772#M16459</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:40:40Z</dc:date>
    </item>
    <item>
      <title>Re: CAN Problems</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/CAN-Problems/m-p/561773#M16460</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by klaschudi on Wed Mar 06 09:49:09 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Now i solved the problem:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It didn't work because there wasn't anything to send ACK's when I started analysing it with CANalyzer the strange behaviour disappeard...&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:40:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/CAN-Problems/m-p/561773#M16460</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:40:41Z</dc:date>
    </item>
  </channel>
</rss>

