[C7] Chuẩn bị bài giao thức SPI cho ngày học 24/11

tranhai20511

Thành Viên PIF
Tuần tiếp theo các em sẽ được giới thiệu về giao thức SPI.
Chúng ta sẽ sử dụng giao thức SPI để truyền data từ MSP4302553 sang IC 74HC595 và hiển thị lên 1 led bảy đoạn anode chung.
Các công việc chuẩn bị:

** Phần cứng
1/ 1 con led 7 đoạn Anode chung
2/ 1 con IC 74HC595
3/ 1 cái bread board (giá khoảng 30.000 đồng). Cái này rất thuận tiện cho mấy em thử mạch trước khi ủi. Các em có thể mua ở cái tiệm kế bên tiệm Ngọc.
Breadboard.jpg


Các em tham khảo hình sau đây để mắc mạch:
Capture.JPG





**Lý thuyết:
Các em nên down datasheet của con 74HC595 về xem : link

Và đọc trước cái SPI trong User Guide của MSP430G2553.

Đây là 1 link tham khảo về giao thức SPI với MSP430: link

Chúc các em học tốt :D
P/S: Đây mới là chuẩn bị lần 1 thui....
 

MMKC

Thành Viên PIF
595 giao tiếp MSP430 ISP ah`. Trước giờ em dùng xung để ghi dịch không :D. Không biết tốc độ sẽ như thế nào :D
 

Manhdd

Cố Vấn CLB
Staff member
595 giao tiếp MSP430 ISP ah`. Trước giờ em dùng xung để ghi dịch không :D. Không biết tốc độ sẽ như thế nào :D
Khác ở các vận hành đó em. SPI là module chuyên dụng, MCU chỉ cần đưa chuỗi bit vào là module tự thực hiện việc dịch, chứ MCU không phải quản lý quá trình dịch.
Qua cái này, các em có thể nối 3 con 74HC595 trên module led ma trận lại để điều khiển hiệu quả hơn (chỉ 3 chân điều khiển :D).
 

Kisses Hacker

Art Supporter
Staff member
cho em hỏi 1 con led 7 đoạn Anode chung là cái gì thế ạ
Con led 7 đoạn gồm 7 con led gộp lại thành hình số 8, nếu bạn chưa biết thì cứ google sẽ thấy.

Anode chung tức 7 con led ấy có cùng chân anode, nối lên VCC, khi điều khiển ta sẽ cho chân tín hiệu vào chân cathode. Led 7 đoạn cathode chung cũng tương tự.

Bonus cái hình cho dễ tưởng tượng:
 

ctcngh

Thành Viên PIF
Anh ơi, bài này có khó lắm không vậy. Bữa đó e kẹt bù Dụng cụ bán dẫn rồi. Không biết nên bỏ cái nào.
 

MMKC

Thành Viên PIF
em nối tiếp 8 con 595 không biết có bị nhiểu hay dòng do MSP430 cấp ra chịu đc. không ta :D
 

zealotnt

Cố Vấn CLB
tại sao các thanh ghi về SPI trong TUT bên diendanti khác với cách set thanh ghi trong các file code mẫu của a Mạnh vậy các a?
 

honghiep

Cố Vấn CLB
Staff member
tại sao các thanh ghi về SPI trong TUT bên diendanti khác với cách set thanh ghi trong các file code mẫu của a Mạnh vậy các a?
Nếu để ý kĩ tí nữa bạn sẽ thấy code bên diendanti.com sử dụng cho MSP430G2221, còn code mẫu của anh Mạnh sử dụng cho MSP430G2553. Vì là 2 con khác nhau nên có 1 số định nghĩa cũng khác nhau :D
 

tranhieu_hcmut

Cố Vấn CLB
Staff member
Code:
http://www.ti.com/lit/ug/slau144i/slau144i.pdf
Lý do khác nhau:
+ Theo code bên diendanti thì viết cho MSP430G2231 & quan trọng là nó sử dụng USI
+ Theo code của Manhdd thì viết cho MSP430G2553 & sử dụng USCI
Tùy thuộc vào MCU hỗ trợ cái nào, USI hay USCI mà có cách config thanh ghi khác nhau, để biết MCU hỗ trợ cái nào thì e đọc thêm datasheet của nó :2cool_sexy_girl:
 

Manhdd

Cố Vấn CLB
Staff member
Đính chính tý :d Hok phải Manhdd viết hết mấy cái driver. Ai giảng bài nào thì là người viết driver bài đó đấy :)
Manhdd viết driver basic_config, LCD và UART, chứ không dính gì đến USCI nhá! Code có chỗ gì không tốt thì mọi người đè đứa viết driver ra mà hỏi =))
 

zealotnt

Cố Vấn CLB
E đọc userguide thì thấy dòng này
The recommended USCI initialization/reconfiguration process is:
1. Set UCSWRST (BIS.B #UCSWRST,&UCxCTL1).
2. Initialize all USCI registers with UCSWRST = 1 (including UCxCTL1).
3. Configure ports.
4. Clear UCSWRST via software (BIC.B #UCSWRST,&UCxCTL1).
5. Enable interrupts (optional) via UCRXIE and/or UCTXIE.
trong driver hình như chưa set UCSWRST lên r config các thanh ghi khác nhỉ, mà hình như chả ảnh hưởng j
 

honghiep

Cố Vấn CLB
Staff member
E đọc userguide thì thấy dòng này
The recommended USCI initialization/reconfiguration process is:
1. Set UCSWRST (BIS.B #UCSWRST,&UCxCTL1).
2. Initialize all USCI registers with UCSWRST = 1 (including UCxCTL1).
3. Configure ports.
4. Clear UCSWRST via software (BIC.B #UCSWRST,&UCxCTL1).
5. Enable interrupts (optional) via UCRXIE and/or UCTXIE.
trong driver hình như chưa set UCSWRST lên r config các thanh ghi khác nhỉ, mà hình như chả ảnh hưởng j
Đó là khuyến cáo của nhà sản xuất. Và trong datasheet cũng có ghi giá trị mặc định của UCSWRST khi reset là 1 =))
 

hnaoab

Gà mẹ
Bạn ơi cho hỏi sao bài này mình thấy trên MSP430G2553 thì chân P1.7 mới là MOSI mà?:)

 

honghiep

Cố Vấn CLB
Staff member
Bạn ơi cho hỏi sao bài này mình thấy trên MSP430G2553 thì chân P1.7 mới là MOSI mà?:)

MSP430G2553 có 2 module SPI. Bài trên sử dụng module SPI của UCA, còn P1.7 là MOSI của UCB
 
Top