TODOPIC

Otros Microcontroladores / Dispositivos programables => Arduino => Mensaje iniciado por: aitorsp en 05 de Mayo de 2013, 10:31:08

Título: Librería DAC MCP4821 para Arduino
Publicado por: aitorsp en 05 de Mayo de 2013, 10:31:08
Una librería que he programado para el DAC MCP4821. Os dejo un video donde le hago un test de funcionamiento.

list=UUfybxJF_aV15Y05a4GJ7FFg&index=1
Título: Re: Librería DAC MCP4821 para Arduino
Publicado por: luciarv en 16 de Junio de 2013, 06:21:35
Hola necesito ayuda con arduino mega y el dac mcp4821 he intentad adaptar este programa y a la salida del del dac cn el osciloscopio no me sale absolumente nada : :? Por favor necesito ayuda...es muy urgente gracias y besitos
Título: Re: Librería DAC MCP4821 para Arduino
Publicado por: aitorsp en 16 de Junio de 2013, 08:26:36
Hola necesito ayuda con arduino mega y el dac mcp4821 he intentad adaptar este programa y a la salida del del dac cn el osciloscopio no me sale absolumente nada : :? Por favor necesito ayuda...es muy urgente gracias y besitos

Has conectado bien los pines SPI en el arduino Mega ?. Esa librería en principio la hice para el Arduino UNO.
Título: Re: Librería DAC MCP4821 para Arduino
Publicado por: luciarv en 16 de Junio de 2013, 08:59:03
Si lo he cambiado como m dices,pero no m sale nada a la salida y m estoy volviendo loca
Título: Re: Librería DAC MCP4821 para Arduino
Publicado por: aitorsp en 16 de Junio de 2013, 09:23:49
Si lo he cambiado como m dices,pero no m sale nada a la salida y m estoy volviendo loca

Importante !!. El Pin CS es el 2. Revisa todas las conexiones del DAC.

No utilices la fuente de 5V de Arduino, es poco estable. Utiliza una externa para el DAC BIEN ESTABILIZADA o pon un condensador de bypass de tántalo 1uF. Yo en el video de YouTube me fabriqué la fuente externa con un LM7805
Título: Re: Librería DAC MCP4821 para Arduino
Publicado por: luciarv en 16 de Junio de 2013, 10:46:35
Vale mañana lo mirare bien y te cuento,muchas gracias  :)
Título: Re: Librería DAC MCP4821 para Arduino
Publicado por: luciarv en 16 de Junio de 2013, 10:50:52
Si pudiera hablar contigo x correo t lo agradeceria
Título: Re: Librería DAC MCP4821 para Arduino
Publicado por: luciarv en 17 de Junio de 2013, 05:44:00
hola buenos dias tengo conectado el sdi en el pin 51 MOSI el sck en el pin 52 SDK el cs al pin 2  LDAC al pin 4 y SHDN al pin 7 luego vdd a +5v y avss a masa.....pero en vouta no sale nada..... q crees  me puede estar pasando???
Título: Re: Librería DAC MCP4821 para Arduino
Publicado por: MerLiNz en 17 de Junio de 2013, 08:07:21
has probado que la señal del spi sale correctamente por un osciloscopio?
Título: Re: Librería DAC MCP4821 para Arduino
Publicado por: luciarv en 17 de Junio de 2013, 12:07:54
Mi programa es este que quiero sacar una señal triangular con arduino mega 2560
pero creo q tengo problemas con cs por que se me qda en 5 voltios fijos ..

#include <SPI.h>

 
const int PIN_CS = 10;// yo aqui lo he cambiado en el pin 53 como dice la libraria spi de arduino pero no se si debo cambiar algo mas
const int GAIN_1 = 0x1;
const int GAIN_2 = 0x0;
 
void setup()
{
  pinMode(PIN_CS, OUTPUT);
  SPI.begin();  
  SPI.setClockDivider(SPI_CLOCK_DIV2);
}
 
//assuming single channel, gain=2
void setOutput(unsigned int val)
{
  byte lowByte = val & 0xff;
  byte highByte = ((val >> 8 ) & 0xff) | 0x10;
  
  PORTB &= 0xfb;
  SPI.transfer(highByte);
  SPI.transfer(lowByte);
  PORTB |= 0x4;
}
 
void setOutput(byte channel, byte gain, byte shutdown, unsigned int val)
{
  byte lowByte = val & 0xff;
  byte highByte = ((val >> 8 ) & 0xff) | channel << 7 | gain << 5 | shutdown << 4;
  
  PORTB &= 0xfb;
  SPI.transfer(highByte);
  SPI.transfer(lowByte);
  PORTB |= 0x4;
}
 
void loop()
{
 //high-res triangular wave
 for (int i=0; i < 4096; i+=32)  
 {
  //setOutput(0, GAIN_2, 1, i);
  setOutput(i);
 }
}

tengo q conseguir para el miercoles la señal triangular....xfa ayudarme :oops:
Título: Re: Librería DAC MCP4821 para Arduino
Publicado por: MerLiNz en 17 de Junio de 2013, 17:43:21
El pin del CS corresponde con el PORTB que indicas??

He visto un ejemplo y utilizan esto:
digitalWrite(SS, LOW);
SPI.transfer(value);
digitalWrite(ss, HIGH);

prueba a hacerlo tu igual, cambiando SS por PIN_CS todo esto donde pones PORTB=*, he estado mirando esto:
(http://yqezpq.blu.livefilestore.com/y1pAnUbSEMiGl5L9ZzOleeDb8SA7Qg7PLgyTASzuOewOBsaTQYKb3aahLTCdWYhfqBb0doAw8ONobWogi7CjHyw2g/PIN%20MAPPING%20ARDUINO%20MEGA.jpg)

y indica que el puerto 53 es el PB0 sin embargo tu estas cambiando el PB2, en todo caso puedes usarlo con port poniendo:

PORTB&=0xFE;

y

PORTB|=1;
Título: Re: Librería DAC MCP4821 para Arduino
Publicado por: luciarv en 18 de Junio de 2013, 05:22:33
ya m sale la señal justo era ese mi problema jejej muchas gracias por la solucion....lo unico malo que m gustaria q fuera la señal a 200 khz y sale a 2khz pero al modificar for (int i=0; i < 4096; i+=32)   la señal triangular sale mas escalonada....pero gracias por la ayuda :-/
Título: Re: Librería DAC MCP4821 para Arduino
Publicado por: MerLiNz en 18 de Junio de 2013, 06:51:14
La velocidad ya depende del arduino, en este caso la velocidad maxima es de 16mhz/2=8mhz por cada paso son 2us, lo que puedes hacer es modificar la amplitud, es decir en vez de 0-5V que sea 0-3V y asi tendras mayor frecuencia, para esto cambias el i<4096 por 2458, entre mas bajes el valor menos amplitud tendra la señal pero mas frecuencia tendra, aun asi 200khz no los podras conseguir nunca, necesitarias un SPI de mayor velocidad.
Título: Re: Librería DAC MCP4821 para Arduino
Publicado por: Markos677 en 31 de Julio de 2013, 13:15:22
Hola, me es de mucha ayuda esta libreria para DAC, pero le agradeceria si me puede pasar el esquema de la conexion para Arduino Uno :oops:, es que estoy un poco confundido con la conexion de los pines