Является ли использование CH340G для коммерческого продукта ужасной идеей? [закрыто]

12

Я разрабатываю нишевый продукт, который будет производиться в довольно небольшом объеме (малые сотни). Я использую Atmega UC, и одним из требований является возможность смены поля пользователем. Я планирую использовать загрузчик Arduino с микросхемой USB-UART (я знаю, ленивый, но на этом томе это, вероятно, лучший вариант).

Есть много вариантов. Моя прототипная плата сейчас использует FTDI FT232RL, но это слишком дорого для производства, так как цена всей платы составляет около 20 долларов.

Микросхемы, которые я рассматривал, включают:

  • CH340G
    • Самый дешевый вариант, но каков статус подписанных драйверов для OSX? Я не могу определить, будет ли это полностью подключи и играй. Кто-нибудь знает, что это за статус?
  • CP2102
    • Надежный, не беспокойтесь о подписанных драйверов и т. Д. Но это дороже.
  • MCP2200
    • Также надежный, не беспокойтесь о подписанных драйверов. Как мне выбрать это по сравнению с CP2102? Они почти одинаковой цены.

Существуют ли другие "ошибки" с вышеуказанным выбором, кроме подписанных драйверов? Я не хочу заставлять пользователя устанавливать неподписанные драйверы / добавлять потенциально болезненный процесс к процедуре перепрошивки, но я также не хочу добавлять $ 2 к стоимости спецификации только для удобства пользователя.

Любое общее руководство / совет будет полезным. Благодарю.

willem.hill
источник
3
Не могли бы вы предоставить отдельный кабель, который можно приобрести, если пользователь действительно хочет его перепрошить? Или перепрошивка необходима для использования продукта?
Нгуен
Перепрошивка имеет важное значение для использования продукта, так как он может использоваться во многих различных сценариях и должен быть полностью реконфигурируемым пользователем в будущем для различных приложений.
willem.hill
У одного клиента обычно есть только одно устройство или много? Если на одного клиента приходится много решений, хорошим выбором может стать Chetan Bhargava : отделить программный интерфейс от самого устройства.
jcaron
Пример продукта, который использовал CH340 и должен был переключиться на CP2104 для решения проблем: github.com/sqfmi/badgy#rev-2b
jcaron
Лучший вопрос, можете ли вы купить чип CH340? В прошлый раз, когда я проверял, не было поставщиков из США, которые его перевозили.
CrossRoads

Ответы:

26

Простейшим вариантом, который я бы порекомендовал здесь, было бы использование микроконтроллера, который изначально поддерживает USB и может быть запрограммирован с помощью загрузчика USB DFU (Device Firmware Update). Одним из примеров такого микроконтроллера является ATmega32U4, как видно на Arduino Leonardo; другой является ST STM32F103. Даже если эти микроконтроллеры будут немного дороже, чем тот, который вы использовали бы в противном случае, увеличение стоимости, вероятно, будет меньше, чем стоимость дискретного интерфейса USB UART. Использование одной детали также уменьшит общий размер и энергопотребление вашего устройства.

сумеречный
источник
16U2 - это общая опция, используемая в Arduino Uno и Mega, которые совместимы с OS X - даже в более старых версиях.
Greenonline
1
@Greenonline То же семейство, что и 32U4, о котором я говорил, только уменьшенная версия.
duskwuff -неактивный-
8

Существует драйвер от Apple для CH340, включающий последние версии MacOS. "AppleUSBCHCOM".

Кевин Уайт
источник
2

Как правило, если вы даете своим клиентам возможность прошивать ваше устройство, вы хотите, чтобы они не блокировали его.

Таким образом, основным приоритетом является надежное и безопасное соединение с хост-устройством. По моему опыту, все чипы довольно хорошо работают в городских и лабораторных условиях, которые, как я полагаю, вы нацеливаете.

Также учтите время, которое потребуется для правильной работы компонента - количество ваших операций исчисляется сотнями, и вы добавляете к каждому по 2 доллара. Эта «потеря» стоит больше, чем ваше (или разработчик) время? Хорошо документированный чип может быть лучшим выбором, даже если он стоит дороже.

CH340

Да, это действительно плохая идея, по крайней мере, если вы хотите подключи и играй. Для меня на Win 8.1 мне нужно было вручную установить драйвер ( CH340SER.exe), который я должен был загрузить с (китайского) сайта производителя, который не имел (в то время) перевода на английский язык.

