TODOPIC

Otros Microcontroladores / Dispositivos programables => Microcontroladores ARM => Mensaje iniciado por: scientist en 30 de Noviembre de 2009, 00:21:14

Título: tarjeta de adquisicion para labview
Publicado por: scientist en 30 de Noviembre de 2009, 00:21:14
como su nombre lo indica el titulo, es hacer una tarjeta de adquisicion para aprender a manejar labview, ahora una de mis objetivos para el año 2010 es aprender a manejar bien el labview, me hare una placa para entrenar, de que dispondra esta tarjeta?

bueno, esto es lo que pienso ponerle, es solo un borrador, conforme lo vaya diseñando, a lo mejor haya cambios, esto es:

MICROCONTROLADOR MC9S08JM60
SENSOR DS18S20 (podra ser capaz de manejar n numeros de sensores y enumerarlos)
CONVERTIDOR ANALOGICO DIGITAL DE 16 BITS DE DALLAS DS2450 (alrededor de 2)
y alguna salidas tambien, una a relevador, otra a transistor

la conectividad podra ser por USB, y RS232

con esto espero poder hacer una tarjeta con la cual, sea lo mas flexible posible y comoda para aprender

PD ya se que existen DAQ's de diferentes marcas y baratas, pero es solo por puro hobbie y amor al arte, saludos

si hay algun comentario de mejora de hardware, por favor no duden en comentarlo!!!  :) :) :)
Título: Re: tarjeta de adquisicion para labview
Publicado por: KALLITOS en 30 de Noviembre de 2009, 01:27:37
Hola scientist, estoy ansioso por aprender Labview, sere como tu sombra en este hilo  :mrgreen:.

Saludos
Título: Re: tarjeta de adquisicion para labview
Publicado por: jhozate en 30 de Noviembre de 2009, 01:29:28
que sea un hecho...yo tambien quiero aprender labview..y ya estoy terminando tambien mi diseño de mi nuevo entrenador :-/
Título: Re: tarjeta de adquisicion para labview
Publicado por: stk500 en 30 de Noviembre de 2009, 03:00:44
Pues esto no me lo pierdo, asi practico con mi programa Labview, esperamos novedades  :-/ :-/
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 30 de Noviembre de 2009, 05:11:57
hola amigos, ya pude hacer los primeros avances en cuestion del hardware de la placa, los datos finales son
mc9s08jm60 conectado a un bus 1 wire con 4 sensores ds18s20, un ds2450, y decidi aprovechar los ADC del micro, de 12 bits me parece, y asi reducir un poco el tamaño de la placa, finalmente se quedo con usb y rs232, una salida a optoacoplador, y solo eso, aqui dejo una imagen del esquematico

(http://img130.imageshack.us/img130/9641/esq.th.jpg) (http://img130.imageshack.us/i/esq.jpg/)


ahora a diseñar la placa, en el PCB, estoy pensando que con una placa de 10cmx10cm creo que es suficiente espacio para que quepa todo, una vez terminada la placa, pasaremos por el firmware, me emociona esta nueva idea, asi tendremos una idea completa de como manejar un micro freescale, y ver su potencial espero no quedarme corto, y ya por ultimo y no menos importante, empezar a trabajar con labview, saludos
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 30 de Noviembre de 2009, 05:16:52
aqui algunos notas de aplicacion sobre las cuales me basare en este trabajo

an3582 (http://www.freescale.com/files/microcontrollers/doc/app_note/AN3582.pdf?fsrch=1)

usb training (http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=USBJM_TRAINING&nodeId=01624684491437)

saludos
Título: Re: tarjeta de adquisicion para labview
Publicado por: Suky en 30 de Noviembre de 2009, 10:29:05
Muy interesante! LabView y LabWindows me parecen soft muy interesantes con una buena cantidad de herramientas (matemáticas, tratamientos de señales, etc.) que facilitan las tareas.

Animo en el proyecto!


Saludos!
Título: Re: tarjeta de adquisicion para labview
Publicado por: cdrpo en 30 de Noviembre de 2009, 15:47:37
que sea un hecho...yo tambien quiero aprender labview..y ya estoy terminando tambien mi diseño de mi nuevo entrenador :-/

Como saben una gran diferencia entre MicroChip y FreeScale son los programadores y entrenadores, para FreeScale la mayoría son costosos, muchos implementos para realizarlos, asi que por favor jhozate si deseas compartir tu entrenador aumentaríamos las posibilidades de que mas personas se inclinen a trabajar con FreeScale

Gracias
Título: Re: tarjeta de adquisicion para labview
Publicado por: jhozate en 30 de Noviembre de 2009, 18:34:38
a no no.... :oops: q pena pero no puedo...ahi si nos tocará conformarnos con el del amigo scientist que segurito posteara sus avances con el entrenador freescale porque es que el mio es un entrenador PIC, pero me interesa sacarle el jugo a labview
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 01 de Diciembre de 2009, 03:39:19
Citar
a no no.... q pena pero no puedo...ahi si nos tocará conformarnos con el del amigo scientist que segurito posteara sus avances con el entrenador freescale porque es que el mio es un entrenador PIC, pero me interesa sacarle el jugo a labview

aqui otro avance de la placa, ya terminada, espero puedan conformarse con esa  :) :) :) :) :) (es broma)

bueno, la verdad la hice muy rapido, y sin muchos detalles por ahorrar espacio, por ahora es solo un borrador, para ver si funciona bien, y luego pensar en hacerla mas pequeña, si me va bien con esta tarjeta y labview, pues pensar en mandarla a hacer, para hacer un pequeño cursito,

(http://img687.imageshack.us/img687/8623/placalabview.th.png) (http://img687.imageshack.us/i/placalabview.png/)

espero poder tener tiempo el fin de semana para poder fabricarla, y soldarla, etc, etc

por ahora creo que mis avances estaran estancados hasta el fin de semana, saludos
Título: Re: tarjeta de adquisicion para labview
Publicado por: jhozate en 01 de Diciembre de 2009, 11:15:18
tranquilo...estaremos atentos aqui pegados :-/ :-/
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 01 de Diciembre de 2009, 23:12:13
hola amigos, como estare estancado por tiempo en el trabajo para hacer la placa, entonces empezare a poner el software, lo primero creo yo, es poner mi primera libreria, esta sera para poder leer los sensores de temperatura DS18S20, en esta version, se pueden leer n numeros de sensores dependiendo del tamaño del array, para estas librerias cree dos archivos, el de cabera 1wire.h y las funciones 1wire.c, todavia no tengo definido mis variables por typef como me recomendo anteriormente richi777, estas librerias trabajan perfectamente para un micro con un busclock de 8Mhz, ahora, como el micro que voy a trabajar estara a 48Mhz, entonces hay que cambiar el delay que tengo en ensamblador

Código: [Seleccionar]
*****************************************************************************/

static void delay_1us(unsigned int n);

/*****************************************************************************
**  principal functions
*****************************************************************************/
/* ow_reset function return 0 if there any sensor*/

static char ow_reset(void);
/* read bit functions*/
static char read_bit(void);
/* write bit*/
static void write_bit(char);
/*read byte*/
static void write_byte(unsigned char);
/* read byte */
static unsigned char read_byte(void);
/* read crc configuration */

static unsigned char ow_crc( unsigned char);

/*****************************************************************************
**  secundary functions
*****************************************************************************/
/*First*/
static unsigned char First(void);
/*next*/
static unsigned char Next(void);




/******************************************************************************
**
**  definitions delay_us functions
******************************************************************************/

void delay_1us(unsigned int n)
{
 
  asm {
       LDHX (n)
LOOP1: AIX  #-1    ;[2]
       CPHX #0     ;[3]
       BNE  LOOP1  ;[3]
  }
}


/*****************************************************************************
**
**  unsigned char ow_reset(void) fundamentals for communications sensor
*****************************************************************************/

char ow_reset(void)
{
 
 unsigned char presence;
 
 DQ_TX=0; //reset sensor
 delay_1us(470); //delay 470 us
 DQ_TX=1; //high again
 delay_1us(60);//delay 60 us
 presence= DQ_RX;
 delay_1us(460); //delay ~_ 470 us
 return presence;
}


/*****************************************************************************
**
**  unsigned char read_bit(void)
**  reads a bit from the one-wire bus. The delay
**   required for a read is 15us
*****************************************************************************/

char read_bit(void){
 
 char i;
 DQ_TX=0; //
 delay_1us(1);
 DQ_TX=1;
 delay_1us(16);//delay for 16 us
 i=DQ_RX;
 return i;
}


/*****************************************************************************
**
**  unsigned char write_bit(void)
**   writes a bit to the one-wire bus, passed in bitval.
*****************************************************************************/

void write_bit(char bit){
 if(bit){
 
 DQ_TX=0;
 delay_1us(2); //delay for 2 us
 DQ_TX=1;
 delay_1us(30);

 }else{
 DQ_TX=0;
 delay_1us(30);//delay for 30us
 DQ_TX=1;
 delay_1us(2);
 
 }
 
}

/*****************************************************************************
**
**  unsigned char read_byte(void)
** 
*****************************************************************************/

unsigned char read_byte(void){
 
unsigned char i;
unsigned char value = 0;

for (i=0;i<8;i++)
{
if(read_bit()) value|=0x01<<i;     // reads byte in, one byte at a time and then
// shifts it left
delay_1us(96); // wait for rest of timeslot
}
return(value);
}


/*****************************************************************************
**
**  void write_byte(unsigned char);
** 
*****************************************************************************/

  void write_byte(unsigned char val){
   
    unsigned char i;
    unsigned char temp;
  for (i=0; i<8; i++)             // writes byte, one bit at a time
  {
  temp = val>>i;           // shifts val right 'i' spaces
  temp &= 0x01;               // copy that bit to temp
  write_bit(temp);            // write bit in temp into
  }
  delay_1us(80);
   
  }
 
/*****************************************************************************
**
**  ONE WIRE CRC
PERFORMING A CYCLIC REDUNDANCY CHECK
A cyclic redundancy check (CRC) can be
accomplished using the functions shown below and
should be included when performing the Search
ROM function.
** 
*****************************************************************************/     
unsigned char ow_crc( unsigned char x)
{
    dowcrc = dscrc_table[dowcrc^x];
return dowcrc;
}
 
/*****************************************************************************
**
**  second layer of functions
**  FIRST NEXT AND OW_SEARCH
** 
*****************************************************************************/ 




/*****************************************************************************
**
**  FIRST
//   The First function resets the current state of a ROM search and calls
//   Next to find the first device on the 1-wire bus.
** 
*****************************************************************************/ 
 
unsigned char First(void)
{
    lastDiscrep  = 0; // reset the rom search last discrepancy global
    doneFlag = FALSE;
    return Next(); // call Next and return its return value
}
 
/*****************************************************************************
**
**  Next
    The Next function searches for the next device on the 1-wire bus. If
//  there are no more devices on the 1-wire then false is returned.
** 
*****************************************************************************/   


unsigned char Next(void)
{
unsigned char m = 1; // ROM Bit index
unsigned char n = 0; // ROM Byte index
unsigned char k = 1; // bit mask
unsigned char x = 0;
unsigned char discrepMarker = 0; // discrepancy marker
unsigned char g; // Output bit
unsigned char nxt; // return value
int flag;
nxt = FALSE; // set the next flag to false
dowcrc = 0; // reset the dowcrc
flag = ow_reset(); // reset the 1-wire
  if(flag||doneFlag) // no parts -> return false
  {
    lastDiscrep = 0; // reset the search
    return FALSE;
  }
  write_byte(0xF0); // send SearchROM command
  do
     // for all eight bytes
  {                                                                     
        x = 0;
       if(read_bit()==1) x = 2;
       delay_1us(96);
  if(read_bit()==1) x |= 1; // and its complement
      if(x ==3) // there are no devices on the 1-wire
    break;
     
  else
  {
    if(x>0) // all devices coupled have 0 or 1
    g = x>>1; // bit write value for search
  else
  {
  // if this discrepancy is before the last
  //  discrepancy on a previous Next then pick
  //  the same as last time
    if(m<lastDiscrep)
    g = ((ROM[n]&k)>0);
    else // if equal to last pick 1
    g = (m==lastDiscrep); // if not then pick 0
    // if 0 was picked then record
    // position with mask k
    if (g==0) discrepMarker = m;
  }
    if(g==1) // isolate bit in ROM[n] with mask k
    ROM[n] |= k;
    else
    ROM[n] &= ~k;
    write_bit(g); // ROM search write
    m++; // increment bit counter m
    k = k<<1; // and shift the bit mask k
    if(k==0) // if the mask is 0 then go to new ROM 
    {                        // byte n and reset mask
    ow_crc(ROM[n]); // accumulate the CRC
    n++; k++;
    }
  }
  }while(n<8); //loop until through all ROM bytes 0-7
  if(m<65||dowcrc) // if search was unsuccessful then
  lastDiscrep=0; // reset the last discrepancy to 0
  else
  {
// search was successful, so set lastDiscrep,
// lastOne, nxt
lastDiscrep = discrepMarker;
doneFlag = (lastDiscrep==0);
nxt = TRUE;                   // indicates search is not complete yet, more
// parts remain
}
   
       return nxt;
}





/*****************************************************************************

 The “Match ROM” function must provide the 64-bit
ROM-ID to select an individual device on the net.

*****************************************************************************/


unsigned char Send_MatchRom(void)
{
  unsigned char i;
    if(ow_reset()) return FALSE;
    write_byte(0x55); // match ROM
    for(i=0;i<8;i++)
    {
      write_byte(FoundROM[numROMs][i]); //send ROM code
     }
    return TRUE;
}





/*************************************************************************************

SEARCH ROM CODE EXAMPLES
As shown in the prototype function below, the “Find
Devices” function begins with a 1-Wire reset to
determine if any devices are on the net, and if so, to
wake them up.  The “First” function is then called
(see the next page), to keep track of the
discrepancy bits and return to “Next”, which finds
each unique device on the net.
The “Next” function is quite extensive and does
most of the work in finding each unique 64-bit ROM
code identifier for each device on the net.

**************************************************************************************/

void FindDevices(void)
{
unsigned char m;
    if(!ow_reset())  //Begins when a presence is detected
    {
        if(First()) //Begins when at least one part is found
        {
          numROMs=0;
          do
          {
            numROMs++;
              for(m=0;m<8;m++)
              {
                FoundROM[numROMs][m]=ROM[m];  //Identifies ROM
                //number on found device
               } 

          }while (Next()&&(numROMs<10)); //Continues until no additional devices are found
        }       
    }
}


/*****************************************************************
**
** Select the component
**
*****************************************************************/

void ow_select(char index_component){
char i;
  if(!ow_reset()){            //reset pour réactiver tous les composants
    write_byte(0x55);  //commande MATCH ROM
    for(i=0;i<8;i++)  write_byte(FoundROM[index_component][i]);   //on envoi les 64 bits du composant cible
  }
}

/*****************************************************************
**
**  function for only one devices ds18s20
**
*****************************************************************/

char ds1820_temperature(char index_component){

char k;
unsigned char get[9];
char temp_msb=0;
char temp_lsb=0;
 
  if(FoundROM[index_component][0]!=0x10){   
    temp_lsb=0xFF;                             
    return temp_lsb;
  }
 
   
  write_byte(0x44);  //demand of conversion
  delay_1us(8);
  ow_select(index_component);
 
  write_byte(0xBE);  //demand the lecture of memory ds1820
  for (k=0;k<9;k++){get[k]=read_byte();}  //lecture scratchpad
 
 
temp_msb = get[1]; // Sign byte + lsbit
temp_lsb = get[0]; // Temp data plus lsb
if (temp_msb <= 0x80){temp_lsb = (temp_lsb/2);} // shift to get whole degree
temp_msb = temp_msb & 0x80; // mask all but the sign bit
if (temp_msb >= 0x80) {temp_lsb = (~temp_lsb)+1;} // twos complement
if (temp_msb >= 0x80) {temp_lsb = (temp_lsb/2);}// shift to get whole degree
if (temp_msb >= 0x80) {temp_lsb = ((-1)*temp_lsb);} // add sign bit
 
 
 
return temp_lsb; 
}






/***********************************************************
  The “Read ROM” command is used to find the 64-
bit ROM code when only a single device is on the
net.  Multiple devices require the use of the “Search
ROM” functions.

************************************************************/

void read_ROM_code(void)
{
  int n;
  char dat[9];
  SCI1_send_string("\nReading ROM Code\n\r");
    ow_reset();
    write_byte(0x33);
    for (n=0;n<8;n++){dat[n]=read_byte();}
SCI1_send_string(dat);
}




/***********************************************************
  READING DEVICE TEMPERATURE
If there is a single device on the net, then the “Read
Temperature” function can be used directly as
shown below. However, if multiple devices are on
the net, in order to avoid data collisions, the “Match
ROM” function must be used to select a specific
device.

************************************************************/
void Read_Temperature(void)
{
char get[10];
char temp_lsb,temp_msb;
char temperature [4];
int k;
//char temp_f,temp_c;
ow_reset();
write_byte(0xCC);  //Skip ROM
write_byte(0x44);  // Start Conversion
delay_1us(4);
ow_reset();
write_byte(0xCC); // Skip ROM
write_byte(0xBE);  // Read Scratch Pad
for (k=0;k<9;k++){get[k]=read_byte();}

temp_msb = get[1]; // Sign byte + lsbit
temp_lsb = get[0]; // Temp data plus lsb
if (temp_msb <= 0x80){temp_lsb = (temp_lsb/2);} // shift to get whole degree
temp_msb = temp_msb & 0x80; // mask all but the sign bit
if (temp_msb >= 0x80) {temp_lsb = (~temp_lsb)+1;} // twos complement
if (temp_msb >= 0x80) {temp_lsb = (temp_lsb/2);}// shift to get whole degree
if (temp_msb >= 0x80) {temp_lsb = ((-1)*temp_lsb);} // add sign bit
SCI1_send_string( "\nTempC=\n");  // print temp. C
SCI1_send_string("\r");
SCI1_send_string("\r");
SCI1_send_string("\r");
SCI1_send_string("\r");
bin_to_string(temp_lsb,temperature);
SCI1_send_string(temperature);
SCI1_send_string("\r");
/*
temp_c = temp_lsb; // ready for conversion to Fahrenheit
temp_f = (((int)temp_c)* 9)/5 + 32;
printf( "\nTempF=  %d degrees F\n", (int)temp_f );  // print temp. F
*/
}




y el archivo de cabecera

Código: [Seleccionar]
/*****************************************************************************
** BRAULIO ELIAS CHI SALAVARRIA
** 1_wire.h
** functions of 1wire sensors
**
*****************************************************************************/

#define TRUE 1
#define FALSE 0


#ifndef PORTS_DQ
#define PORTS_DQ 1
#define DQ_RX     PTAD_PTAD0
#define DQ_TX     PTAD_PTAD1
#define DIR_DQRX  0
#define DIR_DQTX  1
#endif




/*****************************************************************************
**  principal functions
**  DS18S20
**
*****************************************************************************/
 void FindDevices(void);

/*****************************************************************************
**  principal functions
**  DS18S20
**
*****************************************************************************/
 void ow_select(char);
/*****************************************************************************
**  principal functions
**  DS18S20
**
*****************************************************************************/
char ds1820_temperature(char);


 
/*****************************************************************************
**  principal functions
**  DS18S20
**
*****************************************************************************/


void Read_Temperature(void);

void read_ROM_code(void);



ahora las funciones que vamos a utilizar para leer son la de read_temperature, que sirve si solo tenemos un sensor conectado, pero si tenemos conectado mas sensores conectados, entonces tenemos que llamar primero a find_devices, y de ahi seleccionar que sensor queremos leer, con ow_select, entonces ya para terminar, ahora mi chamba es hacer este pequeño cambio en la funcion delay


Código: [Seleccionar]
/******************************************************************************
**
**  definitions delay_us functions
******************************************************************************/

void delay_1us(unsigned int n)
{
 
  asm {
       LDHX (n)
LOOP1: AIX  #-1    ;[2]
       CPHX #0     ;[3]
       BNE  LOOP1  ;[3]
  }
}

saludos
Título: Re: tarjeta de adquisicion para labview
Publicado por: MLO__ en 01 de Diciembre de 2009, 23:34:45
Hola.

Muy buena la tarjeta scientist. Porque no usas la configuración Parasite Powered para el DS18S20?

Saludos
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 01 de Diciembre de 2009, 23:58:13
esta muy buena esa opcion de alimentar el sensor con el mismo bus de comunicacion, es una de las mejoras definitivas que tendra la tarjeta final  :) :)

