Thông báo

Collapse
No announcement yet.

Hỏi về mức logic của PIC, giao tiếp SPI

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Hỏi về mức logic của PIC, giao tiếp SPI

    Tình hình là mình đang viết ứng dụng với PIC18F4550, VS1053, ESP8266.
    PIC mình cấp nguồn 5V, ESP8266 3.3V. PIC và ESP giao tiếp bằng UART. Lúc đầu mình không để ý, sau để ý mới phát hiện, sao lúc PIC giao tiếp với ESP vẫn ầm nhỉ, theo lý thuyết phải có đệm để đúng mức logic mới hoạt động được với nhau chứ nhỉ?

    PIC và VS1053 giao tiếp SPI. VS1053 mình sài cái shield andruino. Shematic của nó đây mấy bác. http://www.tme.vn/upload/pdf/TMe_VS1053_Shield.pdf
    Trên shield có dùng 74LV125 để đệm điện áp về 5V để ra ngoài. Còn nguồn thì nó cấp như này: Analog Positive Supply AVDD 3.3 V; Digital Positive Supply CVDD 1.8 V; I/O Positive Supply IOVDD 3.3 V.
    Mình đo mức logic 1 của PIC khi cấp nguồn 5V là 3V, vậy giao tiêp với module VS1053 này có cần đệm điện áp gì không nhỉ?
    Cách thức giao tiếp của với VS1053 mình đã đọc kĩ datasheet lắm rồi, giải thuật không có sai, mà sao khi đọc cổng SPI toàn ra 0000, ffff?. Mấy bác chỉ giáo mình với, tại lần đầu viết SPI, không biết hay sai chỗ nào. Không biết có cần set tốc độ clock gì đó để nó hoạt động đồng bộ với VS1053 không nhỉ. Với mode của SPI có quan trọng không, trong datasheet của VS1053 hoàn toàn không nhắc tới. Và BITS = ? trong chỗ khai báo SPI có ý nghĩa gì?
    Để đọc dữ liệu trong một thanh ghi trong VS1053 (ví dụ SCI_MODE có giá trị mặc định là 0x4800) thì cần ghi làm như sau: đưa chân CS về low, gửi opcode 0x03, gửi địa chỉ của SCI_MODE rồi chờ 2byte dữ liệu trả trở về, đưa chân CS về high.
    Code:
    #USE SPI (MASTER, SPI1, MODE=0, BITS=16, STREAM=SPI_1, MSB_FIRST)
    ...................
       setup_spi(spi_master|spi_l_to_h|spi_clk_div_16);
       clearCS();
       delay_ms(100);
       spi_write(0x03);
       spi_write(SCI_MODE);
       delay_ms(100);
       d0=spi_read();
       delay_ms(100);
       d1=spi_read();
       delay_ms(200);
       setCS();
    Với mấy bác giải thích giùm mình với spi_read(dt) có cái tham số dt để làm gì vậy?

Về tác giả

Collapse

ankinalim Tìm hiểu thêm về ankinalim

Bài viết mới nhất

Collapse

  • bqviet
    Trả lời cho Đấu tắt điện cho máy tính bảng
    bởi bqviet
    Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
    06-12-2025, 17:17
  • nguyendinhvan
    Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
    bởi nguyendinhvan
    Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
    05-12-2025, 19:59
  • afrendly
    Trả lời cho Đấu tắt điện cho máy tính bảng
    bởi afrendly
    Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
    04-12-2025, 01:27
  • nick22
    Trả lời cho Máy điện châm ?
    bởi nick22
    Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
    01-12-2025, 13:23
Đang tải...
X