Việc sử dụng CH340G trên một sản phẩm thương mại có phải là một ý tưởng khủng khiếp? [đóng cửa]


12

Tôi đang phát triển một sản phẩm thích hợp sẽ được sản xuất với khối lượng khá thấp (hàng trăm thấp). Tôi đang sử dụng Atmega uC và một trong những yêu cầu là khả năng người dùng có thể flash trường. Kế hoạch của tôi là sử dụng bộ tải khởi động Arduino với IC USB-to-UART (lười biếng, tôi biết, nhưng với âm lượng này, nó có lẽ là lựa chọn tốt nhất).

Có nhiều sự lựa chọn. Bảng nguyên mẫu của tôi ngay bây giờ đang sử dụng FTDI FT 232RL, nhưng nó quá đắt cho sản xuất, vì mức giá cho toàn bộ bảng là khoảng $ 20.

IC tôi đã xem xét bao gồm:

  • CH340G
    • Tùy chọn rẻ nhất, nhưng trạng thái của trình điều khiển đã ký cho OSX là gì? Tôi không thể xác định liệu điều này sẽ hoàn toàn cắm và chơi. Có ai biết tình trạng này là gì không?
  • CP2102
    • Mạnh mẽ, không phải lo lắng về trình điều khiển đã ký vv Nhưng nó đắt hơn.
  • MCP2200
    • Cũng mạnh mẽ, không phải lo lắng về trình điều khiển đã ký. Làm cách nào để chọn cái này so với CP2102? Chúng có giá gần như nhau.

Có bất kỳ "gotchas" nào khác với các lựa chọn ở trên ngoài các trình điều khiển đã ký không? Tôi không muốn buộc người dùng cài đặt trình điều khiển không dấu / thêm quy trình có thể gây đau đớn cho quy trình flash lại, nhưng tôi cũng không thực sự muốn thêm 2 đô la vào chi phí BOM chỉ cho khả năng flash của người dùng.

Bất kỳ hướng dẫn / lời khuyên chung sẽ hữu ích. Cảm ơn.


3
Bạn có thể chỉ cần cung cấp một cáp riêng có thể được mua nếu người dùng thực sự muốn làm lại nó? Hoặc là phản xạ cần thiết cho việc sử dụng sản phẩm?
DKNguyen

Phản xạ là rất cần thiết cho việc sử dụng sản phẩm, vì nó có thể được sử dụng trong nhiều tình huống khác nhau và phải được khách hàng cấu hình lại hoàn toàn vào một ngày trong tương lai cho các ứng dụng khác nhau.
willem.hill

Có một khách hàng thường chỉ có một trong số các thiết bị, hoặc nhiều? Nếu có nhiều quyết định cho mỗi khách hàng, Chetan Bhargava có thể là một lựa chọn tốt: làm cho giao diện lập trình tách biệt với chính thiết bị.
jcaron

Một ví dụ về sản phẩm đã sử dụng CH340 và phải chuyển sang CP2104 để giải quyết các vấn đề: github.com/sqfmi/badgy#rev-2b
jcaron

Câu hỏi hay hơn là bạn có thể mua chip CH340 không? Không có nhà cung cấp nào ở Mỹ kiểm tra lần trước khi tôi kiểm tra.
CrossRoads

Câu trả lời:


26

Tùy chọn đơn giản nhất và tùy chọn mà tôi khuyên dùng ở đây là sử dụng bộ vi điều khiển hỗ trợ USB nguyên bản và có thể được lập trình với bộ tải khởi động USB DFU (Cập nhật phần sụn thiết bị). Một ví dụ về vi điều khiển như vậy là ATmega32U4, như đã thấy trên Arduino Leonardo; một cái khác là ST STM32F103. Ngay cả khi các bộ vi điều khiển này đắt hơn một chút so với bộ vi điều khiển bạn đã sử dụng nếu không, mức tăng chi phí có thể thấp hơn chi phí của giao diện USB UART rời rạc. Sử dụng một bộ phận duy nhất cũng sẽ làm giảm kích thước tổng thể và mức tiêu thụ điện của thiết bị của bạn.