saludos :x)

una pregunta, creen que sea mejor hacer el retardo por el TPM?
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 10 de Diciembre de 2009, 04:17:12
hola amigos, por el trabajo, no he podido terminar mi tarjetita, ahora lo unico que me falta es taladrear y soldar, la falta de un taladro con una broca de tamaño pequeño, imposibilita la tarea de terminar la tarjeta
saludos

(http://img696.imageshack.us/img696/7642/pc090001.th.jpg) (http://img696.imageshack.us/i/pc090001.jpg/)
Título: Re: tarjeta de adquisicion para labview
Publicado por: cdrpo en 10 de Diciembre de 2009, 13:16:59
En las tiendas de electrónica solo conseguía brocas de un mínimo de 0.7 mm de diámetro, por fin encontré brocas de 0.4 0.5 0.6 ... 0.9 mm en donde hacen anillos de oro y plata.
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 10 de Diciembre de 2009, 13:48:14
excelente tip cdrpo, tenia un taladro que me prestaron, es uno que venden en steren, para los amigos de mexico, ya sabran cual digo, yo tengo un mototool de la marca alltrade, pero el incoveniente con este, no es la broca, sino el adaptador de la base de la broca, en sus accesorios, no trajo el adaptador para ese tamaño de broca  :5] :5] :5], ahora lo unico que me queda hacer, es volver a pedirlo prestado  :lol: :lol: :lol:
saludos
Título: Re: tarjeta de adquisicion para labview
Publicado por: MLO__ en 11 de Diciembre de 2009, 00:34:35
Hola.

