PDA

View Full Version : Thắc mắc về phần cứng DSPIC30F6012A !!!


DSPIC30F?
10-01-2008, 09:42 PM
Em sử dụng con 30F6012A nhưng mới bắt đầu làm nên con khó khăn nên xin nhờ các bác chỉ bảo giúp em mấy vấn đề sau đây !!

1/sơ đồ nguyên lý ghép nối DSPIC30F6012A với Flashrom ngoài (128K),
2/sơ đồ nguyên lý ghép nối DSPIC30F6012A với đồng hồ thời gian thực (DS1037)
3/sơ đồ nguyên lí mạch điều khiển Relay dùng DSPIC30F6012A
NOTES!!!!
TẤT CẢ CÁC CÂU HỎI CỦA EM CÁC BÁC CÓ THỂ TRẢ LỜI BẰNG MỘT SƠ ĐỒ NGUYÊN LÍ CHUNG CỦNG OK. CÁM ƠN VỀ SỰ GIÚP ĐỞ NHÉ

namqn
11-01-2008, 12:11 AM
1. Flash ROM có nhiều loại, cả nối tiếp lẫn song song, bạn chưa cho biết chip cụ thể.

2. Maxim không có chip thời gian thực DS1037, chỉ có chip DS1307. Nếu bạn dùng DS1307 thì nó dùng giao tiếp I2C, và tôi đã giới thiệu nó trong tutorial 4 cho dsPIC (đã được dán lên cao trong box này), bạn chỉ cần hai chân SDA và SCL của dsPIC để giao tiếp (tất nhiên chip DS1307 cần được cấp nguồn và nối với thạch anh như đã thể hiện trong tutorial).

3. Relay có nhiều loại, nếu bạn dùng loại nhỏ thì có thể điều khiển đơn giản, còn loại lớn thì cần phải cách ly, chống nhiễu cho mạch dsPIC. Bạn nên cho biết bạn dùng relay loại nào, để làm gì.

Thân,

DSPIC30F?
11-01-2008, 01:05 AM
cảm ơn bang chủ đã giúp đở.
1./ Em đang định dùng Flashrom nối tiếp, bác giúp đỡ em vấn đề giao tiếp giữa DSPIC30F6012A và Flashrom nối tiếp nhé.
2./Em cũng đang băn khoăn không biết sữ dụng Relay loại nào cho chuẩn,mục đích là để đóng mở cửa trong bài toán khoá điện từ (thực chât nó nằm trong phạm vi của 1 bài toán lớn hơn,nhưng mục đích cuối cùng cũng là đóng mở của vào ra)
3./nếu phải dùng loại lớn thì chống nhiễu bằng cách nào nhỉ,giúp em với.

Cảm ơn nhiều

nvphvn
11-01-2008, 01:45 AM
Em sử dụng con 30F6012A nhưng mới bắt đầu làm nên con khó khăn nên xin nhờ các bác chỉ bảo giúp em mấy vấn đề sau đây !!

1/sơ đồ nguyên lý ghép nối DSPIC30F6012A với Flashrom ngoài (128K),
2/sơ đồ nguyên lý ghép nối DSPIC30F6012A với đồng hồ thời gian thực (DS1037)
3/sơ đồ nguyên lí mạch điều khiển Relay dùng DSPIC30F6012A
NOTES!!!!
TẤT CẢ CÁC CÂU HỎI CỦA EM CÁC BÁC CÓ THỂ TRẢ LỜI BẰNG MỘT SƠ ĐỒ NGUYÊN LÍ CHUNG CỦNG OK. CÁM ƠN VỀ SỰ GIÚP ĐỞ NHÉ


có con Flash ROM nào 128k không .Em xem trong Atmel không tìm được con nào cả!

namqn
11-01-2008, 02:17 AM
cảm ơn bang chủ đã giúp đở.
1./ Em đang định dùng Flashrom nối tiếp, bác giúp đỡ em vấn đề giao tiếp giữa DSPIC30F6012A và Flashrom nối tiếp nhé.
2./Em cũng đang băn khoăn không biết sữ dụng Relay loại nào cho chuẩn,mục đích là để đóng mở cửa trong bài toán khoá điện từ (thực chât nó nằm trong phạm vi của 1 bài toán lớn hơn,nhưng mục đích cuối cùng cũng là đóng mở của vào ra)
3./nếu phải dùng loại lớn thì chống nhiễu bằng cách nào nhỉ,giúp em với.

