<?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>ColdFire/68K Microcontrollers and ProcessorsのトピックMCF51JM128 MsCAN Bit Timing Problem</title>
    <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF51JM128-MsCAN-Bit-Timing-Problem/m-p/191839#M8359</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;&lt;/P&gt;&lt;P&gt;I am using AN1798 to calculate my bit timing.&amp;nbsp; The following are the details of the bus.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Bus Length = 0.4m&lt;/P&gt;&lt;P&gt;Transceiver (NXP, TJA1041) propogation delay = max 255ns&lt;/P&gt;&lt;P&gt;Bit Rate: 125kbps which is well within the capabilities of the transceiver chip&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The hardware set up is 3 nodes one is dormant though on the bus and just provides power to the other 2.&amp;nbsp; Each node uses an MCF51JM128 and an NXP TJA1041.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The following is the bit timing information calculated from AN1798.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class="j-rte-table"&gt;&lt;TABLE border="0" cellspacing="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;BUS CLK (0) or External CLK (1)&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;Cable Length (m)&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;0.4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;Tprop_delay_cable&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;2.000E-009&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;Tprop_delay_transceiver&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;2.500E-007&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;Tprop_seg&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;5.040E-007&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;External CLK&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;24000000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;BUS CLK&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;12000000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;Prescaler&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;16&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;CAN CLK&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;1500000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;tQ&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;6.67E-007&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;CAN Bit Rate&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;1.25E+005&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;tQ per Bit&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;&lt;STRONG&gt;PROP_SEG&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;Tq per Bit – PROP_SEG – Sync_SEG&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;&lt;STRONG&gt;PHASE_SEG1&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;&lt;STRONG&gt;PHASE_SEG2&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;&lt;STRONG&gt;RJW&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;Oscillator Requirements: EQ10&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;0.0167&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;EQ11&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;0.0166&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;&lt;STRONG&gt;Required Oscillator Tolerance&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;1.6556%&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now using these values data passes onto the CAN_H CAN_L lines.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The system is such that node 1 transmits a message onto the bus and then waits for a reply from node 2 in a do while loop:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;do&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(j==0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(SendByte(fourPtr)!=0)&amp;nbsp; //this is place marker to show me where the code is over the serial port&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; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&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; j++;&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; (void)CAN_CheckStatusMB( 2, status );&amp;nbsp; //check buffer 2 status&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; while ( status[0] != NEWDATA);&amp;nbsp;&amp;nbsp;&amp;nbsp; //if data has been received break out of the do while loop&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; while(SendByte(fivePtr)!=0)&amp;nbsp; //this is place marker to show me where the code is over the serial port&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; (void)CAN_ReadDataMB(2, dataR);&amp;nbsp; //read data from buffer 2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now I'm not sure where to go to from here short of trying every possible bit timing configuration.&amp;nbsp; I just can't seem to get the silly bus to receive messages can anyone see any issues with my CAN Bit Timing?&amp;nbsp; Please don't hesitate to ask for further information!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 17 Mar 2011 21:04:14 GMT</pubDate>
    <dc:creator>David_UCT</dc:creator>
    <dc:date>2011-03-17T21:04:14Z</dc:date>
    <item>
      <title>MCF51JM128 MsCAN Bit Timing Problem</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF51JM128-MsCAN-Bit-Timing-Problem/m-p/191839#M8359</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;&lt;/P&gt;&lt;P&gt;I am using AN1798 to calculate my bit timing.&amp;nbsp; The following are the details of the bus.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Bus Length = 0.4m&lt;/P&gt;&lt;P&gt;Transceiver (NXP, TJA1041) propogation delay = max 255ns&lt;/P&gt;&lt;P&gt;Bit Rate: 125kbps which is well within the capabilities of the transceiver chip&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The hardware set up is 3 nodes one is dormant though on the bus and just provides power to the other 2.&amp;nbsp; Each node uses an MCF51JM128 and an NXP TJA1041.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The following is the bit timing information calculated from AN1798.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class="j-rte-table"&gt;&lt;TABLE border="0" cellspacing="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;BUS CLK (0) or External CLK (1)&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;Cable Length (m)&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;0.4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;Tprop_delay_cable&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;2.000E-009&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;Tprop_delay_transceiver&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;2.500E-007&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;Tprop_seg&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;5.040E-007&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;External CLK&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;24000000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;BUS CLK&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;12000000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;Prescaler&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;16&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;CAN CLK&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;1500000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;tQ&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;6.67E-007&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;CAN Bit Rate&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;1.25E+005&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;tQ per Bit&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;&lt;STRONG&gt;PROP_SEG&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;Tq per Bit – PROP_SEG – Sync_SEG&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;&lt;STRONG&gt;PHASE_SEG1&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;&lt;STRONG&gt;PHASE_SEG2&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;&lt;STRONG&gt;RJW&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;Oscillator Requirements: EQ10&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;0.0167&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;EQ11&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;0.0166&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border:0px solid black;"&gt;&lt;STRONG&gt;Required Oscillator Tolerance&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="border:0px solid black;"&gt;1.6556%&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now using these values data passes onto the CAN_H CAN_L lines.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The system is such that node 1 transmits a message onto the bus and then waits for a reply from node 2 in a do while loop:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;do&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(j==0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(SendByte(fourPtr)!=0)&amp;nbsp; //this is place marker to show me where the code is over the serial port&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; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&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; j++;&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; (void)CAN_CheckStatusMB( 2, status );&amp;nbsp; //check buffer 2 status&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; while ( status[0] != NEWDATA);&amp;nbsp;&amp;nbsp;&amp;nbsp; //if data has been received break out of the do while loop&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; while(SendByte(fivePtr)!=0)&amp;nbsp; //this is place marker to show me where the code is over the serial port&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; (void)CAN_ReadDataMB(2, dataR);&amp;nbsp; //read data from buffer 2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now I'm not sure where to go to from here short of trying every possible bit timing configuration.&amp;nbsp; I just can't seem to get the silly bus to receive messages can anyone see any issues with my CAN Bit Timing?&amp;nbsp; Please don't hesitate to ask for further information!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Mar 2011 21:04:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF51JM128-MsCAN-Bit-Timing-Problem/m-p/191839#M8359</guid>
      <dc:creator>David_UCT</dc:creator>
      <dc:date>2011-03-17T21:04:14Z</dc:date>
    </item>
    <item>
      <title>Re: MCF51JM128 MsCAN Bit Timing Problem</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF51JM128-MsCAN-Bit-Timing-Problem/m-p/191840#M8360</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I should add that the acceptance registers are set all set to 0xFF.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Mar 2011 21:45:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF51JM128-MsCAN-Bit-Timing-Problem/m-p/191840#M8360</guid>
      <dc:creator>David_UCT</dc:creator>
      <dc:date>2011-03-17T21:45:16Z</dc:date>
    </item>
    <item>
      <title>Re: MCF51JM128 MsCAN Bit Timing Problem</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF51JM128-MsCAN-Bit-Timing-Problem/m-p/191841#M8361</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Seems right. Did't you forget to subtract one from phase_seg's to get TSEGx settings? :&lt;/P&gt;&lt;P&gt;TSEG1 = PROP_SEG + PHASE_SEG1 - 1&lt;/P&gt;&lt;P&gt;TSEG2 = PHASE_SEG2 - 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Using scope you could check your bitrate easily. Disconnect your&amp;nbsp;MSCAN node from the bus and send some message. Shortest high or low pulse you see on the scope is bit time and should equal 8us for 125kbps bitrate.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Mar 2011 03:56:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF51JM128-MsCAN-Bit-Timing-Problem/m-p/191841#M8361</guid>
      <dc:creator>kef</dc:creator>
      <dc:date>2011-03-18T03:56:14Z</dc:date>
    </item>
    <item>
      <title>Re: MCF51JM128 MsCAN Bit Timing Problem</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF51JM128-MsCAN-Bit-Timing-Problem/m-p/191842#M8362</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;&lt;/P&gt;&lt;P&gt;Thanks for your response.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I checked the bit rate and it is correct at 8us per bit so I think the timing calculations are working properly and the code is subtracting one&amp;nbsp; for TSeG1 and TSEG2.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What I have found however is that data will only pass onto the bus when there is no other node on the bus.&amp;nbsp; So if I connect two nodes onto the bus no data will appear on CAN_H/CAN_L.&amp;nbsp; If I change the timing of one of the nodes so that the two nodes do not match then again data will appear on CAN_H/CAN_L.&amp;nbsp; I have no idea why this would be the case.&amp;nbsp; Why should adding a second active node to the bus stop all data on the bus?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 19 Mar 2011 02:27:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF51JM128-MsCAN-Bit-Timing-Problem/m-p/191842#M8362</guid>
      <dc:creator>David_UCT</dc:creator>
      <dc:date>2011-03-19T02:27:37Z</dc:date>
    </item>
    <item>
      <title>Re: MCF51JM128 MsCAN Bit Timing Problem</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF51JM128-MsCAN-Bit-Timing-Problem/m-p/191843#M8363</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Alright I have verified that actually there is communication and information is being received by the hardware of the receiving node.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The issue is actually the driver.&amp;nbsp; For some reason the Freescale CAN Driver isn't receiving the data.&amp;nbsp; However because a message is sent and an ACK is returned the data must be there.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Mar 2011 21:57:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF51JM128-MsCAN-Bit-Timing-Problem/m-p/191843#M8363</guid>
      <dc:creator>David_UCT</dc:creator>
      <dc:date>2011-03-21T21:57:55Z</dc:date>
    </item>
    <item>
      <title>Re: MCF51JM128 MsCAN Bit Timing Problem</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF51JM128-MsCAN-Bit-Timing-Problem/m-p/191844#M8364</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Alright it now works, the ISR's in the mscan driver provided by freescale are unassigned to a vector number.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;you have to change&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;interrupt void CAN_TransmitISR to interrupt 97 void CAN_TransmitISR&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;and&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;interrupt void CAN_ReceiveISR to interrupt 96 void CAN_ReceiveISR&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, 24 Mar 2011 06:26:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF51JM128-MsCAN-Bit-Timing-Problem/m-p/191844#M8364</guid>
      <dc:creator>David_UCT</dc:creator>
      <dc:date>2011-03-24T06:26:07Z</dc:date>
    </item>
    <item>
      <title>Re: MCF51JM128 MsCAN Bit Timing Problem</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF51JM128-MsCAN-Bit-Timing-Problem/m-p/191845#M8365</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;gt; Alright it now works, the ISR's in the mscan driver provided by freescale are unassigned to a vector number.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That isn't Freescale's problem.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The "interrupt &amp;lt;vector&amp;gt; void name" syntax is a custom extension of the compiler you're using.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Firstly, as a "convenience" it is changing the standard ABI Function Prologue to one that saves all of the registers required of an interrupt routine. Many compilers do that, but not necessarily the same way. The CodeSourcery GCC compiler we use requires the format:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __attribute__((interrupt_handler)) static void uart_isr( void );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Secondly, as another "convenience", providing the vector in that line has the compiler fill in the vector table for you automatically. That is less common. The usual way is to have code write to the vector table (if it is in RAM) or you have to provide a "vector.S" file listing all your interrupt functions.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Documentation provided with your compiler and development system should detail how to port "standard driver code" to use the features that it provides.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Tom&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Mar 2011 06:03:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF51JM128-MsCAN-Bit-Timing-Problem/m-p/191845#M8365</guid>
      <dc:creator>TomE</dc:creator>
      <dc:date>2011-03-25T06:03:04Z</dc:date>
    </item>
    <item>
      <title>Re: MCF51JM128 MsCAN Bit Timing Problem</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF51JM128-MsCAN-Bit-Timing-Problem/m-p/191846#M8366</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm using the same compiler as the code was written and tested in there should be no need to port anything.&amp;nbsp; Although thank you for pointing that out for me I shall take note the future.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Mar 2011 06:22:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF51JM128-MsCAN-Bit-Timing-Problem/m-p/191846#M8366</guid>
      <dc:creator>David_UCT</dc:creator>
      <dc:date>2011-03-25T06:22:57Z</dc:date>
    </item>
  </channel>
</rss>

