Як правило, якщо ви даєте своїм клієнтам можливість спалахувати ваш пристрій, ви хочете, щоб вони не цеглили його.
Таким чином, головним пріоритетним забезпеченням є надійне та безпечне підключення до хост-пристрою. На мій досвід, всі мікросхеми працюють досить добре в міських та лабораторних умовах, на які я припускаю, що ви орієнтовані.
Враховуйте також час, який знадобиться для того, щоб компонент працював правильно - ваш обсяг виробництва складає низькі сотні, і ви додаєте 2 долари до кожного. Це "збиток" вартий більше, ніж ваш (або розробник) час? Добре задокументований чіп може бути насправді кращим вибором, навіть якщо він коштує дорожче.
CH340
Так, це справді погана ідея, принаймні, якщо ви хочете Plug-And-Play. Для мене на програмі Win 8.1 мені потрібно було вручну встановити драйвер ( CH340SER.exe
), який мені довелося завантажити з веб-сайту (китайського) виробника, який не мав (на той час) англійського перекладу.
Він проводився в Китаї, що може бути проблемою для людей, орієнтованих на безпеку, та осіб, пов'язаних з організаційними та / або політичними правилами. Крім того, це було перевершено як результат пошуку багатьох сумнівних сайтів для завантаження драйверів "Безкоштовно".
Якби це було якесь серйозне обладнання (на відміну від "просто" Ардуїно), це підніме мої брови до стелі. Установка вручну може також дуже дратувати, якщо ваші клієнти не мають спеціального обладнання для миготіння.
В іншому випадку ця мікросхема працювала як очікувалося.
CP2102
Не багато про що говорити, працювали поза коробкою і не викликали жодних питань. Можливо, мій вибір для середнього дизайну.
FTDI
У мене це є на самостійній платі USB-послідовного перетворювача, і він працює добре. Як ви писали, це досить дорого, але я вважаю, що це може бути кращим вибором у важких умовах (наприклад, роз’їдені контакти на роз’ємах, також EMI). Можливо, ви відчуєте тепле нечітке відчуття, оскільки ви підтримуєте оригінальних розробників.
Інші ідеї
ISP
Відповідно до відповіді @Chetan Bhargava, можливим було б мати роз'єм для SPI, а потім використовувати окремий USB-послідовний перетворювач.
Це також вимагає, щоб ви забезпечили надійний і безпечний у використанні роз'єм для підключення провайдера. Очевидно, що ви можете дешево придбати штифтові заголовки тут, але якщо ви хочете зробити це правильно (і / або недостатньо довіряти своїм клієнтам ), то цей роз'єм може бути дорожчим, ніж додаткова мікросхема та запасний USB-роз'єм. Послідовне підключення жорстоко налагоджувати, якщо вони не працюють, на відміну від USB, де клієнт принаймні отримає повідомлення про те, що USB-пристрій не працює.
Якщо ви з'єднаєте окремий перетворювач зі своєю дошкою, вам доведеться заплатити ціну і за плату перетворювача. Я припускаю, що це не буде дешевше, ніж інтегрувати чіп. Це може спрацювати, якщо кожен клієнт володіє багатьма вашими платами, тому перетворювач може повторно використовуватись, або якщо ви можете просто перенести витрати на придбання програміста на сторону замовника.
Якщо цей варіант є можливим, на даний момент також є власний AVRISP Atmel, який є хорошим вибором тут, а не звичайний USB-до-серійний, хоч трохи застарілий. Я думаю, що він скорочується зі швидкістю 100 або 200 кбіт / с, коли сучасні USB-послідовні перетворювачі переходять у мегабітний діапазон. Але це дуже надійно щодо (неправильного) використання.
Ще одним хорошим варіантом може стати роз'єм TC2030. Для роботи потрібні лише майданчики на друкованій платі, але потрібні певні знання (потрібно тримати її на місці, поки програмування не буде закінчено).
Комунікаційні інтерфейси
Сучасні мікроконтролери також поставляються з низкою інших комунікаційних інтерфейсів (Ethernet, WiFi, Bluetooth), і зазвичай їх можна прошивати за допомогою них. Прикладом може бути ESP32, який коштує близько 6 доларів США і являє собою SoC з усіма компонентами, необхідними для підключення до wifi. Крім того, він сумісний з Arduino (можна навіть використовувати IDE) і має дуже ретельний набір прикладів, включаючи завантажувач Wi-Fi OTA. Вам потрібен буде тільки провайдер для початкового розгортання завантажувача.
Якщо - як це звучить у вашому питанні - ваш проект в основному закінчений, це, мабуть, вже не є варіантом.