Esquema de avr rápido. Fusíveis em microcontroladores AVR

O design do projeto e diretrizes para o uso de tábuas de depuração de Mikroelektronika foi baseado no design. Easyavr (e não apenas) fabricado por esta empresa atrai iniciantes para dominar a técnica de microcontroladora de qualidade de fabricação e uma variedade de componentes instalados neles. De fato, metade deles se torna desnecessária após a verificação na ação de cinco e seis programas de treinamento, assumiu-se, existem muitos LEDs e botões conectados a cada linha de cada porta. Mas eles precisam de um experimentador apenas até aprender a gerenciar sinais e indicadores flash, e isso acontece muito rapidamente. Na minha placa há apenas quatro LEDs e um interruptor, é o suficiente para começar ...

Desenvolvido pela taxa que dei o nome Fastavr. Tendo tamanhos 98x127 mm e uma instalação impressa unilateral, é bastante adequado para fazer em casa. Microcircuitos são aplicados apenas nos gabinetes DIP instalados no painel, o que facilita substituí-los no processo de experimento. O microcontrolador pode ser clocking tanto de um ressonador de quartzo quanto no gerador de relógio de frequência instalado no relógio com um divisor de frequência, um conector é fornecido para conectar o programador Stk-200 padrão com um feed seletivo e com a capacidade de conectar o jtag Adaptador, se necessário, você pode programar e um microcontrolador projetado para funcionar. Em outro dispositivo.

No conselho existem os dispositivos periféricos mais necessários para a embalagem de desenhos depurados: indicador de LED de sete-elementos de dois bits, LCD simbólico, RS-232, SPI, interfaces PS / 2 (para conectar um teclado de computador padrão ou "mouse" ), Eeprom microcircuit, dispositivo de sinalização de som. É possível conectar a maioria desses dispositivos a quaisquer conclusões de quaisquer portas microcontrolador em combinações arbitrárias Todas as portas estão disponíveis e para conectar dispositivos fora da placa. Disponível no conselho de dispositivos, incluindo um gerador de quartzo e indicadores LED, também pode ser conectado a dispositivos fora dele Todas essas conexões não exigem soldagem e são realizadas, instalando os jumpers entre as conexões disponíveis no quadro ou entre eles e dispositivos externos. .

Inicialmente, um conselho de depuração com um microcontrolador barato Atmega8, que possui quase toda a família inerente (AVR) com oportunidades, no entanto, decidi não salvar e aplicar o microcontrolador da mesma família no caso de conclusões do máximo possível, com o número máximo possível de conclusões (40) - atmega16 ou atmega32. A localização das conclusões que elas são as mesmas, e qualquer um pode ser instalado no quadro descrito. Um grande número de saídas permite conectar mais dispositivos periféricos diferentes que podem ser necessários ao depurar o programa. Como os microcontroladores da família AVR são compatíveis programaticamente, dedicados a um programa mais poderoso é fácil, por via de regra, para transferir para uma consideração menos poderosa, é claro, suas diferenças.

Na mesma instância do microcontrolador instalado na placa de depuração, muitos programas diferentes podem ser deputados. Software (Flash) A memória dos microcontroladores modernos permite tantos ciclos de reprogramação que, ao fazer inúmeras alterações no programa no processo de depuração, você não pode pensar sobre o possível esgotamento do recurso, mesmo quando os primeiros sinais desse aparecerem ( Algumas células de memória não são programadas a partir da primeira vez) microcontrolador, gastam no quadro de depuração, você não deve jogar fora. Pode ser programado pela última vez, enviar "para um trabalho permanente" para uma das estruturas anteriormente bem estabelecidas.

O esquema do nó principal do quadro Fastavr é mostrado na Fig. 1. Toda a conexão da periferia para as portas do microcontrolador DD2 é realizada através de pinos HR1-XP de 16 pinos de dupla linha de 16 pinos. Até mesmo pinos cada um deles estão conectados às saídas das portas do microcontrolador e ímpar - para disponível no quadro dispositivos periféricos. Ao montar um layout para depuração, o pino adjacente está convenientemente conectado a jumpers convencionais, e na remoção, em outro bloco, ou mesmo em outro conselho, são jumpers dos segmentos do fio isolado flexível, equipados em ambas as extremidades das conectas de os conectores (Fig. 2). Nos soquetes são tubos estatelíferos montados.


No processo de depuração para os mesmos pinos, é conveniente conectar instrumentos de controle e medição: osciloscópio, medidor de frequência, gerador de sinais de teste. A localização dos pinos em uma fila, a fim de aumentar o número da categoria portuária facilita a busca pelo direito e reduz significativamente o risco de confundi-los. Tal solução, na minha opinião, é muito mais conveniente do que o uso na maioria das debutboards industriais para conexões externas de conectores IDC-10 de duas filas décadas. A única vantagem é a presença de uma chave que fornece o encaixe correto com a parte de conexão do conector. E ao conectar um único fio ou a sonda do instrumento de medição, é necessário considerar os contatos todas as vezes, recordando a ordem de sua conformidade com as conclusões do microcontrolador.

Se os jumpers S2-S4 forem removidos, um S5 e S6 estiverem instalados, um Ressonador de quartzo ZQ1 está conectado a um gerador de relógio interno de um microcontrolador, cuja frequência pode ser selecionada por qualquer necessária para a tarefa resolvida. O Conselho também possui um gerador de quartzo integral G1 para 16 MHz. Os gatilhos de chip DD1 dividem sua frequência para dois e quatro. Depois de remover o jumper S5, S6 e instalar um dos jumpers S2-S4, é possível submeter-se à entrada do relógio do microcontrolador (saída 13) pulsos com uma frequência de 4, 8 ou 16 MHz. Isso garantirá a operação do microcontrolador com qualquer configuração na qual o gerador interno do relógio RC está desligado.

Um relógio de um gerador externo pode ser útil e restaurar o desempenho do microcontrolador, cuja configuração é solicitada erroneamente. Você pode ler sobre isso.

