Giao tiếp SPI của AVR

13 377 1
Giao tiếp SPI của AVR

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trong phần này mình sẽ giới thiệu cách sử dụng giao tiếp SPI trong AVR,từ đó các bạn có thể viết code các thiết bị sử dụng giao tiếp SPI thông qua vi điều khiển AVR,ví dụ như RC522 sử dụng giao tiếp SPI,từ đó làm ra dự án chống trộm đơn giản mà hiệu quả,...

Trong phần xin giới thiệu cách sử dụng giao tiếp SPI AVR từ có sở tảng để ghi nhận liệu từ thiết bị sử dụng phương thức SPI ví dụ :RC522 Giao diện ngoại vi nối tiếp (SPI) - Khái niệm xem xét lại Ở thảo luận số vấn đề giao tiếp ngoại vi nối tiếp (SPI, pronounced spy ess-pee-eye ) Chúng xử lý vấn đề giao dịch Bus SPI SPI hướng dẫn trước , xem xét số vấn đề nitty-gritties lần Giao tiếp ngoại vi nối tiếp giao thức truyền thông nối tiếp sử dụng nhiều đơn giản để sử dụng! Như vấn đề thực tế, thấy điều đơn giản nhiều so với USART ! ;) Vì SPI chấp nhận tiêu chuẩn thực tế , có sẵn hầu hết kiến trúc, bao gồm 8051, x86, ARM, PIC, AVR, MSP vv, sử dụng rộng rãi Điều có nghĩa khơng nên có vấn đề tính di động bạn kết nối thiết bị hai kiến trúc khác với nhau! Đây ứng dụng phổ biến SPI : Truyền liệu có dây (mặc dù sở thích chủ yếu USART, SPI sử dụng chúng tơi sử dụng nhiều hệ thống phụ chủ, việc giải đơn giản nhiều SPI) Truyền dẫn không dây qua Zigbee, 2,4 GHz, v.v Lập trình chip AVR bạn (Có! Chúng lập trình thơng qua SPI! Bạn đọc Mayank's Post SPI) Nó sử dụng để nói chuyện với thiết bị ngoại vi khác cảm biến, thiết bị nhớ, đồng hồ thời gian thực, giao thức truyền thông Ethernet, v.v Ưu điểm SPI SPI sử dụng chân cho thông tin liên lạc (được mô tả sau này) giao thức truyền thơng khác có sẵn AVR sử dụng số chân Vậy SPI sử dụng? Dưới số ưu điểm SPI: Rất dễ dàng để giao diện! (Tơi thời gian để thiết lập truyền liệu qua SPI so với I2C UART!) Giao tiếp song công hồn tồn Tiêu thụ điện so với I2C Tỷ lệ truy cập cao (hoặc thơng lượng ) Và nhiều nữa! Nhưng có số nhược điểm tốt, số lượng dây cao Bus, cần nhiều chân vi điều khiển, v.v Master Slave Trong SPI, thiết bị kết nối Master Slave Các Master thiết bị khởi kết nối điều khiển Sau kết nối khởi tạo, sau Master nhiều Slave (s) truyền / nhận liệu Như đề cập trước đó, kết nối song cơng, có nghĩa Master gửi liệu đến Slave (s) Slave (s) gửi liệu đến Master lúc Như nói trước đó, SPI sử dụng chân để giao tiếp liệu Vì vậy, chuyển sang mơ tả ghim Mô tả pin SPI thường sử dụng chân để giao tiếp, wiz MISO, MOSI, SCK SS Các chân có liên quan trực tiếp đến giao diện bus SPI MISO - MISO viết tắt M aster I n S lave O ut MISO pin đầu vào cho Master AVR chốt đầu cho thiết bị Slave AVR Truyền liệu từ Slave đến Master diễn thông qua kênh MOSI - MOSI viết tắt M aster O ut S lave I n Pin pin đầu cho Master pin đầu vào cho Slave Chuyển liệu từ Master sang Slavediễn thông qua kênh SCK - Đây dòng đồng hồ SPI (vì SPI giao tiếp đồng bộ) SS - viết tắt Slave Select Pin thảo luận chi tiết sau đăng Bây chuyển sang SPI AVR! SPI AVR SPI AVR thiết bị ngoại vi đơn giản cho chương trình Vì AVR có kiến trúc bit nên SPI AVR 8-bit Trong thực tế, thường Bus SPI có chiều rộng bit Nó có sẵn PORTB tất IC, cho dù 28 pin 40 pin Một số hình ảnh sử dụng hướng dẫn lấy từ biểu liệu AVR SPI chân 28 pin ATmega8 SPI chân 40 pin ATmega16 / 32 Đăng ký mô tả AVR chứa ba ghi sau xử lý SPI: SPCR - SPI Control Register - Thanh ghi master register có nghĩa chứa bit để khởi tạo SPI điều khiển SPSR - SPI Status Register - Đây ghi trạng thái Thanh ghi sử dụng để đọc trạng thái tuyến Bus SPDR - SPI Data Register - Thanh ghi liệu SPI ghi đọc / ghi nơi thực truyền liệu thực Thanh ghi điều khiển SPI (SPCR) Như rõ ràng từ tên, đăng ký kiểm soát SPI Chúng ta tìm thấy bit cho phép SPI, thiết lập tốc độ đồng hồ, cấu hình master / slave, vv Sau bit ghi SPCR Đăng ký SPCR Bit 7: SPIE SPI Interrupt Enable Bit Kích hoạt ngắt SPI sử dụng phép ngắt SPI Lưu ý ngắt toàn cục phải bật để sử dụng chức ngắt Đặt bit thành '1' để bật ngắt Bit 6: SPE SPI Kích hoạt bit Kích hoạt SPI sử dụng phép toàn SPI Khi bit đặt thành 1, SPI bật khơng, bị tắt Khi SPI kích hoạt, chức I / O thông thường chân ghi đè Bit 5: DORD DORD thứ tự liệu viết tắt liệu ORDER Đặt bit thành bạn muốn truyền LSB trước, đặt thành 0, trường hợp gửi MSB trước Bit 4: MSTR Master / Slave Chọn bit sử dụng để cấu hình thiết bị Master Slave Khi bit thiết lập để 1, SPI tổng thể chế độ (tức đồng hồ tạo thiết bị đặc biệt), khơng đặt thành 0, thiết bị SPI Slave mode Bit 3: CPOL Clock Polarity Bit chọn độ phân cực đồng hồ bus không hoạt động Đặt bit thành để đảm bảo SCK CAO Bus khơng hoạt động, khơng đặt để SCK LOW trường hợp Bus nhàn rỗi Điều có nghĩa CPOL = 0, cạnh đầu SCK cạnh tăng đồng hồ Khi CPOL = 1, cạnh đầu SCK thực cạnh đồng hồ Bối rối? Vâng, quay lại sau chút Chức CPOL Bit 2: CPHA Phase Clock Bit xác định liệu cần lấy mẫu Đặt bit thành để lấy mẫu liệu cạnh (đầu tiên) SCK, khơng đặt thành để lấy mẫu liệu cạnh sau (thứ hai) SCK Chức CPHA Bit 1.0: SPR1, SPR0 Tốc độ xung SPI Chọn bit này, với bit SPI2X ghi SPSR (được thảo luận tiếp theo), sử dụng để chọn chia tần số dao động, OSC viết tắt đồng hồ bên trong, tần số tinh thể trường hợp dao động bên Bảng bên cung cấp mô tả chi tiết Bộ chia tần số Sổ đăng ký trạng thái SPI (SPSR) Thanh ghi trạng thái SPI ghi từ nơi nhận trạng thái bus SPI cờ ngắt đặt ghi Sau bit ghi SPSR Đăng ký SPSR Bit 7: SPIF SPI Interrupt Flag Cờ ngắt SPI thiết lập việc truyền nối tiếp hoàn tất Một ngắt tạo bit SPIE (bit SPCR) kích hoạt ngắt tồn cầu kích hoạt Cờ bị xóa ISR tương ứng thực thi Bit 6: WCOL Viết Cờ Va chạm Cờ Viết Viết thiết lập liệu ghi ghi liệu SPI (SPDR, thảo luận tiếp theo) có chuyển tiếp xảy dòng liệu bận Cờ xóa cách đọc ghi liệu SPI WCOL đặt Thông thường đưa lệnh truyền liệu cách, lỗi không xảy Chúng thảo luận cách tránh lỗi này, giai đoạn sau đăng Bit 5: Đây bit dành riêng Bit 0: SPI2x Chế độ tốc độ gấp đôi SPI Chế độ tốc độ kép SPI giảm dải tần số từ 4x xuống 2x, tăng gấp đơi tốc độ Thơng thường bit không cần thiết, trừ cần tốc độ truyền tải cụ thể, tốc độ truyền tải cao Đặt bit thành để kích hoạt chế độ tốc độ gấp đơi SPI Bit sử dụng kết hợp với bit SPR1: SPCR Register Đăng ký liệu SPI (SPDR) Thanh ghi liệu SPI ghi đọc / ghi bit Đây đăng ký từ nơi đọc liệu đến ghi liệu mà muốn truyền tải Đăng ký SPDR Bit thứ rõ ràng Bit có ý nghĩa (MSB), bit thứ Bit có ý nghĩa (LSB) Bây liên kết với bit SPCR - bit DORD Khi DORD đặt thành 1, LSB, tức bit thứ SPDR truyền trước, ngược lại Chế độ liệu SPI cung cấp chế độ liệu để truyền liệu, wiz SPI Mode 0,1,2 3, khác biệt chế độ cạnh đồng hồ mà liệu lấy mẫu Điều dựa việc lựa chọn bit CPOL CPHA Bảng đưa mô tả chi tiết bạn muốn tham khảo điều nàyđể có giải thích biểu đồ thời gian chi tiết Chế độ liệu SPI Pin chọn (SS ') Như bạn thấy phần tiếp theo, mã SPI đơn giản so với UART, nhức đầu nằm đây: chân SS! SS '(nghĩa SS bổ sung) hoạt động cấu hình thấp hoạt động Có nghĩa để chọn Slave cụ thể, tín hiệu LOW phải truyền cho Khi đặt làm đầu vào, chân SS phải đặt CAO (Vcc) thiết bị Chính mức LOW (Căn cứ) thiết bị Slave Khi sản lượng pin Master vi điều khiển, pin SS sử dụng pin GPIO SS pin thực làm cho SPI thú vị! Nhưng trước tiến hành, câu hỏi cần phải đặt chân thành số giá trị? Câu trả lời là, giao tiếp nhiều thiết bị hoạt động SPI thông qua bus, chốt SS sử dụng để chọn slave mà muốn liên lạc Chúng ta xem xét hai trường hợp sau để hiểu điều tốt hơn: Khi có nhiều Slave bậc thầy Trong trường hợp này, chân SS tất Slave kết nối với vi điều khiển Vì chúng tơi muốn Slave cụ thể để nhận liệu, vi điều khiển cung cấp tín hiệu thấp cho chân SS vi điều khiển cụ thể vi điều khiển Slave nhận liệu Khi có nhiều bậc thầy Slave Một thiết lập tương tự sử dụng trường hợp tốt, khác biệt SS 'dòng tất bậc thầy kiểm sốt Slave, dòng Slave SS' ln tổ chức thấp Các slave chọn master thơng qua phải nhận liệu cách kéo SS 'high.Alternatively, hệ thống ghép kênh sử dụng vi điều khiển chủ điều khiển tất chân vi điều khiển SS khác, phải truyền liệu , kéo tất SS Pin vi điều khiển khác xuống, khai báo SS đầu Bạn tham khảo điều bạn bối rối Slave Select SPI mã hóa! Cho đến bây giờ, chúng tơi thảo luận lợi thế, sử dụng, đăng ký mô tả, kết nối phần cứng vv SPI Bây xem cách chúng tơi viết mã! Kích hoạt SPI Master // Initialize SPI Master Device (with SPI interrupt) void spi_init_master (void) { // Set MOSI, SCK as Output DDRB=(1

Ngày đăng: 19/06/2018, 20:25

Mục lục

  • Trong phần này mình xin giới thiệu cách sử dụng giao tiếp SPI trong AVR từ đó có cơ sở nền tảng để ghi nhận dữ liệu từ các thiết bị sử dụng phương thức SPI ví dụ như :RC522

  • Giao diện ngoại vi nối tiếp (SPI) - Khái niệm cơ bản được xem xét lại

    • Ưu điểm của SPI

    • Master và Slave

    • Mô tả pin

    • SPI của AVR

    • Đăng ký mô tả

      • Thanh ghi điều khiển SPI (SPCR)

      • Sổ đăng ký trạng thái SPI (SPSR)

      • Đăng ký dữ liệu SPI (SPDR)

      • Chế độ dữ liệu

      • Pin chọn (SS ')

      • SPI được mã hóa!

        • Kích hoạt SPI trên Master

        • Bật SPI trên Slave

        • Gửi và nhận dữ liệu

        • Báo cáo vấn đề

          • Phương pháp luận

          • Kết nối phần cứng

          • Toàn bộ mã

            • mã chủ

            • Mã Slave

            • Video

            • Sử dụng Ngắt

            • Tóm lược

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan