<?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: 9s12X CAN initialisation in S12 / MagniV Microcontrollers</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/9s12X-CAN-initialisation/m-p/550396#M12733</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;9s12XEQ384&lt;/P&gt;&lt;P&gt;Oscilator freq 5.0 MHz&lt;BR /&gt; Bus freq 50 MHz&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;#define BTR0_500 0x80 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Gives 190us for a packet, expected length is 211 us or 202.8us&lt;BR /&gt;#define BTR1_500 0x25&lt;BR /&gt;#define CTL1 CANE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// To select Oscilator clock = CLKSRC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void CAN0_Dont_care(void) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Setup Acceptance registers&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; // Can only be done in initialization mode !&lt;BR /&gt; CAN0IDAR0 = 0xff; CAN0IDAR1 = 0xff; // Acceptance registers [0..7]&lt;BR /&gt; CAN0IDAR2 = 0xff; CAN0IDAR3 = 0xff; // Must be done in initialization mode.&lt;BR /&gt; CAN0IDMR0 = 0xff; CAN0IDMR1 = 0xff; //&lt;BR /&gt; CAN0IDMR2 = 0xff; CAN0IDMR3 = 0xff; // 16 bit filter mode (page 42 of MSCAN V02.14)&lt;BR /&gt;CAN0IDAR4 = 0xff; CAN0IDAR5 = 0xff;&lt;BR /&gt; CAN0IDAR6 = 0xff; CAN0IDAR7 = 0xff;&lt;BR /&gt; CAN0IDMR4 = 0xff; CAN0IDMR5 = 0xff; // DONT_CARE&lt;BR /&gt; CAN0IDMR6 = 0xff; CAN0IDMR7 = 0xff;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;void CAN_Init_UniQ(void) // 9sXEQ384&lt;BR /&gt;{&lt;BR /&gt; CAN0CTL0 |= INITRQ; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // set INITRQ, this will also set INITAK&lt;/P&gt;&lt;P&gt;CAN0_Buffer_put = CAN0_Buffer_get =&lt;BR /&gt; CAN1_Buffer_put = CAN1_Buffer_get = 0; // Zero index before we initialise CANs&lt;/P&gt;&lt;P&gt;while ((CAN0CTL1 &amp;amp; INITAK) != 1) ; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // wait for init mode to occur&lt;BR /&gt; CAN0CTL1 = CTL1; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Set CANE just in case this is the first time after reset&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; // CANE = 1 = CAN Enable, CLKSRC = 0 = Oscilator clock&lt;BR /&gt; CAN0BTR0 = BTR0_500; &amp;nbsp; &amp;nbsp; &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;BR /&gt; CAN0BTR1 = BTR1_500; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // CAN_TSEG1 = 0x05&lt;/P&gt;&lt;P&gt;CAN0IDAC = IDAM0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Four 16 bit acceptance filters&lt;/P&gt;&lt;P&gt;CAN0_Dont_care(); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Setup Acceptance registers&lt;BR /&gt; CAN0CTL0 &amp;amp;= ~INITRQ; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // clear INITRQ. Restart and synchronise&lt;BR /&gt; while ((CAN0CTL1 &amp;amp; INITAK) != 0) ; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Wait for acknowledge&lt;/P&gt;&lt;P&gt;CAN0RIER = CSCIE | RSTATE0 | TSTATE0 | OVRIE | RXFIE; // enable receive interrupt RXFIE&lt;BR /&gt; CAN0RFLG = WUPIF | OVRIF | RXF; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Reset Error Flags&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;9s12DG256&lt;/P&gt;&lt;P&gt;Oscilator freq 4.0 MHz&lt;BR /&gt; Bus freq 25 MHz&lt;/P&gt;&lt;P&gt;#define CAN_TSEG1 0x03 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // BitRate = fTq / ( Time Quanta)&lt;BR /&gt;#define CAN_TSEG2 0x02 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Time Quanta = (SYNCH_SEG+(CAN_TSEG1+1)+(CAN_TSEG2+1))&lt;BR /&gt;#define BAUDRATE_500 1&lt;BR /&gt;#define CAN_SJW2 0x01 &amp;lt;&amp;lt; 6 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // CAN SJW = 2&lt;/P&gt;&lt;P&gt;void CANInit_UniQ(void)&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 9sDG256&lt;BR /&gt;{&lt;BR /&gt; CAN0_Buffer_put = CAN0_Buffer_get =&lt;BR /&gt; CAN1_Buffer_put = CAN1_Buffer_get = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Zero index before we initialise CANs&lt;/P&gt;&lt;P&gt;CAN0CTL0 |= INITRQ; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // set INITRQ, this will also set INITAK&lt;BR /&gt; while ((CAN0CTL1 &amp;amp; INITAK) != 1) ; &amp;nbsp; &amp;nbsp; &amp;nbsp; &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 for init mode to occur&lt;/P&gt;&lt;P&gt;CAN0CTL1 = CANE; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Set CANE just in case this is the first time after reset&lt;BR /&gt; // CANE = 1 = CAN Enable, CLKSRC = 0 = Oscilator clock&lt;BR /&gt; CAN0BTR0 = CAN_SJW2 | (BAUDRATE_500 - 1); &amp;nbsp; &amp;nbsp; &amp;nbsp;// 4.0MHz / (0x01 - 1) === 500 kHz&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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // CAN Baud of 500kbps at 4Mhz crystal (Was 0x43)&lt;BR /&gt; CAN0BTR1 = (CAN_TSEG2 &amp;lt;&amp;lt; 4) + CAN_TSEG1; &amp;nbsp; &amp;nbsp; // CAN_TSEG1 = 0x03&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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // CAN_TSEG2 = 0x02&lt;BR /&gt; CAN0IDAC = IDAM0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Four 16 bit acceptance filters&lt;/P&gt;&lt;P&gt;CAN0IDAR0 = 0xff; CAN0IDAR1 = 0xff; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Acceptance registers [0..7]&lt;BR /&gt; CAN0IDAR2 = 0xff; CAN0IDAR3 = 0xff; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Must be done in initialization mode.&lt;BR /&gt; CAN0IDMR0 = 0xff; CAN0IDMR1 = 0xff;&lt;BR /&gt; CAN0IDMR2 = 0xff; CAN0IDMR3 = 0xff; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 16 bit filter mode (page 42 of MSCAN V02.14)&lt;BR /&gt;CAN0IDAR4 = 0xff; CAN0IDAR5 = 0xff;&lt;BR /&gt; CAN0IDAR6 = 0xff; CAN0IDAR7 = 0xff;&lt;BR /&gt; CAN0IDMR4 = 0xff; CAN0IDMR5 = 0xff; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// DONT_CARE&lt;BR /&gt; CAN0IDMR6 = 0xff; CAN0IDMR7 = 0xff;&lt;/P&gt;&lt;P&gt;CAN0CTL0 &amp;amp;= ~INITRQ; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// clear INITRQ&lt;BR /&gt; while ((CAN0CTL1 &amp;amp; INITAK) != 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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;// Wait for acknowledge&lt;BR /&gt; CAN0RIER = CSCIE | RSTATE0 | TSTATE0 | OVRIE | RXFIE; // enable receive interrupt RXFIE&lt;BR /&gt; CAN0RFLG = WUPIF | OVRIF | RXF; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Reset Error Flags&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We sell thousands of our product a year so I know that the DG256 initialisation must be correct.&lt;/P&gt;&lt;P&gt;The CANH and CANL pins are wired correctly.&lt;/P&gt;&lt;P&gt;Acceptance filter are set to accept all.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Wade&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 25 Aug 2016 12:58:39 GMT</pubDate>
    <dc:creator>dastek</dc:creator>
    <dc:date>2016-08-25T12:58:39Z</dc:date>
    <item>
      <title>9s12X CAN initialisation</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/9s12X-CAN-initialisation/m-p/550394#M12731</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;BR /&gt;I am trying to set up the CAN interface on my 9s12XEQ384 so that the baud rate is 500 KBaud.&amp;nbsp; I am using the TJA1040 CAN tranceiver. &lt;/P&gt;&lt;P&gt;My oscillator is a 5.0 MHz device and I am clocking the micro using the PLL at its maximum of 50 MHz.&lt;/P&gt;&lt;P&gt;I have confirmed, using a software loop as well as an ECT routine that the bus clock is 50 MHz.&lt;/P&gt;&lt;P&gt;I have an application that runs on a 9s12DG256 that will generate a CAN message at 500 KBaud, so I have a way of testing my code.&lt;/P&gt;&lt;P&gt;I found an XLS spread sheet (Called CAN_setup.xls) that calculates CANBTR0 and CANBTR1 values&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have tried using both oscillator as well as bus clock as clock source and my message is either too long or too short in time.&amp;nbsp; I would like to use the oscillator clock as the clock source.&amp;nbsp; The value for BTR0 = 0x80 and BTR1 = 0x25 as predicted by the XLS spreadsheet.&amp;nbsp; This does not sync with my other units 500 KBaud bus.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can you see what I am doing wrong?&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Wade&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 23 Aug 2016 14:20:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/9s12X-CAN-initialisation/m-p/550394#M12731</guid>
      <dc:creator>dastek</dc:creator>
      <dc:date>2016-08-23T14:20:49Z</dc:date>
    </item>
    <item>
      <title>Re: 9s12X CAN initialisation</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/9s12X-CAN-initialisation/m-p/550395#M12732</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Wade,&lt;/P&gt;&lt;P&gt;Could you please also specify your oscillator frequency, CAN bit time settings and type of CAN transceiver on 9s12DG256 side?&lt;/P&gt;&lt;P&gt;Are you sure that 9s12DG256 clock frequency is OK?&lt;/P&gt;&lt;P&gt;The bus clock might be routed to ECLK(PE4) pin by command ECLKCTL_NECLK=0; also in normal mode.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I suppose that CANH, CANL and GND signals are connected correctly and transceivers are both powered and configured. Right?&lt;/P&gt;&lt;P&gt;Do you use the same ground for both MCUs/boards?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What are your settings of acceptance filters?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Could you please share here your CAN init routine?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope it helps you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;Radek&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 24 Aug 2016 14:23:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/9s12X-CAN-initialisation/m-p/550395#M12732</guid>
      <dc:creator>RadekS</dc:creator>
      <dc:date>2016-08-24T14:23:01Z</dc:date>
    </item>
    <item>
      <title>Re: 9s12X CAN initialisation</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/9s12X-CAN-initialisation/m-p/550396#M12733</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;9s12XEQ384&lt;/P&gt;&lt;P&gt;Oscilator freq 5.0 MHz&lt;BR /&gt; Bus freq 50 MHz&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;#define BTR0_500 0x80 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Gives 190us for a packet, expected length is 211 us or 202.8us&lt;BR /&gt;#define BTR1_500 0x25&lt;BR /&gt;#define CTL1 CANE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// To select Oscilator clock = CLKSRC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void CAN0_Dont_care(void) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Setup Acceptance registers&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; // Can only be done in initialization mode !&lt;BR /&gt; CAN0IDAR0 = 0xff; CAN0IDAR1 = 0xff; // Acceptance registers [0..7]&lt;BR /&gt; CAN0IDAR2 = 0xff; CAN0IDAR3 = 0xff; // Must be done in initialization mode.&lt;BR /&gt; CAN0IDMR0 = 0xff; CAN0IDMR1 = 0xff; //&lt;BR /&gt; CAN0IDMR2 = 0xff; CAN0IDMR3 = 0xff; // 16 bit filter mode (page 42 of MSCAN V02.14)&lt;BR /&gt;CAN0IDAR4 = 0xff; CAN0IDAR5 = 0xff;&lt;BR /&gt; CAN0IDAR6 = 0xff; CAN0IDAR7 = 0xff;&lt;BR /&gt; CAN0IDMR4 = 0xff; CAN0IDMR5 = 0xff; // DONT_CARE&lt;BR /&gt; CAN0IDMR6 = 0xff; CAN0IDMR7 = 0xff;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;void CAN_Init_UniQ(void) // 9sXEQ384&lt;BR /&gt;{&lt;BR /&gt; CAN0CTL0 |= INITRQ; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // set INITRQ, this will also set INITAK&lt;/P&gt;&lt;P&gt;CAN0_Buffer_put = CAN0_Buffer_get =&lt;BR /&gt; CAN1_Buffer_put = CAN1_Buffer_get = 0; // Zero index before we initialise CANs&lt;/P&gt;&lt;P&gt;while ((CAN0CTL1 &amp;amp; INITAK) != 1) ; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // wait for init mode to occur&lt;BR /&gt; CAN0CTL1 = CTL1; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Set CANE just in case this is the first time after reset&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; // CANE = 1 = CAN Enable, CLKSRC = 0 = Oscilator clock&lt;BR /&gt; CAN0BTR0 = BTR0_500; &amp;nbsp; &amp;nbsp; &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;BR /&gt; CAN0BTR1 = BTR1_500; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // CAN_TSEG1 = 0x05&lt;/P&gt;&lt;P&gt;CAN0IDAC = IDAM0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Four 16 bit acceptance filters&lt;/P&gt;&lt;P&gt;CAN0_Dont_care(); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Setup Acceptance registers&lt;BR /&gt; CAN0CTL0 &amp;amp;= ~INITRQ; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // clear INITRQ. Restart and synchronise&lt;BR /&gt; while ((CAN0CTL1 &amp;amp; INITAK) != 0) ; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Wait for acknowledge&lt;/P&gt;&lt;P&gt;CAN0RIER = CSCIE | RSTATE0 | TSTATE0 | OVRIE | RXFIE; // enable receive interrupt RXFIE&lt;BR /&gt; CAN0RFLG = WUPIF | OVRIF | RXF; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Reset Error Flags&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;9s12DG256&lt;/P&gt;&lt;P&gt;Oscilator freq 4.0 MHz&lt;BR /&gt; Bus freq 25 MHz&lt;/P&gt;&lt;P&gt;#define CAN_TSEG1 0x03 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // BitRate = fTq / ( Time Quanta)&lt;BR /&gt;#define CAN_TSEG2 0x02 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Time Quanta = (SYNCH_SEG+(CAN_TSEG1+1)+(CAN_TSEG2+1))&lt;BR /&gt;#define BAUDRATE_500 1&lt;BR /&gt;#define CAN_SJW2 0x01 &amp;lt;&amp;lt; 6 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // CAN SJW = 2&lt;/P&gt;&lt;P&gt;void CANInit_UniQ(void)&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 9sDG256&lt;BR /&gt;{&lt;BR /&gt; CAN0_Buffer_put = CAN0_Buffer_get =&lt;BR /&gt; CAN1_Buffer_put = CAN1_Buffer_get = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Zero index before we initialise CANs&lt;/P&gt;&lt;P&gt;CAN0CTL0 |= INITRQ; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // set INITRQ, this will also set INITAK&lt;BR /&gt; while ((CAN0CTL1 &amp;amp; INITAK) != 1) ; &amp;nbsp; &amp;nbsp; &amp;nbsp; &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 for init mode to occur&lt;/P&gt;&lt;P&gt;CAN0CTL1 = CANE; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Set CANE just in case this is the first time after reset&lt;BR /&gt; // CANE = 1 = CAN Enable, CLKSRC = 0 = Oscilator clock&lt;BR /&gt; CAN0BTR0 = CAN_SJW2 | (BAUDRATE_500 - 1); &amp;nbsp; &amp;nbsp; &amp;nbsp;// 4.0MHz / (0x01 - 1) === 500 kHz&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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // CAN Baud of 500kbps at 4Mhz crystal (Was 0x43)&lt;BR /&gt; CAN0BTR1 = (CAN_TSEG2 &amp;lt;&amp;lt; 4) + CAN_TSEG1; &amp;nbsp; &amp;nbsp; // CAN_TSEG1 = 0x03&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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // CAN_TSEG2 = 0x02&lt;BR /&gt; CAN0IDAC = IDAM0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Four 16 bit acceptance filters&lt;/P&gt;&lt;P&gt;CAN0IDAR0 = 0xff; CAN0IDAR1 = 0xff; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Acceptance registers [0..7]&lt;BR /&gt; CAN0IDAR2 = 0xff; CAN0IDAR3 = 0xff; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Must be done in initialization mode.&lt;BR /&gt; CAN0IDMR0 = 0xff; CAN0IDMR1 = 0xff;&lt;BR /&gt; CAN0IDMR2 = 0xff; CAN0IDMR3 = 0xff; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 16 bit filter mode (page 42 of MSCAN V02.14)&lt;BR /&gt;CAN0IDAR4 = 0xff; CAN0IDAR5 = 0xff;&lt;BR /&gt; CAN0IDAR6 = 0xff; CAN0IDAR7 = 0xff;&lt;BR /&gt; CAN0IDMR4 = 0xff; CAN0IDMR5 = 0xff; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// DONT_CARE&lt;BR /&gt; CAN0IDMR6 = 0xff; CAN0IDMR7 = 0xff;&lt;/P&gt;&lt;P&gt;CAN0CTL0 &amp;amp;= ~INITRQ; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// clear INITRQ&lt;BR /&gt; while ((CAN0CTL1 &amp;amp; INITAK) != 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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;// Wait for acknowledge&lt;BR /&gt; CAN0RIER = CSCIE | RSTATE0 | TSTATE0 | OVRIE | RXFIE; // enable receive interrupt RXFIE&lt;BR /&gt; CAN0RFLG = WUPIF | OVRIF | RXF; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Reset Error Flags&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We sell thousands of our product a year so I know that the DG256 initialisation must be correct.&lt;/P&gt;&lt;P&gt;The CANH and CANL pins are wired correctly.&lt;/P&gt;&lt;P&gt;Acceptance filter are set to accept all.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Wade&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Aug 2016 12:58:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/9s12X-CAN-initialisation/m-p/550396#M12733</guid>
      <dc:creator>dastek</dc:creator>
      <dc:date>2016-08-25T12:58:39Z</dc:date>
    </item>
    <item>
      <title>Re: 9s12X CAN initialisation</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/9s12X-CAN-initialisation/m-p/550397#M12734</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Wade,&lt;/P&gt;&lt;P&gt;I cannot see anything significantly wrong in your code.&lt;/P&gt;&lt;P&gt;The nominal bit time is composed of SYNC_SEG, PROP_SEG, PHASE_SEG1 and PHASE_SEG2.&lt;/P&gt;&lt;P&gt;The sampling point is at an edge between PHASE_SEG1 and PHASE_SEG2.&lt;/P&gt;&lt;P&gt;In case of 9s12DG256 it is&lt;/P&gt;&lt;P&gt;1Tq+2Tq+2Tq+3Tq and sampling point is at 62.5% of the nominal bit time.&lt;/P&gt;&lt;P&gt;In case of 9s12XEQ384 it is&lt;/P&gt;&lt;P&gt;1Tq+3Tq+3Tq+3Tq and sampling point is at 70% of nominal bit time. &amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you please try BTR0_500 = 0xC0 and BTR1_500 = 0x34?&lt;/P&gt;&lt;P&gt;In that case, it should be&lt;/P&gt;&lt;P&gt;1Tq+2Tq+3Tq+4Tq and sampling point is at 60% of nominal bit time which is more close to original sampling point at 9s12DG256.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope it helps you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;Radek&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 26 Aug 2016 15:12:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/9s12X-CAN-initialisation/m-p/550397#M12734</guid>
      <dc:creator>RadekS</dc:creator>
      <dc:date>2016-08-26T15:12:55Z</dc:date>
    </item>
  </channel>
</rss>

