Utilizando o RTC na placa do Chipkit Max32 [Arduino PIC32]
Seja bem vindo a este post, onde estarei demonstrando uma solução para o uso do periférico RTC na placa ChipKit Max32, que utiliza várias bibliotecas portadas, desenvolvidas para a plataforma Arduino.
E para quem quiser acompanhar o desenvolvimento destas bibliotecas, segue o link para a página wiki do ChipKit.
É comum para os desenvolvedores e hobbystas criarem aplicações onde possam colocar os diversos periféricos dos kits de desenvolvimento, especialmente dos microcontroladores para funcionar. Seja em aplicações isoladas para testar apenas alguns módulos, ou em aplicações mais amplas, onde é interessante se utilizar da maioria dos periféricos existentes no hardware utilizado.
Após a aquisição do ChipKit Max32, comigo não foi diferente. E uma das minhas primeiras idéias era utilizar o módulo RTC nativo do microcontrolador PIC32 existente nesta placa. E após várias pesquisas como: datasheet do microcontrolador, esquema elétrico da placa, amigos e páginas na internet, percebi que a maioria das pessoas que tinham esta mesma idéia, não encontraram uma forma para utilizar o RTC, ou mesmo as que estavam no caminho certo, não haviam de fato realizado os procedimentos necessários para colocar o RTC na placa MAX32 para funcionar.
É interessante saber que em outra solução oferecida para o ChipKit, que é a plataforma Chipkit UNO32, existe na placa os terminais acessíveis para a inserção do cristal de 32.768KHz necessário para o clock do RTC, e na plataforma do Max32 não existe.
Vale dizer que o propósito do post é solucionar um possível problema que encontrei na placa Max32, não sabendo até o momento se é algo que pode ocorrer em todas, ou se eu fui o sortudo por me deparar com ele.
Para os que possuem a placa UNO32, até o momento podem ficar tranquilos.Pois eu e o Cesar fizemos o teste de inserir um cristal de 32.768KHz nos terminais do periférico do RTC, e ele funcionou perfeitamente. Segue a imagem da placa montada:
Foto da placa UNO32 com cristal do RTC:
Para quem possui esta placa, a montagem é tranquila, uma vez que já existe na placa os terminais para a inserção do cristal do RTC. Bastando apenas que incluam em seus projetos a biblioteca RTC, e que escolham corretamente o board utilizado.
Para quem possui o Max32, descrevo à seguir os problemas e soluções que encontrei. E espero que ninguém mais tenha este problema, tornando o uso deste periférico o mais fácil possível.
A primeira tentativa, foi utilizar algumas idéias encontradas em alguns posts, que citavam a inserção do cristal, juntamente com os capacitores acoplados ao mesmo, diretamente nos pinos do microcontrolador SOSCI e SOSCO, responsáveis pelo clock do RTC. Observando o esquema elétrico da placa e o meio físico, encontramos o seguinte:
Esquema Elétrico do ChikiptKit Max32:
Foto da placa onde estão ligados os pinos do microcontrolador:
Aparentemente seria uma tarefa fácil. Tendo apenas que ter um pouco de cuidado ao lidar com o ferro de solda e saber trabalhar com componentes SMD. A primeira dúvida seria a interferência do duplo-diodo e dos resistores na oscilação do cristal. Como eu não pretendia utilizar os pinos para outra tarefa, resolvi retirar este componentes. Caso fosse necessário, eu os colocaria de volta na placa.
Seguindo com esta idéia. Retirei o diodo D7G2, o R5 e o R6. E nos terminais do PIC32, SOSCI e SOSCO, coloquei o cristal de 32.768KHz + 2 capacitores de 22pF. Sendo que mais tarde alterei estes valores para 30pF.
Observando as bibliotecas existentes na wiki do ChipKit, encontrei um link para a biblioteca do RTC. E após ler as observações e tendo visto a implementação de exemplo que vem inclusa, coloquei a placa do Max32 para funcionar. Para minha surpresa ela funcionou de primeira, tendo como indicação o timer que estava constantemente sendo incrementado, e sendo enviado pela console serial da MPIDE do Arduino.
Porém, tive problemas com a contagem do tempo, onde observei que a cada 1 segundo do relógio, a contagem efetiva era de 6 segundos no módulo RTC. Tendo este problema em mente, resolvi observar o circuito oscilador com um osciloscópio, e constatei que a frequência de oscilação nos pinos SOSCI e SOSCO era de aproximadamente 196KHz, o que indicava que a frequência do cristal de 32.768KHz estava 6 vezes acima do normal. Primeira tentativa para solucionar foi alterar os valores dos capacitores ligados ao cristal. Efetuando mudanças desde 15pF até 33pF, obtive a mesma frequência de aprox. 196KHz.
Então comecei a concluir que poderia ser alguma configuração das bibliotecas portadas utilizadas no ChipKit. Após estudá-las, não consegui encontrar nada que pudesse gerar este problema. Então teria que encontrar outra solução.
Coloquei novamente o diodo D7G2 e os resistores R5 e R6 na placa. Retirei o cristal e os capacitores. E resolvi montar um oscilador externo. De modo à ter pouco impacto sobre o hardware, além de não ter que encontrar outro tipo de solução por software, pois neste caso estaria retirando a compatibilidade de projetos desenvolvidos para a plataforma do Arduino. A melhor solução foi fazer um oscilador CMOS com portas inversoras, como as existentes no CI 4069. Sendo que para este tipo de solução é possível utilizar portas NAND ou NOR, sendo de extrema importância serem da família CMOS.
Devido à sua impedância de entrada e algumas características elétricas, este tipo de tecnologia é capaz de fazer com que um cristal possa ser utilizado em conjunto para gerar um oscilador em uma enorme faixa de frequência.Tendo em mãos o esquema, resolvi fazer a seguinte montagem:
Esquema do PIC32 com o Oscilador CMOS:
Este tipo de oscilador tem uma configuração bem fácil para montagem. Utilizei mais uma porta inversora ao final do estágio oscilador, para que sirva como buffer. Além de não influênciar na frequência em questão, pois na aplicação de RTC, é uma questão importante não haver mudanças nesta frequência.Após a montagem, fiz a seguinte ligação na placa do ChipKit Max32:
Ligação do Circuito Oscilador RTC Externo:
Verifiquei se a frequência do oscilador não sofria nenhuma interferência após a montagem na placa. E com um osciloscópio constatei que estava tudo normal.
Frequência de 32.768KHz do Oscilador CMOS:
Próximo passo seria verificar novamente o funcionamento do periférico do RTC através do software. Para isto utilizei o projeto que estará disponível ao final deste post.Mas tirei um screenshot do resultado obtido:
Teste da biblioteca do RTC e software:
Após isto conclui que o oscilador externo acabou sendo uma alternativa válida para o problema ocorrido com o cristal ligado diretamente aos pinos do microcontrolador, como seriam nos esquemas usuais para o periférico do RTC.
Caso, alguém tenha tido o mesmo tipo de problema, ou esteja querendo implementar esta solução ou alguma outra para o módulo RTC, gostaria de saber das idéias e/ou seus resultados obtidos. Assim podemos contribuir para todos que estejam utilizando esta plataforma em seus projetos.
Até a próxima.
Daniel Cezar.
[ DOWNLOAD ]







