Índice:

Programador VUSBTiny AVR SPI: 3 etapas
Programador VUSBTiny AVR SPI: 3 etapas

Vídeo: Programador VUSBTiny AVR SPI: 3 etapas

Vídeo: Programador VUSBTiny AVR SPI: 3 etapas
Vídeo: Обновление прошивки USBASP программатора для AVR микроконтроллеров 2024, Novembro
Anonim
Programador VUSBTiny AVR SPI
Programador VUSBTiny AVR SPI

depois de fazer um programador ISP usbtiny e usá-lo por 6 meses, eu estava pensando em fazer outro para transportar. Gosto da simplicidade do design usbtiny do ISP, mas gostaria de torná-lo ainda menor e com menos peças. uma coisa no design original que quero alterar é eliminar o uso de cristal de relógio. uma solução que encontrei é que os drivers v-usb suportam o oscilador interno de 16,5 MHz em dispositivos attiny25 / 45/85. então eu iniciei este projeto para que o usbtiny isp empregasse v-usb para comunicação usb. os benefícios imediatos é que ele economiza espaço e tem menos contagens de componentes (sem mais cristais).usbtiny description from https://www.xs4all.nl/~dicks/avr/usbtiny/ USBtiny é uma implementação de software do USB de baixa velocidade protocolo para os microcontroladores Atmel ATtiny. Claro, também funcionará na série ATmega. O software foi escrito para um AVR com clock de 12 MHz. Nessa frequência, cada bit no barramento USB leva 8 ciclos de clock e, com muitos truques, é possível decodificar e codificar as formas de onda USB por software. O driver USB precisa de aproximadamente 1250 a 1350 bytes de espaço flash (excluindo as strings de identificação opcionais), dependendo da configuração e da versão do compilador, e 46 bytes de RAM (excluindo o espaço da pilha). A interface C consiste em 3 a 5 funções, dependendo da descrição de configuration.vusb de https://www.obdev.at/products/vusb/ V-USB é uma implementação somente de software de um dispositivo USB de baixa velocidade para Atmel's Microcontroladores AVR, tornando possível construir hardware USB com quase qualquer microcontrolador AVR, não exigindo nenhum chip adicional. Vídeo sobre construção e uso

Etapa 1: Recursos e peças

Recursos e peças
Recursos e peças

* lógica de programação do usbtiny isp, suporte avr-dude maduro * pegada pequena * componentes mínimos * dispositivos de alimentação de energia observe que as linhas io para o mcus alvo não são protegidas. você pode adicionar resistores de 1k-2k a SCK e MOSI e proteger contra possíveis referências de conexões erradas com base nos trabalhos encontrados em v-usb do framework https://www.obdev.at/vusb/ usbtiny isp https://www.xs4all. nl / ~ dicks / avr / usbtiny / lista de peças * attiny45 / 85 (85 é mais fácil de encontrar) * diodos zener 3,6v (1n747, BZX79,..evitar tipos 1W) * resistor 68ohm x 2 * resistor 1,5K * mini breadboard 170 pontos de amarração * cabo usb (cabo de impressora usb de loja de dólar está bem) * resistores de 1k / 2k para proteção de linhas io (opcional) ferramentas necessárias * um programador AVr funcionando (sim, é um catch22, precisamos de um para fazer um) * ambiente de programação avr em funcionamento

Etapa 2: Layout da placa de ensaio, esquemático e construção

Layout da placa de ensaio, esquemático e construção
Layout da placa de ensaio, esquemático e construção
Layout da placa de ensaio, esquemático e construção
Layout da placa de ensaio, esquemático e construção

construção

* Siga o layout da placa de ensaio, não há que muitos componentes, 3 resistores, 2 diodos, 1 capa, mais um MCU de 8 pinos. * obter um cabo de impressora usb de loja de dólar cortado da extremidade da impressora, haverá 4 fios expostos, prenda e transforme-os em um conector macho de 4 pinos, nós o usaremos para conectar à placa de ensaio. consulte o esquema para layout e atribuição de pinos (J1). * Cuidado com a polaridade do diodo.

construindo e atualizando o projeto

o projeto foi construído em uma caixa lúcida do Linux ubuntu com o conjunto de ferramentas avr-gcc. presume-se que você já possui esse ambiente ou pode descobrir na Internet como configurá-lo. os códigos-fonte são GNU gpl v2 licenciados por herança.