Он был организован в Китае, что может быть проблемой для людей, которые думают о безопасности, и тех, кто связан организационными и / или политическими правилами. Кроме того, он был превзойден в результате поиска многими сомнительными «бесплатными» сайтами загрузки драйверов.

Если бы это было какое-то серьезное оборудование (в отличие от «просто» Arduino), это подняло бы мои брови к потолку. Установка вручную также может сильно раздражать, если у ваших клиентов нет специального оборудования для перепрошивки.

В остальном этот чип работал как положено.

CP2102

Не много, чтобы сказать о, работал из коробки и не поднимал никаких проблем. Вероятно, будет моим выбором для среднего дизайна.

FTDI

У меня есть этот на отдельной плате USB-Serial конвертер, и он работает хорошо. Как вы писали, это довольно дорого, но я считаю, что это может быть лучшим выбором в тяжелых условиях (например, коррозия контактов на разъемах, а также EMI). Может дать вам теплое нечеткое чувство, потому что вы поддерживаете оригинальных разработчиков.

Другие идеи

ISP

Согласно ответу @Chetan Bhargava, вариант будет иметь разъем для SPI, а затем использовать отдельный USB-последовательный преобразователь.

Для этого также необходимо предоставить надежный и безопасный в использовании разъем для подключения к интернет-провайдеру. Очевидно, что с заголовками контактов здесь можно обойтись дешевле, но если вы хотите сделать это правильно (и / или недостаточно доверять своим клиентам ), то этот разъем может быть более дорогостоящим, чем дополнительный чип и стандартный разъем USB. Последовательные соединения крайне сложно отлаживать, если они не работают, в отличие от USB, где клиент, по крайней мере, получит уведомление о том, что устройство USB не работает.

Если вы комплектуете автономный конвертер своей платой, вам придется заплатить цену и за плату конвертера. Я бы предположил, что это не будет дешевле, чем интегрировать чип. Это может сработать, если каждому клиенту принадлежит много ваших плат, так что конвертер может быть использован повторно, или если вы можете просто снизить расходы на приобретение программатора на стороне клиента.

Если эта возможность возможна, на данный момент есть также собственный AVRISP от Atmel, который является хорошим выбором здесь вместо простого USB-to-Serial, хотя и немного устаревшего. Я думаю, что он достигает примерно 100 или 200 кбит / с, когда современные USB-последовательные преобразователи выходят на мегабитный диапазон. Но это очень надежно в отношении (неправильного) использования.

Другим хорошим вариантом может быть разъем TC2030. Для работы требуются только прокладки на печатной плате, но требуется определенный опыт (вы должны держать его на месте до завершения программирования).

Интерфейсы связи

Современные микроконтроллеры также поставляются с рядом других коммуникационных интерфейсов (Ethernet, WiFi, Bluetooth) и обычно могут быть перепрограммированы с помощью них. Примером может служить ESP32, который стоит около 6 долларов США и представляет собой SoC со всеми компонентами, необходимыми для соединения Wi-Fi. Также он совместим с Arduino (вы даже можете использовать IDE) и имеет очень подробный набор примеров, включая загрузчик WiFi OTA. Вам потребуется только Интернет-провайдер для первоначального развертывания загрузчика.

Если - как это звучит в вашем вопросе - ваш проект в основном завершен, это, вероятно, больше не вариант.

антипаттерн
источник
-2

Для того, чтобы ваш продукт можно было программировать в полевых условиях, используйте флэш- введите описание изображения здеськабель. Распиновка Arduino довольно распространенная. нет необходимости вставлять конвертер USB в последовательный, если ваши обновления не еженедельные. Для полевой установки я бы увеличил стоимость оборудования для полевого программирования, а не возможности полевого программирования в


Нет необходимости встраивать последовательный конвертер, если вам нужно прошивать реже.

Некоторые распространенные (и недорогие) преобразователи USB в последовательные модули основаны на следующих чипсетах.

FTDI - Драйверы для Windows и Linux, но драйверы могут
заглушить ваш кабель - избегайте CH340 - Драйверы для Windows и Linux
PL2303 - Драйвер для Windows и Linux

Драйверы легко доступны для платформ Windows и Linux. Я не могу много сказать об яблоке, так как не могу позволить себе яблочный ноутбук.

Я бы предпочел оставить USB-Serial вне моего проекта, если вероятность программирования в полевых условиях <50%.

Четан Бхаргава
источник