| 
	
	|  |  |  
	
		| View previous topic :: View next topic |  
		| Author | Message |  
		| amcasi 
 
 
 Joined: 19 Jun 2015
 Posts: 21
 Location: Banned - Spammer
 
 
			    
 
 | 
			
				| Same problem continues with CAN bus [Solved] |  
				|  Posted: Sat Jun 26, 2021 4:11 am |   |  
				| 
 |  
				| My friend Thanks for answering to me.
 
 I change schematic to two 18f25k80 and can-18xxx8.c drivers.
 did not communicate.
 
 I will be mad.please Help me.
 |  |  
		|  |  
		| temtronic 
 
 
 Joined: 01 Jul 2010
 Posts: 9589
 Location: Greensville,Ontario
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Jun 26, 2021 4:52 am |   |  
				| 
 |  
				| Are you using real PICs? If so whose PCB or modules are they ? |  |  
		|  |  
		| dyeatman 
 
 
 Joined: 06 Sep 2003
 Posts: 1968
 Location: Norman, OK
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Jun 26, 2021 5:03 am |   |  
				| 
 |  
				| They appear to be continuing an earlier post here: http://www.ccsinfo.com/forum/viewtopic.php?t=55707
 
 They should go back and continue that thread instead of starting a new one.
 _________________
 Google and Forum Search are some of your best tools!!!!
 |  |  
		|  |  
		| amcasi 
 
 
 Joined: 19 Jun 2015
 Posts: 21
 Location: Banned - Spammer
 
 
			    
 
 | 
			
				| Sure |  
				|  Posted: Sat Jun 26, 2021 9:38 am |   |  
				| 
 |  
				|  	  | temtronic wrote: |  	  | Are you using real PICs? If so whose PCB or modules are they ? | 
 
 I prepare Mikroc project to check canbus that is okay.
 I prepare Arduino Uno project that is also okay.
 
 I changed to with can-18f4580.c with pic18f25k80 chips too.
 
 But I have Easypic7 and Easypic5 to put there 2 PIC18f25k80 and mcp2551 for to breadboard. Boards are okay too.
 
 I load programs to chips with easypic7 and runs so
 no communications.
 
 Seems to send data to another  and other side do not get anything.
 I am ccs programmer also.
 I can send programs to here if you want.
 sincerely
 
 Last edited by amcasi on Sat Jun 26, 2021 10:00 am; edited 2 times in total
 |  |  
		|  |  
		| amcasi 
 
 
 Joined: 19 Jun 2015
 Posts: 21
 Location: Banned - Spammer
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Jun 26, 2021 9:47 am |   |  
				| 
 |  
				| 
 My friend
 No I am not using development card.
 I will peparing new  card for with canbus and max bus.
 I am checking can protocol to write to card for industrial welding project.
 İf I can communicate with chips will be fine for us.
 
 Sincerely
 |  |  
		|  |  
		| Regular Guy 
 
 
 Joined: 04 Jun 2017
 Posts: 110
 
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Jun 26, 2021 11:13 am |   |  
				| 
 |  
				| Hi Amcasi 
 Sent you a PM.
 _________________
 PIC Hobbyist
 |  |  
		|  |  
		| amcasi 
 
 
 Joined: 19 Jun 2015
 Posts: 21
 Location: Banned - Spammer
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Jun 26, 2021 11:58 am |   |  
				| 
 |  
				|  	  | Regular Guy wrote: |  	  | Hi Amcasi 
 Sent you a PM.
 | 
 
 Thank you
 I have U64 and development kit for pic18f452 board.
 
 What are we goig to do with these?
 
 thanks
 
 Last edited by amcasi on Sat Jun 26, 2021 3:24 pm; edited 1 time in total
 |  |  
		|  |  
		| PCM programmer 
 
 
 Joined: 06 Sep 2003
 Posts: 21708
 
 
 
			    
 
 | 
			
				| Re: Sure |  
				|  Posted: Sat Jun 26, 2021 12:33 pm |   |  
				| 
 |  
				| That works so you think your hardware is OK.  So the CCS software 	  | amcasi wrote: |  	  | I prepare Mikroc project to check canbus that is okay. 
 | 
 or your use of it, must be the problem
 
 
 You can program both PICs OK. 	  | amcasi wrote: |  	  | load programs to chips with easypic7 and runs so no communications.
 
 | 
 
 
 Post a small test program for each board that shows the problem. 	  | amcasi wrote: |  	  | I changed to with can-18f4580.c with pic18f25k80 chips too. Seems to send data to another  and other side do not get anything.
 
 | 
 Make them be small but complete.  Post lines for #include, #fuses,
 #use delay() and the programs.
 |  |  
		|  |  
		| amcasi 
 
 
 Joined: 19 Jun 2015
 Posts: 21
 Location: Banned - Spammer
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Jun 26, 2021 3:17 pm |   |  
				| 
 |  
				| Thanks to PCM programmer for answering me and All. Here my code 1:
 
  	  | Code: |  	  | //    can25K80_1.c //
 //
 #include <18f25k80.h>
 #device ADC=8  *=16 //ICD=TRUE
 #fuses intrc_io,NOWDT,BROWNOUT,PUT,NOPLLEN,SOSC_DIG,NOIESO,NOFCMEN,CANB
 #use delay(internal=16mhz)
 #use rs232(baud=9600, xmit=PIN_c6, rcv=PIN_c7,ERRORS)
 
 #define BTN  PIN_c2
 
 #define LED1 PIN_c3
 #define LED2 PIN_c4
 #define LED3 PIN_c5
 #define LED4 PIN_c1
 
 #define CAN_TX_PIN    PIN_B2
 #define CAN_RX_PIN    PIN_B3
 
 
 #define CAN_BRG_PRESCALAR        15
 #define CAN_BRG_PHASE_SEGMENT_1  6
 #define CAN_BRG_PHASE_SEGMENT_2  6
 #define CAN_BRG_PROPAGATION_TIME 0
 #define CAN_BRG_SYNCH_JUMP_WIDTH 0
 
 #include <can-18f4580.c>
 //#include <can__18xxx8.c>
 
 int16 ms,tms=0;
 
 struct rx_stat rxstat;
 int32 rx_idn;
 int8 in_data[8];
 int8 rx_len=8;
 
 int8  i;
 
 //send a request (tx_rtr=1) for 8 bytes of data (tx_len=8) from id 24 (tx_id=24)
 int out_data[8];
 
 int tx_len=8;
 int tx_pri=3;
 int1 tx_ext=1;
 int1 tx_rtr=0;
 
 
 #define ID1 0x200
 #define ID2 0x300
 
 #int_timer0
 void isr_timer0(void) {
 ms++;
 if (tms++ > 15){
 
 tms=0;
 }
 output_toggle(PIN_A2);
 }
 /////////////////////////////////
 void clr_Buf() {
 // CLEAR TX AND RX BUFFERS
 
 //!      out_data[0]=0;
 //!      out_data[1]=0;
 out_data[2]=0;
 out_data[3]=0;
 out_data[4]=0;
 out_data[5]=0;
 out_data[6]=0;
 out_data[7]=0;
 
 }
 /////////////////////////////////
 void fill_Buf() {
 // fill RX BUFFERS
 //!      out_data[0]="0";
 //!      out_data[1]="1";
 out_data[2]='4';
 out_data[3]='3';
 out_data[4]='7';
 out_data[5]='6';
 out_data[6]='3';
 out_data[7]='2';
 }
 void main() {
 delay_ms(200);
 output_a(0x01);
 output_b(0x00);
 output_c(0b00000100);
 
 set_tris_a(0x01);
 set_tris_B(0b00001000);
 set_tris_C(0b00000100);
 
 setup_timer_0 (T0_INTERNAL|T0_DIV_256|T0_8_BIT);
 set_timer0(178);
 enable_interrupts(int_TIMER0);
 enable_interrupts(GLOBAL);
 
 can_init();
 i=0;
 clr_Buf();
 
 //fill_buf();
 can_putd(ID2,&out_data,tx_len,tx_pri,tx_ext,tx_rtr);
 while(TRUE){
 if (!input(BTN)){
 strcpy(&out_data[0], 1);
 strcpy(&out_data[1], 0);
 output_high(LED4);
 output_low(LED3);
 printf("LED3 OFF \r\n");
 printf("LED4 ON \r\n");
 } else  {
 strcpy(&out_data[0], 0);
 strcpy(&out_data[1], 1);
 output_high(LED4);
 output_low(LED4);
 printf("LED3 ON \r\n");
 printf("LED4 OFF \r\n");
 }
 // gönderme
 if ( can_tbe() && ms > 5)  {
 ms=0;
 fill_buf();
 if (can_putd(ID2, &out_data,tx_len,tx_pri,tx_ext,tx_rtr)) { //success, a transmit buffer was open
 printf("\r\nPUT %U: ID=0x%LX LEN=%UByte ", i, ID2, tx_len);
 printf("PRI=%U EXT=%U RTR=%U   DATA = ", tx_pri, tx_ext, tx_rtr);
 for (i=0;i<tx_len;i++) {
 printf("%X ",&out_data[i]);
 }
 printf("\r\n");
 } else {  printf("Gonderemedim iste\r\n");
 }
 } else printf("Gonderme hazir degil\r\n");
 ////////////////////////////////////////////////////////
 
 if (can_kbhit()){
 if(can_getd(rx_idn,&in_data,rx_len,rxstat)){
 if(rx_idn == ID1){
 if (bit_test(in_data[0],0) == 1){
 output_high(LED1);
 printf("LED1 ON \r\n");
 } else
 if (bit_test(in_data[0],0) == 0){
 output_low(LED1);
 printf("LED1 OFF \r\n");
 } else
 if (bit_test(in_data[1],0) ==1){
 output_high(LED2);
 printf("LED2 ON \r\n");
 } else
 if (bit_test(in_data[1],0) == 0){
 output_low(LED2);
 printf("LED2 OFF \r\n");
 } else printf("Giris gelmiyor.\r\n");
 }else printf("RXID gelmiyor.\r\n");
 }else printf("\r\nAlma fail oldu\r\n");
 }else printf("Data Hazir degil.\r\n");
 delay_ms(500);
 }
 }
 
 | 
 and second code is:
 
 thanks so 	  | Code: |  	  | //    can25K80_2.c
 //
 //
 #include <18f25k80.h>
 #device ADC=8  *=16 //ICD=TRUE
 #fuses INTRC_IO,NOWDT,BROWNOUT,PUT,NOPLLEN,SOSC_DIG,NOIESO,NOFCMEN,CANB
 #use delay(iNTERNAL=16mhz)
 #use rs232(baud=9600, xmit=PIN_c6, rcv=PIN_c7,ERRORS)
 
 #define BTN  PIN_c2
 
 #define LED1 PIN_c3
 #define LED2 PIN_c4
 #define LED3 PIN_c5
 #define LED4 PIN_c1
 
 #define CAN_TX_PIN    PIN_B2
 #define CAN_RX_PIN    PIN_B3
 
 #define CAN_BRG_PRESCALAR        15
 #define CAN_BRG_PHASE_SEGMENT_1  6
 #define CAN_BRG_PHASE_SEGMENT_2  6
 #define CAN_BRG_PROPAGATION_TIME 0
 #define CAN_BRG_SYNCH_JUMP_WIDTH 0
 
 #include <can-18f4580.c>
 //#include <can-18xxx8.c>
 
 int16 ms,tms=0;
 int8 x;
 
 struct rx_stat rxstat;
 int32 rx_idn;
 int8 in_data[8];
 int8 rx_len=8;
 
 int8  i;
 
 //send a request (tx_rtr=1) for 8 bytes of data (tx_len=8) from id 24 (tx_id=24)
 int out_data[8];
 int32 tx_id=0x200;
 int tx_len=8;
 int tx_pri=3;
 int1 tx_ext=1;
 int1 tx_rtr=0;
 
 #define RX_ID  0x200
 #define ID1 0x200
 #define ID2 0x300
 
 #int_timer0
 void isr_timer0(void) {
 set_timer0(178);
 ms++;
 if (tms++ > 5){
 tms=0;
 }
 output_toggle(PIN_A2);
 }
 /////////////////////////////////
 void clr_Buf() {
 // CLEAR TX AND RX BUFFERS
 
 out_data[0]=0;
 out_data[1]=0;
 out_data[2]=0;
 out_data[3]=0;
 out_data[4]=0;
 out_data[5]=0;
 out_data[6]=0;
 out_data[7]=0;
 
 }
 /////////////////////////////////
 void fill_Buf() {
 // fill RX BUFFERS
 //!      out_data[0]="0";
 //!      out_data[1]="1";
 out_data[2]='7';
 out_data[3]='6';
 out_data[4]='5';
 out_data[5]='4';
 out_data[6]='3';
 out_data[7]='2';
 }
 void main() {
 delay_ms(200);
 output_a(0x01);
 output_b(0x00);
 output_c(0b00000100);
 
 set_tris_a(0x01);
 set_tris_B(0b00001000);
 set_tris_C(0b00000100);
 
 setup_timer_0 (T0_INTERNAL|T0_DIV_256|T0_8_BIT);
 set_timer0(178);
 enable_interrupts(int_TIMER0);
 enable_interrupts(GLOBAL);
 
 can_init();
 i=0;
 clr_Buf();
 
 //fill_buf();
 can_putd(ID1,&out_data,tx_len,tx_pri,tx_ext,tx_rtr);
 while(TRUE){
 
 if (!input(BTN)){
 strcpy(out_data[0], 1);
 strcpy(out_data[1], 0);
 output_high(LED4);
 printf("LED4 ON \r\n");
 printf("LED3 OFF \r\n");
 
 } else  {
 strcpy(out_data[0], 0);
 strcpy(out_data[1], 1);
 output_low(LED4);
 printf("LED4 OFF \r\n");
 printf("LED3 ON \r\n");
 }
 
 // gönderme
 
 if ( can_tbe() && ms > 10)  {
 ms=0;
 fill_buf();
 if (can_putd(ID1, &out_data, tx_len,tx_pri,tx_ext,tx_rtr)) { //success, a transmit buffer was open
 printf("\r\nPUT %U: ID=0x%LX LEN=%UByte ", i, ID1, tx_len);
 printf("PRI=%U EXT=%U RTR=%U   DATA = ", tx_pri, tx_ext, tx_rtr);
 for (i=0;i<tx_len;i++) {
 printf("%X ",&out_data[i]);
 }
 printf("\r\n");
 } else {
 printf("Gonderemedim iste\r\n");
 }
 } else printf("Gonderme hazir degil\r\n");
 //////////////////////////////////////////////////
 
 if (can_kbhit()){
 if(can_getd(rx_idn,&in_data,rx_len,rxstat)){
 if(rx_idn == ID2){
 if (bit_test(in_data[0],0) == 1){
 output_high(LED1);
 printf("LED1 ON \r\n");
 } else
 if (bit_test(in_data[0],0) == 0){
 output_low(LED1);
 printf("LED1 OFF \r\n");
 } else
 if (bit_test(in_data[1],0) ==1){
 output_high(LED2);
 printf("LED2 ON \r\n");
 } else
 if (bit_test(in_data[1],0) == 0){
 output_low(LED2);
 printf("LED2 OFF \r\n");
 } else printf("Giris gelmiyor.\r\n");
 }else printf("RXID gelmiyor.\r\n");
 }else printf("\r\nAlma fail oldu\r\n");
 }else printf("Data Hazir degil.\r\n");
 delay_ms(500);
 }
 }
 
 | 
 Regards
 |  |  
		|  |  
		| PCM programmer 
 
 
 Joined: 06 Sep 2003
 Posts: 21708
 
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sat Jun 26, 2021 5:45 pm |   |  
				| 
 |  
				| What is your CCS compiler version ?  I want to compile your code with the same version.
 |  |  
		|  |  
		| amcasi 
 
 
 Joined: 19 Jun 2015
 Posts: 21
 Location: Banned - Spammer
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sun Jun 27, 2021 1:37 am |   |  
				| 
 |  
				| ok my friend 
 my ccs compiler version is 5.093
 |  |  
		|  |  
		| temtronic 
 
 
 Joined: 01 Jul 2010
 Posts: 9589
 Location: Greensville,Ontario
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sun Jun 27, 2021 6:35 am |   |  
				| 
 |  
				| hmm... 
  	  | Quote: |  	  | output_a(0x01); output_b(0x00);
 output_c(0b00000100);
 
 set_tris_a(0x01);
 set_tris_B(0b00001000);
 set_tris_C(0b00000100);
 | 
 You really should put comments at the end of most lines of code....
 I can't understand why you set those outputs, or use 'tris'.
 
 You should also specifically disable any internal peripherals you're not using. It could be a 'default' attachment is causing some 'issue'.
 While it's probably not the reason why it doesn't work, always best to be sure.
 
 you've got a 'BTN' ( button, ie a switch)... have you got ANY signal conditioning on that pin ? You need 'debouncing'... usually a small cap(.15) to gnd can work, otherwise you'll see several '1-0-1' transitions when the switch is pressed.
 |  |  
		|  |  
		| amcasi 
 
 
 Joined: 19 Jun 2015
 Posts: 21
 Location: Banned - Spammer
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sun Jun 27, 2021 7:44 am |   |  
				| 
 |  
				| My friend 
 There is no communications. When i press button nothing to changed. Problem is this - I am not sending any data. Looking to scope  there is no change. Sending same values. not for my values.
 Sincerely
 |  |  
		|  |  
		| amcasi 
 
 
 Joined: 19 Jun 2015
 Posts: 21
 Location: Banned - Spammer
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sun Jun 27, 2021 9:17 am |   |  
				| 
 |  
				| I replaced mcp2551 with new one also. 
 Please somebody says something to do this. What i am wrong?
 I checked times to times. i can not find any problem.
 it is maybe communication. is there any reason to check connect?
 any idea please.
 |  |  
		|  |  
		| Regular Guy 
 
 
 Joined: 04 Jun 2017
 Posts: 110
 
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Sun Jun 27, 2021 10:35 am |   |  
				| 
 |  
				| Hi 
 1 Have you gotten the compiler and the PIC to work first?
 
 Have you blinked an LED to test the 'Development Environment'?
 
 If you do that then you can add code SLOWLY and compile and test each
 
 step of the way.
 
 We are just dealing with one thing at a time here.
 _________________
 PIC Hobbyist
 |  |  
		|  |  
		|  |  
  
	| 
 
 | You cannot post new topics in this forum You cannot reply to topics in this forum
 You cannot edit your posts in this forum
 You cannot delete your posts in this forum
 You cannot vote in polls in this forum
 
 |  
 Powered by phpBB © 2001, 2005 phpBB Group
 
 |