16U2 là một tùy chọn phổ biến được sử dụng trên Arduino Uno và Mega, tương thích với OS X - ngay cả các phiên bản cũ hơn.
Greenonline

1
@Greenonline Cùng một gia đình như 32U4 tôi đã đề cập, chỉ là một phiên bản nhỏ hơn.
duskwuff -inactive-

8

Có một trình điều khiển do Apple cung cấp cho CH340 bao gồm các phiên bản gần đây của MacOS. "AppleUSBCHCOM".


2

Nói chung, nếu bạn cung cấp cho khách hàng khả năng flash thiết bị của mình, bạn muốn họ không làm hỏng thiết bị.

Do đó, ưu tiên chính cung cấp là kết nối mạnh mẽ và an toàn với thiết bị chủ. Theo kinh nghiệm của tôi, tất cả các con chip hoạt động khá tốt trong các thiết lập đô thị và phòng thí nghiệm mà tôi cho rằng bạn đang nhắm mục tiêu.

Cũng xem xét thời gian cần thiết để làm cho thành phần hoạt động tốt - số lượng sản xuất của bạn ở mức thấp hàng trăm và bạn thêm 2 đô la cho mỗi thành phần. Đó có phải là "mất mát" đáng giá hơn thời gian của bạn (hoặc nhà phát triển) không? Một con chip được ghi chép tốt có thể thực sự là một lựa chọn tốt hơn, ngay cả khi nó có giá cao hơn.

CH340

Vâng, nó thực sự là một ý tưởng tồi, ít nhất là nếu bạn muốn Plug-And-Play. Đối với tôi trên Win 8.1, tôi cần cài đặt thủ công trình điều khiển ( CH340SER.exe) mà tôi phải tải xuống từ trang web của nhà sản xuất (Trung Quốc) không có bản dịch tiếng Anh.

Nó được lưu trữ tại Trung Quốc, có thể là một vấn đề cho các cá nhân có đầu óc bảo mật và những người bị ràng buộc bởi các quy tắc tổ chức và / hoặc chính trị. Ngoài ra, nó được đưa ra ngoài kết quả tìm kiếm bởi rất nhiều trang web tải xuống trình điều khiển "Miễn phí" đáng ngờ.

Nếu đây là bất kỳ thiết bị nghiêm túc nào (trái ngược với "chỉ" một Arduino), thì đó sẽ là nâng lông mày của tôi lên trần nhà. Cài đặt thủ công cũng có thể rất khó chịu nếu khách hàng của bạn không có Thiết bị chuyên dụng để nhấp nháy.

Nếu không, con chip này hoạt động như mong đợi.

CP2102

Không có nhiều điều để nói, làm việc ra khỏi hộp và không đưa ra bất kỳ vấn đề. Có lẽ sẽ là sự lựa chọn của tôi cho một thiết kế trung bình.

FTDI

Tôi có cái này trên bảng chuyển đổi USB-serial độc lập và nó hoạt động tốt. Như bạn đã viết, nó khá đắt tiền, nhưng tôi tin rằng nó có thể là một lựa chọn tốt hơn trong môi trường khắc nghiệt (ví dụ như các tiếp điểm bị ăn mòn trên các đầu nối, cũng là EMI). Có thể cung cấp cho bạn một cảm giác mờ ấm áp vì bạn hỗ trợ các nhà phát triển ban đầu.

Những ý tưởng khác

ISP

Theo câu trả lời của @Chetan Bhargava, một tùy chọn sẽ là có một đầu nối cho SPI và sau đó sử dụng bộ chuyển đổi USB-serial độc lập.

Điều này cũng yêu cầu bạn cung cấp một đầu nối đáng tin cậy và an toàn để sử dụng cho ISP để gắn vào. Rõ ràng bạn có thể bán rẻ với các tiêu đề pin ở đây, nhưng nếu bạn muốn làm đúng (và / hoặc không đủ tin tưởng vào khách hàng của mình ), thì đầu nối này có thể tốn kém hơn so với chip bổ sung và đầu nối USB dự trữ. Các kết nối nối tiếp rất khó gỡ lỗi nếu chúng không hoạt động, trái ngược với USB, nơi khách hàng ít nhất sẽ được thông báo rằng thiết bị USB không hoạt động.

Nếu bạn kết hợp một bộ chuyển đổi độc lập với bảng của mình, bạn cũng sẽ phải trả giá cho bảng chuyển đổi. Tôi cho rằng điều này sẽ không rẻ hơn để tích hợp chip. Điều này có thể hoạt động nếu mỗi khách hàng sở hữu nhiều bảng của bạn, vì vậy trình chuyển đổi có thể được sử dụng lại hoặc nếu bạn chỉ có thể chuyển các chi phí để có được lập trình viên cho phía khách hàng.

Nếu tùy chọn này là một khả năng, tại thời điểm này, cũng có AVRISP rất riêng của Atmel, đây là một lựa chọn tốt ở đây thay vì USB-to-serial đơn giản, mặc dù hơi lỗi thời. Tôi nghĩ rằng nó vượt quá khoảng 100 hoặc 200 kbps trong đó các bộ chuyển đổi USB-serial hiện đại đi vào phạm vi megabit. Nhưng nó rất mạnh về việc sử dụng (mis-).

Một lựa chọn tốt khác có thể là đầu nối TC2030. Nó chỉ yêu cầu các miếng đệm trên PCB để làm việc, nhưng đòi hỏi một số chuyên môn (bạn phải giữ nó tại chỗ cho đến khi lập trình kết thúc).

Giao diện truyền thông

Các bộ vi điều khiển hiện đại cũng đi kèm với một số giao diện truyền thông khác (Ethernet, WiFi, Bluetooth) và thường có thể được flash bằng cách sử dụng các giao diện này. Một ví dụ sẽ là chiếc ESP32 có giá khoảng 6 USD và là một SoC với tất cả các thành phần cần thiết cho kết nối wifi. Ngoài ra, nó tương thích với Arduino (thậm chí bạn có thể sử dụng IDE) và có một bộ ví dụ rất kỹ lưỡng, bao gồm bộ tải khởi động WiFi OTA. Bạn sẽ chỉ cần một ISP để triển khai bộ tải khởi động ban đầu.

Nếu - như trong câu hỏi của bạn - dự án của bạn gần như đã kết thúc, đây có lẽ không còn là một lựa chọn nữa.


-2

Để sản phẩm của bạn có thể lập trình trường / nhập mô tả hình ảnh ở đâycáp flash là sử dụng chân tiêu đề chung. Arduino pinout là khá phổ biến. không cần nhúng USB vào bộ chuyển đổi nối tiếp nếu các bản cập nhật của bạn không hàng tuần. Đối với thiết lập trường, tôi sẽ tăng chi phí cho thiết bị lập trình trường thay vì khả năng lập trình trường vào


Không cần phải nhúng bộ chuyển đổi nối tiếp nếu bạn cần flash ít thường xuyên hơn.

Một số bộ chuyển đổi USB sang nối tiếp phổ biến (và chi phí thấp) dựa trên các bộ chip.

FTDI - Trình điều khiển Windows và Linux nhưng trình điều khiển có thể biến cáp của bạn - tránh
CH340 - Trình điều khiển Windows và Linux
PL2303 - Trình điều khiển Windows và Linux

Các trình điều khiển dễ dàng có sẵn cho nền tảng Windows và Linux. Tôi không thể nói nhiều về táo vì tôi không đủ tiền mua máy tính xách tay táo.

Tôi thà bỏ USB-serial ra khỏi dự án của mình nếu xác suất để lập trình trong trường là <50%.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.