Índice:

AVR Assembler Tutorial 8: 4 etapas
AVR Assembler Tutorial 8: 4 etapas

Vídeo: AVR Assembler Tutorial 8: 4 etapas

Vídeo: AVR Assembler Tutorial 8: 4 etapas
Vídeo: AVR Assembly Tutorial: Part 1 (Basic Commands) 2024, Julho
Anonim
AVR Assembler Tutorial 8
AVR Assembler Tutorial 8

Bem-vindo ao Tutorial 8!

Neste breve tutorial, vamos desviar um pouco da introdução de novos aspectos da programação em linguagem assembly para mostrar como mover nossos componentes de prototipagem para uma placa de circuito "impressa" separada. A razão é que, neste ponto, nossa placa de ensaio de prototipagem principal está ficando abarrotada com tantos chips, fios, botões e LEDs que está ficando difícil testar coisas novas e já que eventualmente temos que mover os componentes para suas próprias placas de qualquer maneira, podemos começar agora. Muitos de vocês provavelmente já são proficientes nas coisas que cobriremos neste tutorial e, portanto, podem olhar para este Tutorial apenas como uma pausa relaxante na codificação.

Portanto, hoje vamos mover nosso rolo de dados ATmega328P e o par de dados que o acompanha para um quadro externo com conexões ao nosso quadro principal para comunicação com ele e para alimentá-lo. Além disso, a fiação e o funcionamento dos dados serão autocontidos nesse componente.

Você provavelmente pode prever a partir disso que nosso objetivo final é fazer isso com cada um dos componentes que construímos ao longo do caminho para que, quando terminarmos, possamos escondê-los todos em um pacote de aparência agradável que funcionará por meio de pressionamentos de botão sem ver todos dos fios e funcionamento interno.

Passaremos a maior parte deste tutorial fazendo tarefas físicas como projetar um circuito, mapear uma placa de prototipagem e soldar materiais juntos, mas há um pouco de programação que precisamos fazer no final, depois de movermos as coisas. O motivo é que, eventualmente, usaremos a interface serial de 2 fios para a comunicação entre nosso controlador "mestre" principal e todos os controladores "escravos" que constituem os componentes de nosso projeto geral nesta série de tutoriais e, como você se lembra, no Tutorial 6 inventamos uma espécie de método do tipo Código Morse para comunicar nossos lançamentos de dados do lançador de dados (Tutorial 4) para o Analisador de Registros (Tutorial 5) que exibia o resultado do lançamento de dados em binário em 8 LEDs. Bem, isso foi apenas um método de comunicação "role seu próprio" que decidi usar porque, naquela época, era muito cedo para entrar na comunicação serial de 2 fios. Agora estamos quase preparados para mergulhar nas profundezas da comunicação serial, e faremos isso no Tutorial 10, mas por enquanto precisamos antecipar esse desenvolvimento futuro e reconectar nossos LEDs de rolos de dados para liberar os dois pinos de que precisamos para a comunicação serial.

Esses são os pinos SCL e SDA no ATmega328P. Você pode ver pelo diagrama de pinagem que eles também são chamados de ADC5 e ADC4 quando usados em conversões Analógico para Digital, são chamados de PCINT13 e PCINT12 quando usados como pinos de "Interrupção de Troca de Pino" e, finalmente, geralmente os chamamos de PC5 e PC4 quando considerados simplesmente como pinos no PortC. Como usamos esses dois pinos como parte de nosso rolo de dados por vários motivos (os principais são que tornou a codificação mais fácil e a fiação para os LEDs na placa), agora teremos que modificar nosso código e reconectá-lo ligeiramente para libere esses pinos para comunicação futura.

Portanto, começaremos fazendo o projeto, o corte, a fiação e a solda. Em seguida, iremos reescrever o rolo de dados para funcionar com nossa nova configuração e, finalmente, testá-lo para ter certeza de que ainda funciona.

Para concluir este tutorial, você precisará dos seguintes itens:

  1. As coisas padrão de que você sempre precisa e que vou parar de repetir o tempo todo: sua placa de prototipagem, sua cópia da folha de dados e o conjunto de instruções e seus cérebros.
  2. Uma placa de PCB de prototipagem de circuito sem fio como esta: https://www.ebay.com/itm/191416297627 Vou usar a versão do Measure Explorer 103RAWD desta placa: https://www.ebay.com/itm/103RAT -circuit-proto-proto… já que tenho um monte deles em mãos, mas a versão 103RAW-0 que eu linkar acima também funcionará bem.
  3. Clippers, fios, solda, ferro de soldar, "mãos que ajudam" ou qualquer outra coisa para segurar coisas, etc. etc. etc. novamente, de agora em diante vou parar de listar essas coisas também. Se você realmente chegou até aqui nestes Tutoriais, então provavelmente já tem tudo isso.

Aqui está um link para a coleção completa de meus tutoriais de assembler AVR:

Etapa 1: projetar um diagrama de fiação

Projete um diagrama de fiação
Projete um diagrama de fiação
Projete um diagrama de fiação
Projete um diagrama de fiação
Projete um diagrama de fiação
Projete um diagrama de fiação