Embora o microcontrolador contenha sua própria memória de dados não volátil, muitas vezes é insuficiente para uma tarefa sólida. O problema pode ser resolvido conectando-se ao microcontrolador da microcircuição de memória externa do volume desejado. No quadro Fastavr, isso é feito de acordo com o esquema mostrado na Fig. 3 DS1 Chip 24c ou 24lc série - memória não volátil reprogramada com interface I2C. As entradas de AO-A2 estão conectadas de tal forma que a descarga mais nova de seu endereço LED no barramento da interface é 1 e os dois a seguir são zero.

Na Fig. 4 mostra o esquema disponível no Conselho de Controle e Indicação Fastavr. O SHIFT DIP Quádruplo SA1 é conectado às conclusões das portas do microcontrolador. Os resistores R4-R7 protegem essas conclusões se forem programadas aleatoriamente como saídas de sobrecarga quando fechadas. Os resistores de montagem DR1 suportam um alto nível lógico nas entradas do microcontrolador quando os switches SA1.1-SA1.4 estão abertos. O quinto resistor de montagem "extra" também pode ser usado para enviar um nível tão em qualquer cadeia.
Quatro LEDs de sinal HL1 -HL4 estão brilhando em altos níveis lógicos nas saídas a que estão conectadas e não serão acesas em baixa. Resistores R8-R11 Limite a corrente.

Switches de eletrodos comuns de indicador LED de sete elementos de dois tamanhos HG1, coletados em transistores VT1-VT4. Eles podem controlar indicadores com os ânodos comuns (por exemplo, DA56-11) e com cátodos comuns de elementos (por exemplo, DC56-11), você só precisa fornecer a polaridade necessária dos pulsos de controle formados por software fornecidos ao R12-R21. resistores. Tais indicadores são fáceis de encontrar nos registros de caixa e blocos de sistema de computadores. Depois de remover o jumper S7, você pode desativar o elemento h (ponto decimal) da descarga inferior do indicador HG1.

O conector XP5 é usado para se conectar à placa Fastavr de LCD simbólico comum com controladores internos. Na verdade, este é um conector IDC-34MS de 34 pinos de duas linhas, mas apenas 14 dos 17 contatos de uma linha são usados. Seus números mostrados no diagrama não correspondem ao conector padrão para isso, mas coincidem com as descobertas do LCD mais comum. A presença de tal conector permite que você use para se comunicar com o indicador com um cabo plano padrão 34-Pro-aquaixo do computador, projetado para conectar a unidade de discos flexíveis com placa-mãe. Nas aberturas dos locais de contato da interface do LCD inserido e soldado a eles um bloco de pinça de 14 pinos. Um conector é colocado nele cabo planoE o segundo é inserido no conector XP5. Contactos Milhares são conectados às saídas das portas do microcontrolador de acordo com o esquema de inclusão no dispositivo de depuração. A placa com o indicador conectado é mostrada na FIG. cinco.

O método descrito de conectar o LCD é relativamente complexo, mas é conveniente porque os indicadores tipos diferentesTendo o mesmo cocoovka, você pode mudar rapidamente, sem arriscar para confundir a ordem de conexão de suas conclusões com os portos do microcontrolador. R23 Resistor Rápido serve como um regulador de contraste.

O dispositivo de sinalização sem som B1 é um emissor eletromagnético de 80 ohm resistência, encontrado na placa-mãe do computador. O diodo VD1 suprime as emissões de tensão de auto-indução decorrentes da sinalização do alarme quando é alimentado por tensão de pulso. Reduza resistores de resistência R22 para aumentar o volume de som, não deve ser. Isso levará a uma saída de microcontroladora.

Pequeno conselho. Não se esqueça no final do procedimento do programa de geração sinal sonoro Envie uma configuração de comando nível baixo Na saída do microcontrolador PD7. Se o nível aqui for alto, a corrente através do emissor do B1 continuará a fluir e faz uma pausa entre sinais, o que levará a um aumento geral do consumo de energia por um microcontrolador.

Esquema interfaces externas O quadro de depuração é mostrado na Fig. 6. Para o conector XS1, você pode se conectar teclado de computador ou "mouse" e conecte o conector XS2 com a porta COM do computador. O DA1 Microcircuito incluiu de acordo com o esquema típico, coordena os níveis de sinais RS-232 e um microcontrolador. Os jumpers S8-S10 são seções finas de condutores de impressão, que podem ser cortados se for necessário usar não apenas informações, mas também os sinais de controle da interface RS-232 no dispositivo depurado.
Os engasgos L1-L5 suprimem a interferência de alta frequência. Estes são pequenos tubos de ferrite nos fios. Tal facilmente encontrar em placas de computador.

Para fazer upload de um código de programa Microcontroller instalado na placa FASTAVR, o conector XP6 está conectado ao programador. No momento de trabalhar com ele, o jumper S1 (ver Fig. 1) é recomendado para ser removido desligando a cadeia da instalação inicial do microcontrolador na placa. Se o programador tiver sua própria fonte de energia, é necessário remover o jumper S11. Quando estiver instalado, o programador é alimentado por tabuleiro de depuração.

Eu usei um programador semelhante ao stk-200. Seu diagrama e desenho da placa de circuito podem ser encontrados na Fig. 8 e 9 V. Neste programador, apenas um chip kr1564ap5 (74HC244AN) é conectado à porta LPT do computador. Instalar o ressonador de quartzo no programador não é necessário, ele está no tabuleiro de depuração. Ao trabalhar com este programa programador e Ponyprog em um computador com processador Core2Duo +, chipset de 1965 e operação sistema do Windows. XP SP3 Nenhum problema surgiu.

O circuito da coleção do tabuleiro de depuração é mostrado na FIG. 7. Entre em contato com 3 conector XP7 de fonte externa Você pode enviar uma tensão estabilizada +5 V. Jumpers S12, S13 deve ser removido. Se houver uma fonte de uma voltagem constante de 9 ... 16 V, sua saída positiva é conectada ao contato do 2 do mesmo conector e os jumpers instalados S12, S13. Nesse caso, a tensão externa estabilizada não é necessária, é obtida usando o estabilizador integral da2.

Quando o LED HG1 não é usado e quaisquer dispositivos externos não estiverem conectados à placa, a temperatura do estabilizador da2 é pequena. Se, apesar da presença de dissipação de calor, o estabilizador é fortemente aquecido, recomenda-se alternar para a energia de uma fonte de tensão poderosa suficientemente externa 5 V. sobre a presença de tensão de alimentação sinaliza o LED HL5.

Diodos VD2 e VD3 protegem a polaridade incorreta da fonte de alimentação. Tracos (tubos de ferrite) L6 e L7 suprimem a interferência de alta frequência. CT12-X17 (+5 v) e HT18-HT22 (total) e HT18-HT22 (total) e HT18-HT22 (total) pode ser usado em vários dispositivos externos. Além disso, os contatos HT18-HT22 estão convenientemente conectando o fio total de instrumentos de medição.

O desenho da placa de circuito é representado na Fig. 8. É unilateral de um fibra de folha com uma espessura de 1,5 mm. Observe que as duas linhas deslocadas em jumper do fio isolada são instaladas a partir dos condutores impressos. O resto é feito a partir do fio sem isolamento e está localizado no lado da peça. Para o DA1, DD1, DD2, Chips DS1 e o indicador LED HG1, o painel está instalado na placa, que permite substituir rapidamente esses elementos, se necessário. Na ausência de tubos de ferrite, em vez de sufocos L1-L7, você pode instalar jumpers.

Ao lado do conector XS1, há um espaço de destino para outro mesmo conector indicado pelo XSV. Embora suas conclusões não estejam conectadas em qualquer lugar, ele permite instalar facilmente um soquete duplo MDN-6F com uma placa-mãe de computador. Conector XS2 - soquete DB-9F.

CHR1-HR4 PIN, pinos HT1 -HT22 e destinados à instalação de jumpers S1 - S7, S11-S13 são feitos de conectores de duas linhas da série PLD Série ou pls de linha única. Para obter o número desejado de contatos, eles são separados dos segmentos do comprimento ou segmentos correspondentes com contatos ausentes são adicionados.

Por favor, note que existem almofadas de contato gratuitas ao lado dos sites de contatos para pinos PT4-HT11. Isso permite que você instale um bloco de dois pinos de duas filas aqui, não sujeito a "soltar" com recomates freqüentes. Sobre o conector KHR5 (IDC-34ms) foi disseram anteriormente. O conector XP6 (para o programador) é a década da mesma série (IDC-10ms). O conector de potência XP7 de três pinos é removido da placa-mãe, onde foi usado para conectar o ventilador. Isso retirou o problema de procurar a resposta do conector, que é projetado para se conectar à placa de alimentação.

Na parte inferior (de acordo com o desenho) da placa, há um campo retangular preenchido com locais de contato - uma reserva para colocar todos os tipos de elementos adicionais que podem ser necessários durante a depuração. No pagamento feito por mim, foi instalado aqui, por exemplo, um resistor variável com uma denominação de 22 COM. Foi preenchido com uma tensão de +5 V, e o ajuste ajustável removido do motor foi usado para verificar o microcontrolador ADC.

A interface RS-232 é muito conveniente de usar quando depurando, adicionando a depuração no programa ao módulo que envia as informações necessárias através do microcontrolador de USART. Em execução no computador, com uma porta COM, conectada ao conector XS2 da placa de depuração, o programa de terminal, você pode monitorar as mensagens recebidas.


Eu usei o programa terminal v1.9b, que pode ser encontrado na Internet com qualquer motor de busca. A janela deste programa com exemplos de mensagens recebidas do dispositivo sendo deputada e transmitida a ele é mostrada na Fig. 9. Para uma exibição normal do texto russo, você deve clicar no botão "Definir fonte", selecione a fonte - Arial na janela que se abre - o tamanho usual é 8, o conjunto de símbolos é cirílico.

Arquivo PCB no formato Sprint Layout 5.0 e exemplos de programas que demonstram o trabalho disponível no conselho dos nós:

LITERATURA
1 Baranov V. Recuperação da configuração dos microcontroladores AVR. - Rádio. 2009, № 11, p. 26-29.

S. Borisov, Knotovaya Tula Region.
Rádio Nos 8-9 de 2010.

Muitas vezes é necessário usar o controle de qualquer dispositivo (se a lâmpada incandescente, o motor, um bronzeado ou um led simples) é via PWM.

Provavelmente explicar o que é e no que o encanto do controle de calço não é necessário, já existe muita informação na internet, e é improvável que sejam enganar este tópico melhor. Portanto, passaremos imediatamente a negócios, a saber, vamos iniciar o PWM no atiny2313 meios de Bascom-AVR.

PWM B. microcontroladores AVR. Trabalha nos temporizadores dos contadores, no Tiny2313 MK de tais temporizadores de apenas Timer0 de 2: 8 bits, considerando até 255 e 16-bit timer1 capaz de contar para 65535. Cada temporizador controla dois canais PWM, assim todo o hardware ser implementado até 4 canais shim.

Informações sobre o número de canais de PWM e a descarga de cada canal podem ser enchentes nas páginas da folha de dados para o microcontrolador.

Assim, a bordo do atiny2313 há dois canais de 8 bits de WIM trabalhando no Timer0 e mais dois canais que funcionam temporizador de timer1 têm um bit programável de 8 a 10 bits. No Datashet, essas pernas são assinadas da seguinte forma:

Para configurar o Timer1 Timer para gerar PWM no Bascom, basta anotar a seguinte linha:

Config timer1 \u003d pwm, pwm \u003d 8, comparar um pwm \u003d limpar, comparar b pwm \u003d limpar, prescale \u003d 64

Pwm \u003d 8 Seleciona o bit pwm, para o temporizador1, pois foi escrito acima também pode ser pwm \u003d 9 ou pwm \u003d 10.

Compare A / B PWM \u003d Limpar / limpar aqui você configura o estado ativo para cada canal PWM (A e B).

Prescale \u003d 64 - String de configuração já familiar que é responsável pela pré-divisão da frequência de transbordamento do temporizador em este caso O divisor definirá a frequência de PWM. Podemos mudar a seu critério Prescale \u003d 1 | 8 | 64 | 256 | 1024