você não merece participar do curso de toxicologia do CAFAR,você não merece fazer IC no laboratório Laproneb,você não merece apresentar trabalho na SIAC,você não merece ser bolsista TCT FAPERJ,porque você é uma pessoa desonesta,eu não esqueci o que você fez comigo,todo o dinheiro que você tem é graças a trapaça,é graças a desonestidade.
ResponderExcluirMuito menos participar do XIX Encontro Regional da SBQ-Rio que aconteceu na UFF.
Eu sou muito mais inteligente que você, eu sei muito mais sobre química que você, eu mereço muito mais que você participar do 19ª edição do encontro da SBQ-Rio.
você não merece participar do curso de toxicologia do CAFAR,você não merece fazer IC no laboratório Laproneb,você não merece apresentar trabalho na SIAC,você não merece ser bolsista TCT FAPERJ,porque você é uma pessoa desonesta,eu não esqueci o que você fez comigo,todo o dinheiro que você tem é graças a trapaça,é graças a desonestidade.
ResponderExcluirmuito menos participar do XIX Encontro Regional da SBQ-Rio que aconteceu na UFF.
eu sou muito mais inteligente que você,eu sei muito mais sobre química que você,eu mereço muito mais que você participar do 19ª edição do encontro da SBQ-Rio.
você não merece participar do curso de toxicologia do CAFAR,você não merece fazer IC no laboratório Laproneb,você não merece apresentar trabalho na SIAC,você não merece ser bolsista TCT FAPERJ,porque você é uma pessoa desonesta,eu não esqueci o que você fez comigo,todo o dinheiro que você tem é graças a trapaça,é graças a desonestidade.
ResponderExcluirmuito menos participar do XIX Encontro Regional da SBQ-Rio que aconteceu na UFF.
eu sou muito mais inteligente que você,eu sei muito mais sobre química que você,eu mereço muito mais que você participar do 19ª edição do encontro da SBQ-Rio.
será que a ivana, a maria isabel e a naomi sabem quem você é de verdade?
Você passou colando em cálculo para farmácia usando o Photomath, você pagou outra pessoa para fazer a sua prova de orgânica 1 com a Lages durante o EAD. Ficou com o CR 7, faz IC com bolsa, publicou 4 artigos científicos e não conseguiu nem passar em bioestatística. Quer dizer, colou a beça durante o EAD e quando as aulas presenciais começaram você não conseguiu colar e ficou reprovada.
ResponderExcluirEu sei tudo sobre você, eu achei o seu perfil no Instagram, no Linkedin e no currículo lattes:
https://www.instagram.com/brucoelho88/
https://br.linkedin.com/in/bruna-coelho-492938256
http://lattes.cnpq.br/5568912774142722
Mas você também amiga da Beatriz Ribeiro de Oliveira, que é incapaz de passar em qualquer disciplina sem colar na prova, a Beatriz Ribeiro de Oliveira fica falando na faculdade para todo mundo ouvir que escondeu a cola da professora, ela falou tão mal da Lages, rodou todos os professores de química orgânica e só consegui passar em orgânica 1 graças a Lages agora a Beatriz está falando bem da Lages, a Beatriz inclusive publicou esse artigo científico:
https://www.mdpi.com/2072-6643/17/17/2763
É isso o que acontece com quem cola na prova e fala mal dos outros, publica um artigo científico. A Beatriz Ribeiro de Oliveira representa tudo o que há de errado na faculdade, ela é a prova que vale a pena colar na prova, ela é a prova que a coordenação da farmácia da UFRJ fecha os olhos para quem cola na prova, ela fica se fazendo de santa, mas no fundo ela não presta. Eu sinto vergonha de ser obrigado a ser da mesma turma de um ser tão desprezível como a Beatriz Ribeiro de Oliveira.
Pode mandar o seu amigo o Guilherme de Sousa Barbosa que me ameaçou mesmo sem eu ter feito nada contra ele, me matar. Manda o Guilherme de Sousa Barbosa aparecer na boca de fumo que tem aqui perto de casa e mandar os traficantes me matar, aqui do lado da minha casa funciona um ferro velho clandestino que fornece material furtado para os traficantes construírem barricadas.
Eu não tenho nada a perder, a vida é boa para quem faz iniciação científica, para quem não faz só resta à morte. Eu não vou perder a minha bolsa de iniciação científica.