![]() |
|
Tài trợ cho PIC Vietnam |
Giao tiếp USB, CAN, I2C, SPI, USART... Những giao tiếp được tích hợp trên PIC |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 | |
Nhập môn đệ tử
Tham gia ngày: Nov 2008
Bài gửi: 9
: |
Giup Em Voi!
Trích:
- Pac : NGODUCBINH và Pac ROI ơi! - các Pác đừng cười nha, Vì là học kì Cuối, nên phải qua Đồ Án CAN này. Nhưng em mới chỉ tìm hiểu LT, chưa biết bắt đầu LÀm Mạch từ đâu. Em chỉ mới mua Con MCP2551 thôi. Và chưa biết làm gì với Nó( Nói thật Em Ko ranh Về CAN lắm) - Em Thấy Pac ROI và NGODUCBINH da làm rồi ( Nhưng tài liệu PAC đưa đã bị died rôi, ko down được). Pác có thể Share cho em ko ạ. Nhất là cái sơ đồ mạch. - Đây là Nick Yahoo cua em: minhtri.light@yahoo.com.vn ( các pác giúp Em với, add nick cua em nha) |
|
![]() |
![]() |
![]() |
#2 |
Đệ tử 2 túi
Tham gia ngày: Sep 2008
Bài gửi: 27
: |
Mình không upload file lên đc, các bạn vui lòng chờ mình ít thời gian nhé.
|
![]() |
![]() |
![]() |
#3 | |
Nhập môn đệ tử
Tham gia ngày: Nov 2008
Bài gửi: 9
: |
Trích:
|
|
![]() |
![]() |
![]() |
#4 |
Nhập môn đệ tử
Tham gia ngày: Nov 2008
Bài gửi: 9
: |
Cho Hoi Ve MCP2515. CAN
Sao tơi đay hết thấy mọi người bàn luận nữa rồi.
Có ai biết Ở Sài Gòn nơi nào bán con MCP2515 không?? Mình Mua ở Thiên Minh chỉ có MCP2551 thôi. Muốn Dùng 1 MCU khác ngoài PIC cis tích hợp CAN thì phải có MCP2515. Nhung gio ko có thì lam sao đây?? Chắc Kì này tiêu rồi.!! Xin tài liệu thì mấy Pác Trốn đâu mất rồi! |
![]() |
![]() |
![]() |
#5 |
Đệ tử 6 túi
Tham gia ngày: Jul 2009
Bài gửi: 152
: |
Bác ngoducbinh1987 làm nhanh quá em làm với con dsPIC mà đang lao đao đây bác ơi. viết mãi mà nó chả chịu chạy hết trơn.
|
![]() |
![]() |
![]() |
#6 |
Đệ tử 1 túi
Tham gia ngày: Sep 2007
Bài gửi: 12
: |
Ai làm về CAN trên dsPIC rồi,có thể làm một cái tutorial về nó không. Trên diễn đàn có một tutorial về CAN rồi, nhưng không phải là cho dsPIC
|
![]() |
![]() |
![]() |
#7 |
Đệ tử 2 túi
Tham gia ngày: Sep 2008
Bài gửi: 27
: |
Mình làm CAN cho dsPIC rồi, nhưng ứng dụng nhỏ thôi nên làm không đầy đủ.
Nếu không quá chú trọng đến việc xử lý trong các ngắt và lỗi, bạn có thể làm giống như trong file Help của MikroC for dsPIC, mikroC đã hỗ trợ rất tốt rồi. |
![]() |
![]() |
![]() |
#8 |
Đệ tử 2 túi
Tham gia ngày: Mar 2007
Bài gửi: 29
: |
bạn roi có thể cho minh xin bản cài đặt của MikroC for dsPIC được không.Mình có mấy bản mà viết ctrinh xong nạp vào pic thì chạy không ổn định. Chẳng hạn hiện LCD thì lúc nhảy cái này, reset lại thì lại nhảy ra cái khác. Ban đầu mình định viết CAN trên dsPic nhưng dùng MikroC for dsPIC không được nên chuyển sang 18F
|
![]() |
![]() |
![]() |
#9 |
Đệ tử 4 túi
Tham gia ngày: Mar 2009
Bài gửi: 64
: |
mcp 2551 theo em nghĩ chỉ là con vi sai. Khi gửi tín hiệu đi thì nó tùy vào đường RXD là mức cao hay mức thấp để điều khiển sai khác lối ra CANL và CANH (2 trạng thái dominant và recessive)
con này dùng 5v mà thằng dsPIC hay dùng 3v3. vậy kết nối trực tiếp MCP2551 và dsPIC33f liệu có vấn đề gì không ? Làm thế nào để test CAN bus. Em nối chân TX và RX vào nhau (không dùng mcp2551 có được không?) Có thiết bị nào thu nhận can bus chuẩn (để test thằng mình đang phát triển) mà rẻ không ? |
![]() |
![]() |
![]() |
#10 | |
Đệ tử 6 túi
Tham gia ngày: Jul 2007
Bài gửi: 146
: |
![]() Trích:
__________________
mạch nạp - kit phát triển - linh kiện điện tử www.PNLabvn.com |
|
![]() |
![]() |
![]() |
#11 |
Nhập môn đệ tử
Tham gia ngày: Sep 2008
Bài gửi: 7
: |
CAN với PIC30f4012
Em có viết giao thức CAN để truyền thông 2 chip pic30f4012, em viết dùng Mikroc for Dspic. chip thứ nhất em đọc tín hiệu từ cảm biến LM35, chíip thứ 2 nhận tín hiệu này qua mạng truyền thông CAN và hiển thị lên màn LCD (16x2), sau khi dich và nạp xong em không thấy có tín hiệu gì được truyền thông cả. Rất mong các anh chị giúp đỡ.
sau đây là code của 2 chíp Chíp 1 ( nhận tín hiệu từ cảm biến LM35) void main() { unsigned char temperature, data[8]; unsigned short init, send, dt, len, read; char SJW, BRP, Phase_Seg1, Phase_Seg2, Prop_Seg, txt[4]; unsigned int temp; unsigned long mV; long id, mask; TRISDbits.TRISD0=1; // PORTD0 are inputs TRISF = 0x04; // RB2 is output, RB3 is input //ADCON1 = 0x80; // CAN BUS Timing Parameters // SJW= 1; BRP = 1; Phase_Seg1 = 6; Phase_Seg2 = 7; BRP = 1; Prop_Seg = 6; init = CAN_CONFIG_SAMPLE_THRICE & // Form value to be used CAN_CONFIG_PHSEG2_PRG_ON & // with CAN1Initialize CAN_CONFIG_XTD_MSG & CAN_CONFIG_DBL_BUFFER_ON & CAN_CONFIG_MATCH_MSG_TYPE & CAN_CONFIG_LINE_FILTER_OFF; send = CAN_TX_PRIORITY_0 & // Form value to be used CAN_TX_XTD_FRAME & // with CAN1Write CAN_TX_NO_RTR_FRAME; read = 0; // // Initialise CAN module // CAN1Initialize(SJW, BRP, Phase_Seg1, Phase_Seg2, Prop_Seg, init); // //Set CAN CONFIG mode // CAN1SetOperationMode(CAN_MODE_CONFIG, 0xFF); mask = -1; // //Set all MASK1 bitstol's // CAN1SetMask(CAN_MASK_B1, mask, CAN_CONFIG_XTD_MSG); // //Set all MASK2 bitstol's // CAN1SetMask(CAN_MASK_B2, mask, CAN_CONFIG_XTD_MSG); // //Set id of filter B1_F1 to 3 // CAN1SetFilter(CAN_FILTER_B2_F3,500,CAN_CONFIG_XTD_ MSG); // // Set CAN module to NORMAL mode // CAN1SetOperationMode(CAN_MODE_NORMAL, 0xFF); // // Program loop. Read the temperature from analog temperature // sensor for(; ![]() // Endless loop { // //Walt until a request is received // dt = 0; while(!dt) dt = CAN1Read(&id, data, &len, &read); if(id == 500 && data[0] == 'T') { // // Now read the temperature // temp = Adc_Read(0); // Read temp mV = (unsigned long)temp * 5000 /1024; // in mV temperature = mV/10; // in degrees C // // send the temperature to Node ![]() // data[0] = temperature; id = 3; // Identifier CAN1Write(id, data, 1, send); // send temperature } } } |
![]() |
![]() |
![]() |
#12 |
Nhập môn đệ tử
Tham gia ngày: Sep 2008
Bài gửi: 7
: |
Pic 30f4012 và CAN ( tiếp)
CHíp thứ 2 nhận tín hiệu hiển thị LCD:
void main() { unsigned char temperature, data[8]; unsigned short init, send, dt, len, CANread; char SJW, BRP, Phase_Seg1, Phase_Seg2, Prop_Seg, txt[4]; long id, mask; TRISB = 0; TRISC = 0; TRISF = 0x04; SJW = 1; BRP = 1; Phase_Seg1 = 6; Phase_Seg2 = 7; Prop_Seg = 6; init = CAN_CONFIG_SAMPLE_THRICE & // Form value to be used CAN_CONFIG_PHSEG2_PRG_ON & // with CAN1Initialize CAN_CONFIG_XTD_MSG & CAN_CONFIG_DBL_BUFFER_ON & CAN_CONFIG_MATCH_MSG_TYPE & CAN_CONFIG_LINE_FILTER_OFF; send = CAN_TX_PRIORITY_0 & // Form value to be used CAN_TX_XTD_FRAME & // with CAN1Write CAN_TX_NO_RTR_FRAME; CAN1read = 0; CAN1SetMask(CAN_MASK_B1, mask, CAN_CONFIG_XTD_MSG); CAN1SetMask(CAN_MASK_B2, mask, CAN_CONFIG_XTD_MSG); CAN1SetFilter(CAN_FILTER_B2_F3,3,CAN_CONFIG_XTD_MS G); CAN1SetOperationMode(CAN_MODE_NORMAL, 0xFF); Lcd_Custom_Config(&PORTB, 5,4,3,2,1,0, &PORTC, 13); Lcd_Custom_Cmd(LCD_CLEAR); Lcd_Custom_Out(1,1 ,"CAN BUS"); Delay_ms(1000); for(; ![]() { Lcd_Custom_Cmd(LCD_CLEAR); //Clear LCD Lcd_Custom_Out(1,1, "Temp = "); // Display "Temp = " // // Send a message to Node:COLLECTOR and ask for data // data[0] = 'T'; // Data to be sent id = 500; // Identifier CAN1Write(id, data, 1, send); // send T // // Get temperature from node:COLLECT // dt = 0; while(!dt) dt = CAN1Read(&id, data, &len, &CANread); if(id == 3) { temperature = data[0]; ByteToStr(temperature,txt); // Convert to string Lcd_Custom_Out(1,8,txt); // Output to LCD Delay_ms(1000); //Wait 1 second } } } |
![]() |
![]() |
![]() |
#13 |
Nhập môn đệ tử
Tham gia ngày: Nov 2009
Bài gửi: 3
: |
em đang làm về mạng can rất mong được các sư huynh giúp đỡ.
|
![]() |
![]() |
![]() |
#14 |
Nhập môn đệ tử
Tham gia ngày: Nov 2009
Bài gửi: 3
: |
em gặp vấn đề ở chỗ truyền dữ liệu. địa chỉ mail của em là
phuongthengoc0987@yahoo.com |
![]() |
![]() |
![]() |
#15 |
Đệ tử 2 túi
Tham gia ngày: Mar 2007
Bài gửi: 29
: |
xin lỗi bạn minhtr123.Minh đang thi nên không hay lên mạng .Minh gửi mail cho bạn rồi đấy. Minh mới làm được sơ sơ thui
|
![]() |
![]() |