Wednesday 14 August 2019

Moving average msp430


Engenharia embutida no post. Eu vou mostrar-lhe como implementar o filtro digital mais simples possível filtro quotmoving média. Embora seja muito fácil de implementar, mas ainda em muitas aplicações isso é mais que bom o suficiente. Por exemplo, reduzindo o ruído aleatório do sinal. Ofcourse quando é muito simples tem problemas como. Ele não tem resposta de filtro muito afiada. Canal 1. Varredura de 20Hz a 6Khz, Canal 4 (Verde) saída filtrada 15 pontos, saída M (Vermelho) no domínio freq Sábado, 1 de outubro de 2017 Este projeto é a parte final em Fazer uma Luz Solar realmente poderosa. Neste projeto nós intigrate LTC3478 Based philips lumileds Driver e BQ24650 Baseado MPPT Solar Li-Ion controlador de carga. Nós estaremos usando o total de 3 9 Watt cada placas de Driver de LED e um controlador de carga para carregar 6 Cell 7.6V 20000mah li-lion bateria, há 4 display LED gráfico de barras para mostrar estimativa de nível de bateria e um único botão para controlar Onoff, De Brilho. E selecione um. Todas ou algumas das placas de LED para litup. Não há muito a descrever em termos de schmeatic e firmware como todos os Firmware e Schmeatic aer já no meu github account. User painel de interface é feita de PCB com 4 baterias status LED uma porta para painel solar conector e um interruptor de controle. Quando a bateria é chargin LED estado exibido em conformidade e quando a bateria está descarregando led estado atualizado em conformidade. Na adição ao pequeno projeto de iluminação solar que eu estava trabalhando em eu criei este pequeno controlador de carga solar para carregar a bateria de íon de lítio (li-ion). Circuito Utilize o Texas Instrument BQ24650 no centro do loop para controlar a carga. Como o circuito tem mosfet externo tão máxima corrente 160charge pode ser ajustada para valores realmente altos. 160Circuit aceitam valores do painel solar de 5V a 28V. Eu testei com 12V nominal (17Volts circuito aberto) 160. e 24 Volts nominal painel solar em carga da bateria até 4A. Atualmente instalado em minha casa desde alguns meses Carregar uma bateria 20000 mAh li-ion. Circuito tem grande 4 pinos de alta capacidade atual conector Molex para painel solar. Conector de 6 pinos para a bateria e interruptor de carga. Também é possível conectar o NTC para a monitoração da temperatura da bateria. BQ24650 automaticamente pode monitorar temprature da bateria. O microcontrolador dedicou a saída de 3 PWM para o escurecimento do diodo emissor de luz e o encabeçamento do pino de 6 gpio para o melhor estado conduzido e uma chave da interface de usuário. Hallo zu Deutsch Leser. Das ist mein erste Artikel auf Deutsch. Eu sou um advogado da Alemanha que desembaracei de um projeto de lei alemão, que foi publicado em inglês e em alemão. Eu sou um autor de um livro em inglês. Meine erfahrungen auf deutsch kurze ist 160 160 160 160So beginnen wir. Heutzutage arbeite ich an einem Projekt. QuotMPPT Solar li-ion Laderquot. O diodo emissor de luz do diodo emissor de luz do diodo emissor de luz do diodo emissor de luz do eine160sehr160vollmacht 25W LED. Aber 25W ist viel pele ein160LED-Triber. O diodo emissor de luz do diodo emissor de luz 25 W LED-Triber zu entwerfen. Hauptsorge sobre a projeção quotMPPT Solar - o Laderquot ist zu Lernen com o MPPT Larder Arbeitet und wie die software Algorithmus sind. Das Projekt ist ein teil von ein Projekt was publiziere ich spter.160 160 160 160 Reticentemente eu estava trabalhando um projeto de iluminação solar 160little , Eu preciso de uma iluminação louca realmente brilhante de 25W 160LED. Mas a questão foi para 25W que um monte de energia para LED e que exigem algumas habilidades para fazer uma alta potência LED driver. Objetivo primário deste projeto é obter um conhecimento de descida de MPPT controlador de carga e MPPT algoritmos de carregamento. Este projeto faz parte do projeto. Que vou postar mais tarde. 160160160 Este post vai ser a quarta parte da série de fazer um Linux capaz ARM Board em casa. Clique em Primeiro. Segundo e Terceiro para ir para Peças anteriores, então vamos começar. O que é um Bootloader, Por que precisamos it160 um carregador de boot é um programa que é o primeiro a ser executado pela CPU. Ele severs algum propósito muito específico quotconfiguring algumas coisas muito essenciais antes de carregar o programa principal (pode ser OS) na memória principal. Por isso é chamado de carregador de inicialização. Dependendo das necessidades carregador de inicialização pode fazer alguma outra tarefa (vamos cobri-los aqui). Existem várias formas e tamanhos dos bootloaders. Todos eles servem praticamente o mesmo propósito. Com microcontroladores. Algumas vezes ele não realmente carregar o programa principal na memória, mas passar o ponteiro de execução para o programa principal para que o programa principal pode executar diretamente a partir da memória onde está. Board Com 4,3 polegadas LCD execução aplicação Qt5 para exibir JPEG Image e TimeWhat É FRAM Estrutura molecular FRAM é uma memória de acesso aleatório, o que significa que cada bit é lido e escrito individualmente. Esta memória não-volátil é semelhante em estrutura à DRAM, que usa um transistor e um capacitor (1T-1C), mas FRAM armazena dados como uma polarização de um material ferroelétrico (Lead-Zirkonate-Titanate). À medida que um campo elétrico é aplicado, os dipolos mudam em uma estrutura cristalina para armazenar informações. Esta estrutura resulta em uma série de vantagens: Não-volatilidade Fast escreve Baixa potência Alta resistência Resistência a campos eletromagnéticos e radiação Incomparável flexibilidade Segurança de dados O uso de polarização de cristal em oposição ao armazenamento de carga permite retenção de estado, V) e velocidades de gravação rápidas quando comparadas com as tecnologias Flash, EEPROM e SRAM usadas em aplicações típicas de microcontrolador MSP430. Além dos benefícios associados às tecnologias de memória tradicionais, o FRAM oferece vantagens de segurança no nível do sistema. A falta de uma bomba de carga remove uma vulnerabilidade chave contra ataques físicos. FRAM também é resistente a campos magnéticos elétricos, bem como radiação. Uma vez que o estado FRAM não é armazenado como uma carga, partículas alfa não são susceptíveis de causar bits para virar e FRAM Soft Rate Error (SER) está abaixo dos limites detectáveis. Em cima desta resistência à interferência externa, FRAM é anti-rasgar, significando poder perdido durante um ciclo de writeerase não causará corrupção de dados. Finalmente, os dados podem muitas vezes ser protegidos usando criptografia. A rápida velocidade de gravação e alta resistência do FRAM permite aos desenvolvedores gerar chaves com mais frequência para uma melhor transmissão de dados segura. Benefícios em um microcontrolador A tecnologia FRAM oferece várias vantagens sobre as tecnologias tradicionais de memória. Essas vantagens podem levar a benefícios reais em nível de função em aplicações de microcontrolador de baixa potência e básicas. Velocidades de Gravação Rápida Potencial de tempo de fabricação e economia de tempo de desenvolvimento Menos vulneráveis ​​aos invasores Habilite escrituras on-the-fly com buffering zero ao receber dados de canais de comunicação de alta velocidade menos drenagem de energia e economia potencial de um buffer externo ou evitação de uma MCU com um Grande RAM pegada Aumentar a eficiência com baixo ciclo de trabalho ativo porque as gravações são concluídas rapidamente permitindo mais tempo no modo de espera Não Erase Necessário Desde FRAM escreve não exigem um pré-apagar, memória erase tempo e gargalo de energia é completamente eliminado Anti - Loss Low Energy Writes Nenhuma bomba de carga necessária para FRAM escreve, impedindo a alta média e pico de energia o processo de gravação FRAM não consome nenhuma energia extra quando comparado a uma leitura, fazendo orçamento de energia ao gravar dados simples e indolor Memória em falha de energia desde FRAM escreve não drenar energia excessiva Perform sobre o ar atualiza com confiança desde centenas De kB de informações podem ser atualizadas em uma fração do tempo sem usar uma parcela significativa do recurso de energia Escritas em tempo real Permite um registro de dados mais responsivo, por exemplo, no caso de eventos de falha rápida CPU não é realizada no processo De gravações, as interrupções não são bloqueadas e as gravações são concluídas dentro do tempo de ciclo de instrução A memória não segmentada significa que não é necessário fazer backup de um segmento inteiro de memória para atualizar uma única palavra. Memória Unificada Experimente uma flexibilidade inigualável com a capacidade de mover códigos, dados variáveis ​​e limites de dados constantes em qualquer ponto do FRAM Permite uma plataforma de microcontrolador comum, alavancando o código flexível ea alocação de dados Não há necessidade de mudar MCU se a relação de código e dados não pode ser decidida no momento do design inicial Adequado para grande aplicação RAM - elimina a necessidade de um microcontrolador com RAM maior: Relação de flash FRAM Use-Cases FRAM tecnologia oferece várias vantagens sobre tradicional Tecnologias de memória. Essas vantagens podem levar a benefícios reais em nível de funcionalidade em aplicações de baixo consumo de energia. Características da solução Baixo ciclo de funcionamento ativo para escrituras não voláteis Baixa média e pico de potência de gravação leva a baixa média e consumo de energia de pico da MCU Tempo de despertar mais rápido Variáveis ​​armazenadas em FRAM não volátil Par perfeito com BQ25570 Projetado especificamente para adquirir e gerenciar W MW de energia gerada a partir de fontes de energia solar solar, térmica ou eólica Solução Benefícios Alcançar mais perto da capacidade nominal da bateria A eficiência da bateria é melhorada ea vida útil é prolongada limitando o consumo de energia máxima A colheita de energia pode ser a única fonte de energia ou pode complementar as baterias para produtos mais longos Vida útil Segurança de dados Segurança de dados Proteger propriedade intelectual e transmissões com FRAM Solução Recursos Nenhuma bomba de carga necessária Resistência a campos externos Retenção de estado em falha de energia, gravação rápida e 10 ciclos de gravação Aceleradores de hardware para encryptiondecryption usando a solução Advanced Encryption Standard (AES) De alguns tipos de ataques físicos FRAM é Não é suscetível a Soft Erros Atualizar chaves de segurança rapidamente e enviar notificações em caso de certas mudanças de estado AES emparelhado com autenticação permite uma comunicação de dados mais segura Flexibilidade de desenvolvimento Flexibilidade de desenvolvimento - Elimina fronteiras tradicionais entre dados de código, variável e constante Solução Flash: Padrão, sem personalização permitida FRAM quebra essa barreira com a capacidade de personalizar o tamanho de seus blocos de memória Flexibilidade para mudar esses limites em tempo de execução ou tempo de compilação Solução Benefícios Menos plataformas mais rápido tempo de mercado FRAM permite aos desenvolvedores manter 1 plataforma em Projetos com necessidades diferentes Custos mais baixos do sistema Não há necessidade de pagar por um dispositivo maior apenas para obter mais RAM Eficiência de fabricação Eficiência de fabricação - Poupar tempo economizando dinheiro Eink Módulos de exibição Desenvolver etiquetas de prateleira eletrônica e mais usando FRAM habilitado módulos A flexibilidade única de ITs FRAM MCUs Permitiu-nos definir a parte Entre memória de tipo RAM e memória de programa em qualquer lugar dentro do FRAM e criar uma solução única e de baixo custo de exibição de tinta eletrônica dentro de uma pegada compacta, disse Don Powrie, CEO da DLP Design. Normalmente, a fim de obter essa quantidade de RAM, seria necessário um MCU muito maior, assim, elevando o custo do produto global. Problema do cliente O tempo necessário para atualizar o display Eink precisa ser mantido no mínimo A capacidade de armazenar e recuperar rapidamente imagens em tela cheia do buffer de quadros de imagem é importante Para ter RAM suficiente, seria necessária uma MCU muito maior e mais cara FRAM Advantage Atualize o display do Eink rapidamente Reduza o custo do MCU quando o padrão da indústria Flash para as proporções de RAM não são ideais ou quando é necessário o buffer externo RAM Dados são protegidos contra perda de energia MSP430FR2033 Pequena memória (até 16 KB FRAM) com pinos de inputoutout (IO) abundantes. Os dispositivos também possuem lógica de modulação de infravermelho (IR) especial para simplificar o design em aplicações, incluindo controles remotos. Até 16 MHz Até 16 KB Não-volátil FRAM 10 canais 10-bit ADC IR Modulação Lógica Até 60 GPIO MSP430FR2311 Pequena memória (até 4 KB FRAM) pegada com capacidades analógicas ampliadas. Dispositivo características amplificador operacional, transimpedância amplificador (TIA). Comparador e ADC para conexão direta a sensores em um sistema. Até 16 MHz Até 4 KB não-volátil FRAM 8 canais 10-bit ADC Amplificador de transimpedância Pacote pequeno (3x3) MSP430FR2633 Pequena memória (até 16 KB FRAM) pegada com pinos inputoutput (IO) abundante. Os dispositivos possuem a tecnologia de toque capacitivo CapTIvate para permitir projetos de auto-capacitação e capacitância mútua de baixa potência com imunidade a ruídos de 10 V RMS. Até 16 MHz Até 16 KB não-volátil FRAM MSP430FR4133 Pequena pegada de memória com um controlador LCD de baixa potência e toques capacitivos capacitivos habilitados para IO. O controlador LCD de 256 segmentos possui uma bomba de carga integrada para manter o contraste em modos de baixa potência e possui pinos configuráveis ​​de software para layout de hardware simplificado de LCDs. A lógica de modulação de IV também está disponível nestes MCUs. Até 16 MHz Até 16 KB Não-volátil FRAM Industrys Controlador LCD de menor potência Lógica de modulação de 10 canais ADC IR de 10 bits Até 60 toques capacitivos habilitados GPIO MSP430FR5739 O primeiro conjunto de dispositivos com tecnologia FRAM. Esses microcontroladores oferecem 5 temporizadores, um ADC de 12 canais de 10 bits e acesso direto à memória (DMA) para minimizar o tempo no modo ativo. Esta série também oferece o menor dispositivo embalado no portfólio MSP430 (24-pin 2x2 DSBGA). Até 24 MHz Até 16 KB Não-volátil FRAM 12 canais 10-bit ADC Comparador 5 Temporizadores Acesso direto à memória Pacote menor no portfólio (DSBGA 2x2) Até 33 GPIO MSP430FR5969 Série MCU de menor potência do mundo (codinome: Wolverine) com Uma pegada de memória de tamanho médio (até 64 KB FRAM). Esses dispositivos possuem corrente de modo ativo de 100 AMHz e modo de espera de 450 nA com o relógio de tempo real (RTC) ativado. O portfólio também inclui um novo conversor analógico-digital (ADC) de 16 canais de 12 bits que pode aceitar entradas únicas ou diferenciais. Um comparador de janela é integrado por tempo prolongado em modos de baixa potência. Essas MCUs também possuem um acelerador AES (Advanced Encryption Standard) de 256 bits e um módulo de Encapsulamento de Propriedade Intelectual (IP) para proteger dados importantes. Até 16 MHz Até 64 KB Não-volátil FRAM 16 canais 12-bit ADC Comparador 5 Temporizadores Acesso direto à memória 256-bit AES Até 40 GPIO MSP430FR6989 Estes microcontroladores expandir a nossa série MSP430FR59x58x com mais memória e integração. Esses dispositivos possuem uma grande pegada de memória (até 128 KB FRAM), um controlador LCD de 320 segmentos de baixa potência com bomba de carga integrada e uma nova Interface de varredura ampliada (ESI) para medir rotação ou mesmo proximidade. Até 16 MHz Até 128 KB Controlador LCD FRAM não volátil Comparador ADC de 16 bits de 12 bits Interface de varredura ampliada 5 temporizadores Acesso direto à memória 256 bits AES Até 83 GPIO Avaliação e design A Texas Instruments possui as ferramentas de avaliação adequadas para ajudar Você escolhe o dispositivo FRAM para sua aplicação e começa a desenvolver. Se novo para microcontroladores, um engenheiro experiente, apenas começando a avaliação, ou integrando microcontroladores MSP430 em um projeto, o Ultra-low-power MSP430FRxx FRAM microcontrolador série. Para uma rápida avaliação ou prototipagem rápida, os kits de desenvolvimento MSP430 FRAM-based LaunchPad oferecem tudo o necessário para começar por menos de 20 anos. Esta plataforma de MCU de baixo custo é complementada com placas Target Socket para uma completa ruptura de pinos de nossos microcontroladores. Estes módulos de avaliação (EVMs) permitem a integração total de MCUs MSP430 em um sistema de desenvolvedores. Estes kits são todos habilitados pelo MSP430 microcontrolador programmerdebugger, MSP-FET. Os Integrated Development Environments (IDE) ou bibliotecas de aplicativos também estão disponíveis para o desenvolvimento do jumpstart. Introdução nunca foi mais simples com TIs Code Composer Studio ou o IAR Embedded Workbench IDEs. Elas são complementadas por bibliotecas livres e otimizadas para melhorar o desempenho das operações matemáticas e simplificar o desenvolvimento ao usar toque capacitivo ou gráficos em um aplicativo. Otimizadores, como a tecnologia EnergyTrace8482. Também estão disponíveis para permitir tempo encurtado ao mercado. Os projetos de referência também estão disponíveis para ajudar os desenvolvedores a formar seus sistemas. Os projetos da TI fornecem a fundação que você precisa, incluindo metodologia, testes e arquivos de projeto para avaliar rapidamente e personalizar o sistema. A TI Designs ajuda você a acelerar seu tempo de lançamento no mercado. Executando mais de 8 MHz Controle do Estado de Espera e Execução da Instrução Velocidade Executando mais de 8 MHz Controle do Estado de Espera e Velocidade de Execução da Instrução O relógio do sistema para a CPU ou DMA pode exceder os requisitos de acesso e tempo de ciclo do FRAM. Para esses cenários, um mecanismo de gerador de estado de espera é implementado. As "Condições de Operação Recomendadas" da folha de dados específica do dispositivo listam as faixas de frequência com as configurações de estado de espera necessárias. O número de estados de espera é controlado pelos bits NWAITS2: 0 no registo FRCTL0. Para aumentar a freqüência de clock do sistema para além da freqüência máxima permitida pela configuração de estado de espera atual, são necessários os seguintes passos: Aumentar o número de estados de espera configurando NWAITS2: 0 de acordo com a freqüência de destino. FRCTL0 FRCTLPW NWAITSx Aumentar a frequência para o novo target. In termos do tempo de gravação, FRAM é escrito em blocos de quatro palavras, eo tempo de gravação é construído em cada ciclo de leitura. Portanto, não há diferença entre o tempo de leitura eo tempo de gravação para um byte de FRAM, palavra ou bloco de 4 palavras. No que se refere à frequência de leitura, os acessos FRAM (tanto de leitura como de escrita) são limitados a 8 MHz. No entanto, as leituras de flash podem ter lugar à velocidade máxima permitida pelo dispositivo (fSYSTEM), que é 8 MHz ou 16 MHz em microcontroladores MSP430F4x, por exemplo. Nota: A velocidade de execução da instrução em um sistema baseado em FRAM é afetada pela arquitetura. As MCUs MSP430FRx utilizam um cache associativo de 2 vias que emprega uma combinação de registos e acessos FRAM ao executar a partir de uma memória não volátil. Isso permite que a taxa de transferência do sistema seja maior do que a freqüência de leitura máxima permitida de 8 MHz. Consulte o MSP430 FRAM Tecnologia How To e melhores práticas para obter mais informações sobre a execução usando MCUs MSP430FRx. Particionamento de memória Layout de memória Particionamento Como a memória FRAM pode ser usada como memória universal para código de programa, variáveis, constantes, pilhas e assim por diante, a memória tem que ser particionada para o aplicativo. O Code Composer Studio eo IAR Embedded Workbench para MSP430 IDEs podem ser usados ​​para configurar um layout de memória applicationrsquos para fazer o melhor possível uso do FRAM subjacente dependendo das necessidades do aplicativo. Esses esquemas de particionamento de memória geralmente estão localizados dentro do arquivo de comando do vinculador específico do IDE. Por padrão, os arquivos de comando do vinculador normalmente alocar variáveis ​​e pilhas em SRAM. E, código de programa e constantes são alocados em FRAM. Essas partições de memória podem ser movidas ou dimensionadas dependendo das necessidades de seu aplicativo. Consulte o MSP430 FRAM tecnologia How To e melhores práticas para obter mais informações e para ter um olhar mais atento sobre particionamento de memória usando IAR Embedded Workbench. Exemplo de Particionamento de Memória 1) Configuração MPU Manual A seguir, a MPU pode ser configurada para proteger três segmentos de memória diferentes no software. Cada segmento pode ser configurado individualmente para ler, escrever, executar ou uma combinação deles. A maioria das aplicações teria alguma forma de variáveis ​​que deveriam ser protegidas como leitura e escrita, constantes a serem lidas, e o código do programa só deve ser lido e executado. Há dois registradores que definem como os limites de segmento são configurados: Proteção de Memória Segmentação da Unidade Borda 1 (MPUSEGB1) e Proteção de Memória Segmentação da Unidade Borda 2 Registro (MPUSEGB2). Antes de escrever para o registrador, o endereço precisa ser deslocado para a direita por 4 bits. Nota: a menor alocação de tamanho de segmento MPU é 1KB ou 0x0400. Para obter informações adicionais, consulte o guia de usuários específicos do dispositivo. Exemplo de segmentação de memória MPU 2) Configuração de MPU baseada em assistente O Composer Studio v6rsquos incorporado no MSP MPU Wizard é acessível através das Propriedades do Projeto CCS. Para abrir esta caixa de diálogo, clique com o botão direito do mouse no projeto na exibição do Gerenciador de Projetos CCSrsquo e selecione Propriedades. Ative o MPU marcando a caixa Enable Memory Protection Unit (MPU). Em seguida, a configuração deve ser deixada no padrão para permitir que o compilador automaticamente configurar e particionar as regiões de memória com base no uso do aplicativo. Por exemplo, as constantes são configuradas como somente leitura ou o código do programa é configurado como somente leitura e execução. Quando configurado através do Assistente de MPU, a rotina de inicialização C automaticamente configura e habilita o MPU antes de entrar em main () sem quaisquer etapas adicionais necessárias por você. Consulte o MSP430 FRAM Tecnologia How To e Best Practices para obter mais informações e para dar uma olhada em segurança FRAM usando IAR Embedded Workbench. MPU Wizard A microcontroladora Ultra-Low-Power (MCU) MSP da Texas Instruments (TI) oferece o menor consumo de energia e a combinação perfeita de periféricos integrados para uma ampla gama de aplicações de baixa potência e portáteis. Isso pode incluir o uso como um medidor de medição ou como um microcontrolador em projetos de controle remoto, com integração que permite a funcionalidade de um driver de segmento lcd ou modulador de ir. TI fornece suporte de projeto robusto para a família de MCU de baixa potência MSP, incluindo documentos técnicos, treinamento e kit de desenvolvimento de microcontrolador e ferramentas de software embutido que você precisa para começar hoje Isso faz com que o MSP430, um microcontrolador fácil de usar para começar o desenvolvimento. Este microcontrolador de baixo custo é o lugar perfeito para começar a bateria alimentado aplicativos mcu. Entrada de registro 11 de setembro de 2017 por rwb. Sob robótica. Quando a Texas Instruments (TI) introduziu seu novo valor de linha de 16 bits microcontrolador completo com o programador eo desenvolvimento bordo nomeado MSP430 Value Line LaunchPad em meados de 2018 por apenas US $ 4,30 incluem o custo de transporte, isso torná-lo como o mais barato programador e desenvolvimento Board plataforma que você nunca poderia encontrar no mercado. Portanto, a introdução da placa de desenvolvimento de linha de valor MSP430 LaunchPad fazer um tremendo impacto especialmente entre os hobbyistas eletrônicos, estudantes e entusiasta porque agora o menino grande (TI) está participando seriamente no mercado hobbyist eletrônico e competir diretamente a sua classe de 16 bits Value microcontroladores de linha para os microcontroladores de classe de 8 bits que são dominados pela maior parte por Atmel e Microchip. A placa de desenvolvimento MSP430 Value Line LaunchPad vem com o eclipse baseado no Texas Instruments integrado ambiente de desenvolvimento (IDE) chamado Code Composer Studio (disponível para download a partir do site da TI) e equipado com o compilador e depurador de classe C profissional que tornam o desenvolvimento do microcontrolador MSP430 Based sistema embutido tornar-se fácil e divertido. Como você sabe a maioria dos hobbyist eletrônica usou o popular microcontrolador classe 8 bits para a maioria de seu projeto incorporado, como microcontrolador AVR da Atmel e microcontrolador PIC da Microchip. Agora você pode se perguntar por que temos que aprender outro tipo de microcontrolador como a maioria do microcontrolador moderno já forneceu todas as características necessárias que precisamos. Por que não, aprender outro tipo de microcontrolador é um dos temas fascinantes e desafiantes a ser aprendido especialmente para o hobbyist verdadeira eletrônica como isso irá alargar o nosso conhecimento e utilizar o que é o melhor em cada um dos tipos de microcontrolador para apoiar o nosso projeto futuro sistema embutido . O projeto de microcontrolador MSP430 Depois de muitas considerações sobre o que é a maneira atraente de introduzir este microcontrolador MSP430, em vez de apenas começou com um LED piscando comum, eu decidi construir um robô simples e ainda mais popular, 8230eyes, 8230 é outro Robô Line Follower (LFR ) Usando o Texas Instruments 14 pinos 16 bits MSP430G2231 microcontrolador que vêm com o MSP430 Value Line LaunchPad desenvolvimento bordo. Porque eu acho que a construção de um robô vai lhe dar o conhecimento básico e compreensão que você precisa para começar explora muitos dos recursos avançados oferecidos por este valor de 16 bits MSP430 microcontroladores linhas de valor por si mesmo. Se você notar na figura acima, este Robô de seguidor de linha (LFR) usou um chassi de CD semelhante, um motor de engrenagem CC e os sensores encontrados em meus artigos anteriores. 8220O LM324 Quad Op-Amp Line Follower Robot com Modulação de Largura de Pulso 8220. Portanto este projeto também Serve como um bom exemplo da versão 8220digital8221 do LFR analógico construído antes. O seguinte é o esquema eletrônico completo do robô de seguidor de linha: Agora vamos listar todos os componentes eletrônicos necessários e outros materiais suportados para construir este LFR: 1. Resistores: 220 (2), 470 (1), 10K (3), 22K (2), e 47K (1) 2. Resistor dependente da luz (2) 3. Condensadores: Diodos de 1uF (1) e de 47uF16v (1): 1U4148 (2) 5. High Intensity 3 Diodo emissor de luz do diodo emissor de luz da luz do diodo emissor de luz do diodo emissor de luz do diodo emissor de luz (3) Motor com roda (2) 10. Interruptor de botão de reposição 11. Placa de circuito impresso perfurada: 70 x 55 mm para a placa principal e 50 x 15 mm para a placa de sensores 12. 4 x Porta-pilhas AA 13. ROM CDDVD (2) 14 Plástico Beads e grampo de papel para a rodinha (a terceira roda) 15. Parafuso, porcas, fita dupla e fita elétrica padrão para a linha preta 16. Texas Instruments Código Compositor Studio Core versão 4.2.1.000 04 (usado neste projeto) 17. Texas Instruments MSP430G2231 microcontrolador datasheet SLAS694 e SLAU144F. O firmware completo para este projeto de Robô de seguidor de linha é desenvolvido com a linguagem C: O robô de seguidor de linha Princípio de funcionamento Este projeto de robô de seguidor de linha usou o sensor de fotocélula conhecido como um Resistor Dependente de Luz (LDR) feito de sulfeto de cádmio (CdS) Preto, quando o LDR está acima da linha de pista preta ele vai dar um valor de alta resistência, enquanto acima do fundo branco e ele vai dar um valor de baixa resistência. Juntamente com o resistor 22K, eles vão formar what8217s conhecido como o circuito divisor de tensão. Este sensor de circuito de divisão de tensão fornecerá a tensão variável de acordo com a quantidade da intensidade de luz reflectida de volta para o LDR. O diodo emissor de luz (LED) azul proporcionará uma fonte de luz constante para os sensores. Em seguida, o microcontrolador MSP430G2231 traduzirá esta tensão variável usando seu periférico de conversão analógico-digital (ADC) para a velocidade de rotação do motor DC usando o que é conhecido como sinal de modulação de largura de pulso (PWM). Uma vez que este LFR utilizou o 8220 direcção diferencial 8221 (ou seja, utilizado dois motores DC independentes para a direcção), portanto, variando a esquerda e direita do motor DC velocidade de rotação proporcionalmente à intensidade da luz recebida por ambos os LDR esquerdo e direito, Facilmente fazer o robô para navegar a linha de faixa preta com êxito. O microcontrolador MSP430G2231 O microcontrolador de série de processamento de sinal misturado (MSP) 430 é introduzido pela primeira vez no final de 1990 pela Texas Instruments. It8217s um microcontrolador RISC (computador com conjunto de instruções reduzido) de 16 bits com arquitetura Von Neumann onde a CPU, IO e memória compartilhavam o mesmo controle de 16 bits, endereço e barramento de dados. O MSP430 é especialmente design para baixo consumo e otimizar para ser usado com o compilador C. A série de linha de valor 8220G8221, como o microcontrolador MSP430G2231 de 14 pinos, é introduzida juntamente com o preço da placa de desenvolvimento fenomenal de LaunchPad. Este microcontrolador tem estas seguintes características interessantes que I8217m certeza como o hobbyist eletrônica você vai ansioso para experimentá-lo por si mesmo. Uma das características que tornam este microcontrolador MSP430G2231 de 14 pinos especial é a construção da lógica de emulação no chip, usando o que é chamado de 8220 Spy-Bi-Wire 8221 ou também conhecido como JTAG de 2 fios (Joint Test Action Group). Esta característica útil nos permite passar o código C linha por linha, definir um ponto de interrupção e verificar as variáveis ​​ou registra valor enquanto o chip está no circuito (na programação do circuito e depuração). O microcontrolador MSP430G2231 tem 10 IO, 8 pinos nas primeiras portas (P1) e 2 pinos nas segundas portas (P2). Todas essas portas são configuráveis ​​como portas de entrada ou saída de propósito geral e muitas vezes são multiplexadas com outras funções IO, tais como entrada AD (analógico a digital), saída PWM, USI (interface serial universal), entrada de relógio, entrada de oscilador de cristal e JTAG Terminal IO. Como você viu na tabela acima, o LFR apenas usou várias portas IO e, como regras básicas, as portas IO não utilizadas precisam ser configuradas como portas de saída e deixá-las desconectadas. Alternativamente, você pode configurar todas as portas não utilizadas como as portas de entrada (padrão na reinicialização de inicialização) e habilitar o resistor pull-down para evitar o imprevisível 8220 flutuante 8221 entradas problema surgem em seu projeto. O seguinte código C mostra como configurar as portas IO necessárias para este LFR: O registro P1DIR (direção da porta 1) é usado para configurar a direção da porta IO, onde cada bit deste 16 bits corresponde às portas IO (P1.0 A P1.7). Ao ativar o bit correspondente, simplesmente diremos ao microcontrolador MSP430G2231 para configurar a porta como uma porta de saída. Em seguida, o registrador P1REN (porta 1 pull-uppull-down resistor), habilitando o bit correspondente, poderíamos habilitar o resistor pull-down (configurado como entrada) ou pull-up resistor (configurado como saída). O registrador P1OUT (saída da porta 1) do microcontrolador MSP430G2231 é usado para controlar o estado lógico da porta de saída, usado para ligar e desligar o P1.0 e P1.6 para gerar o sinal PWM necessário. Eu usei essas portas porque essas portas são conectadas com dois LEDs na placa de desenvolvimento MSP430 LaunchPad, portanto, você poderia facilmente testar a saída PWM usando esses LEDs. A porta de saída P1.7 também é usada para controlar o LED do sensor ao lado da fonte de luz do sensor, também serve como um indicador de sinal quando o LFR terminar de calibrar os sensores. O código seguinte utiliza o operador de bit de linguagem C para ligar e desligar a porta utilizando o registo P1OUT do microcontrolador MSP430G2231: A partir da folha de dados, a corrente de saída máxima para cada porta é de cerca de 6 mA e para todas as saídas combinadas é de cerca de 48 mA Não é adequado para conduzir o motor de CC diretamente, portanto, neste projeto eu usei o transistor MOSFET de n-canal (Transistor de Efeito de Campo de Semicondutor de Óxido de Metal) BS170 para conduzir o motor de CC eo LED de sensor. A vantagem de usar o MOSFET porque este tipo de transistor tem uma impedância de entrada muito alta em seu terminal Gate (G) o que significa que precisa de corrente muito baixa para operar e tem uma baixa resistência ON entre o seu Dreno (D) ea Fonte S), chamados Rds, especialmente quando operam em fonte de tensão CC mais alta comparada ao Bipolar Binary Junction Transistor (BJT). Aplicando uma tensão maior do que a tensão de limiar de Vgs, isto é, tensão aplicada entre o terminal Gate e o terminal Source, é de cerca de 2 volts no MOSFET BS170, poderemos colocar o MOSFET na sua fase saturada (ON) e este nível de tensão poderia ser facilmente fornecido pelo Porta de saída do microcontrolador MSP430G2231. A modulação de largura de pulso de modulação de largura de pulso MSP430G2231 (PWM) é uma técnica amplamente utilizada no circuito de comutação moderno para controlar a quantidade de energia dada ao dispositivo elétrico (isto é, o motor de corrente contínua). Simplesmente liga e desliga a energia fornecida ao motor de corrente contínua rapidamente ea quantidade média de energia recebida pelo motor de CC corresponde ao período de LIGAR e DESLIGAR (ciclo de trabalho) variando o período de LIGAR, isto é, mais longo ou mais curto do que o desligado Período, poderíamos controlar a velocidade de rotação do motor DC. O microcontrolador MSP430G2231 tem, na verdade, dois registradores de captura que podem ser usados ​​para gerar o PWM automaticamente, mas porque precisamos de duas fontes PWM independentes com o ciclo de trabalho PWM configurável e na freqüência PWM específica, portanto não poderíamos usar o PWM construído que é Fornecido pelo microcontrolador MSP4302231. Em vez disso, neste projeto LFR eu usei o software PWM que é baseado na interrupção do canal 0 do MSP430G2231 TimerA. O PWM básico do software poderia ser feito criando primeiro o contador de rampa digital básico para o período de sinal PWM e depois usar a variável a ser comparada com o valor do contador de rampa e isso criará o ciclo de trabalho PWM necessário como mostrado neste diagrama: O contador de rampa digital básico usou a variável pwmcount para contar de 0 a MAXCOUNT e começa a contar a partir de 0 novamente repetidamente. O pwmcount fornecerá um período constante para o sinal PWM. Em seguida, precisamos de duas variáveis ​​pwmm1 e pwmm2 para serem comparadas com a variável pwmcount. Quando o pwmcount chegar a 0, simplesmente ativamos a porta de saída do microcontrolador MSP430G2231 e quando o pwmcount igual ao valor pwmm1 ou pwmm2, simplesmente desligamos a porta de saída do microcontrolador MSP430G2231. Portanto, variando o valor das variáveis ​​pwmm1 ou pwmm2, poderíamos controlar o ciclo de trabalho do sinal PWM. Utilizamos o microcontrolador MSP430G2231 TimerA no modo 8220 Up 8221 para realmente aumentar e controlar o valor pwmcount e quando o registrador contador TimerA (TAR) igual a Timer A CaptureControl Register canal 0 (TACCR0) ele irá gerar a interrupção. Como neste projeto eu usei MSP430G2231 microcontrolador padrão Sub Main Clock (SMCLK) de 1 MHz para a fonte de clock TimerA, assim atribuindo 99 para o registro TACCR0 fará o TimerA canal 0 para gerar interrupção em cada 100 ciclos (TACCR0 1) ou cerca de 0,1 ms como mostrado neste código C seguinte: A implementação de software PWM é implementada dentro do manipulador de função de interrupção do canal 0 TimerA como mostrado neste código C seguinte: Ao escolher MAXCOUNT de 100, poderíamos obter o período PWM cerca de 101 x 0,1ms, Que é cerca de 10,1 ms ou poderíamos dizer que a freqüência PWM é de cerca de 100 Hz e atribuindo cada um dos pwmm1 e pwmm2 variáveis ​​valor de 0 a 100, poderíamos obter o ciclo de trabalho PWM variando de 0 a 100. O pwmm1 e O valor das variáveis ​​pwmm2 é fornecido pelo valor digital dos sensores esquerdo e direito da função adc2cycle () que basicamente define o valor do ciclo de serviço PWM superior e inferior retornado a essas variáveis. A configuração do limite superior e inferior depende da faixa de linha preta e da característica dos sensores e pode ser alterada alterando cada um dos valores de definição MAXTHRESHOLD e MINTHRESHOLD. O microcontrolador MSP430G2231 tem um periférico de 10 bits de conversão analógica a digital (ADC), também conhecido como periférico ADC10 com 8 canais (A0 a A7), onde o canal (A10) é especialmente utilizado para o termômetro interno. O periférico MSP430G2231 ADC10 usou o que é chamado Método de Aproximação Sucessiva 8220 8221 para converter a entrada analógica de um destes canais para a representação digital de 10 bits e armazena o resultado no registo ADC10MEM. O periférico ADC10 é controlado por dois registradores de controle, ADC10CTL0 e ADC10CTL1. Assim, definindo o bit ADC10ON (lógico alto) no registro ADC10CTL0 ativamos este núcleo ADC. O mais importante é lembrar que esses registros de controle ADC10 só podem ser modificados quando o bit ENC (Enable Conversion) em ADC10CTL0 é baixo (ENC 0) e antes da conversão AD este bit tem que ser definido como 1 (alto lógico). O periférico MSP430G2231 ADC10 tem quatro modos de operação que podem ser selecionados ajustando os bits CONSEQx no ADC10CTL1 (Registro de Controle ADC10 1) e neste projeto LFR usaremos o 8220 Single Channel Single Conversion Mode 8220. O código C a seguir mostra como nós setup the MSP430G2231 microcontroller ADC10 peripheral: The multiplexer analog channels input could be selected by assigning the corresponding INCHx bits in the ADC10CTL1 register. The actual AD conversion is take placed in the ReadSensor() function, as shown on this following C code: Noticed on the C code above that before we change the ADC10 control register (i. e. ADC10CTL0 and ADC10CTL1 ), we have to disable the ADC10 first be resetting the ENC bit on ADC10CTL0 register then prior to the AD conversion we set (enable) the ENC and ADC10SC (ADC10 Start Conversion) bits in ADC10CTL0 register. Next we wait the conversion by checking the ADC10BUSY bit on the ADC10CTL1 register. When the ADC10BUSY bit is become 822008221 means the conversion is done and we could retrieve the stored 10-bit digital value in the ADC10MEM register. One of the most important features on this LFR project is the used of the calibration phase in the CalibrateSensor() function. In the calibration phase we read the sensors for their maximum value (i. e. on the black line) and the minimum (i. e. on the white background) value. This calibration phase will ensure both of the left and right sensors provide equal value to the PWM generator for driving DC motor. The actual algorithm to make this LFR navigate the black track line successfully is shown on this following C code: The Line Follower Robot Assembly The Line Follower Robot first is constructed on the breadboard in order to test the circuit before I move it to the perforated PCB (70 x 55 mm) I used a similar wiring method to wire the circuit on the main LFR perforated PCB as explained on my previous article 8220Quick and Efficiently Wiring Your Prototype Circuit Board 8220. The Line Follower Robot construction could be constructed freely but the easiest one is to use the discarded CDDVD ROM as shown on these following pictures: I glued the two CDROM together in order to make more room and attached the two GM2 DC motors, 4xAA battery holder, main board, and sensor board using the double tape. The sensors (LDR and LED) are constructed in a small perforated PCB (50 x 15 mm) with this following guidance: Finally using the Texas Instruments MSP430 Value Line LaunchPad development board Spy-Bi-Wire connector and the Texas Instruments Code Composer Studio Core Edition v4.2.1.00004 (used in this project), we could easily programming and debugging the LFR firmware: After putting all the parts together and downloading the code into the MSP430G2231 microcontroller flash RAM now is time to watch how this nice Line Follower Robot in action: Another interesting video of this MSP430G2231 based Line Follower Robot: As you8217ve seen from the demo video above this Texas Instruments 16-bit MSP430G2231 microcontroller based Line Follower Robot design could handle and smoothly navigate the complex black track line using just two LDR sensors. I hope this Line Follower Robot project will trigger your passion to learn more about this powerful 16-bit MSP430 value line series microcontroller from Texas Instruments. Bookmarks and Share Related Posts

No comments:

Post a Comment