o código-fonte segue uma convenção recomendada por v-usb, você pode baixar o pacote-fonte vusbtiny.tgz e descompactá-lo em um diretório de projeto. dentro de seu diretório de origem, há um main.c, que é minha versão do programador usbtiny modificado. e um subdiretório usbdrv, que contém a camada v-usb. observe o prazo de licenciamento dos dois projetos acima ao construí-lo. minha fonte sobre a lógica do programador é baseada na versão de Dick Streefland e não na versão ladyada (embora sejam quase iguais).

para aqueles que não têm um build too-chain, você pode usar o seguinte binário

clique para baixar vusbtiny.hex

e usar o avrdude para atualizar o firmware

avrdude -c usbtiny -p t45 -e -V -U flash: w: usbtiny.hex

(se o seu dispositivo for um tiny85, substitua -p t45 por -p t85)

fonte pode ser baixada aqui clique para baixar vusbtiny.tgz

descompacte o pacote fonte em seu diretório de trabalho

tar -zxvf vusbtiny.tgz

* faça cd vsubtiny, para mudar para o diretório de trabalho vusbtiny * ajuste o makefile para o dispositivo alvo de acordo com o chip que você vai usar. isto é, PROGRAMMER_MCU = t45 ou t85 * faça um make * anexe seu programador ISP favorito * modifique makefile e mude seus parâmetros avrdude se necessário. o padrão assume o programador USBTiny. ou seja, AVRDUDE_PROGRAMMERID = usbtiny * firmware flash via make install

depois de atualizar o firmware, precisamos definir corretamente o fusível, estamos usando o pino 1 redefinido como io neste projeto

* relógio ppl usado conforme exigido pela camada v-usb para sincronismo usb * pino de redefinição desativado, pois precisamos usá-lo como io

avrdude -c usbtiny -p t45 -V -U lfuse: w: 0xe1: m -U hfuse: w: 0x5d: m -U efuse: w: 0xff: m

esta configuração desabilita a programação adicional via 5V SPI, pois precisamos do pino RESET (pino 1) para io. você precisará de acesso a um programador HVSP para recuperar o fusível.

Etapa 3: uso e aplicação

Uso e aplicação
Uso e aplicação
Uso e aplicação
Uso e aplicação
Uso e aplicação
Uso e aplicação

piscando direto na placa de ensaio

se você estiver usando o vusbtiny para fazer flash em dispositivos AVR de 8 pinos, basta pressionar o dispositivo de destino na parte superior do dispositivo programador. o programador foi projetado de forma que os pinos de programação correspondam aos alvos. há um truque, porém, você precisará isolar os pinos 2 e 3 no programador mcu, pois eles são os pinos USB D + e D- que se conectam ao PC. Eu uso um corte de fita adesiva para fazer isso, você pode ver nas fotos. mostramos abaixo um tiny13v "andando" no tiny45, pronto para receber firmware.

ISP piscando via jumper

para programar um circuito de destino via ISP (programação no sistema), você precisa de um cabo ISP. aqui, não estou usando os cabeçalhos de pino 2x3 ou 2x5 padrão. em vez disso, estou usando um jumper 1x6 que é mais amigável para protoboard, você pode fazer cabeçalhos de pinos 2x3 ou 2x5 mapeando-os para J2, conforme mostrado no layout e nos esquemas da protoboard. a foto a seguir mostra um tiny2313 pronto para receber flash via ISP.

solução de problemas

* não pode fazer o flash do firmware? verifique seu programador original, pode ser necessário ajustar o tempo via sinalizador -B no avrdude. tente ler o chip primeiro, pode ser um fusível ruim, pode ser o seu chip precisa de um sinal de clock externo. você pode precisar consertar seu chip de volta ao padrão primeiro. * verifique as conexões * se usar pinos io diferentes, verifique o código e as conexões * você pode substituir os diodos zener com tipos de 500mw, 400mw * você pode tentar reduzir o valor de R3 para 1,2 K ou menos * é mais provável que você encontre problemas de temporização avrdude, tente -B bandeira da avrdude, ter um cabo USB mais curto tudo ajuda

Recomendado: