Thông báo

Collapse
No announcement yet.

TWI, SPI and...

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

  • TWI, SPI and...

    Moi nguoi cho đệ hoi ti:
    Doc datasheet của ATMEGA8535 thấy có rất nhiều cách giao tiếp giữa VDK như: TWI, SPI, TXD and Rxd.
    Vậy ta có thể áp dụng chúng vào từng trường hợp cụ thể như thế nào?
    Ngoài chức năng nạp thì đã có ai dùng SPI trong giao tiếp giữa chúng với nhau chưa? có đặc điểm gì nổi bật ko?
    TWI có thể giao tiếp tốt đồng thời với 127 thiết bị ngoại vi thì sao lại còn cần 2 chân Txd và Rxd nữa?
    Còn 1 điều nữa: trong datasheet có nói chân TOSC1,2 có thể nối với thạch anh 32.768khz để đếm thời gian thực, vậy khi kết nối thạch anh đó, ta vẫn phải kết nối thạch anh khác nữa đến chân XTAL1,2 để làm xung nhịp cho CPU đúng không? trong đó cũng nói có thể dùng bộ dao động trong chip thay cho thạch anh, vậy là sao?
    Mong mọi người giải đáp dùm đệ nhé!!
    Cám ơn nhiều !
    Bữa nay đệ chỉ hỏi vậy thôi, để mai hỏi tiếp nhé. Mong mọi người giúp đỡ!
    :-B

  • #2
    Hix, sao ko có ai trả lời đệ vậy?
    :-B

    Comment


    • #3
      Ối ối hỏi nhìu we' :
      1/ Nói chung là dùng để nối với các thiết bị ngoại vi như eeprom, RTC,..., thết bị ngoại vi nào dùng giao tiếp nào thì mình xài module ây. VD: EEPROM AT24C01 dùng giao tiếp I2C (tức TWI) thì mình dùng TWI để giao tiếp với nó .
      2/ SPI cũng là một chuẩn truyền thông,tùy yêu cầu của ứng dụng mà dùng,nhưng hầu hết là dùng cho ứng dụng đọc thẻ nhớ SD/MMC. SPI hiện nay có thể chạy ở tốc độ rất cao,có thể lên đến 20Mbps.
      3/ Hai chân Txd và Rxd là hai chân tín hiệu của bộ truyền nhân USART, không phải của TWI, USART là bộ truyền nhận kinh điển. dùng để ghép nối với PC (RS232).
      4/Ngoài thạch anh 32.768kHz cần phải có thạch anh tạo xung cho chip. Nguồn xung cấp cho chip thì có nhiều lựa chọn: thạch anh, bộ dao động RC bên trong chip...đọc datasheet để biết cách set fuse tùy vào lựa chọn của mình.

      NVT2
      Tín đồ AVR giáo.

      Comment


      • #4
        HI!
        Cám ơn NVT2 nhiều nhé!
        Đệ đã biết cách fuse bit rồi. Nhưng vẫn còn thắc mắc về tụi TWI đấy.
        1. có thể dùng TWI thay cho USART trong giao tiếp với PC ko? ( í đầu tiên của phần hỏi cũng là cái này đấy, NVT2 đã hiểu nhầm í đệ rùi: đệ hỏi đã sinh ra TWI sao lại vẫn cần usart nữa? chứ ko fải TXD và RXd là 2 chân của TWI)
        2. NVT2 có thể nói sơ qua về giao tiếp của SPI với thẻ nhớ được ko? Hoặc gửi đường link có liên quan đến nó
        3. Hix, đệ buồn ngủ rồi, để mai tỉnh táo hỏi mọi người tiếp vậy
        4. Chúc mọi người ngủ ngon nhé!!!!!!!!!!!!!!!!!!!!!!!!!!!
        :-B

        Comment


        • #5
          Nguyên văn bởi dinhhieu Xem bài viết
          HI!
          Cám ơn NVT2 nhiều nhé!
          Đệ đã biết cách fuse bit rồi. Nhưng vẫn còn thắc mắc về tụi TWI đấy.
          1. có thể dùng TWI thay cho USART trong giao tiếp với PC ko? ( í đầu tiên của phần hỏi cũng là cái này đấy, NVT2 đã hiểu nhầm í đệ rùi: đệ hỏi đã sinh ra TWI sao lại vẫn cần usart nữa? chứ ko fải TXD và RXd là 2 chân của TWI)
          2. NVT2 có thể nói sơ qua về giao tiếp của SPI với thẻ nhớ được ko? Hoặc gửi đường link có liên quan đến nó
          3. Hix, đệ buồn ngủ rồi, để mai tỉnh táo hỏi mọi người tiếp vậy
          4. Chúc mọi người ngủ ngon nhé!!!!!!!!!!!!!!!!!!!!!!!!!!!
          Không thể dùng TWI(I2C) thay cho USART được !
          USART là ADDRESSABLE UNIVERSAL SYNCHRONOUS ASYNCHRONOUS RECEIVER TRANSMITTER
          Còn I2C là Inter-Integrated Circuit.
          Nếu bạn muốn làm như vậy thì phải cần một con chuyển đổi I2C - RS232, hai chuẩn này khác nhau.
          I2C dùng 2 chân Data và Clock, Clock được phát ra từ Master, Data được truyền tới Slave hay nhận về từ Slave tùy thuộc Request của Master.
          Khung truyền của I2C bắt đầu bằng bằng START - ADDRESS - DATA - STOP, Slave có địa chỉ như đúng như địa chỉ yêu cầu của Master sẽ phát tín hiệu ACK, nếu đúng thì việc truyền nhận dữ liệu bắt đầu.
          Còn RS232 dùng mức logic -+12V (nếu muốn truyền lên PC) , -12V cho mức 1, + 12V cho mức 0, nó dùng 2 chân Rx,Tx làm một chân nhận và một chân truyền, muốn giao tiếp được với nhau 2 thiết bị sử dụng USART này phải có tốc độ clock gần nhau, sai số trong khoảng chấp nhận được.
          Còn RS232 không giống như I2C, thằng nào truyền thì tùy, khung truyền của nó bắt đầu bằng bit start, data, parity... stop, tốc độ tính bằng baud.

          SPI dùng 3 chân clock, datain, dataout, tên chân thì quy định tùy thuộc họ vi điều khiển.
          Thẻ MMC dùng 7 chân. Đáng quan tâm là chân CS, DATAIN, DATAOUT,CLK.
          Chân DATAOUT của MMC nối vào chân DATAIN của vi điều khiển.
          3 chân còn lại qua một bộ trở chia áp 2k2,3k3 đưa vào chân tương ứng.
          CS đưa vô chân vào của vi điều khiển cũng được, dùng để chọn chíp (mờ chả cần cũng được, nếu bạn là cao thủ MMC )
          chân DATAOUT của vi điều khiển qua trở chia nối vào DATAIN của MMC.
          CLK của vi điều khiển cũng phải qua trở chia áp rồi nối vào CLK của MMC.
          Các chân còn lại là GND và chân cung cấp áp 3V3.

          Còn bùn ngủ thì ngủ đi

          Comment


          • #6
            Cám ơn Hoa nhiều nhé!
            Bây giờ thì đã hiểu hơn một chút về tụi TWI và MMC rồi, đọc lại datasheet chắc là ok .
            Vấn đề đặt ra bây giờ là lập trình thôi. , mình ớn nhất phần này.
            Đang đọc cuốn hướng dẫn lập trình C của Joe Pardue mà thấy vẫn còn lơ mơ quá, đặc biệt là phần pointer và array. .
            :-B

            Comment


            • #7
              bac nao có thể giới thiệu các chuẩn đó không?
              cố lên anh em.

              Comment

              Về tác giả

              Collapse

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

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

              Collapse

              Đang tải...
              X