A coisa legal sobre as placas do Measure Explorer é que se você tomar algum tempo e mapear as coisas no início, você pode economizar um monte de fiação no final. Portanto, começaremos com algum tempo projetando nosso layout antes de começar a soldar qualquer coisa. Com este tipo de placa, você tem que cortar um monte de fios de conexão, o que não é tão fácil, mas o resultado é uma placa compacta muito boa com o mínimo de fios emaranhados. A primeira coisa que precisamos fazer é projetar nosso circuito para que se encaixe na placa. Uma boa maneira de fazer isso é baixar o mapa do tabuleiro e usá-lo para brincar com diferentes designs até encontrar um que funcione. Aqui está o layout do ME-PB-103RAWD https://www.bluemelon.com/photo/3483513-T800600-j.webp

Etapa 2: Corte o circuito na placa

Corte o circuito na placa
Corte o circuito na placa
Corte o circuito na placa
Corte o circuito na placa
Corte o circuito na placa
Corte o circuito na placa

Primeiro, dê um sharpie e, usando seu layout que você mapeou na etapa anterior, desenhe seu circuito na placa. Ou seja, desenhe linhas para representar os fios. Não desenhe nada em termos de componentes, apenas os fios de conexão como mostra a primeira foto. Observe que quando você estragar tudo (e se você for como eu, você estragará as coisas várias vezes nestas etapas), você pode usar uma borracha e apagar a linha. Faça isso para os dois lados do tabuleiro.

Em seguida, você precisa cortar as conexões ao redor das linhas. Se você olhar atentamente para a placa, verá que cada orifício do pino está conectado aos 4 adjacentes em ambos os lados da placa, de modo que todos os orifícios da placa estão conectados uns aos outros quando você começa. Portanto, você precisa cortar os dois lados de cada um dos fios para isolá-los. A maneira mais comum de fazer este corte é com uma faca Exacto. Mas eu sou péssimo em facas Exacto e provavelmente me cortaria. Portanto, uso uma Dremel com um acessório de ferramenta de corte fino. Eu gostaria de ter algum tipo de acessório de afiação que chegasse a uma ponta afiada, já que funcionaria melhor - mas não tenho um assim, então usei o acessório de serra de corte. (Observação adicionada: depois de terminar este projeto, descobri que as cabeças menores de "disco de corte pesado" para Dremels funcionam melhor, elas se parecem com pequenos círculos de lixa e funcionam como a ferramenta de corte mostrada aqui, exceto pelo fato de terem diâmetro menor e assim é muito mais fácil ver e controlar onde você está cortando)

Ao longo do caminho, é útil segurar a placa contra a luz e certificar-se de que os fios estejam realmente cortados. Você pode ficar aborrecido com o fato de que existem conexões em ambos os lados da placa, então você tem que repetir o processo de corte novamente com o outro lado, mas acho que você vai entender o ponto disso quando terminar. Cometi muitos erros ao cortar fios que não deveriam ter sido cortados e ter o outro lado ainda conectado acabou sendo bom.

Vai demorar um pouco de tempo e paciência para cortar o circuito na placa, mas é divertido quando você fica bom nisso.

Etapa 3: Solde os componentes e teste

Solde os componentes e teste
Solde os componentes e teste
Solde os componentes e teste
Solde os componentes e teste
Solde os componentes e teste
Solde os componentes e teste

Agora que você isolou todos os fios da placa de circuito, pode começar a soldar os componentes individuais.

Primeiro, soldei os LEDs de um dos dados, depois peguei os fios positivo e negativo da minha placa de ensaio e testei as conexões de cada LED para ter certeza de que estão isolados um do outro e de que funcionam.

O mesmo ocorre com o outro dado.

Em seguida, conecte o resistor a cada dado e o resistor de 10K na parte de trás da placa.

Em seguida, conecte o oscilador de cristal, tampas de 22pf, botões de pressão e ATmega328P. Você pode querer soldar um soquete de chip e, em seguida, encaixar seu ATmega328P nele para que possa removê-lo se quiser e reutilizá-lo em outra coisa. Acabei de soldar meu chip à placa porque sei o que estamos construindo com todos esses tutoriais e sei que vou gostar disso o suficiente para não querer tirar o chip.

Observe, olhando para o verso do quadro, a maneira como anexamos os cabeçalhos. Usei cabeçotes longos de alfinetes e os dobrei horozontal para que não fiquem para fora da placa. Isso é para que eu possa eventualmente cobrir a placa até o nível dos botões e LEDs com um recipiente e não ter cabeçalhos no caminho. Temos um cabeçalho para Tx, Rx para que possamos programar o chip, temos um cabeçalho para SDA, SCL para que possamos usar a comunicação de 2 fios mais tarde. e temos um conector de 3 pinos para AVCC, AREF, GND no outro lado da placa. Tenho todos os pinos de aterramento e pinos VCC conectados juntos no chip, portanto, precisamos apenas de uma entrada de alimentação.

Finalmente, uma vez que tudo está conectado, conectamos o dado 1 ao dado 2 da maneira que fizemos na placa de ensaio para que possamos controlar os dois dados com apenas 9 pinos.

Agora precisamos modificar nosso código para que ele controle esta nova configuração.

Etapa 4: Código de montagem e vídeo

Anexei o código de montagem e o vídeo do rolo de dados em operação. Tudo o que fiz foi pegar o código do nosso rolo de dados do Tutorial 6, modificar os pinos para corresponder ao novo layout e remover a sub-rotina de comunicações, já que estaremos escrevendo um novo no Tutorial 10. Na próxima vez, iremos quebrar nosso teclado novamente e aprender como controlar monitores de 7 segmentos. Vejo você então!

Recomendado: