Một số chip PIC18F và dsPIC30F giao cho các bạn tìm hiểu

admin

Pay It Forward
Staff member
Hiện tại CLB có 1 số chip PIC18F và dsPIC30F với số lượng cụ thể như sau:

dsPIC30F3012: 4
dsPIC30F3013: 2
dsPIC30F4011: 3
dsPIC30F4012: 2

PIC18F2455: 3
PIC18LF4455: 2
PIC18F4580: 1

Tính năng của các chip này được tóm tắt trong bảng sau:

Trang 1:


Trang 2:

Tất cả đều thuộc loại DIP (hàn xuyên lỗ vô cùng thân thiện :D )

Các bạn có nhu cầu sử dụng chip này để tìm hiểu, đề nghị xem bản tóm tắt tính năng của các chip, sau đó gửi mail yêu cầu về hophuong.hcmut@gmail.com

Lưu ý:
- Đối với các chip có USB hay CAN chúng ta sẽ ưu tiên phát triển ứng dụng các chuẩn giao tiếp này.
- Sau khi có 1 số bạn nhận chip, chúng ta sẽ làm việc cụ thể với nhau sau :)
- Tất cả các chip trên đều mạnh hơn 16F887 (tất nhiên!), cho nên ngoài các ứng dụng đặc biệt (CAN, USB, Encoder, ...) thì bạn hoàn toàn có thể sử dụng nó để thay thế PIC16F trong các ứng dụng thông thường (Timer, PWM, I2C, UART, ...)
 

2death

Cố Vấn CLB
Staff member
Các bạn đã nhận chip PIC:
- Phong lớp Tự Động 08: 2 chip 30F4011 --> Giao tiếp CAN
- Bạn Đỗ Minh Quốc k08 - nhận 1 chip 18F4455 --> Nghiên cứu về USB

Các bạn đăng kí nhưng chưa nhận chip:
- Đinh Thanh Nhân (cùng một số bạn k09): đăng kí 30F4011 và 18LF4455
- Nguyễn Khắc Phương Tuấn k08: đăng kí 30F4012.
- Đặng Anh Tùng k08 - Đăng kí 30F4011

***
1. Các bạn đăng kí trùng nhau và hết chip loại đó có thể đổi loại khác.
2. Các bạn đã nhận chip thì nhanh chóng nghiên cứu con PIC đó (đầu tiên cũng là thiết kế schematic, làm mạch, I/O xuất nhập, bật led cho vui, ... sau đó mới làm đến các ứng dụng khác)
3. Vì chip là tài sản của CLB "tặng" các bạn, cho nên, CLB cũng cần nắm tình hình là bạn đã làm được gì rồi, đồng thời để hỗ trợ khi cần thiết. Sau khi các bạn chính thức bắt đầu nghiên cứu con chip đó, CLB sẽ mở riêng 1 mục dành cho bạn trên forum để bạn post tiến độ làm việc cũng như tài liệu, hướng dẫn, ... liên quan lên (để mọi người cùng biết và học chung với bạn, cũng như cùng nhau giải quyết rắc rối - nếu có).
 

pipoit

Thành Viên PIF
mình cũng đang tìm hiểu về 2 chuẩn giao tiếp CAN - USB.
Có gì các bạn trao đổi . mail : 07ev007@gmail.com
mình cũng đang làm về đề tài này nhưng chưa hoàn thành. bạn ở lớp nào vậy? bạn đã hoàn thành đề tài này chưa cho mình hỏi phần cứng của mình không biết có gì sai không? sao có code như vầy mà chạy không ra???
Code:
void main()
{
	unsigned char temperature, dl[8];
	unsigned short init_flag, send_flag, dt, len, read_flag;
	char SJW, BRP, Phase_Seg1, Phase_Seg2, Prop_Seg, txt[4];
	long id, mask;
	const unsigned int
	CAN_CONFIG_DEFAULT=0xFF,

	CAN_CONFIG_PHSEG2_PRG_BIT=0x01,
	CAN_CONFIG_PHSEG2_PRG_ON=0xFF,
	CAN_CONFIG_PHSEG2_PRG_OFF=0xFE,

	CAN_CONFIG_LINE_FILTER_BIT=0x02,
	CAN_CONFIG_LINE_FILTER_ON=0xFF,
	CAN_CONFIG_LINE_FILTER_OFF=0xFD,

	CAN_CONFIG_SAMPLE_BIT=0x04,
	CAN_CONFIG_SAMPLE_ONE=0xFF,
	CAN_CONFIG_SAMPLE_THRICE=0xFB,

	CAN_CONFIG_MSG_TYPE_BIT=0x08,
	CAN_CONFIG_STD_MSG=0xFF,
	CAN_CONFIG_XTD_MSG=0xF7,

	CAN_CONFIG_DBL_BUFFER_BIT=0x10,
	CAN_CONFIG_DBL_BUFFER_ON=0xFF,
	CAN_CONFIG_DBL_BUFFER_OFF=0xEF,

	CAN_CONFIG_MATCH_TYPE_BIT=0x20,
	CAN_CONFIG_MSG_BITS=0x60,
	CAN_CONFIG_ALL__MSG=0xFF,
	CAN_CONFIG_VALID_XTD_MSG=0xDF,
	CAN_CONFIG_VALID_STD_MSG=0xBF,
	CAN_CONFIG_ALL_VALID_MSG=0x9F,
	CAN_CONFIG_MATCH_MSG_TYPE=0xFF,

	CAN_TX_PRIORITY_0=0xFC,

	CAN_TX_XTD_FRAME=0xF7,

	CAN_TX_NO_RTR_FRAME=0xFF,

	CAN_MODE_NORMAL=0x00,
	CAN_MODE_CONFIG=0x80,

	CAN_MASK_B1=0,
	CAN_MASK_B2=1,

	CAN_FILTER_B2_F3=4;
       
	TRISD = 0xFF;                             
	TRISF = 0x04;
      
//
// CAN BUS Timing Parameters
//
	SJW = 1;
    BRP = 1;
    Phase_Seg1 = 6;
    Phase_Seg2 = 7;
    BRP = 1;
	Prop_Seg = 6;
	init_flag = CAN_CONFIG_SAMPLE_THRICE &
				CAN_CONFIG_PHSEG2_PRG_ON &
				CAN_CONFIG_STD_MSG &
				CAN_CONFIG_DBL_BUFFER_ON &
				CAN_CONFIG_VALID_XTD_MSG &
				CAN_CONFIG_LINE_FILTER_OFF;
	send_flag = CAN_TX_PRIORITY_0 &
				CAN_TX_XTD_FRAME &
				CAN_TX_NO_RTR_FRAME;
	read_flag = 0;
//
// Initialise CAN module
//
	CAN1Initialize(SJW, BRP, Phase_Seg1, Phase_Seg2, Prop_Seg, init_flag);
//
// Set CAN CONFIG mode
//
	CAN1SetOperationMode(CAN_MODE_CONFIG, 0xFF);
	mask = -1;
//
// Set all MASK1 bits to 1's
//
	CAN1SetMask(CAN_MASK_B1, mask, CAN_CONFIG_MATCH_MSG_TYPE & CAN_CONFIG_XTD_MSG);
//
// Set all MASK2 bits to 1's
//
	CAN1SetMask(CAN_MASK_B2, mask, CAN_CONFIG_MATCH_MSG_TYPE & 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
//
	for(;;) 
	{
//
// Doi tin hieu tu nut nhan
//
		if(RD1 == 1)
		{
//
// Goi thong diep bao mo toi nut Display
//
			dl[0] = 1;
            		id = 3; 
			CAN1Write(id, dl, 1, send_flag); 
			Delay_ms(100);
		}
		else
		{
//
// Goi thong diep bao tat toi nut Display
//
			dl[0] = 0;
			id = 3;
			CAN1Write(id, dl, 1, send_flag);
			Delay_ms(100);
		}
	}
}
Code:
void main()
{
	unsigned char trangthai, dl[8];
	unsigned short init_flag, send_flag, dt, len, read_flag;
	char SJW, BRP, Phase_Seg1, Phase_Seg2, Prop_Seg, txt[4];
	long id, mask;
	const unsigned int
	CAN_CONFIG_DEFAULT=0xFF,

	CAN_CONFIG_PHSEG2_PRG_BIT=0x01,
	CAN_CONFIG_PHSEG2_PRG_ON=0xFF,
	CAN_CONFIG_PHSEG2_PRG_OFF=0xFE,

	CAN_CONFIG_LINE_FILTER_BIT=0x02,
	CAN_CONFIG_LINE_FILTER_ON=0xFF,
	CAN_CONFIG_LINE_FILTER_OFF=0xFD,

	CAN_CONFIG_SAMPLE_BIT=0x04,
	CAN_CONFIG_SAMPLE_ONE=0xFF,
	CAN_CONFIG_SAMPLE_THRICE=0xFB,

	CAN_CONFIG_MSG_TYPE_BIT=0x08,
	CAN_CONFIG_STD_MSG=0xFF,
	CAN_CONFIG_XTD_MSG=0xF7,

	CAN_CONFIG_DBL_BUFFER_BIT=0x10,
	CAN_CONFIG_DBL_BUFFER_ON=0xFF,
	CAN_CONFIG_DBL_BUFFER_OFF=0xEF,

	CAN_CONFIG_MATCH_TYPE_BIT=0x20,
	CAN_CONFIG_MSG_BITS=0x60,
	CAN_CONFIG_ALL__MSG=0xFF,
	CAN_CONFIG_VALID_XTD_MSG=0xDF,
	CAN_CONFIG_VALID_STD_MSG=0xBF,
	CAN_CONFIG_ALL_VALID_MSG=0x9F,
	CAN_CONFIG_MATCH_MSG_TYPE=0xFF,

	CAN_TX_PRIORITY_0=0xFC,

	CAN_TX_XTD_FRAME=0xF7,

	CAN_TX_NO_RTR_FRAME=0xFF,

	CAN_MODE_NORMAL=0x00,
	CAN_MODE_CONFIG=0x80,

	CAN_MASK_B1=0,
	CAN_MASK_B2=1,

	CAN_FILTER_B2_F3=4;

	TRISD = 0x0;
	TRISF = 0x04;

//
// CAN BUS Timing Parameters
//
	SJW = 1;
    BRP = 1;
    Phase_Seg1 = 6;
    Phase_Seg2 = 7;
    BRP = 1;
	Prop_Seg = 6;
	init_flag = CAN_CONFIG_SAMPLE_THRICE &
				CAN_CONFIG_PHSEG2_PRG_ON &
				CAN_CONFIG_STD_MSG &
				CAN_CONFIG_DBL_BUFFER_ON &
				CAN_CONFIG_VALID_XTD_MSG &
				CAN_CONFIG_LINE_FILTER_OFF;
	send_flag = CAN_TX_PRIORITY_0 &
				CAN_TX_XTD_FRAME &
				CAN_TX_NO_RTR_FRAME;
	read_flag = 0;
//
// Initialise CAN module
//
	CAN1Initialize(SJW, BRP, Phase_Seg1, Phase_Seg2, Prop_Seg, init_flag);
//
// Set CAN CONFIG mode
//
	CAN1SetOperationMode(CAN_MODE_CONFIG, 0xFF);
	mask = -1;
//
// Set all MASK1 bits to 1's
//
	CAN1SetMask(CAN_MASK_B1, mask, CAN_CONFIG_MATCH_MSG_TYPE & CAN_CONFIG_XTD_MSG);
//
// Set all MASK2 bits to 1's
//
	CAN1SetMask(CAN_MASK_B2, mask, CAN_CONFIG_MATCH_MSG_TYPE & 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
//
	for(;;)
	{
//
// Lay thong diep tu node:COLLECT
//
		dt = 0;
		while(!dt)dt = CAN1Read(&id, dl, &len, &read_flag);
		if(id == 3)
		{
			trangthai = dl[0];
                        if(trangthai == 0)
                        {
                                     RD1_bit = 0;
                        }
                        else
                        {
                                     RD1_bit = 1;
                        }
		}
	}

}
 

mafiaWolf

Chủ tịch Hội phụ nữ PIF
hjx...1 nùi >"<...ước gì mình được như huynh ấy >"<
 
Top