<?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>S12 / MagniV MicrocontrollersのトピックS12XEP100 CAN problem</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12XEP100-CAN-problem/m-p/180371#M6517</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have a problem with a MC9S12XEP100CAG:&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;- CAN2 (PM4/PM5) works fine&lt;/P&gt;&lt;P&gt;- CAN0 (OM0/PM1) CAN1 (PM2/PM3), CAN3 (PM6/PM7) doesn't work.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The Init sequence of CAN2 and CAN0/CAN1/CAN3 is the same (see below).&lt;/P&gt;&lt;P&gt;CAN2 goes synchron, I can send and receive messages.&lt;/P&gt;&lt;P&gt;But CAN0/CAN1/CAN3 doesn't work, the CAN-bus doesn't go synchron. Transceivers are enabled (same configuration as CAN2).&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I hope anybody can help.&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 style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Bastian&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;CAN2CTL0 = 0x01;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; while ((CAN2CTL1 &amp;amp; 0x01) != 0x01) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; CAN_HS_SetBRP (0x07);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN_HS_SetSJW (c_HS_ReSyncJumpWidth);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; CAN_HS_SetPHS1 (c_HS_TimeSegment1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; CAN_HS_SetPHS2 (c_HS_TimeSegment2);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; CAN2CTL1 = 0x80;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; CAN_HS_SetFilter();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; CAN2CTL0 = 0x00; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; while ((CAN2CTL1 &amp;amp; 0x01) == 0x01) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; CAN2RIER = 0x01;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 19 Nov 2012 14:33:12 GMT</pubDate>
    <dc:creator>bastih84</dc:creator>
    <dc:date>2012-11-19T14:33:12Z</dc:date>
    <item>
      <title>S12XEP100 CAN problem</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12XEP100-CAN-problem/m-p/180371#M6517</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have a problem with a MC9S12XEP100CAG:&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;- CAN2 (PM4/PM5) works fine&lt;/P&gt;&lt;P&gt;- CAN0 (OM0/PM1) CAN1 (PM2/PM3), CAN3 (PM6/PM7) doesn't work.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The Init sequence of CAN2 and CAN0/CAN1/CAN3 is the same (see below).&lt;/P&gt;&lt;P&gt;CAN2 goes synchron, I can send and receive messages.&lt;/P&gt;&lt;P&gt;But CAN0/CAN1/CAN3 doesn't work, the CAN-bus doesn't go synchron. Transceivers are enabled (same configuration as CAN2).&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I hope anybody can help.&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 style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Bastian&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;CAN2CTL0 = 0x01;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; while ((CAN2CTL1 &amp;amp; 0x01) != 0x01) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; CAN_HS_SetBRP (0x07);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN_HS_SetSJW (c_HS_ReSyncJumpWidth);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; CAN_HS_SetPHS1 (c_HS_TimeSegment1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; CAN_HS_SetPHS2 (c_HS_TimeSegment2);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; CAN2CTL1 = 0x80;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; CAN_HS_SetFilter();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; CAN2CTL0 = 0x00; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; while ((CAN2CTL1 &amp;amp; 0x01) == 0x01) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; CAN2RIER = 0x01;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Nov 2012 14:33:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12XEP100-CAN-problem/m-p/180371#M6517</guid>
      <dc:creator>bastih84</dc:creator>
      <dc:date>2012-11-19T14:33:12Z</dc:date>
    </item>
    <item>
      <title>Re: S12XEP100 CAN problem</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12XEP100-CAN-problem/m-p/180372#M6518</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Below is the code I've been using for several years without issues.&amp;nbsp; Makes it easier to see that the initialization is exactly the same for each CAN port.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;John&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;unsigned char *can_periph[5] = {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;CAN0CTL0,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;CAN1CTL0,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;CAN2CTL0,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;CAN3CTL0,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;CAN4CTL0&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void &lt;BR /&gt;MSCANInit(BYTE can_num, BYTE rate) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char *can_pt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; can_pt = can_periph[can_num];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ActiveCANDevices |= MASK_TABLE[can_num];&amp;nbsp; // Set this CANBus as initialized.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // If MSCAN peripheral is not in Initialization Mode, enables the Inizialization Mode Request&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!(can_pt[CANCTL1]&amp;amp;CANCTL1_INITAK_MASK))&lt;BR /&gt;&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; can_pt[CANCTL0] = CANCTL0_INITRQ_MASK;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(can_pt[CANCTL1]&amp;amp;CANCTL1_INITAK_MASK))&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; ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Enables MSCAN peripheral and chooses Oscillator Clock(16MHz), Loop Disabled and Normal Operation&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; can_pt[CANCTL1] = 0x80;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Configures SJW = 3Tq and Prescaler = 1 (0x80 for 1Mbps), (= 2 (0x81 for 500kbps)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; can_pt[CANBTR0] = rate;&lt;BR /&gt; // 1Mbps with 16Mhz clock, 16Tq per bit.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Configures One Sample, Time Segment 1 = 12Tq and Time Segment 2 = 3Tq&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; can_pt[CANBTR1] = 0x2B;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Disables all the Acceptance Filters by setting the masks to DON'T CARE.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; can_pt[CANIDMR_1B+0] = 0xFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; can_pt[CANIDMR_1B+1] = 0xFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; can_pt[CANIDMR_1B+2] = 0xFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; can_pt[CANIDMR_1B+3] = 0xFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; can_pt[CANIDMR_2B+0] = 0xFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; can_pt[CANIDMR_2B+1] = 0xFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; can_pt[CANIDMR_2B+2] = 0xFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; can_pt[CANIDMR_2B+3] = 0xFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Restarts MSCAN peripheral and waits for Initialization Mode exit&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; can_pt[CANCTL0] = 0x00;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(can_pt[CANCTL1]&amp;amp;CANCTL1_INITAK_MASK)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; can_pt[CANRIER] = 0x3C; // Allow status changes to set the CSCIF which signals valid&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // data in the CANRFLG&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Nov 2012 14:44:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12XEP100-CAN-problem/m-p/180372#M6518</guid>
      <dc:creator>jcdammeyer</dc:creator>
      <dc:date>2012-11-19T14:44:55Z</dc:date>
    </item>
  </channel>
</rss>