Cảm ơn nhiều
1. Tôi cho là bạn đang định dùng các flash nối tiếp giá rẻ của Atmel, chúng dùng giao tiếp tương thích SPI, do đó bạn có thể dùng 1 trong 2 module SPI của dsPIC30F6012A để kết nối với flash (nếu bạn muốn dùng cổng nối tiếp UART1 của dsPIC thì nên chọn module SPI thứ hai). Khi đó bạn chỉ cần kết nối các chân tương ứng của dsPIC với flash (SDI, SDO, và SCK phía dsPIC với SI, SO, và SCK phía flash). Đương nhiên phải có nguồn cho flash. Nếu chỉ dùng 1 flash thì bạn có thể nối chân CS của nó qua điện trở vài k xuống GND, nếu có nhiều chip flash thì bạn có thể dùng chân CS để chọn chip thông qua một mạch giải mã. Chân WP có thể nối lên Vdd qua một điện trở vài k nếu bạn muốn đọc/ghi vào flash, nếu chỉ muốn đọc từ flash thì bạn nối chân WP qua một điện trở vài k xuống GND. Chân HOLD có lẽ không cần thiết với bạn, nên được nối qua một điện trở vài k đến Vdd.

2. Để đóng mở cửa thì bạn phải xem xét cơ cấu đóng mở, rồi mới chọn relay thích hợp để kích hoạt nó. Có relay rồi mới tìm cách điều khiển nó từ dsPIC. Bản thân các vi mạch PIC/dsPIC thường không thể thực hiện việc điều khiển một thiết bị công suất một cách trực tiếp (dòng/áp ở ngõ ra của các vi mạch thường không đủ để kích hoạt thiết bị công suất đó).

3. Khi nào bạn có relay thực thì mới bàn đến chuyện chống nhiễu ra sao.

Thân,

namqn
11-01-2008, 02:18 AM
có con Flash ROM nào 128k không .Em xem trong Atmel không tìm được con nào cả!
128 kb = 1 Mbit, bạn hãy tìm những chip 1 M-bit của Atmel. Nếu không tìm được chip có dung lượng theo yêu cầu thì bạn luôn luôn có thể dùng chip có dung lượng lớn hơn.

Thân,

nvphvn
11-01-2008, 03:01 AM
cảm ơn bác nhé.Em đã tìm được Flashrom cần thiết rồi .nhưng mà
Mấy bác cho hỏi?
-khả năng mở rộng bộ nhớ (khả năng kết nối với bộ nhớ ngoài ) tối đa của DSPIC30F6012A là bao nhiêu?
-Tốc độ xử lí của con này như thế nào?
-cảm ơn

namqn
11-01-2008, 04:43 AM
cảm ơn bác nhé.Em đã tìm được Flashrom cần thiết rồi .nhưng mà
Mấy bác cho hỏi?
-khả năng mở rộng bộ nhớ (khả năng kết nối với bộ nhớ ngoài ) tối đa của DSPIC30F6012A là bao nhiêu?
-Tốc độ xử lí của con này như thế nào?
-cảm ơn
- Các giao thức nối tiếp như SPI về mặt nguyên tắc không áp đặt giới hạn đối với dung lượng của các chip bộ nhớ. Nếu hiểu theo cách mở rộng bộ nhớ của các vi xử lý dùng kiến trúc Von Neumann thì dsPIC không thể mở rộng bộ nhớ (các loại bộ nhớ cần thiết đã được tích hợp vào chip: flash chương trình, RAM dữ liệu, EEPROM dữ liệu).
- dsPIC30F6012A có thể xử lý đến 30 triệu lệnh/giây.

Thân,

nvphvn
11-01-2008, 08:52 AM
cảm ơn bác
-Bác có thể chỉ hộ cho em 1 ít về chức năng các chân của DSPIC30F6012A được không a. Em đã đọc trong datasheet của nó nhưng mà củng khó hiểu quá nên để đem vào ứng dụng thành thạo cem phải nhờ chuyên gia chỉ giùm.
-cảm ơn

DSPIC30F?
11-01-2008, 11:45 PM
cảm ơn tất cả mọi người đã cùng tham gia thảo luận vấn đề của em.
1./Các bác ạ ,hiện em định dùng FLashRom ngoài AT25FS010,nhưng mà chưa biết cách giao tiếp với DSPIC30F6012A như thế nào,nối tiếp các chân như thế nào các bác giãi quyết giùm em nhé.
2./thứ nữa là em dùng đồng hồ thời gian thực DS1307, giao tiếp với DSPIC30F6012A theo chuẩn I2C,nhưng nối tiếp các chân với nhau thế nào nhỉ?

--cảm ơn sự giúp đỡ!

namqn
11-01-2008, 11:50 PM
cảm ơn tất cả mọi người đã cùng tham gia thảo luận vấn đề của em.
1./Các bác ạ ,hiện em định dùng FLashRom ngoài AT25FS010,nhưng mà chưa biết cách giao tiếp với DSPIC30F6012A như thế nào,nối tiếp các chân như thế nào các bác giãi quyết giùm em nhé.
2./thứ nữa là em dùng đồng hồ thời gian thực DS1307, giao tiếp với DSPIC30F6012A theo chuẩn I2C,nhưng nối tiếp các chân với nhau thế nào nhỉ?

--cảm ơn sự giúp đỡ!
1. Tôi đã nói ở post #5, tôi đã dùng datasheet của AT25FS010 để trả lời ở post đó. Bạn đọc kỹ lại nhé.