Envuelve algo de alambre de cobre tipo UTP en la broca. Yo hago asi para que el agarre sea bueno en las brocas de 1/32". El accesorio para brocas delgadas no es tan común que digamos, yo lo encontré en una relojería. Otra opción es comprar de esas brocas que tienen la parte para el agarre mas ancha  ;-)

Saludos
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 11 de Diciembre de 2009, 01:55:33
hola amigos, al fin pude perforar la placa, un amigo, me ofrecio hacer la base, con un plastico y con el torno, me dijo que no necesariamente tiene que ser de metal la base, asi que a lo mejor ya pueda tener la solucion, por lo pronto ya casi tengo terminada la placa, solo me faltan los puentes, el max232 y un conector, que se me olvido llevar a la escuela, mañana la termino, y ahora siiiii empiezo a trabajar con labview  :o :o :o ya me habia atrasado mucho, como tengo pensado, es hacer el firmware por pasos, es decir, primero la parte del sensor de temperatura ds18s20 y la comunicacion serial, y asi ir avanzando con el firmware y las practicas con labview, saludos

(http://img69.imageshack.us/img69/695/pc100003.th.jpg) (http://img69.imageshack.us/i/pc100003.jpg/)
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 12 de Diciembre de 2009, 02:16:44
al fin, ya he terminado mi placa, ya funcionando, y en espera de muchas pruebas, aqui pongo una imagen de la susodicha

(http://img23.imageshack.us/img23/1220/pc110012.th.jpg) (http://img23.imageshack.us/i/pc110012.jpg/)

este es el campo de batalla donde laboro, me encanta esta estacion de soldadura pace, es buenisima

(http://img692.imageshack.us/img692/9987/pc110007.th.jpg) (http://img692.imageshack.us/i/pc110007.jpg/)

aqui pongo el link donde pueden descargar los archivos de altium, si hay algun problema con los archivos, avisenme, tambien, alguien me puede decir como pasarlo correctamente a pdf con la escala correcta? creo que asi seria mas facil pasarlo, e imprimirlo, sin necesidad de tener instalado altium, saludos

archivos altium (http://www.4shared.com/file/171010550/29f0a9e0/PROYECTO_LABVIEW.html)

ahora si a arrancarme con el firmware y labview  :-/ :-/ :-/
Título: Re: tarjeta de adquisicion para labview
Publicado por: Suky en 12 de Diciembre de 2009, 02:55:20
Excelente scientist!! Se ve muy bien la placa  :-/ Este proyecto va viento en popa  :mrgreen:


Saludos!
Título: Re: tarjeta de adquisicion para labview
Publicado por: jhozate en 12 de Diciembre de 2009, 14:27:53
 :-/...a por labview :mrgreen:...
q es el aparatico negro con conexion usb?..
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 12 de Diciembre de 2009, 16:35:30
es el programador BDM (background debuger mode) de freescale, es como el icsp de pic, solo que este tiene debugger en tiempo real, saludos
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 13 de Diciembre de 2009, 02:23:18
Hola amigos, aqui haciendo varias practicas con la tarjeta, pero algo muy extraño me sucede, cuando solo conecto la tarjeta por usb, no enciende, cheque con un multimetro, y me da un voltaje de 1.15v, pero cuando conecto el programador BDM, enciende y funciona fantasticamente, por que creen que pueda suceder esto, por mas que pienso y busco, no encuentro ningun argumento solido, saludos
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 13 de Diciembre de 2009, 03:39:57
creo que he encontrado el problema, y es que el conector usb hembra tipo b, el pin 5 es tierra, y al parecer lo he conectado en el pin 4, existe el tipoA miniusb? saludos
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 14 de Diciembre de 2009, 21:47:19
hola amigos, encontre este documento, para empezar a trabajar con labview, excelente, el primer ejercicio que hare, es mediante el puerto serial, tomar la lectura de un sensor de temperatura ds18s20, y graficarlo, saludos

tutorial principiante labview (http://perso.wanadoo.es/jovilve/tutoriales/016tutorlabview.pdf)
Título: Re: tarjeta de adquisicion para labview
Publicado por: Suky en 14 de Diciembre de 2009, 23:25:43
Por aquí  (http://infopic-suky.blogspot.com/2009/04/labwindowscvi-labview-delphi.html)hay otro que parecía muy interesante, yo nunca me puse con ello, preferí LabWindows que es en ansi C  :mrgreen: .


Saludos!
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 14 de Diciembre de 2009, 23:31:51
Suky, muchas gracias por el link, esta excelente, creeme que cuando mencionabas labwindows, no le habia captado, creeme, se me dificulta mucho labview, no se, pero cuando lei que labwindows en en c, me cayo el 20 (frase que se utiliza para decir, "me di cuenta") voy a ponerme a leer mas al respecto, saludos
Título: Re: tarjeta de adquisicion para labview
Publicado por: Suky en 15 de Diciembre de 2009, 01:13:25
Suky, muchas gracias por el link, esta excelente, creeme que cuando mencionabas labwindows, no le habia captado, creeme, se me dificulta mucho labview, no se, pero cuando lei que labwindows en en c, me cayo el 20 (frase que se utiliza para decir, "me di cuenta") voy a ponerme a leer mas al respecto, saludos

Yo también quise arrancar con LabView pero eso de los dibujitos me volvió loco  :mrgreen: Prefiero tipear, tengo mas control, o eso supongo  :roll: igual mucho no me he desarrollado en dicho soft  :undecided:

Saludos!
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 15 de Diciembre de 2009, 01:36:48
hola amigos, ya hice el primer programa para la tarjetita, es por serial (esta en proceso el USB, falta algunas modificaciones) cada 2 segundos da la temperatura, por el puerto serial, el programa que hice en labview no funciona muy bien, es muy chistoso pensar, mi idea seria que se me facilitaria los dibujos, pero se me complica mucho, solo veo garabatos, y por mas que trato de acordarme del color de las variables, simplemente no puedo, se me hace mas facil el visual C#,  lo unico que hice en labview, fue abrir los proyectos de ayuda en IO hardware y software, y el basic serial write and read, agregarle una grafica chart, la variables la saque de la string
aqui pongo una imagen del programa

(http://img694.imageshack.us/img694/7409/labview1.th.png) (http://img694.imageshack.us/i/labview1.png/)

y tambien anexo el programa compilado en codewarrior para el microcontrolador JM60, saludos

P.D. mejor me pongo a leer acerca de labwindows :lol: :lol: ya dudo de mi habilidad con los graficos, este labwindows tiene conectividad con labview, por ejemplo, si quisiera hacer un subvi de labwindows para labview o viceversa?
Título: Re: tarjeta de adquisicion para labview
Publicado por: Suky en 15 de Diciembre de 2009, 01:42:42
 :mrgreen: Que es un SUBVI ?  :( Igual por lo que entiendo son dos programas independientes  ;-)


Saludos!
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 15 de Diciembre de 2009, 02:14:17
un subvi, es una funcion, puede ser cualquier programa que hayas hecho, y posteriormente llamarlo como una funcion, saludos


estoy checando labwindows, y me gusta bastante  :mrgreen: :mrgreen: :mrgreen: creo mejor cambio el titulo a tarjeta de adquisicion de datos para labwindows jajaja
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 15 de Diciembre de 2009, 04:11:21
despues de dos horas de estar con labwindows, me enamore de este programa, y lo que no pude hacer en dias con labview, lo hice en dos horas con labwindows, aca posteo el primer programa de muchos, recomiendo que primero se lean el getting started que les aparece cuando abren el labwindows, este programa es sencillo, prende un led y lo apaga, y dependiendo de una barra de numeros, un termometro cambia su valor, aca pongo una imagen del programa, saludos

(http://img30.imageshack.us/img30/4153/labw1.th.png) (http://img30.imageshack.us/i/labw1.png/)

Título: Re: tarjeta de adquisicion para labview
Publicado por: Suky en 15 de Diciembre de 2009, 10:21:32
Felicidades Scientist!  :-/ Jejeje! No nos va el tema de los dibujitos  :mrgreen: Para los que quieran empezar recuerden que aquí (http://infopic-suky.blogspot.com/2009/04/labwindowscvi-labview-delphi.html) hay un buen manual para comenzar en español, bien explicado y con la base.

Ahora la comunicación USB usando NI-VISA es sumamente sencillo, aquí (http://www.infopic.comlu.com/joomla/index.php?option=com_content&view=article&id=44&Itemid=64) hay un ejemplo donde lo comunico con un PIC pero el código de LabWindows es general.

Saludos!
Título: Re: tarjeta de adquisicion para labview
Publicado por: migsantiago en 15 de Diciembre de 2009, 10:56:03
Hola, a mi tampoco me gusta labview porque los programas complejos ocupan mucho espacio en pantalla y se vuelve un poco incómodo.

Pero a petición de mi asesor de tesis que es fanático de labview tuve que migrar un proyectito con acelerómetro de C# a labview y pues se puede decir que una vez teniendo terminado lo de C# pasarlo a labview es rápido.

http://img693.imageshack.us/img693/5474/acelermetrolabview.png
(http://img693.imageshack.us/img693/5474/acelermetrolabview.th.png) (http://img693.imageshack.us/img693/5474/acelermetrolabview.png)

Es solo un pic18f2450 leyendo un AD7260 a razón de 1kSps y 8 bits por eje (3kB/s).
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 15 de Diciembre de 2009, 13:34:33
excelente hilo suky, ahora mismo me leo tu ejemplo de usb con labview, ya tengo casi bien definido los endpoints para la transferencia, excelente proyecto migsantiago, la verdad no me gusta mucho labview, pero igual intentare seguir aprendiendolo, algo parecido me paso, cuando empece a aprender lenguaje escalera para los PLC, preferia hacerlo con los mnemonicos para codesys, pero de tanto intentarlo, por fin lo entendi, es que a lo mejor estamos tan acostumbrados al codigo, que ver algo diferente, es algo dificil de captar a la primera,saludos
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 17 de Diciembre de 2009, 01:49:41
hola suky, por mas que quiero hacer funcionar un timer, no puedo, el evento solo me lo hace una vez, y ahi queda muerto, tienes algun ejemplo sencillo con un timer? saludos (en labwindows)

upss el error era mio, la variable la reiniciaba cada vez que entraba a la funcion, mi error  :z) :z) :z)
Título: Re: tarjeta de adquisicion para labview
Publicado por: Suky en 17 de Diciembre de 2009, 06:18:50
jejeje! Por lo visto ya está solucionado. Fíjate que en el enlace del tutorial hay un par de ejemplos de terceros y mios, alguna usa timers entre otras herramientas  ;-)


Saludos!
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 19 de Diciembre de 2009, 14:46:25
me pueden recomendar un filtro para las entradas ADC? para evitar ruido, algun integrado o arreglos de resistencia y capacitor? algun tutorial que pueda ayudar? saludos
Título: Re: tarjeta de adquisicion para labview
Publicado por: migsantiago en 19 de Diciembre de 2009, 16:25:50
me pueden recomendar un filtro para las entradas ADC? para evitar ruido, algun integrado o arreglos de resistencia y capacitor? algun tutorial que pueda ayudar? saludos

Necesitas conocer la frecuencia de muestreo y el espectro de banda que deseas ver de la señal.

Usa el buscador con las palabras antialias (anti alias) y encontrarás algunos programas.

Yo uso FilterLab de Microchip.

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010007
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 19 de Diciembre de 2009, 16:34:02
gracias por la info, la estare leyendo, saludos
Título: Re: tarjeta de adquisicion para labview
Publicado por: Suky en 19 de Diciembre de 2009, 18:22:25
Podrás solucionar el problema con un filtro pasa-bajos sencillo con resistencia y capacitor? O requerirá de uno digital de mayor orden  :?

Yo voy avanzando de a poco, estoy haciendo una placa al estilo PIC Trainer para el JM60 :mrgreen: Con disposición de todos los puertos para usar módulos segun necesidad. Por aquí unas fotos  ;-)
(http://img268.imageshack.us/img268/6486/placaxy.th.jpg) (http://img268.imageshack.us/i/placaxy.jpg/)(http://img707.imageshack.us/img707/8444/socalo.th.jpg) (http://img707.imageshack.us/i/socalo.jpg/)

Saludos!
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 19 de Diciembre de 2009, 23:47:18
te ha quedado muy bien la primera placa, muy bien definida, que metodo utilizaste?? esta de 10!!! excelente las dos placas suky
Título: Re: tarjeta de adquisicion para labview
Publicado por: Suky en 19 de Diciembre de 2009, 23:51:34
te ha quedado muy bien la primera placa, muy bien definida, que método utilizaste?? esta de 10!!! excelente las dos placas suky

El método de la plancha con papel de revista  :mrgreen: Quedan muy bien!


Saludos!
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 23 de Diciembre de 2009, 03:10:32
aqui pego un excelente beginning para los que empezamos con esto de los filtros analogicos, es de texas instruments, imperdible

tuto texas (http://www-k.ext.ti.com/srvs/cgi-bin/webcgi.exe?Company={5761bcd8-11f5-4e08-84e0-8167176a4ed9},kb=analog,case=obj(26717),new)

este tiene ademas un software para diseñar los filtros, saludos
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 26 de Diciembre de 2009, 06:17:36
ya termine de explotar todas las posibilidades con el serial rs232, ahora que estoy leyendo acerca del usb, me gustaria llamar a la dll que me da freescale para manejar su dispositivo, pero estuve leyendo acerca de que necesito el header file del dll, que no tengo, hay alguna manera de hacerme facil para llamar a las funciones que contiene este dll? saludos
hablo de labwindows
Título: Re: tarjeta de adquisicion para labview
Publicado por: Suky en 26 de Diciembre de 2009, 14:40:34
 :( Poca experiencia tengo al respecto, pero aquí (http://www.mediafire.com/?2ydttozmg2o) adjunto un ejemplo en Labwindows realizado por un profesor que utiliza el driver (dll) de microchip para la comunicación. Puede darte una idea.


Saludos!
Título: Re: tarjeta de adquisicion para labview
Publicado por: ema en 26 de Diciembre de 2009, 16:40:16
No me acuerdo como. Pero hace un par de meses habia encontrado un programita de NI que te hacia la dll para el dispositivo usb sola. Si no mal recuerdo se llamaba "Visa Driver Development Wizard".

Tambien habia probado utilizando la dll de microchip pero era muy lento.

Saludos
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 26 de Diciembre de 2009, 18:24:44
gracias suky, de a poco ya estoy entendiendo la forma de llamar a las funciones de VISA, ya pude hacer el inf file con el visa wizard, y estoy tomando como ejemplo el programa que hiciste en tu pagina, tratare de seguir aprendiendo de ahi, ya que no esta tan dificil, bueno, al menos hasta ahora no se me ha dificultado mucho, cualquier cosa estare preguntando, saludos
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 26 de Diciembre de 2009, 20:35:06
hola suky, perdona que siga molestando, aca tengo un problema, en mi firmware identifique al endpoint 3 como OUT y endopoint 4 como IN, aca pngo un parrafo de tu programa

Código: [Seleccionar]
envio[1]=0;
status = viWrite (instr, envio, 2, &ndata); //Enviamos peticion de medida
status = viRead (instr, recibe, 1, &ndata); //Recibimos medida

en donde veo que escribes a tu dispositvo, y despues lo lees, pero lo que no entiendo, donde pones en que endpoint quieres enviar esa informacion? he estado buscando en internet, sin ningun exito, saludos
Título: Re: tarjeta de adquisicion para labview
Publicado por: Suky en 26 de Diciembre de 2009, 21:20:34
LabWindows con NI-VISA es ajeno a eso. Porque primero hay que iniciar una sesión con NI-VISA (rsrc), iniciada la sesión podemos buscar dispositivos conectados (desc) y eligiendo el dispositivo iniciamos sesión con él (instr), ya establecida ésta, podemos comunicarnos con el dispositivo con las funciones viWrite y viRead.



Saludos!
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 26 de Diciembre de 2009, 22:04:41
ok, gracias suky, pero en tu programa del pic, veo que tienes un endpoint bidireccional, el endpoint 1 donde mandas y envias todo, cuando pones

viwrite (); me imagino que por default esta en el endpoint 1? o es desde visa interactive control que tienes que modificar todo esto? estoy perdido tratando de buscar como decirle al viwrite(); a que endpoint debe de mandar un caracter, que en mi caso particular utilice el endpoint 3, lo que pasa es que este endpoint es direccional, no bidireccional, ya me pase todo el dia tratando de entender esto  :D :D :D frustrante  :5]  :P
Título: Re: tarjeta de adquisicion para labview
Publicado por: Suky en 26 de Diciembre de 2009, 22:27:02
Claro, yo lo hice sencillo y no toque nada de eso, y no se como cambiarlo  :oops:
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 27 de Diciembre de 2009, 02:31:37
bueno, tratare de hacerlo con la dll que da freescale, ya con esa pude hacer la comunicacion en c#, saludos
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 31 de Diciembre de 2009, 21:48:54
hola amigos, ya he hecho bastante ejemplos con labwindows, y con c# para esta tarjetita de adquisicion, aqui pongo algunas imagenes:

estoy haciendo un manual, por que a partir de determinado comando, en serial , te manda los valores de adc en 8 y 12bits, tiene para controlar un pwm, estoy tratando de hacerlo, lo mas detallado posible, aqui los ejemplos en labwindows, pedazo de programa

(http://img197.imageshack.us/img197/4708/temp1x.th.png) (http://img197.imageshack.us/i/temp1x.png/)

aqui otro con detectando la presion de un compresor, y controlandolo por pwm

(http://img705.imageshack.us/img705/7075/presion.th.png) (http://img705.imageshack.us/i/presion.png/)

estos dos primero los hice por serial, y este ultimo lo hice en c#, como un dispositivo HID, este lo hice con la idea, de personas que no son ingenieros en electronica y no saben nada de programacion, pero necesiten adquirir datos,por ejemplo, en la escuela donde trabajo, hay ingenieros en acuicultura que no les caeria mal tener este,la tarjeta como dispositivo HID, tiene las mismas opciones que con serial:

(http://img41.imageshack.us/img41/2012/sistemadata1.th.png) (http://img41.imageshack.us/i/sistemadata1.png/)

y este programa puede guardar un archivo excel de las muestras que ha tomado, aqui una grafica:

(http://img46.imageshack.us/img46/4193/data2.th.png) (http://img46.imageshack.us/i/data2.png/)

aqui una foto de la plaquita ya trabajando
(http://img685.imageshack.us/img685/3262/pc230078.th.jpg) (http://img685.imageshack.us/i/pc230078.jpg/)

el codigo y los ejemplos, los pienso mostrar en la pagina que estoy haciendo, quiero tener varios articulos, entre esos, este que me ha gustado mucho, saludos





Título: Re: tarjeta de adquisicion para labview
Publicado por: Suky en 01 de Enero de 2010, 13:45:12
 :-/ :-/ Excelente trabajo el que vas desarrollando! Mis felicitaciones  ;-)


Saludos!
Título: Re: tarjeta de adquisicion para labview
Publicado por: migsantiago en 01 de Enero de 2010, 13:51:14
Buenos avances Scientist.

¿Qué objetivo tiene tu trabajo? ¿Piensas usarlo para titularte?
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 01 de Enero de 2010, 17:30:47
hola mig, no, ya me titule, ahora trabajo como profesor, y estoy haciendo mi plan de estudios de la materia de instrumentacion, claro, todavia tengo que concursarla, para eso es todo esto, jejeje
Título: Re: tarjeta de adquisicion para labview
Publicado por: migsantiago en 02 de Enero de 2010, 01:26:42
Qué bien, te deseo éxito en tu aplicación al puesto.
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 10 de Enero de 2010, 13:21:15
hola amigos, ya he mandado a hacer la version final de la placa de adquisiciond de datos, es mucho mas pequeña, y en su mayoria con componentes smd, la diseñe para que se pueda poner facilmente en un protobard, y se puedan hacer varias practicas, aqui pongo una imagen en 3d, cuando me llegue la real, la posteo

(http://img684.imageshack.us/img684/1184/datalogger.th.png) (http://img684.imageshack.us/my.php?image=datalogger.png)

tiene varias mejoras, como puerto spi, i2c,1wire y otro puerto serial usart, ademas que tendra la posibilidad de ser reprogramado, mediante bootloader
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 28 de Enero de 2010, 02:33:50
hola amigos, aqui tengo las fotos de la placa ya real

(http://img197.imageshack.us/img197/6167/p1270319.th.jpg) (http://img197.imageshack.us/my.php?image=p1270319.jpg)

(http://img268.imageshack.us/img268/793/p1270320.th.jpg) (http://img268.imageshack.us/my.php?image=p1270320.jpg)

saludos
Título: Re: tarjeta de adquisicion para labview
Publicado por: ema en 28 de Enero de 2010, 21:01:03
 :shock: :shock: :shock:Te ha quedado muy profesional  :-/ :-/

Felicitaciones

Saludos
Título: Re: tarjeta de adquisicion para labview
Publicado por: migsantiago en 28 de Enero de 2010, 21:43:43
Muy padres Scientist. (http://www.todopic.com.ar/foros/Themes/babylon/images/post/thumbup.gif)
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 04 de Febrero de 2010, 02:30:29
Hola amigos, ya hice el articulo de la tarjeta en mi pagina, he puesto basicamente todo acerca del proyecto, me faltan varias cosas,pero espero que ya en esta semana, termine de postearlo, saludos

tarjeta de adquisicion de datos (http://www.thinkchip.com.mx/index.php?option=com_content&view=article&id=62:tarjetaentradoralabview&catid=44:generales&Itemid=56)
Título: Re: tarjeta de adquisicion para labview
Publicado por: stk500 en 04 de Febrero de 2010, 02:49:48
 :-/ :-/ Felicidades por tu pagina, queremos verla llena de informaciones y proyectos  :-/ :-/
Un gran saludo :mrgreen:
Título: Re: tarjeta de adquisicion para labview
Publicado por: cdrpo en 04 de Febrero de 2010, 09:48:11
Mirando tu web, encontré la siguiente imagen

(http://img130.imageshack.us/img130/5813/microk.png)

El símbolo <>| al inicio de los pines significa señal bidireccional?. Le enviare al grupo de desarrollo de EAGLE esta idea para que la incorporen en su próxima versión, desde hace 4 años que les  he enviado mis peticiones y muchas las han incorporado en su software  :)

----------

leí sobre el max232edcr, hay un chip el DS275 que incluye un transmisor y un receptor pero no requiere de capacitares externos como el max232
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 04 de Febrero de 2010, 21:20:15
hola cdrpo, si son bidireccionales, saludos  :)
Título: Re: tarjeta de adquisicion para labview
Publicado por: scientist en 15 de Febrero de 2010, 04:42:07
hola amigos, aqui pongo un pequeño curso de labwindows, es todo lo que he aprendido hasta ahora, pienso seguir agregando mas ejemplos, saludos

curso labwindows (http://www.thinkchip.com.mx/index.php?option=com_content&view=article&id=63:cursolabwindows&catid=36:labwindows&Itemid=62)