Can bus not sending ID

Vic <simranranee-/[email protected]>
Newsgroups gmane.comp.hardware.microcontrollers.tini
Message-ID <[email protected]>
Hi Folks

When trying to send a CAN frame from TINI to another
CAN node (HC12 microcontroller based board), the 8
byte message data goes through, however not the
message ID. The receieving can node is set to accept
all messages, both standard and extended format. When
I retrieve the message on the node, the data is
correct, however the ID is returned as 0. Any ideas?

Below is my test code that runs on TINI to simply pump
some CAN frames in a loop onto the bus.

import com.dalsemi.comm.*;
import com.dalsemi.system.*;

public class CanSendTest {
    
    // We store our CAN messages is the data array
    static CanBus cb;
    static CanFrame myFrame1 = new CanFrame();
    static int delay = 100; 
    static int n=0;
    
    static byte canErrorCanWrongFrameSize []	=
{(byte)0xA0,(byte)0x01,0,0,0,0,0,2};
	static int     iBaudrateSelector   = 0; // =3D307200
	static int     iFreeReceiverNumber = 2; //should come
from a file or commandline
    static int     iFreeSenderNumber   = 3; //should
come from a file or commandline
	static boolean bPassiveBusMode     = false;
	static int     canHostId           = 0x101;

    
    
    static void main( String args[] ) 
    {
        System.out.println( "CAN SendTest at 500k For
Event Trigger" );        
        System.out.println("Opening Canbus");
		try{
			cb = new CanBus(CanBus.CANBUS0);

			cb.resetController(); // force default state
			cb.disableController();
		
cb.setBaudRatePrescaler(14);//prescaler[iBaudrateSelector]);
			cb.setTSEG1(13); //tseg1[iBaudrateSelector]);
			cb.setTSEG2(7); //tseg2[iBaudrateSelector]);
			cb.setSampleRate(1);	
            cb.setSynchronizationJumpWidth(4);

			cb.setReceiveQueueLimit(4);
			cb.setTransmitQueueLimit(4);

			if (bPassiveBusMode)//is set to false, so I can
also send!
			{
				cb.enableControllerPassive();
			}
			else
			{
				cb.enableController();
			}

			//System.out.println("Canbus open at " +
bps[iBaudrateSelector] + " bps");
			//System.out.println("Canbus open at 500k bps");
			// Init message center for receiving encoder
messages
			//cb.setMessageCenterRXMode(iFreeReceiverNumber);
		
//cb.setMessageCenterMessageIDMaskEnable(iFreeReceiverNumber,false);
		
//cb.set11BitMessageCenterArbitrationID(iFreeReceiverNumber,canEthernetId);
			//cb.enableMessageCenter(iFreeReceiverNumber);

			//pre coded setup for all messages
			System.out.println( "Enabling Message Center 1." );

		    cb.setMessageCenterRXMode( 1 );
		    cb.setMessageCenterRXMode( 2 );
	        cb.setMessageCenterRXMode( 3 );
            cb.setMessageCenterRXMode( 4 );
		    //myCanBus.setMessageCenterRXMode( 15 );
//recieve only centre	

		    // Look for all addresses
            cb.set11BitGlobalIDMask(0xFFFF); 
		    cb.set29BitGlobalIDMask(0xFFFFFFFF);
		    cb.set29BitMessageCenter15IDMask(0xFFFFFFFF);		

            
		    System.out.println( "Setting up filtering.");
            		// filtering
		    cb.setMessageCenterMessageIDMaskEnable( 1,
true); 
            cb.setMessageCenterMessageIDMaskEnable( 2,
true );
            cb.setMessageCenterMessageIDMaskEnable( 3,
true );
            cb.setMessageCenterMessageIDMaskEnable( 4,
true );
	    	cb.setMessageCenterMessageIDMaskEnable( 15,
true);	
          
            
            // need this so that MC1 will look for 29
bit addresses
            //cb.set11BitMessageCenterArbitrationID(
1, 0x00 );
           	//cb.set11BitMessageCenterArbitrationID(
2, 0x00 );            
           	//cb.set11BitMessageCenterArbitrationID(
3, 0x00 );
           	//cb.set11BitMessageCenterArbitrationID(
4, 0x00 );            

           	          
           	// Enable Message Centers
           	cb.enableMessageCenter( 1 );
           	cb.enableMessageCenter( 2 );
           	cb.enableMessageCenter( 3 );
           	cb.enableMessageCenter( 4 );
	    	cb.enableMessageCenter( 15 );	
			
			//end of precoded settings	

			// Init message center for sending messages
			cb.setMessageCenterTXMode(iFreeSenderNumber);
		
cb.setMessageCenterMessageIDMaskEnable(iFreeSenderNumber,false);
		
//cb.set11BitMessageCenterArbitrationID(iFreeSenderNumber,canHostId);
			cb.enableMessageCenter(iFreeSenderNumber);
    	}
    	catch(Exception e){ System.out.println( e ); }
        // just some data for a frame to send
        byte[] data=
{'A','B','C','D','E','F','G','H'};
        for(n=0;n<=30;n++)
        {    
        try { 
            System.out.println( " 1: sendDataFrame,
standard, ID 0x0101: " + data);
            //data[0] = (byte) 0x01;
            myFrame1.setID(0x125);
            myFrame1.setData(data);
            myFrame1.setExtendedID(false);
            cb.sendFrame(myFrame1);
            for(int i=0;i<=9999;i++); //simple lag
            //cb.sendDataFrame(0x101, false, data );
            //TINIOS.sleepProcess( delay );
        }
        catch( Exception e ) { System.out.println( e
); }
        //TINIOS.sleepProcess( delay );
    	}
       
        System.exit(0);
    } 

}

Thanks for your help
Jameel


__________________________________
Do you Yahoo!?
Yahoo! Finance: Get your refund fast by filing online.
http://taxes.yahoo.com/filing.html
_______________________________________________
TINI mailing list
TINI-6tN4nzCoH/[email protected]
To UNSUBSCRIBE, edit your profile, or see list archives:
http://lists.dalsemi.com/mailman/listinfo/tini
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.