2. Tôi đã nói ở post #2, bạn tìm đọc tutorial 4 cho dsPIC nhé, và cứ lấy những chân tương ứng của dsPIC30F6012A thay cho các chân của dsPIC30F4012.

Tôi hỏi một câu ngoài lề: Bạn đã từng thiết kế một mạch vi điều khiển nào chưa?

Thân,

DSPIC30F?
11-01-2008, 11:58 PM
cảm ơn bác. thực sự là em cũng đã tưng liên kết 1 số mạch vi điều khiển. nhưng hồi đó em chỉ mới dùng cho C8051 nó cũng khá đơn giản lại có sự giúp đỡ của thầy giáo nên ko thanh vấn đề. Và bài toán hôm nay có thể nói là bài toán đầu tiên em phải ghép nối 1 MCU với nhiều ngoại vi như vậy. Do đó mà cũng gặp nhiều khó khăn. Em biết là những câu hỏi của mình đơn giản với bác nhưng lại là vấn đề với em. có thể vì hỏi đơn giản quá cũng làm cho bác khó chịu ,nhưng em vừa tham gia nên hy vọng bác và các sư huynh giúp đỡ em
Cảm ơn.

DSPIC30F?
12-01-2008, 12:12 AM
em thấy anh nvphvn hỏi mấy câu có vẻ ngớ ngẩn nhưng thực thế đúng thật. Em đang dùng con DSPIC30F6012A mà thực tế là chức năng của các chân còn rất mù mờ,nên mỗi khi gặp vấn đề là luông cà luống cuống ngay à. Có ai giúp không

namqn
12-01-2008, 02:01 AM
cảm ơn bác. thực sự là em cũng đã tưng liên kết 1 số mạch vi điều khiển. nhưng hồi đó em chỉ mới dùng cho C8051 nó cũng khá đơn giản lại có sự giúp đỡ của thầy giáo nên ko thanh vấn đề. Và bài toán hôm nay có thể nói là bài toán đầu tiên em phải ghép nối 1 MCU với nhiều ngoại vi như vậy. Do đó mà cũng gặp nhiều khó khăn. Em biết là những câu hỏi của mình đơn giản với bác nhưng lại là vấn đề với em. có thể vì hỏi đơn giản quá cũng làm cho bác khó chịu ,nhưng em vừa tham gia nên hy vọng bác và các sư huynh giúp đỡ em
Cảm ơn.
Tôi không cảm thấy khó chịu vì bạn hỏi những câu đơn giản, vì ai cũng bắt đầu từ chưa biết gì. Nhưng tôi sẽ cảm thấy khó chịu khi nghĩ rằng người khác không chịu đọc kỹ những gì mà mình đã viết. Tôi không có thời gian vẽ mạch cho bạn, vì chỉ có vài chân linh kiện mà phải tốn thời gian vẽ symbol cho con dsPIC, rồi nối các linh kiện với nhau, do đó tôi mới hướng dẫn bạn bằng văn bản.

Dưới đây tôi mô tả đầy đủ những gì bạn cần kết nối giữa những chip dsPIC30F6012A, AT25FS010, và DS1307:

dsPIC AT25 DS1307 Nguồn
SCK2(4) ------- SCK(6)
SDI2(5) ------- SO(2)
SDO2(6) ------- SI(5)
\CS(1) -------- 4.7 kohm -------- 0 VDC
\HOLD(7) ------ 4.7 kohm ------- +5 VDC
\WP(3) ------- 4.7 kohm -------- +5 VDC
VCC(8) ------------------------- +5 VDC
GND(4) -------------------------- 0 VDC
SDA(36) ----------------------- SDA(5)-4.7 kohm- +5 VDC
SCL(37) ----------------------- SCL(6)-4.7 kohm- +5 VDC
VBAT(3) --------- 0 VDC
VCC(8) --------- +5 VDC
GND(4) ---------- 0 VDC
\MCLR(7) -----------------33 kohm--------------- +5 VDC

Con số trong ngoặc tròn là số hiệu của chân. Tất cả các chân Vdd của dsPIC nối với nhau, và nối vào nguồn +5 VDC, tất cả các chân Vss nối với nhau và nối vào 0 VDC. Chân AVdd nối đến điện trở 10 ohm, sau đó nối sang chân Vdd gần nhất, chân AVss có thể nối vào chân Vss gần nhất. Giữa hai chân OSC1 và OSC2 của dsPIC là thạch anh với tần số mong muốn, từ các chân OSC1 và OSC2 này cũng có các tụ điện 33 pF nối đến 0 VDC. Giữa 2 chân X1 và X2 của DS1307 là thạch anh 32768 Hz (32.768 kHz).

Thân,

DSPIC30F?
12-01-2008, 06:45 AM
Bây giờ thì em đã hiẻu rỏ hơn rồi.Cảm ơn bác nhé.