Primeiros Passos
Leia o tópico anterior: http://www2.decom.ufop.br/imobilis/cy8ckit-001-psoc-parte-2-de-5/
Utilização Das Ferramentas
Para a compilação do códigos, foi necessário realizar um novo cadastro criando uma conta no site da Cypress e no Keil. Ambos podem ser realizados no menu Help, Register e aparecerá os dois itens que devem ser registrados (Creator e Keil).
No local de cadastro no site da Cypress, existe uma lista explicando o porquê do cadastro. Os motivos listados são:
- Orders from the Cypress Store;
- Access Cypress online technical support;
- Post to the Cypress Developer Community Forums and Blogs;
- Register for Cypress Training Workshops;
- Subscribe to Cypress Product Roadmap Updates;
- Download Software Development Tools including PSoC Creator, Designer and EZ-USB FX3 SDK.
Após realizar o cadastro no Cypress, é necessário realizar outro para registrar a chave do Keil para a execução do programa.
Neste cadastro obteve alguns problemas pois o site não possui tanta informação concisa para o usuário tornando sua navegação confusa. Passou-se vários dias para que um e-mail fosse retornado ao autor para que a confirmação fosse realizada com sucesso atrasando a execução do tutorial.
Observação: Aconselha-se a renomeação de um arquivo em especial nos sistemas operacionais Microsoft Windows Vista e Windows 7 caso o registro de Keil falhe. A dica dada pelo manual é renomear o arquivo existente no diretório a seguir:
<Install_Directory>\PSoC Creator\<version>\PSoCCreator\import\keil\pk51\<version>
de _tools.ini para tools.ini. Tal renomeação pode ser a solução de vários problemas de biblioteca e compiladores no decorrer da execução do programa.
Observação: Atualizar sempre os softwares utilizados.
Piscando Um Led Acoplado A Placa De Desenvolvimento
Criando O Projeto
Primeiramente será criado um projeto para acender e apagar um led (blink).
Para isso será criado um projeto clicando em File, New e Project.
Será selecionado a família do processador PSoC 3 e assim criará o projeto vazio.
Definição De Pinos De I/O
Abrirá um palco no centro da tela para a criação de circuitos através de diagramas de circuitos lógicos.
É necessário criar uma conexão do led ao pino que enviará o sinal. Assim, na aba situada no canto direito chamada Cypress, será selecionado dentro do pacote Ports and Pins o item Digital Output Pin e este será arrastado para o palco.
Após colocar o pino no palco, clicará com o botão direito do mouse e selecionará o menu configure. Será renomeado o nome (Name) do pino para LED para ficar mais facilitado a interpretação dos componentes.
Ficará como na Figura 1:
Ainda na janela de configuração, será desabilitado a opção de HW connection.
O resultado será como na Figura 2.
Conexão Do Pino Ao Microprocessador
Após criado o pino, será criado o pino do processador que será responsável por gerenciar o sinal para este pino. Assim, no canto esquerdo, será selecionado o arquivo com extensão cydwr onde serão serão direcionados os pinos utilizados no projeto.
No canto direito aparecerá o nome do pino que foi criado (LED) e a porta no qual deve estar um campo vazio. Neste será digitado/selecionado o nome P1[6]. Este será o pino do processador responsável por comandar o envio do sinal para o led que foi criado. Os outros campos que estão ao lado deste serão preenchidos automaticamente. Ao final, deve-se salvar a alteração deste arquivo.
Após realizado todos estes passos, deve-se trabalhar no código-fonte para que a ação seja feita corretamente.
Definição Do Código-Fonte
Ao clicar no arquivo main.c, será exibido o seguinte código:
[code language=”c”]
#include <project.h>;
int main() {
/* Place your initialization/startup code here (e.g. MyInst_Start()) */
/* CyGlobalIntEnable; */ /* Uncomment this line to enable global interrupts. */
for(;;) {
/* Place your application code here. */
}
}
[/code]
Este código é padrão e não realiza nenhuma ação. Ele e feito apenas para ser ‘estrutura base’ do início do projeto. Assim, deve-se alterá-lo para que este realize o propósito que o projeto necessite.
É possível ver que existe o procedimento principal main no qual é o primeiro procedimento a ser chamado na execução do programa. Este procedimento fica encarregado de invocar todos os outros métodos caso esses existam. Dentro deste procedimento existe um loop infinito for(;;){} onde o processador fica repetindo o código existente entre as chaves infinitas vezes.
Então tudo que for definido e declarado antes deste laço será realizado apenas uma única vez. Este é o espaço para a declaração de variáveis e inicialização do programa com segurança. Após isso todos os procedimentos estarão no laço caso necessário que este sempre repita.
É de se esperar que caso o projeto não tenha por natureza um laço infinito, basta somente retirar este laço para que o programa ocorra sequencialmente até seu fim.
Sabendo disso, será adicionado o seguinte código:
[code language=”c”]
#include <project.h>;
#include <CyPins.h>;
int main() {
for(;;) {
LED_Write(0); // Liga o led
CyDelay(200); // Intervalo de 200ms
LED_Write(1); // Desliga o led
CyDelay(200); // Intervalo de 200ms
}
}
[/code]
O código name_Write(parametro); indica qual sinal será enviado ao pino (ligado/desligado, on/off, 0/1…) e CyDelay indica quanto tempo em milissegundos a placa ficará ociosa.
Compilação Do Projeto
Após digitado todos esses comandos, será selecionado dentro do menu Build, Clear and Build. Este comando é responsável por compilar o projeto.
Caso já tenha compilado alguma vez, esta será totalmente apagada e será construída a nova no lugar. Isso elimina qualquer tipo de erros do projeto passado interfira no novo.
Conectando A Placa Na Energia E No Computador
- Após compilado o projeto, deve-se conectar os componentes energizando-os da maneira correta.
- Retirar o Módulo Processador já instalado e colocar o CY8C38 caso este ainda não esteja acoplado a placa de desenvolvimento (Figura Passo 1).
- Conectar o MiniProg3 na placa através do cabo flat incluso no conjunto. Este cabo possui barramento de 10 fios (esse detalhe é importante para o envio do programa à placa) (Figura Passo 2).
- Conectar a outra parte do MiniProg3 no computador utilizando o cabo USB (Figura Passo 3).
- Interligar os pinos P1_6 com qualquer led que esteja na placa (Figura Passo 4).
- Conectar a placa de desenvolvimento na energia utilizando baterias ou sua própria fonte que também está incluso no kit (Figura Passo 5).
- Após isso, pode-se ligar a fonte na energia.
Configurando O MiniProg3
Construído o projeto, deve-se alterar as configurações de envio do código compilado para o MiniProg3 para que este receba o programa e converta para o processador CY8C38. Assim, em Tools, Options, deve-se navegar pelo diretório Program/Debug, Port Configuration e MiniProg3. Nesta seção deve alterar os seguintes parâmetros:
- Active Protocol: SWD;
- Clock Speed: 3.2 MHz;
- Power: 3.3 V;
- Acquire Mode: Reset;
- Connector: 10 pin.
Enviando O Código Para A Placa
Depois realizar todos estes passos, deve-se ir no menu Debug e em Program no qual será realizado a transferência do programa para o processador. Ao clicar o código é enviado automaticamente a placa e assim ela começará a executar este.
Ao enviar o código à placa, é mostrado o seguinte log no terminal de saída do PSoC Creator:
Programming started for device: ‘PSoC 3 CY8C3866AX*-040’.
Device ID Check
Erasing…
Programming of Flash Starting…
Protecting…
Verify Checksum…
Device ‘PSoC 3 CY8C3866AX*-040’ was successfully programmed at 02/21/2015 15:08:47.
Caso a execução deste exemplo simples ocorra de forma correta, o programa de desenvolvimento PSoC Creator e o envio do projeto para a placa o processador estão sincronizados comunicando perfeitamente.
Tudo isso indica que indicando que seu sistema está pronto pra realizar a confecção de projetos mais sofisticados e complexos utilizando outros componentes disponíveis na própria placa de desenvolvimento ou em periféricos.
Summary
Reviewer: Rodolfo
Review Date: 2016-07-04
Reviewed Item: Desenvolvimento com PSoC
Referência: http://www2.decom.ufop.br/imobilis/psoc-development-kit-microprocessador-psoc-3-parte-3-de-5/