O ciclo de trabalho do sinal gerado é determinado pelo valor que escrevemos para os registros de comparação OCR1A e OCR1B (temos dois canais, temos dois em um temporizador, aqui um registro no canal A e B). Com os valores que estão nesses registros constantemente comparam constantemente o valor do registro de contagem (é copiado para o temporizador), quando eles são coincididos, a mudança do pé MK para o estado ativo, e o registro de contagem continua a ler valor máximo. Tendo examinado para o máximo, o temporizador começa a contar direção opostae atingindo até que os valores do registro de contagem e registro de comparação se coincidem novamente, ele voltará ao pé do microcontrolador (veja a figura abaixo).



Para nós, os registros de comparação OCR1A e OCR1B são apenas variáveis, nos quais podemos colocar algum valor. Por exemplo, então:


Ocr1a. = 100
Ocr1b \u003d 150.


Em um banquete por conveniência, outro nome desses registros também é fornecido: pwm1a e pwm1b, portanto, as linhas anteriores serão equivalentes da seguinte forma:


Pwm1a. = 100
Pwm1b \u003d 150.

Agora vamos entender como a configuração de status ativo da limpeza / clear down afeta o que está acontecendo na saída PWM, dependendo do registro de comparação.

Quando a saída é configurada como comparar um status de saída ativo PWM \u003d Limpar, é um alto nível e com um aumento no valor de registro OCR (PWM), a tensão proporcional nessa perna crescerá. Com precisão, pelo contrário, tudo acontecerá se a saída estiver configurada como comparar um pwm \u003d limpar. Tudo isso é bem ilustrado na foto abaixo.



Os valores que esses registros de comparação podem assumir como o canal shim é escolhido. No pwm \u003d 8 (pwm de 8 bits) é possível de 0 a 255; no pwm \u003d 9 de 0 a 511; Com pwm \u003d 10 de 0 a 1023. Aqui eu acho que tudo está claro.


Agora, um pequeno exemplo: conecte os LEDs ao microcontrolador, conforme mostrado no diagrama (a potência do MK no diagrama não é especificado)


E escreva um pequeno programa:


$ Crystal \u003d 4000000

Config timer1 \u003d pwm, pwm \u003d 9, comparar um pwm \u003d limpar, comparar b pwm \u003d limpar, prescale \u003d 8
CONFIG Portb.3 \u003d Saída
CONFIG Portb.4 \u003d Saída

Incr pwm1a. "Aumentar suavemente a regalidade de comparação OCR1A
Incr pwm1b. "Aumentar suavemente o valor do registro de comparação OCR1B

Garçons 20. "Adicionar atraso

Laço.

Fim.

Após compilado e interromper o programa no controlador, um dos LEDs (D1) irá suavemente digitar o brilho, e o outro (D2) irá


Se você agora cutuca o osciloscópio no rendimento do PWM, podemos ver uma imagem com uma unidade de troca de pulsos (sinal azul no OS1A, vermelho no OS1V):


Configuração do temporizador Timer0. Para gerar pwm, quase o mesmo, exceto que o temporizador é um temporizador de 8 bits e, portanto, o PWM gerado por este temporizador sempre terá um pouco de 8. Portanto, configurando este temporizador, o bit PWM não especificará:

Config timer0 \u003d pwm, comparar um pwm \u003d limpar, comparar b pwm \u003d limpar, prescale \u003d 64



Agora, um exemplo semelhante com LEDs, mas agora o PWM gerará com temporizador0:


$ regfile \u003d "attiny2313.dat"
$ Crystal \u003d 4000000

Config timer0 \u003d pwm, comparar um pwm \u003d limpar, comparar b pwm \u003d limpar, prescale \u003d 8
CONFIG Portb.2 \u003d Saída
CONFIG PORTD.5 \u200b\u200b\u003d Saída

Incr pwm0a " aumentar suavemente o valor do registro OCR0A
Incr pwm0b " aumentar suavemente o valor do registro OCR0B

Garçons 20. "Adicionar atraso

Laço.

Fim.

Conecte os LEDs à saída do Timer0 PWM, conforme mostrado no diagrama:

Tudo é semelhante: O primeiro LED (D1) irá ganhar suavemente o brilho, e o segundo (D2) sairá sem problemas.


Contagem de frequência de geração de calço

Se você quiser descobrir a frequência da geração de engrenagens, então não é difícil. Olhe para a fórmula abaixo:

PWM Frequency \u003d (Frequência de quartzo / deslocamento) / (Contagem do tamanho do registro * 2)

Por exemplo, vamos calcular vários valores:

1. Frequência de quartzo \u003d 4000000 Hz, deslocamento \u003d 64, pwm bit 10 bits \u003d\u003e contagem de tamanho do registro \u003d 1024

Frequência PWM \u003d (4000000/64) / (1024 * 2) \u003d 122 Hz

2. Quartzo de frequência \u003d 8000000 Hz, offset \u003d 8, pwm bit 9 bits \u003d\u003e Contagem do tamanho do registro \u003d 512

Frequência PWM \u003d (8000000/8) / (512 * 2) \u003d 976,56 Hz

3. Frequência de quartzo 16000000 Hz, offset \u003d 1, pwm bit 8 bits \u003d\u003e Contagem do tamanho do registro \u003d 256

Frequência PWM \u003d (16000000/1) / (256 * 2) \u003d 31250 Hz

O Fastavr Universal Debug Board para iniciantes na programação do Atmel MK é baseado em uma análise de cerca de uma dúzia de desenhos semelhantes. A taxa é um compromisso razoável entre a funcionalidade redundante da maioria deles ou características demasiado primitivas dos outros. Ter alguma experiência em trabalhar com diferentes sistemas de microprocessadores, abaixo vou comentar meus pensamentos, como um ou outro nó de conselho foi concebido. Concordo com eles ou não - o seu negócio, mas pode ser parcialmente eles serão úteis para dominar o AVR no futuro ...

