Boa tarde,

Estou trabalhando em um TCC usando o CI CS5463 para medir o fator de potência e outras grandezas também, minha ideia é desenvolver um controlador de FP que acione bancos de capacitores, mas que seja um projeto aberto que possa ser montado facilmente, tendo em vista que os controladores comerciais são caríssimos.

Já montei o circuito com o CS e agora estou partindo para a comunicação SPI com o Arduino, preciso escrever em alguns registradores do CS e também ler alguns. Já li bastante coisa na internet sobre SPI e estou estudando o exemplo de código que vem na IDE do arduino mas ainda está um pouco difícil de entender a sintaxe do código.

Se alguém puder me dar uma ajuda ou sugerir algum material para eu estudar agradeceria bastante.

Exibições: 10438

Anexos

Responder esta

Respostas a este tópico

Muito interessante esse Chip CS5463 ! Deve ser caro e difícil de encontrar. 

Pode enviar  o link onde obteve ?

Vi no Datasheet que ele usa SPI . O chip é complexo para ser usado!

https://www.arduino.cc/en/Reference/SPI

O Arduino funciona como o mestre(master) e o Chip como escravo( slave) .

SCLK - serial clock input ( entrada - do Arduino para o chip) maximo 2 MHz . 

SDO - serial data output (saída - do chip para o Arduino)  ou MISO (Master In Slave Out)

SDI - serial data input ( entrada - do Arduino para o chip) ou MOSI (Master Out Slave In)

-CS - chip select ( deve ser usado também) ou SS (Slave Select)

Já leu o tutorial sobre SPI no Lab de garagem ?

http://labdegaragem.com/profiles/blogs/tutorial-comunica-o-spi-seri...

Se tiver um outro chip SPI , sugiro que treine a comunicação SPI do Arduino com outro chip mais barato. 

E depois faça os testes com o seu monitor de energia. 

Por exemplo , os SD cards usam a comunicação SPI> 

https://www.arduino.cc/en/Reference/SD

Ou um ADC MPC3208 que também usa SPI >

http://playground.arduino.cc/Code/MCP3208

Vamos por partes : qual Arduino vai usar ? 

Pode contar com a minha ajuda. Projeto muito bom ! 

Algumas referências :

http://tronixstuff.com/2011/05/13/tutorial-arduino-and-the-spi-bus/

https://forum.arduino.cc/index.php?topic=347910.0

 www.tcc.sc.usp.br/tce/disponiveis/18/180450/tce-09042010-105658/pub...

https://github.com/crjens/cs5463  (com Raspberry Pi) 

Esse chip custa em torno U$ 3.50 (lá fora). Um controlador similar da Schneider custa em torno de R$ 5.000,00. Portanto a iniciativa do projeto é excelente.

OPA ! Tamos juntos, Bernardo. 

Estava vendo o datasheet do CS5463 - é bem complexo ! 

Vai ser um grande desafio para o Alan. 

O que eu puder ajuda-lo....

Pessoal obrigado pela ajuda,

José Gustavo ele é bem barato, e fácil de achar no Aliexpress (http://pt.aliexpress.com/af/CS5463.html?ltype=wholesale&d=y&...) , por isso estou usando ele. Tem outras versões bifásica e trifásica também. Outra vantagem dele é que ele tem bastante material de apoio no site do fabricante.

Minha ideia é a princípio fazer o básico mesmo, ler W, VA, FP, V e I, depois talvez implementar as outras funções mais complexas, por enquanto quero conseguir ler apenas os registradores dessas grandezas mostrar em um display e acionar os bancos de capacitores. Depois talvez gravar os dados em um cartão criando um log e uma interface para comunicação com o PC.

Já dei uma lida em vários tutorias SPI na net e um vídeo do youtube, achei um fórum internacional com um cara que fez um usando esse CI estou estudando o código dele nesse momento.

http://forum.arduino.cc/index.php?topic=347910.0

Esse TCC que vc postou também já li ele me deu uma base pra minha ideia, essa biblioteca também já baixar é o próximo código que vou estudar.

A princípio vou usar o arduino uno, mas depois tenho que montar um stand alone pois a faculdade não aceita usar o arduino diretamente, vou usar o uno mesmo só pra gravar o atmega.

Vou começar a escrever o meu código e ir testando e vou postando aqui o resultado. Desde já obrigado pela ajuda de vocês.

Você já fez alguma montagem do Chip interligando ao Arduino ?

O circuito que estou usando é este:

porque não usa um tc nao invasivo ? e um sensor de corrente shield ? facilitaria demais a primeira parte...

estou trabalhando em algo semelhante (para não dizer igual ... ), inclusive tem outro rapaz aqui do LdG que esta na mesma batalha...

podemos fazer um forum todos nos ..

favor entrar em contato via whatsapp - 84 98814-5229

http://labdegaragem.com/forum/topics/analisador-de-qualidade-de-ene...

ele quer medir distorções harmônicas ...

vc controlar banco de capacitor.

tudo isso é igual a um produto comercial altamente interessante.

Olá Allan, já estou usando SCT-013, talvez depois eu compre um melhorzinho com uma resposta mais linear, esse o datasheet quase não tem informação.

whatsapp (21) 966356301

O pino CS é usado na comunicação serial. Pode deixar sempre ativo ? Eu não tenho certeza.

Deixou o reset sempre no VCC. Não recomendo. 

Sugiro que siga o exemplo do seu link http://forum.arduino.cc/index.php?topic=347910.0

Vai gastar mais portas, mas terá maior controle sobre o chip. 

Biblioteca SPI para Arduino Uno:

* CS - to digital pin 10 (SS pin)
* SDI - to digital pin 11 (MOSI pin)

* SDO - to digital pin 12 (MISO pin) 
* CLK - to digital pin 13 (SCK pin)

Conecte o pino MODE para o terra, apesar do resistor pulldown.

Leia o datasheet :

8. AUTO-BOOT MODE USING E2PROM

Estou em dúvida neste trecho do código, não entendi direito o que está sendo feito, parece que está sendo transferido os valores 0x00, 0x00 e 0x01 para o registrador CONFIG, mas não sei ao certo.

SPI.transfer( Write | (CONFIG1) );
SPI.transfer(0x00);
SPI.transfer(0x00);     
SPI.transfer(0x01);

Envie o link do código de teste.

Existem quatro  modos de comunicação SPI . 

https://www.arduino.cc/en/Reference/SPI

https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus

The four modes combine polarity and phase according to this table:

Mode Clock Polarity (CPOL) Clock Phase (CPHA)
SPI_MODE0 0 0
SPI_MODE1 0 1
SPI_MODE2 1 0
SPI_MODE3 1 1

No seu link :

//Set Config register 
 
  SPI.transfer(0x40); 
  SPI.transfer(0x34);  //3 bytes of data to set 24bits of config register        
  SPI.transfer(0xC);     
  SPI.transfer(0x34); 

RSS

© 2022   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço