FTDI Breakout com conector ISP adicional
TL; DR - Os seis pinos amarelos do ISP podem ser usados ​​como um ISP normal?
A placa de distribuição USB-TTL FTDI usual é assim:
Recentemente, deparei-me com uma variante do quadro mostrada abaixo. No entanto, para que servem os pinos amarelos adicionais neste quadro? Eles são rotulados como ISP.
Aqui está uma visão da parte traseira:
Então eles podem realmente ser usados ​​como um ISP / ICSP padrão?
No entanto, de acordo com o diagrama abaixo, que rotula os 6 pinos em questão, não tenho certeza de que exista uma correlação válida de linhas de sinal.
Ou seja, CTS para MISO, RI para RST, DSR para SCK e DCD para MOSI funcionariam? Ou é por isso que é necessária uma versão especial do avrdude, como mencionado no FT232RL: Adaptador USB para Serial 232 TTL -? E ISP? - pós # 6 :
Como um novo recurso, há um cabeçalho ISP de 6 pinos disponível. Com ele, avrdude e avrftdi, você pode programar os gerenciadores de inicialização Atmels e Arduino. Uma versão especial do avrdude com o driver FTDI compilado é necessária.
No entanto, o link fornecido para essa versão do avrdude, com o driver FTDI compilado, está inoperante.
Também é dito, no post # 7 , que esses pinos são realmente equivalentes a um conector X3, como encontrado nas placas mais antigas do Arduino Dicimila / NG / Duemilanove .
e esses (evidentemente) podem ser usados ​​dessa maneira, como um SPI um pouco danificado,
Deve-se observar que os pinos RI, CTS, DCD e DSR (RSD rotulado) estão disponíveis, ao longo dos lados da placa original do FTDI. Então, a placa de interrupção com o cabeçalho ISP apenas fornece acesso a esses mesmos sinais usando um cabeçalho diferente?
Estou um pouco confuso - acabei de pensar nisso, e essa placa de interrupção é simplesmente um cabeçalho ISP / ICSP e um conector FTDI enrolado em uma placa (quando usado com a versão apropriada do avrdude)? Ou não é um cabeçalho de ISP comum? Não consigo encontrar nenhuma documentação específica relacionada a esse tipo de breakout board, conforme indicado no post # 4 .
Alguém pode dizer, definitivamente, para que servem esses seis pinos? Se eles não forem um cabeçalho ISP normal, você poderia fornecer uma maneira detalhada de usá-lo? Um esquema seria útil.
Há um tópico sobre isso no Fórum do Arduino - alguém teve uma pergunta semelhante.
Eu encontrei um esquema (abaixo) que não é para essa placa, no entanto, os pinos do cabeçalho são rotulados da mesma forma que você encontrou, por isso é plausivelmente semelhante.
Parece que o cabeçalho é usado para o "modo Sincronizado de Bit Bang", conforme documentado aqui: Modos de Bit Bang para o FT232R e o FT245R (nota de aplicação AN_232R-01, nº de referência do documento: FT_000339)
De fato, você pode configurar esse cabeçalho para ser um programador SPI, como descrito, por exemplo, no FT232R Bitbang Programmer .
Fiz um teste porque tinha uma placa semelhante na minha gaveta de peças:
Ele tinha um cabeçalho de 6 pinos semelhante ao seu. Virando o quadro, podemos ver que eles foram rotulados exatamente da mesma forma que a sua:
Soldado em um cabeçalho (em amarelo, para ser consistente), me dando o seguinte:
Adicionei um ponto branco para indicar o pino 1 (visível na borda) para conectar o cabo da maneira correta.
Quando tentei usar o quadro, recebi esta mensagem da avrdude:
avrdude: error: sem suporte a libftdi ou libusb. Instale libftdi1 / libusb-1.0 ou libftdi / libusb e execute configure / make again
Então, ele teve que ser compilado do zero! Estou usando o Ubuntu 14.04, se você está tentando acompanhar. :)
Baixar avrdude
Acesse o site http://www.nongnu.org/avrdude/
Eu baixei a versão 6.3 fonte: http://download.savannah.gnu.org/releases/avrdude/avrdude-6.3.tar.gz
Instale libusb e libftdi
Antes de compilar, tive que pegar o libusb e o libftdi:
Compilar avrdude
Agora criamos avrdude após extrair o arquivo e navegar para sua pasta:
Encontre a configuração correta
Dentro do avrdude.confarquivo que vem com o avrdude eu encontrei (depois de algumas ponderações) esta parece ser a entrada correta:
O mapeamento de pinos para números funciona assim ... No PDF sobre o modo bit bang mencionado acima, temos esta tabela, com anotações em azul por mim:
Os números referem-se ao número do bit (ou seja, no intervalo de 0 a 7) no byte de dados "bit banged". Podemos ver no esquema anterior que, por exemplo, o MISO no cabeçalho do ICSP está conectado ao CTS no FT232RL. Assim, o MISO é o bit de dados 3, que dizemos a avrdude na configuração acima. Da mesma forma, o SCK é o bit de dados 5 e assim por diante.
Eu tentei testar assim:
Eu tenho um erro de permissões que foi corrigido criando um arquivo na pasta /etc/udev/rules.d/chamada 71-FTDI.rules. Dentro deste é:
Os números podem variar para o seu quadro. Você precisa encontrar o fornecedor e o ID do produto. No Ubuntu, você pode fazer lsusbe ver (entre outras coisas):
Observe os dois números hexadecimais que são copiados no arquivo de regras.
Depois de fazer isso, diga ao sistema para recarregar as regras:
Em seguida, desconecte e reconecte a placa FTDI para que ela observe as novas permissões.
Detecção da placa de teste
Finalmente, a linha avrdude acima funciona e lê o chip:
Eu tinha o meu conectado a um ATmega328P.
Exemplo conectado a um Diavolino
Quando chegamos até aqui, basta conectar a placa FTDI à placa de destino com um cabo direto.
A placa FTDI que você possui (e a que eu tenho) pode ser usada como programador ICSP para os chips AVR, conforme descrito acima. Assim, uma placa simples pode ser um conversor USB para serial e também um programador ICSP.
Vejo placas semelhantes sendo vendidas no eBay por cerca de US $ 5, o que provavelmente é uma opção de programação barata.
Obrigado Nick. Sim, esse tópico nos fóruns do Arduino é o que eu mencionei na minha pergunta, mas não ficou muito claro como usá-lo - mas apontou o blog do cabeçalho X3. O segundo link que você fornece parece expandir ainda mais esse tópico, excelente, obrigado. No entanto, ainda não há nenhum blog escrito especificamente para esse fórum em particular, o que é estranho.
— Greenonline 27/10/16
Acredito que, se você fizer isso, estará conversando com o FTDI como um dispositivo USB e não mais usando a API da porta serial do sistema operacional; portanto, pode haver problemas adicionais de configuração / driver / permissão, dependendo do sistema usado para hospedar isto. As peças FT4232H / FT2232H / FT232H, mais capazes da FTDI, costumam ser usadas dessa maneira como interfaces JTAG para processadores mais avançados.