É horrível usar o CH340G em um produto comercial? [fechadas]


12

Estou desenvolvendo um produto de nicho que será produzido em um volume bastante baixo (centenas baixas). Estou usando um Atmega uC e um dos requisitos é a capacidade de ser lavável em campo pelo usuário. Meu plano é usar o carregador de inicialização do Arduino com um IC USB para UART (preguiçoso, eu sei, mas nesse volume é provavelmente a melhor opção).

Existem muitas opções. No momento, minha placa protótipo está usando o FTDI FT232RL, mas isso é muito caro para a produção, já que o preço para toda a placa é de cerca de US $ 20.

Os ICs que considerei incluem:

  • CH340G
    • Opção mais barata, mas qual é o status dos drivers assinados para OSX? Não consigo determinar se isso será completamente plug and play. Alguém sabe qual é o status disso?
  • CP2102
    • Robusto, sem preocupações com drivers assinados, etc. Mas é mais caro.
  • MCP2200
    • Também robusto, não se preocupe com drivers assinados. Como escolho isso em relação ao CP2102? Eles são quase o mesmo preço.

Existem outras "dicas" com as opções acima, exceto os drivers assinados? Não quero forçar o usuário a instalar drivers não assinados / adicionar um processo potencialmente doloroso ao procedimento de re-piscar, mas também não quero adicionar US $ 2 ao custo da lista técnica apenas para a capacidade de uso do usuário.

Qualquer orientação / conselho geral seria útil. Obrigado.


3
Você poderia apenas fornecer um cabo separado que pode ser adquirido se o usuário realmente quiser fazer uma nova atualização? Ou o reflash é essencial para o uso do produto?
DKNguyen 26/05/19

A atualização é essencial para o uso do produto, pois pode ser usado em muitos cenários diferentes e deve ser completamente reconfigurável pelo cliente em uma data futura para diferentes aplicações.
willem.hill 27/05/19

Um cliente geralmente possui apenas um dos dispositivos ou muitos? Se houver muitos dispositivos por cliente, o Chetan Bhargava pode ser uma boa opção: separar a interface de programação do próprio dispositivo.
jcaron

Um exemplo de um produto que usou um CH340 e teve que mudar para um CP2104 para a resolver problemas: github.com/sqfmi/badgy#rev-2b
jcaron

A melhor pergunta é se você pode comprar um chip CH340? Não havia fornecedores americanos que o transportaram da última vez que verifiquei.
CrossRoads

Respostas:


26

A opção mais simples, e a que eu recomendaria aqui, seria usar um microcontrolador que suporte USB nativamente e possa ser programado com um carregador de inicialização USB DFU (Device Firmware Update). Um exemplo desse microcontrolador é o ATmega32U4, como visto no Arduino Leonardo; outro é o ST ST323210. Mesmo que esses microcontroladores sejam um pouco mais caros do que o que você usaria de outra forma, o aumento no custo é provavelmente menor que o custo de uma interface USB UART discreta. O uso de uma única peça também reduzirá o tamanho geral e o consumo de energia do seu dispositivo.


16U2 é uma opção comum usada no Arduino Uno e Mega, compatíveis com OS X - versões ainda mais antigas.
Greenonline 11/06/19

1
@ Greenonline Mesma família que o 32U4 que mencionei, apenas uma versão menor.
duskwuff -inactive-

8

Há um driver fornecido pela Apple para o CH340, incluído nas versões recentes do MacOS. "AppleUSBCHCOM".


2

Geralmente, se você der aos seus clientes a capacidade de atualizar seu dispositivo com flash, você deseja que ele não seja bloqueado.

Assim, o principal fornecimento prioritário é uma conexão robusta e segura ao dispositivo host. Na minha experiência, todos os chips funcionam muito bem nas configurações urbanas e de laboratório, que eu suponho que você esteja alvejando.

Considere também o tempo necessário para que o componente funcione corretamente - sua contagem de produção é de poucas centenas e você adiciona US $ 2 a cada. Essa "perda" vale mais do que o seu tempo (ou do desenvolvedor)? Um chip bem documentado pode ser realmente uma escolha melhor, mesmo que custe mais.

CH340

Sim, é realmente uma péssima idéia, pelo menos se você quiser o Plug-And-Play. Para mim, no Win 8.1, eu precisava instalar manualmente o driver ( CH340SER.exe) que eu precisava baixar do site do fabricante (chinês) que não tinha (na época) tradução para o inglês.

Estava hospedado na China, o que pode ser um problema para indivíduos preocupados com a segurança e aqueles vinculados por regras organizacionais e / ou políticas. Também foi superado como resultado de pesquisa por muitos sites duvidosos de download de drivers "Free".

Se este fosse um equipamento sério (ao contrário de "apenas" um Arduino), isso estaria levantando minhas sobrancelhas para o teto. A instalação manual também pode ser muito irritante se seus clientes não tiverem equipamentos dedicados para piscar.

Caso contrário, esse chip funcionaria conforme o esperado.

CP2102

Não há muito a dizer sobre, trabalhou fora da caixa e não trouxe nenhum problema. Provavelmente seria a minha escolha para um design médio.

FTDI

Eu tenho este em uma placa de conversor USB-Serial autônoma e funciona bem. Como você escreveu, é bastante caro, mas acredito que pode ser uma escolha melhor em ambientes difíceis (por exemplo, contatos corroídos nos conectores, também EMI). Pode dar a você uma sensação confusa de calor, porque você apoia os desenvolvedores originais.

Outras ideias

ISP

De acordo com a resposta de @Chetan Bhargava, uma opção seria ter um conector para o SPI e, em seguida, usar um conversor USB-serial independente.

Isso também requer que você forneça um conector confiável e seguro para o ISP se conectar. Obviamente, você pode ficar barato com cabeçalhos de pinos aqui, mas se você quiser fazer o que é certo (e / ou não confiar suficientemente em seus clientes ), esse conector poderá ser mais caro que o chip adicional e um conector USB padrão. As conexões seriais são extremamente difíceis de depurar se não funcionarem, ao contrário do USB, onde o cliente será notificado pelo menos que o dispositivo USB não está funcionando.

Se você empacotar um conversor independente com sua placa, também terá que pagar o preço pela placa. Eu diria que isso não seria mais barato do que integrar o chip. Isso pode funcionar se cada cliente possuir muitas de suas placas, para que o conversor possa ser reutilizado ou se você puder apenas reduzir os custos de aquisição do programador para o lado do cliente.

Se essa opção for uma possibilidade, neste momento, também existe o AVRISP da Atmel, que é uma boa escolha aqui, em vez do USB-to-Serial simples, embora um pouco desatualizado. Eu acho que atinge cerca de 100 ou 200 kbps, onde os modernos conversores USB-Seriais vão para a faixa de megabits. Mas é muito robusto em relação ao uso (incorreto).

Outra boa opção poderia ser um conector TC2030. Ele requer apenas blocos no PCB para trabalhar, mas requer algum conhecimento (você deve mantê-lo no local até a programação terminar).

Interfaces de comunicação

Os microcontroladores modernos também vêm com várias outras interfaces de comunicação (Ethernet, WiFi, Bluetooth) e, geralmente, podem ser usados ​​com flash. Um exemplo seria o ESP32, que custa cerca de 6 USD e é um SoC com todos os componentes necessários para uma conexão wifi. Além disso, é compatível com Arduino (você pode até usar o IDE) e possui um exemplo muito completo, incluindo um carregador de inicialização WiFi OTA. Você precisaria apenas de um ISP para a implantação inicial do carregador de inicialização.

Se - como parece na sua pergunta - seu projeto estiver quase completo, provavelmente essa não é mais uma opção.


-2

Para que seu produto seja programável em campo / insira a descrição da imagem aquicabo flash, use um pino de cabeçalho comum. A pinagem do Arduino é bastante comum. não é necessário incorporar um conversor USB para serial se suas atualizações não forem semanais. Para uma configuração de campo, eu aumentaria o custo do equipamento de programação em campo, em vez da capacidade do programa em campo.


Não é necessário incorporar um conversor serial se você precisar piscar com menos frequência.

Alguns conversores USB (serial) comuns (e de baixo custo) são baseados nos seguintes conjuntos de chips.

FTDI - Drivers do Windows e Linux, mas os drivers podem
bloquear seu cabo - evite o CH340 - Drivers do Windows e Linux
PL2303 - Driver do Windows e Linux

Os drivers estão facilmente disponíveis para a plataforma Windows e Linux. Não posso dizer muito sobre a maçã, pois não posso comprar um laptop da apple.

Prefiro deixar o USB-Serial fora do meu projeto se a probabilidade de programar em campo for <50%.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.