O design do design foi baseado no desenvolvimento e ataques de microeletrônica (http://www.mikroe.com/ru/). Mas as taxas de easyavr (e não só) contêm muitos componentes que são atraídos pelo variástico e qualidade dos recém-chegados em equipamentos microprocessadores, na verdade metade deles se tornam desnecessários após uma compilação bem-sucedida de 5-6 exemplos de programas e ganhando experiência. Você acha porque você precisa de um monte de LEDs e botões conectados a cada porto? Tudo isso é verdade enquanto você não aprende como controlar os portos do porto e lançar indicadores, e isso vai acontecer muito rapidamente ;-) Existem 4 LEDs sobre este caso na placa, e o comutador é bastante ...

Então, as possibilidades de debug board:

  • conjunto de periferia principal para suporte a Atmega: Conversor RS-232, Biper, SPI EEPROM, LCD e LED indicadores, gerador de relógio embutido + quartzo, teclado PS-2, testador ADC, testadores lógicos;
  • a capacidade de repetição em casa, a placa de circuito impresso unilateral é otimizada para a tecnologia de ferro a laser, tamanho pequeno;
  • aplicando todos os componentes apenas em gabinetes de mergulho, facilita a substituí-los no processo de experimentos ou programar o próprio processador para outros esquemas (por exemplo, para JTAG);
  • suficiência funcional completa para criar protótipos simples de dispositivos e depurá-los;
  • conector Standard SPI SPI SPI com fonte de alimentação seletiva para o programador, a habilidade conexão externa Jtag;
  • a capacidade de habilitar a placa no modo de gelo JTAG com simples recomendação;
  • a possibilidade de comutação independente da periferia em qualquer combinação devido à tecnologia linear da localização de todas as portas MK;
  • a possibilidade de fácil conexão de qualquer periférico externo e uso por 100% dos recursos do Atmega em DIP-40, todas as portas são anormadas, além - todos os periféricos internos do conselho permite que você use para dispositivos externos (por exemplo, um relógio gerador ou indicadores de LED;

Tudo isso não requer refinamento de taxas ou soldagem. Então Na fase inicial do desenvolvimento das possibilidades MK de Fastavr é bastante suficiente. Aquele que quer seguir em frente, após a criação de seu próprio software, pode decidir de forma independente que ele precisa especificamente e fazer o protótipo do design com seu próprio conjunto de periféricos. Mais uma vez, o recibo é criado para iniciar o estudo do MK AVR, ninguém foi perseguido. A aparência da documentação em si está associada ao interesse que muitos iniciantes estão desenvolvendo esse tipo Controladores ou ainda pensam onde começar. E você precisa começar naturalmente com a taxa de teste ;-)

Controladores MK AVR-Auto-suficientes, no entanto, o processador não é todo o sistema. "Cubos" que servem ou controlados por eles, sozinhos podem ser vistos como blocos separados de estruturas futuras. Ao combiná-los na placa principal, você pode juntos combinando os resultados necessários. A princípio, a taxa foi concebida com base no atmega8, porque Ele é barato e tem quase todas as capacidades do AVR. No entanto, pairando o conselho, decidi não salvar e colocar o microcontrolador microcontrolador-atmega16 como acessível no caixa dip ou 32. Codeolevka de ambos MK é idêntico. O custo de tal solução por cem vezes compensa pelo número de portas de E / S para o qual pode ser conectado pelo menos para o tempo de depuração. Compatibilidade do baixo para cima para todas as gerações AVR permite que você escreva e debug programas usando um chip mais poderoso e faça uma compilação para o cristal de destino. O recurso suficiente do Flash permite não "preencher" nas limitações nas possibilidades de reprogramação do mega, especialmente porque é possível trabalhar o suficiente, enviar para viver o mk para o design de trabalho, costurando-o pela última vez (Jtag Ice é o primeiro desafiante)

Para a fabricação do conselho, levará um pouco de um computador apropriado "lixo", que é suficiente nas salas de armazenamento de qualquer eletrônica. A maioria dos componentes é aplicada de antiga ou recusada motherboards. A tecnologia IBM PC ou perto de computadores, recentemente ferro desse tipo é cada vez mais desmontagem e é jogada sem uso. Porque Com pequenas coisas smd, praticamente nada para fazer qualquer coisa (classificar o problema, e o tempo ...), eu retiro tais dispositivos inteiramente ou um secador de cabelo ou um fogão elétrico.

A descrição principal do Fastavr abaixo está bloqueando:

Comida. O estabilizador embutido a 78 (m) 05 permite que você pegue uma taxa de adaptadores generalizados 9-12V tirados de outros equipamentos que geralmente estão ociosos. Na inclusão usual disso, é suficiente (MEG-16/32 + LCD + RS232 + TXO), ao usar um LED típico de 7 segmentos, ou uma periferia externa altamente voraz (programador complexo), o estabilizador já está muito quente. Conectando uma tensão estabilizada externa + 5V é possível através do PIN-3 X1 (o conector dos refrigeradores do matthew) é aplicado). Anteriormente, você deve desativar os jumpers JP1-JP2 do grupo VCC_SEL. X1 desse tipo é escolhido por várias razões, o principal quase sempre pode fazer um adaptador para alimentar o quadro de diferentes adaptadores que estão disponíveis ou laboratorial BP. Páscoa Ferrite Botas (balun) FB1, FB2 Filter Pulse Interference e RF Dica. Em diodos vd1, VD2 realizada de "vigilância". Em vários lugares, as placas são instaladas vcc_ext e gnd_ext jumpers. Através deles, é suficiente simplesmente quando conectar a periferia para remover a tensão de alimentação e a "terra" geral.

A memória externa é implementada no padrão I2C EEPROM 24CXXX. Embora o próprio AVR contenha sua própria memória não volátil, mas em muitos desenhos, um chip externo pode ser preferível devido ao volume do recurso. O circuito de inclusão é padrão, o endereço do cristal 0x01.

Indicadores de estado de porta LED linear HL2-HL5 são feitos em 4 LEDs discretos. Para o início dos experimentos com o AVR, isso é suficiente, mais do seu número, considero que não é justificado e bastante decorado. LEDs são incluídos ao escrever para o log de porta. "1", assim por diante O status da porta é exibido sem inversão de sinal, que é conveniente e visual.

Conectando-se à placa indicadora LCD é feita através de 2 conector, é possível usar o modo de 8 bits e 4 bits. O primeiro destes é a unidade de 34 pinos x2 (a partir de 3,5 ") permite que você use loops recarregados padrão das unidades do comprimento desejado, respectivamente, no próprio indicador, é melhor ocultar uma linha de jumper (PIN- bloco), permite-lhe alterar rapidamente indicadores diferentes sem medo converter conclusões. A conexão com as portas da ABRA é realizada através do bloco de PIN X10, que, além do modo de conexão LCD, você pode selecionar flexivelmente as conclusões do MK. Este design permite que você se adapte facilmente às portas gratuitas do controlador, até mesmo "Disque" em uma das portas de grupos diferentes, que é necessária quando configurada para um protótipo de partida particularmente depurada ou uma placa de circuito impresso recém-construída, ela acaba mais convenientemente na fiação.


Em muitos casos, o uso de um indicador LCD não pode ser justificado por preço, dimensões ou confiabilidade. Por exemplo, no mais simples carregador Ou o temporizador pode trabalhar duro e o indicador LED de 2 bits. Na presença de indicadores duplos de 7 segmentos do tipo comum com uma altura de sinal de 14mm, ambas com um ânodo comum e um cátodo comum (registradores de caixa e blocos de sistema 486 computadores). Eu tive que aplicar chaves de 2 tempos no VT1-VT4 para conectar qualquer tipo de indicadores e, em conformidade, o próprio indicador de tela para que no futuro não quebre sua cabeça com circuitos.

Todos os periféricos de conexão para as portas do Atmega, conforme observado anteriormente, são feitos através de pino X3-X6 linear. Principalmente nos encargos da dívida, observei o uso de conectores IDC-10 (2x5). A única vantagem, nesta é a presença de uma "chave", a fim de não levar a pluma em lugares quando conectados. Portanto, as vantagens de tal método terminarão e as deficiências começarem - até mesmo visualmente inconvenientes para trabalhar com portos de 8 dígitos, porque Conclusões não estão localizadas seguidas, é impossível, exceto para o loop conectar a periferia embutida. O uso de blocos de PIN confere diretamente o resultado oposto, exceto que, através do jumper-jumper padrão, é fácil controlar todos os sinais de cima, por exemplo sonda lógica Ou o osciloscópio, você não precisa cutucar e contar o medo do porto do porto por acaso "para bloquear conclusões". Adicione aqui o máximo mais baixo e a reutilização desta conexão, porque é muito mais fácil substituir um loop ou jumper do que o conector encarregado da taxa. Além disso, agora à venda, mesmo em nosso outback você pode encontrar tais partes de resposta dos conectores (ou use de unidades antigas do sistema), o que facilita e rapidamente combina conectores (Fig.)


Para som, um toque comum com uma resistência de cerca de 80 ohms de Mattlat foi aplicado. O sinal não é muito alto, mas suficiente para controlar (R23 e assim selecionado no limite). Uma chave separada que eu não coloquei ninguém que quisesse reconstruí-lo em lugares para maketing designado como Temp. Um pequeno conselho - trabalhando com som, não se esqueça no final do procedimento para gerar um sinal para colocar um comando caindo no log. "0" saída PD7, caso contrário, depois de parar a geração, pode permanecer "1" e atualmente O orador continuará a ir que não haja bom, porém, por considerações do consumo total do AVR-A.

No switch DIP de 4 bits SW4, os sinais lógicos para portas são montados. Aqui, a situação com o número é semelhante a LED LEDs. Porque As entradas de Avrov têm resistência interna do pool-up, respectivamente, "suspensórios" para fornecer necessidade de refeições. Os resistores R18-R21 contêm proteção contra erros de inclusão acidental de portas MK na saída. Na auditoria do Conselho 1.03 e acima, o interruptor DIP pode ser substituído por jumpers. Eu recentemente precisava fazer rapidamente a partir do quadro de gelo do jtag. Em relação à qual Rev 1.4, a matriz de resistor RN1 foi introduzida, o que permite que o hardware forme uma palestra "1" em várias entradas do controlador. Se você não precisar, você não pode instalar o RN1.

O tato no MK é selecionado pelo cl_sel PIN-GROUP e pode ser realizado a partir de um ressonador externo de quartzo Z1 (somente JP37, JP38 é instalado), um gerador de quartzo integral G1 (16 MHz) ou de um divisor para: 2 e: 4. Então Além de quartzo, você pode pisar o processador com frequências de 16, 8, 4 MHz. Você pode facilmente estimar a velocidade do programa sendo depurada ou obter uma freqüência padrão com um especial selado. quartzo. Em princípio, na ausência de TXO em esta frequência Você pode aplicar qualquer outro gerador a 16 MHz. O gerador também pode ser útil para você quando "levantando" o mk devido a piscar incorretamente o microcontrolador FIom, nesse caso, a frequência do relógio não desempenha a função.

O conversor de nível de interface serial RS-232 para o UART é um atributo constante da maioria dos sistemas no AVR. Aqui você não precisa "reinventar a moto", o padrão Max232 é o suficiente. Apenas sinais RX-TX estão envolvidos, o que é o suficiente para a maioria das aplicações. Você pode praticamente conectar CTS-RTS para controle de fluxo de hardware sem retrabalhar a placa, fios flexíveis no JP31-JP32 a partir das faixas. No esquema, Maxim Max232, TI Max232 e Sipex SP3232 - colocar quaisquer contrapartes são verificados na máxima Max232, TI Max232.

O teclado da matriz externa pode ser feito em uma placa separada e conecte-se às plumas do MC (decidi aplicar-se a partir dos manipuladores do mouse, como uma regra 2 Micrikka sempre é bom). Na placa de depuração, um duplo conectores PS-2 está instalado. O teclado IBM PC padrão é conectado sem melhorias de hardware, naturalmente com o suporte de software apropriado do AVR. O segundo conector é gratuito, use a seu critério. Como regra, o teclado é uma coisa muito específica, dependendo da dívida proteótipo, então depois de alguns passos decidi não colocar nem mesmo os botões mais simples do conselho. Eu vou colocar suas placas após a fiação e seus testes.

O indicador HL7 é definido para experimentos com controlador pwm de hardware integrado.

O conector para programação seqüencial intrahemny X7 é feita de acordo com a STK-200. O poder no programador pode ser escolhendo seletivamente via JP43. No meu caso, o programador mais simples de Ponyprog no buffer de 74s (LS, F) 244 é usado com conexão via LPT. Tudo foi verificado no Core2Duo + I965Chipset gerenciado pelo XP SP2, sem problemas. O programador é alimentado através do conector de depuração e é conveniente em operação, porque Buffers no modo normal "ir" para z-status e absolutamente não interferem no Fastavr. Conectando o adaptador JTAG para a programação e a depuração do intraema em tempo real também é possível sem refinamento do conselho através da porta de pino linear correspondente da porta C.

Resta mencionar mais alguns elementos necessários:

A cadeia da redefinição externa, que AVR tem bastante simples. Pode ser desligado através do JP42, embora a exploração com o programador não interfira no programador. A entrada de redefinição pode ser reprogramada através da fusão como uma porta de E / S padrão e usada para a periferia, mas deve ser lembrada que, neste caso, não é possível programar novamente o cristal através do X7.

O resistor variável R27 incluído no potenciômetro é um avaliador de tensão para experimentos com ADC integrado, a saída de ele pode ser servida em qualquer uma das entradas analógicas de MK. Pequena Nota - Por favor, note se você não instalar este resistor por qualquer motivo, certifique-se de jumper (na Fig. Apontando) para a passagem normal do Total GND Tire!

Um pouco sobre Samoa pCB. e design. Como já observado, a placa é unilateral. Eu fui testado 2 cópias feitas pela tecnologia de ferro a laser (uma ao imprimir no papel fotográfico das junções, a outra com base em auto-keys), assim por diante Se desejar, tudo deve ser obtido ;-) Se você pensar sobre fotos, ótimo! As regras de jumper são divorciadas levando em conta as "zonas proibidas" e o uso de loops padrão de 16 pinos (barra do porto de jogo) mesmo quando se conectam extremamente próximas. Na ausência de sufocos ferrite (eu aplico a partir dos antigos monitores Matpal ou Burner, você pode colocar saltadores com segurança. Eu recomendo imediatamente sob todas as fichas para colocar os painéis para não fumar a taxa. Não esqueça 2 jumpers com chaves para o indicador HL6.

Mas parece a interface para verificar a lógica TTL / CMOS, tanto quanto possível, tentarei dizer o que acabou.

Em geral, o temporizador tem um registro de comparação OCR **e quando o valor no temporizador coincide com o valor de registro de comparação OCR **2 coisas podem ocorrer:

  • Interromper
  • Alterando o estado de saída de comparação externa Oc **

Agora podemos personalizar Calçoquando o contador ocupa o valor OCR **tensão na perna escolhida Oc **altere de 5 a 0. Quando o temporizador decolar para o final e começar a contar a primeira alteração a tensão de 0 a 5, teremos pulsos retangulares na saída.

Existem 3 modos de operaçãoCalço

Sts. (reset quando coincidência) - isso pode ser chamado Chim.sinal de modelagem pulsado por frequência quando o temporizador ocupa o valor OCR **é redefinido e altera o valor Oc **ao contrário. Assim, bem-estar Calçosempre o mesmo.

Isso é usado quando você precisa contar os períodos exatos ou gerar interrupções em um determinado momento.

Pwm rápido. (PWM Fast) - O contador acredita de 0 a 255, após o qual é redefinido para 0.

Quando o valor do temporizador coincide com OCR **a saída correspondente é redefinida para 0, quando a zeração é definida 1.

Mais frequentemente usado como comum Calço.

PWM correto de fase. (PWM com fase precisa) - Neste modo, o contador considera de 0 a 255 e, em seguida, considera-o na direção oposta a zero. Na primeira coincidência com OCR **a saída é redefinida para 0, com 2 correspondências (quando o contador for de volta), coloque 1.

Use para não ser abatido a fase quando o dever muda.



Se quisermos trabalhar com a conclusão Oc1a.colocamos bits B. Com1a1 com1a0.
Em geral, "/" significa ou. Tcnt1.= Ocr1a.para Calçono resultado Oc1a.

Temporizador / Contador de Operação - Modo temporizador / contador.

Principal.- valor tcnt1 em que o valor de saída muda Oc **.

Bandeira TOV1 definida em - Em quais valores um pouco do registro GIFR está instalado

Escolha a última tabela que o modo que precisamos, não olhem Principal.. Das 2 tabelas, escolha qualquer uma das 2ª opções. Permanece apenas para colocar os bits necessários em registros.

#Define f_cpu 8000000L #include #Incluir. Int main () (ddrd \u003d 0xff; ocr1a \u003d 0xc0; // compare com este valor ocr1b \u003d 0x40; // configurando o temporizador pwm e tccr1a | \u003d (1<Cs10.coloque 1, ele acredita na frequência de MK sobre como configurar a frequência do temporizador


Vamos nos voltar para o estudo dos temporizadores embutidos.
Interrupções de aprendizagem e especialmente temporizadoresem microcontroladores, apresenta uma certa dificuldade devido à sua multifuncionalidade. Hoje vamos tentar descobrir os termos e nomes.

DENTRO microcontroladores AVR. Pode ser de um a 4 temporizadores, oito dígitos ou hexadecias.
Os temporizadores simplificados são indicados pela letra T, e o número de zero a três. Normalmente, até T0 e T2 são oitismo e ímpares T1 e T3 com dezesseis dígitos. Em Programação, a versão simplificada é usada apenas nos comentários e, nos programas, o nome completo do temporizador é prescrito - o registro TCNT. Abaixo estão as designações de temporizadores:

Temporizadores

T0, T2. - (tcnt0, tcnt2) contadores de oito bits (mesmo)
Tcntn.- registro de contabilidade 8 do contador de descarga
Onde; Contador de números n

T1, T3. - (tcnt1n e tcnt1l, tcnt3h e tcnt3l) dezesseis contadores de dígitos (ímpar)
Tcntny. - Contas Registre 16 do contador de descarga
Onde; Contador de números n
Y-senior (h) ou júnior (l) descarga

T1 consiste em dois registros de oito bits Tcnt1n e tcnt1l., mas
T3 de dois registros Tcnt3h e tcnt3l.. Carta H. denota a descarga mais velha, e EU. Jr.

Como temporizadoressão registros, então você pode contatá-los a qualquer momento, ler, escrever, redefinir e alterar o valor.
Regras específicas declaradas para gravação e leitura de temporizadores TCNT1N e TCNT1L.

1. Programas de gravação e ler os dados do temporizador devem ser atômicos, ou seja, Antes de ler ou escrever, proíbi interrupções e, no final do processo, permitimos novamente.
2. Ao gravar, o byte mais antigo e o mais novo L. é gravado pela primeira vez.
3. Ao ler, o byte mais novo, então o senior H.
Por exemplo:
Registrar dados para o registro de contagem.
Cli; Proibir a interrupção TCNT1H, R16; Gravação do byte mais antigo TCNT1L, R17; Gravação do Byte Sei Younger; Permitir interrupções

Dados de leitura do registro de contagem
Cli; Proibir interrupções em TCNT1L, R16; Lendo o byte mais jovem em tcnt1h, R17; Lendo sênior Byte de Sei; Permitir interrupções

Por que tais regras? E tudo para que os dados não sejam distorcidos durante o tempo que irá para o processo de leitura de cada registro.
Se você usar registros diretos de 8 bits TCNT1H e TCNT1L, então você não pode ter certeza de que esses registros lidos simultaneamente. Pode ocorrer a seguinte situação: o medidor continha o valor de $ 01FF, você considerou tcnt1h (contendo o valor 01 para alguma variável). Durante esse período, o impulso de contagem veio, e o conteúdo do TCNT1L tornou-se US $ 00, e o valor de US $ 02 foi registrado em TCNT1H.

Agora você lê o valor TCNT1L para outra variável, obtém o valor de $ 00 nesta variável (afinal, o temporizador / contador já fez uma conta). O valor de 16 bits dessas variáveis \u200b\u200bfoi de US $ 0100, mas no momento da leitura do byte mais antigo, o conteúdo do contador foi de US $ 01FF, e você teve que ler o byte mais jovem como FF. Para evitar tal situação, o registro temporário contido no temporizador / contador é usado. Este registro é transparente, isto é. Age automaticamente. Ao ler o valor do registro TCNT1L para a variável, o conteúdo do TCNT1H cai neste registro. Em seguida, ao ler o byte antigo na variável, o valor do registro de tempo é lido. O registro temporário é completamente transparente para o usuário, mas por sua operação correta, é necessário seguir a sequência acima de ações. Apelo aos registros através de um registro adicional (buffer) é chamado de buffer duplo

Os temporizadores estão associados ao contamento dos impulsosO que pode ser externo e inserir a entrada especial do chip ou a ser formada por seu próprio gerador. Por sua vez, a frequência de seu próprio gerador pode ser sincronizada por um ressonador de quartzo externo e pode ser determinado pelo regime interno da RC. Depois disso, a frequência externa ou a frequência do seu próprio gerador é mantida pelo registro gerenciado pelo registro Clkpr.. O motorista do gerador após o Explorer (presasher) CLKPR é chamado geralmente do sinal do relógio (freqüência do relógio) do processador (CPU).
Frequência fornecida ao temporizador de entrada indicado como clktn. Essa freqüência corresponde ao sinal do relógio do processador.
Um impulso contável aumenta o valor do temporizador por unidade, para que os registros TCNT sejam contáveis \u200b\u200be chamado temporizador / contadores (TC).
Para a operação correta do temporizador / medidor em um sinal de relógio externo, o tempo mínimo entre a troca de um sinal de relógio externo deve ser pelo menos um período do sinal de relógio da CPU. Sinal de relógio externo sincronizado pela frente crescente do sinal de relógio interno da CPU. (Deve ser lembrado ao construir medidores de frequência).
Registro de temporizador / contador Tcnt. é um registro Tccr..
Interromper a máscara Para temporizador / contador Tcnt. Serve registro Timsk. (Registro de controle de interrupção do temporizador).
Registre-se de bandeiras Timsk Interrupt Mask - é o registro do TIFR. Lembre-se de que estes 3 registros (tccr, timsk, tifr) quando funciona / contada tcnt é usado quase sempre.

As interrupções podem ser chamadas para transbordar o registro tcnt, comparando os valores do registro TCNT com o valor dos registros de comparação de OCR especiais, capturar - pelos valores dos registros de captura ICR especiais e são determinados pelo Timer / Counter Mode . Além disso, a solicitação de interrupção pode ocorrer em resposta timer Watchdog Wdt.

Os temporizadores / contadores podem operar em diferentes modos e, em conformidade, executar diferentes funções.
O modo de operação, isto é, o comportamento do temporizador / contador e a saída do sinal de coincidência é definido como o modo de operação dos sinais controlados por registros WGM02; WGM01; WGM00. (Gravação abreviada WGM02: 0.) e o modo de saída do sinal de coincidência controlado por registros Soms0x1; Som0x0. (Gravação abreviada Som0x1: 0.). O status dos bits, no qual o modo de saída do sinal de coincidência depende, não afeta a sequência de contagem, que é determinada apenas pelo status dos bits de configuração do gerador de sinal.

Bits. Som0x1: 0. Determine se o sinal de saída PWM deve ser invertido ou não (PWM invertido ou não invertido).
(PWM) Modulação de pulso ou modulação de largura de pulso (PWM).
Para modos não-PWM, o conteúdo do BITS SOM de SomS0x1: 0 determina se o sinal de saída deve ser instalado em uma unidade, redefinir para zero ou mudou para o estado oposto no momento da coincidência.

--
Obrigado pela atenção!
Igor Kotov, editor-chefe da revista "Datgorod"

Você pode dar uma etapa igual a uma, então as mudanças ficarão assim:
Mais: atraso de rcall; Transição para a sub-rotina INC Temp2; Vá para uma etapa e verifique se o resultado é zero breq plus_1; Se for, nos voltamos para o rótulo correto do mais_1 rjmp; Prêmio para a pesquisa de botões Plus_1: Dec Temp2; Nós subtraimos a unidade RJMP correta; Retornar ao menos: rcall atraso botões; Transição para o subprograma de atraso de dezembro; Vá para um passo e verifique se o resultado é zero breq minus_1; Se for, nos voltamos para o rótulo correto do Minus_1 RJMP; Retornar para os botões Minus_1: Inc Temp2; Adicione uma unidade correta do RJMP; Retornar ao botão da enquete

Devido à irritação do avrstudio 5, e o atiny2313 microcontrolador, a série de artigos será reescrita sob atmelstudio6 e atmega8 e atmega16 microcontroladores. Peço desculpas antecipadamente por inconveniência.