Có những lợi thế trong việc sử dụng một chip USB riêng biệt và cho phép AVR giao tiếp thông qua UART của nó.
Một ngăn xếp USB phải đáp ứng việc bỏ phiếu từ PC chủ. Điều này xảy ra ít nhất mỗi mili giây. Điều đó có nghĩa là thậm chí còn khó khăn hơn để đảm bảo phản ứng cứng trong thời gian thực đối với các sự kiện, vì MCU có thể bị gián đoạn để trả lời cuộc thăm dò USB của máy chủ.
Khi không có gì để liên lạc hoặc MCU muốn tập trung hoàn toàn vào nhiệm vụ thời gian thực, nó vẫn phải phản hồi một số sự kiện bỏ phiếu của máy chủ lưu trữ, nếu không máy chủ sẽ 'mất' thiết bị. Vì vậy, thật khó để bỏ qua. Một chip USB chuyên dụng, giống như một FTDI giảm tải các tác vụ đó từ AVR.
Một vấn đề nhỏ là ngăn xếp USB sẽ tiêu thụ một lượng bộ nhớ flash và RAM hợp lý, do đó chip cần nhiều tài nguyên hơn so với một AVR đơn giản.
Ngoài ra, hai phần có thể được tách thành hai bảng, vì vậy USB không phải là chi phí cố định, nhưng có thể được chia sẻ trên nhiều bảng.
Về mặt ngược lại, lợi ích chính của việc sử dụng một AVR có tích hợp ngoại vi USB và ngăn xếp USB là chỉ có một phần để mua và lắp ráp.
Gần đây tôi chưa kiểm tra, nhưng tôi tin rằng các chip FTDI mới hơn cung cấp tốc độ truyền dữ liệu USB cao hơn so với USB của AVR. Tuy nhiên, các UART AVR chậm đến mức một AVR có USB truyền nhanh hơn so với sự kết hợp của FTDI (hoặc bất kỳ giao diện USB nào) giao tiếp qua UART của AVR vì UART AVR chậm.
Chỉnh sửa: FTDI thực hiện các giao diện khác ngoài UART. Ví dụ SPI. Tôi không có kinh nghiệm sử dụng chúng. Một số AVR hỗ trợ chuyển 9 (có thể 12) megabit SPI. FTDI là chủ SPI, không lý tưởng. Nếu AVR đang truyền, nó có thể ổn. Như FTDI có bộ đệm, nhưng nhận được có thể "giống như uống từ vòi cứu hỏa". AFAIK, bạn sẽ phải làm việc trên PC chủ để làm cho nó hoạt động.
Tốc độ truyền cao nhất có thể thông qua bảng con Ethernet 100mbits, nhưng tôi chưa thấy các phép đo thông lượng.
Tôi rất vui khi sử dụng các bộ vi điều khiển khác ngoài AVR. Vì vậy, tôi có thể sử dụng một cái gì đó với UART nhanh và bộ điều khiển DMA có thể di chuyển các ký tự mà không cần sự tham gia của CPU. Nếu đó là một cách tiếp cận hữu ích, có thể nhìn vào Arduin Because, hoặc mbed, mbed ST được gọi là nucelo có chi phí thấp.