<?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>S32K中的主题 Re: CAN1 Does not work with example code</title>
    <link>https://community.nxp.com/t5/S32K/CAN1-Does-not-work-with-example-code/m-p/685568#M1047</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I was usingg C6/C7 and with an external trans receiver. Will try the pins&lt;/P&gt;&lt;P&gt;A12/A13. If pins A12/13 work highly suggest to mention that in the errata&lt;/P&gt;&lt;P&gt;sheet if not already mentioned&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Saurabh&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 01 Aug 2017 17:00:26 GMT</pubDate>
    <dc:creator>saurabhkarnik</dc:creator>
    <dc:date>2017-08-01T17:00:26Z</dc:date>
    <item>
      <title>CAN1 Does not work with example code</title>
      <link>https://community.nxp.com/t5/S32K/CAN1-Does-not-work-with-example-code/m-p/685564#M1043</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have modified the example flex can 2.0 code&amp;nbsp;&lt;/P&gt;&lt;P&gt;My requirement is to get the code working with CAN1 routed through PTC7/6 on Sk32144LQPF100&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;THe code is as follows. I modified it a little bit so that it would be generic to work with all the CAN bus.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* FlexCAN.c (c) 2016 NXP&lt;BR /&gt; * Descriptions: S32K144 CAN 2.0 A/B example..&lt;BR /&gt; * 2016 Jul 16 S. Mihalik: Initial version&lt;BR /&gt; * 2016 Sep 12 SM: Updated with SBC init, Node A - B communication&lt;BR /&gt; * 2016 Oct 31 SM: Updated for new header symbols for PCCn&lt;BR /&gt; */&lt;/P&gt;&lt;P&gt;#include "S32K144.h" /* include peripheral declarations S32K144 */&lt;BR /&gt;#include "can.h"&lt;BR /&gt;#include &amp;lt;stddef.h&amp;gt;&lt;/P&gt;&lt;P&gt;uint32_t RxCODE; /* Received message buffer code */&lt;BR /&gt;uint32_t RxID; /* Received message ID */&lt;BR /&gt;uint32_t RxLENGTH; /* Recieved message number of data bytes */&lt;BR /&gt;uint32_t RxDATA[2]; /* Received message data (2 words) */&lt;BR /&gt;uint32_t RxTIMESTAMP; /* Received message time */&lt;/P&gt;&lt;P&gt;static inline CAN_Type* get_can_bus_base_ptr(can_bus_type type) {&lt;/P&gt;&lt;P&gt;CAN_Type *bus_ptr = NULL;&lt;BR /&gt; switch (type) {&lt;BR /&gt; case BATTERY_CAN_BUS:&lt;BR /&gt; bus_ptr = (CAN_Type*)CAN_BUS_BATTERY_BASE_PTR;&lt;BR /&gt; break;&lt;BR /&gt; case SERVICE_CAN_BUS:&lt;BR /&gt; bus_ptr = (CAN_Type*)CAN_BUS_SERVICE_BASE_PTR;&lt;BR /&gt; break;&lt;BR /&gt; case VEHICLE_CAN_BUS:&lt;BR /&gt; bus_ptr = (CAN_Type*)CAN_BUS_VEHICLE_BASE_PTR;&lt;BR /&gt; break;&lt;BR /&gt; default:&lt;BR /&gt; break;&lt;BR /&gt; }&lt;BR /&gt; return bus_ptr;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;void FLEXCAN_init(can_bus_type type) {&lt;BR /&gt;#define MSG_BUF_SIZE 4 /* Msg Buffer Size. (CAN 2.0AB: 2 hdr + 2 data= 4 words) */&lt;BR /&gt; uint32_t i=0;&lt;BR /&gt; CAN_Type *base = get_can_bus_base_ptr(type);&lt;BR /&gt; PCC-&amp;gt;PCCn[PCC_PORTC_INDEX] |= PCC_PCCn_CGC_MASK; /* Enable clock for PORTC */&lt;BR /&gt; //PCC-&amp;gt;PCCn[PCC_PORTE_INDEX] |= PCC_PCCn_CGC_MASK; /* Enable clock for PORTC */&lt;BR /&gt; PORTC-&amp;gt;PCR[6] |= PORT_PCR_MUX(3); /* Port C6: MUX = ALT3, CAN1_RX */&lt;BR /&gt; PORTC-&amp;gt;PCR[7] |= PORT_PCR_MUX(3); /* Port C7: MUX = ALT3, CAN1_TX */&lt;BR /&gt; //PORTE-&amp;gt;PCR[4] |= PORT_PCR_MUX(5); /* Port C6: MUX = ALT3, CAN1_RX */&lt;BR /&gt; //PORTE-&amp;gt;PCR[5] |= PORT_PCR_MUX(5); /* Port C7: MUX = ALT3, CAN1_TX */&lt;BR /&gt; PCC-&amp;gt;PCCn[PCC_FlexCAN1_INDEX] |= PCC_PCCn_CGC_MASK; /* CGC=1: enable clock to FlexCAN0 */&lt;BR /&gt; //PCC-&amp;gt;PCCn[PCC_FlexCAN0_INDEX] |= PCC_PCCn_CGC_MASK; /* CGC=1: enable clock to FlexCAN0 */&lt;BR /&gt; base-&amp;gt;MCR |= CAN_MCR_MDIS_MASK; /* MDIS=1: Disable module before selecting clock */&lt;BR /&gt; base-&amp;gt;CTRL1 &amp;amp;= ~CAN_CTRL1_CLKSRC_MASK; /* CLKSRC=0: Clock Source = oscillator (8 MHz) */&lt;BR /&gt; base-&amp;gt;MCR &amp;amp;= ~CAN_MCR_MDIS_MASK; /* MDIS=0; Enable module config. (Sets FRZ, HALT)*/&lt;BR /&gt; while (!((base-&amp;gt;MCR &amp;amp; CAN_MCR_FRZACK_MASK) &amp;gt;&amp;gt; CAN_MCR_FRZACK_SHIFT)) {}&lt;BR /&gt; /* Good practice: wait for FRZACK=1 on freeze mode entry/exit */&lt;BR /&gt; base-&amp;gt;CTRL1 = 0x00DB0006; /* Configure for 500 KHz bit time */&lt;BR /&gt; /* Time quanta freq = 16 time quanta x 500 KHz bit time= 8MHz */&lt;BR /&gt; /* PRESDIV+1 = Fclksrc/Ftq = 8 MHz/8 MHz = 1 */&lt;BR /&gt; /* so PRESDIV = 0 */&lt;BR /&gt; /* PSEG2 = Phase_Seg2 - 1 = 4 - 1 = 3 */&lt;BR /&gt; /* PSEG1 = PSEG2 = 3 */&lt;BR /&gt; /* PROPSEG= Prop_Seg - 1 = 7 - 1 = 6 */&lt;BR /&gt; /* RJW: since Phase_Seg2 &amp;gt;=4, RJW+1=4 so RJW=3. */&lt;BR /&gt; /* SMP = 1: use 3 bits per CAN sample */&lt;BR /&gt; /* CLKSRC=0 (unchanged): Fcanclk= Fosc= 8 MHz */&lt;BR /&gt; for(i=0; i&amp;lt;64; i++ ) { /* base: clear 32 msg bufs x 4 words/msg buf = 128 words*/&lt;BR /&gt; base-&amp;gt;RAMn[i] = 0; /* Clear msg buf word */&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;for(i=0; i&amp;lt;16; i++ ) { /* In FRZ mode, init CAN0 16 msg buf filters */&lt;BR /&gt; base-&amp;gt;RXIMR[i] = 0xFFFFFFFF; /* Check all ID bits for incoming messages */&lt;BR /&gt; }&lt;BR /&gt; base-&amp;gt;RXMGMASK = 0x1FFFFFFF; /* Global acceptance mask: check all ID bits */&lt;BR /&gt; base-&amp;gt;RAMn[ 4*MSG_BUF_SIZE + 0] = 0x04000000; /* Msg Buf 4, word 0: Enable for reception */&lt;BR /&gt; /* EDL,BRS,ESI=0: CANFD not used */&lt;BR /&gt; /* CODE=4: MB set to RX inactive */&lt;BR /&gt; /* IDE=0: Standard ID */&lt;BR /&gt; /* SRR, RTR, TIME STAMP = 0: not applicable */&lt;BR /&gt;#ifdef NODE_A /* Node A receives msg with std ID 0x511 */&lt;BR /&gt; base-&amp;gt;RAMn[ 4*MSG_BUF_SIZE + 1] = 0x14440000; /* Msg Buf 4, word 1: Standard ID = 0x111 */&lt;BR /&gt;#else /* Node B to receive msg with std ID 0x555 */&lt;BR /&gt; base-&amp;gt;RAMn[ 4*MSG_BUF_SIZE + 1] = 0x15540000; /* Msg Buf 4, word 1: Standard ID = 0x555 */&lt;BR /&gt;#endif&lt;BR /&gt; /* PRIO = 0: CANFD not used */&lt;BR /&gt; base-&amp;gt;MCR = 0x0000001F; /* Negate FlexCAN 1 halt state for 32 MBs */&lt;BR /&gt; while ((base-&amp;gt;MCR &amp;amp;&amp;amp; CAN_MCR_FRZACK_MASK) &amp;gt;&amp;gt; CAN_MCR_FRZACK_SHIFT) {}&lt;BR /&gt; /* Good practice: wait for FRZACK to clear (not in freeze mode) */&lt;BR /&gt; while ((base-&amp;gt;MCR &amp;amp;&amp;amp; CAN_MCR_NOTRDY_MASK) &amp;gt;&amp;gt; CAN_MCR_NOTRDY_SHIFT) {}&lt;BR /&gt; /* Good practice: wait for NOTRDY to clear (module ready) */&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;void FLEXCAN_transmit_msg(can_bus_type type) { /* Assumption: Message buffer CODE is INACTIVE */&lt;BR /&gt; CAN_Type *base = get_can_bus_base_ptr(type);&lt;BR /&gt; base-&amp;gt;IFLAG1 = 0x00000001; /* Clear CAN 0 MB 0 flag without clearing others*/&lt;BR /&gt; base-&amp;gt;RAMn[ 0*MSG_BUF_SIZE + 2] = 0xA5112233; /* MB0 word 2: data word 0 */&lt;BR /&gt; base-&amp;gt;RAMn[ 0*MSG_BUF_SIZE + 3] = 0x44556677; /* MB0 word 3: data word 1 */&lt;BR /&gt;#ifdef NODE_A&lt;BR /&gt; base-&amp;gt;RAMn[ 0*MSG_BUF_SIZE + 1] = 0x15540000; /* MB0 word 1: Tx msg with STD ID 0x555 */&lt;BR /&gt;#else&lt;BR /&gt; base-&amp;gt;RAMn[ 0*MSG_BUF_SIZE + 1] = 0x14440000; /* MB0 word 1: Tx msg with STD ID 0x511 */&lt;BR /&gt;#endif&lt;BR /&gt; base-&amp;gt;RAMn[ 0*MSG_BUF_SIZE + 0] = 0x0C400000 | 8 &amp;lt;&amp;lt;CAN_WMBn_CS_DLC_SHIFT; /* MB0 word 0: */&lt;BR /&gt; /* EDL,BRS,ESI=0: CANFD not used */&lt;BR /&gt; /* CODE=0xC: Activate msg buf to transmit */&lt;BR /&gt; /* IDE=0: Standard ID */&lt;BR /&gt; /* SRR=1 Tx frame (not req'd for std ID) */&lt;BR /&gt; /* RTR = 0: data, not remote tx request frame*/&lt;BR /&gt; /* DLC = 8 bytes */&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;void FLEXCAN_receive_msg(can_bus_type type) { /* Receive msg from ID 0x556 using msg buffer 4 */&lt;BR /&gt; uint8_t j;&lt;BR /&gt; uint32_t dummy;&lt;BR /&gt; CAN_Type *base = get_can_bus_base_ptr(BATTERY_CAN_BUS);&lt;BR /&gt; RxCODE = (base-&amp;gt;RAMn[ 4*MSG_BUF_SIZE + 0] &amp;amp; 0x07000000) &amp;gt;&amp;gt; 24; /* Read CODE field */&lt;BR /&gt; RxID = (base-&amp;gt;RAMn[ 4*MSG_BUF_SIZE + 1] &amp;amp; CAN_WMBn_ID_ID_MASK) &amp;gt;&amp;gt; CAN_WMBn_ID_ID_SHIFT ;&lt;BR /&gt; RxLENGTH = (base-&amp;gt;RAMn[ 4*MSG_BUF_SIZE + 0] &amp;amp; CAN_WMBn_CS_DLC_MASK) &amp;gt;&amp;gt; CAN_WMBn_CS_DLC_SHIFT;&lt;BR /&gt; for (j=0; j&amp;lt;2; j++) { /* Read two words of data (8 bytes) */&lt;BR /&gt; RxDATA[j] = base-&amp;gt;RAMn[ 4*MSG_BUF_SIZE + 2 + j];&lt;BR /&gt; }&lt;BR /&gt; RxTIMESTAMP = (base-&amp;gt;RAMn[ 0*MSG_BUF_SIZE + 0] &amp;amp; 0x000FFFF);&lt;BR /&gt; dummy = base-&amp;gt;TIMER; /* Read TIMER to unlock message buffers */&lt;BR /&gt; base-&amp;gt;IFLAG1 = 0x00000010; /* Clear CAN 0 MB 4 flag without clearing others*/&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;essentially i am replacing CAN0 pointer ith an argument to retrive base pointr based upon my mapping. When argument for CAN0 is passed it works fine. Howeer with CAN1 i get errors on can bus when connected tot he PC via PCAN.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How is can 1 initialization different from 0 . I believe i made the chages to the code. Could you please advise&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Jul 2017 00:41:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/CAN1-Does-not-work-with-example-code/m-p/685564#M1043</guid>
      <dc:creator>saurabhkarnik</dc:creator>
      <dc:date>2017-07-28T00:41:33Z</dc:date>
    </item>
    <item>
      <title>Re: CAN1 Does not work with example code</title>
      <link>https://community.nxp.com/t5/S32K/CAN1-Does-not-work-with-example-code/m-p/685565#M1044</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Are you using the S32K144 evaluation board? Are you using a 12V power supply? With that you need to use 12V and change the jumper on J107 to 1-2 to get power from 12V. Then CAN will work.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Jul 2017 13:45:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/CAN1-Does-not-work-with-example-code/m-p/685565#M1044</guid>
      <dc:creator>wsmith</dc:creator>
      <dc:date>2017-07-28T13:45:17Z</dc:date>
    </item>
    <item>
      <title>Re: CAN1 Does not work with example code</title>
      <link>https://community.nxp.com/t5/S32K/CAN1-Does-not-work-with-example-code/m-p/685566#M1045</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ,&lt;/P&gt;&lt;P&gt;yes i did do the 12V power supply with the jumper however i am getting error packets conituously on the CAN 1 bus. Whenever i switch to can 0 it works perfectly.&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Jul 2017 13:51:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/CAN1-Does-not-work-with-example-code/m-p/685566#M1045</guid>
      <dc:creator>saurabhkarnik</dc:creator>
      <dc:date>2017-07-28T13:51:24Z</dc:date>
    </item>
    <item>
      <title>Re: CAN1 Does not work with example code</title>
      <link>https://community.nxp.com/t5/S32K/CAN1-Does-not-work-with-example-code/m-p/685567#M1046</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if you are using the S32K144 EVB, how do you connect C6/C7 pins to the transceiver?&lt;/P&gt;&lt;P&gt;Do you use on-board transceiver or the external one? CAN0 TX/RX (E4/E5) is connected to on-board SBC transceiver.&lt;/P&gt;&lt;P&gt;Note the C6/C7 pins are directly connected to the on-board MK20 to serve serial port. So CAN lines can be affected.&lt;/P&gt;&lt;P&gt;So if external transceiver is used you can try CAN1 TX/RX signals on A12/A13 pins.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BR, Petr&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Aug 2017 07:57:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/CAN1-Does-not-work-with-example-code/m-p/685567#M1046</guid>
      <dc:creator>PetrS</dc:creator>
      <dc:date>2017-08-01T07:57:00Z</dc:date>
    </item>
    <item>
      <title>Re: CAN1 Does not work with example code</title>
      <link>https://community.nxp.com/t5/S32K/CAN1-Does-not-work-with-example-code/m-p/685568#M1047</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I was usingg C6/C7 and with an external trans receiver. Will try the pins&lt;/P&gt;&lt;P&gt;A12/A13. If pins A12/13 work highly suggest to mention that in the errata&lt;/P&gt;&lt;P&gt;sheet if not already mentioned&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Saurabh&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Aug 2017 17:00:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/CAN1-Does-not-work-with-example-code/m-p/685568#M1047</guid>
      <dc:creator>saurabhkarnik</dc:creator>
      <dc:date>2017-08-01T17:00:26Z</dc:date>
    </item>
    <item>
      <title>Re: CAN1 Does not work with example code</title>
      <link>https://community.nxp.com/t5/S32K/CAN1-Does-not-work-with-example-code/m-p/685569#M1048</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;您好，这个can能接收吗，您调通了吗，我也是遇到can问题，可以发送，但是接收不到报文，能加个QQ不，357929237，谢谢！&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Aug 2017 03:14:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/CAN1-Does-not-work-with-example-code/m-p/685569#M1048</guid>
      <dc:creator>shenlanzeng</dc:creator>
      <dc:date>2017-08-23T03:14:41Z</dc:date>
    </item>
    <item>
      <title>Re: CAN1 Does not work with example code</title>
      <link>https://community.nxp.com/t5/S32K/CAN1-Does-not-work-with-example-code/m-p/1894254#M36925</link>
      <description>&lt;P&gt;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/77633"&gt;@saurabhkarnik&lt;/a&gt;&amp;nbsp;did it work on A12/A13? same issue here using and external transceiver but cant get CAN0, and CAN1 working together!&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 26 Jun 2024 08:53:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/CAN1-Does-not-work-with-example-code/m-p/1894254#M36925</guid>
      <dc:creator>saman001</dc:creator>
      <dc:date>2024-06-26T08:53:10Z</dc:date>
    </item>
  </channel>
</rss>

