Thông báo

Collapse
No announcement yet.

Vấn đề truyền thông PSoC

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

  • Vấn đề truyền thông PSoC

    Chào tất cả mọi người. Mình đang nghiên cứu PSoC. Đọc trong diễn đàn mà chưa thấy nói nhiều về mảng giao tiếp với máy tính và truyền thông giữa các PSoC với nhau. Hiện tại mình đang muốn truyền dữ liệu giữa 2 PSoC với nhau. Mình mở ra luồng này rất mong được sự ủng hộ và giúp của tất cả mọi người. Thanks so much!

  • #2
    Truyền thông của PSoC có một số block
    Tx, Rx : Truyền nhận dữ liệu nối tiếp chuẩn RS232.
    UART : nt
    I2C.
    Mọi thứ đều đã có, không biết bạn muốn bàn luận về cái gì?

    Comment


    • #3
      Có bác nào cho biết cách đấu nối SM0038 với PSoC không nhỉ. Mình sử dụng 1 con OR để kết nối 2 đầu ra của khối "TX" và "BITTIMER" ở mạch phát rồi đưa ra chân phát SM0038. Ở mạnh thu mình dùng 1 con AND kết nối đầu ra của "BitTimerOutputPin" và tin hiệu nhận được ở chân thu của SM0038 rồi đưa vào "RXInputPin". Mình dùng con CY8C29xxx lên không dùng bộ Inverter. Nhưng khi chạy thử thì không thu phát được, bác nào có cao kiếm chỉ bảo hộ Mình cái. Với BitTimerAutoSet mình chọn là 9600b/s tương đương với inClk=24MHz/13 thì "BaudClk" được tính như thế nào cho phù hợp. Mong sớm nhận được sự chỉ giáo của các bác.
      mactruong is online now Report Post Edit/Delete Message

      Comment


      • #4
        Dùng bộ RX, TX là ok rồi. Cái khó là đồng bộ giữa các bộ truyền nhận. Theo mình nếu bạn làm truyền nhận thì nên có một cơ chế để truyền nhận tránh mất dữ liệu truyền. Viết trong ngắt là tốt nhất

        .--------------------------
        chúc thành công
        ----------------------------------------------
        Hạnh phúc là mang lại hạnh phúc cho người khác!

        Comment


        • #5
          Các bạn cho mình hỏi tại sao với code sau thì mình gửi kí tự nào thì động cơ cũng vẫn quay vậy:
          #include <m8c.h> // part specific constants and macros
          #include "PSoCAPI.h"
          #include "ports.h"
          #include "dieukhien1.h"

          // UART_PutCRLF();
          void Delay1(void)
          {
          unsigned int x;
          unsigned char y;
          for(y = 0; y <80; y++)
          {
          for (x = 0; x<200; x++);
          }
          }



          void main()
          {
          BYTE kk;
          char docRX;
          PWM8_Start();
          UART_Start(UART_PARITY_NONE); // Enable UAR
          M8C_EnableGInt;

          while (1)
          {
          kk= UART_bReadRxStatus();// doc trang thai cua thanh ghi RX
          if (kk==0x11)//neu co data tren COM
          {
          Delay1();
          docRX=UART_bReadRxData(); //doc data
          UART_CmdReset();

          if (start == "S")//neu la ky tu "S"
          {
          //Out ra cong o vi tri dau tien
          DC2tinhtien_nghich1(200);
          UART_CPutString("GUI LEN");
          }
          }

          }
          }

          Comment


          • #6
            Nghe nói PSoC truyền RS232 kém (đối với những bản tin lớn). Bro nào có kinh nghiệm cho xin ý kiến xem có phải thật như vậy không và nếu đc thì mong chia sẻ luôn kinh nghiệm khắc phục . Thanx!
            123...

            Comment


            • #7
              MÌnh thì không có thấy vậy. Nói chung mình dùng PSoC với UART ít dùng các lệnh High Level API (thường truyền nhận dạng String) mà dùng ác lệnh Low Level (thường truyền nhận Binary và sử dụng các ngắt truyên thông). Mình thấy rất ổn, sử dùng PSoC làm slave trong mạng Modbus RTU thấy OK không vấn đề gì cả.
              CUNG CẤP PSOC, MẠCH NẠP
              CHUYỂN ĐỔI USB <-> RS485 AutoBaud
              RS232 <-> RS485 MultiBaud
              MẠCH NẠP USBPPI S7-200
              Mobile: 0906076116
              Email:

              Comment

              Về tác giả

              Collapse

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

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

              Collapse

              Đang tải...
              X