|
|
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: 9241 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: 1934 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 |
|
|
amcasi wrote: | I prepare Mikroc project to check canbus that is okay.
| That works so you think your hardware is OK. So the CCS software
or your use of it, must be the problem
amcasi wrote: | load programs to chips with easypic7 and runs so
no communications.
| You can program both PICs OK.
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.
| Post a small test program for each board that shows the problem.
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:
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);
}
}
| thanks so
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: 9241 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
|