Analizador logico de bajo coste

La verdad es que funciona bastante bien el bicho, por lo menos las cositas pequeñas que he probado.
Al principio cuando me llego no funcionaba nada porque tenia vacía la memoria eeprom, una 24c256. Con las instrucciones que me envío el vendedor lo solucione.
Si quieres usar USBee necesitas subir un fichero a la eeprom y si quieres SALEAE necesitas otro. Encontré en internet gente que tenia dos memorias montadas y seleccionaban una memoria o otra cambiando la dirección.
Las entradas soportan 5V.
Los pines que se usan son desde el PB0 al PB7, el resto no se usan.

Gracias flico por tu respuesta.

He encontrado una pagina china donde creo que explican el proceso para programar la EEPROM sin mucho misterio vamos. :)

http://translate.google.es/translate?hl=es&sl=zh-CN&tl=en&u=http%3A%2F%2Fwww.cnblogs.com%2Fcraftor%2Farchive%2F2011%2F03%2F06%2F1972413.html

???!

Anda que no me hubiera venido bien ese enlace antes. Tu sabes lo dificil que es entender los correos en chino mandarin. Menos mal que esta el traductor de google que sino.

Estimados! Espero que vuestra experiencia pueda recurrir en mi ayuda.

He comprado uno de los módulos de Ebay de LCSOFT y no he tenido suerte para hacerlo funcionar. Primero intenté con los links que ponen más arriba, pude instalar el driver de Cypress pero el USBee no funcionaba y el Logic no se pod{ia siquiera instalar (uso Windows 7 de 64bits). Todo lo hago con el Jumper cerrado, con lo cual tengo VID 0925 y PID3881 (que más tarde descubrí que eran los valores del Sealae) Luego intenté con la versión de 64 bits del Logic y se instaló fenómeno, reconociendo a la placa y todo, pero al comenzar el software obtengo un error:

Logic Assert Information Version: 1.1.15 System: Windows 6.1 Service Pack 1 File: ..\source\LogicAnalyzerDevice.cpp Function: LogicAnalyzerDevice::ReadEeprom, Line: 393 Error: LogicAnalyzerDevice::ReadEeprom failed after 3 tries.

En google solo encontré a un fulano que dice que es culpa ed la EEPROM, y hay que cambiarla, pero tocar eso va más allá demis posibilidades. Alguien tiene experiencia en el tema? Saludos y gracias

uso Windows 7 de 64bits

Prueba con un XP porque tiene toda la pinta de que es el problema.

Monté otra EEPROM en paralelo (como surge de http://sunbizhosting.co.uk/~spiral/blog/?p=117) y ahora lo reconoce. Usé una AT24C02B que programé previamente con el código del Saleae como dice acá http://www.jwandrews.co.uk/2011/12/saleae-logic-analyser-clone-teardown-and-reprogramming/, pero usando Arduino para subir el código.

Todo muy bonito con la versión 1.1.15, lo reconoce inmediatamente y bajo Win7 de 64bits.

Peeero, por ahora no pude hacer que lea nada, jajajjajaj! Estoy probando con un 74HC245 como buffer para convertir de 5v a 3.3V y probablemente ahí esté metiendo la pata. Seguiré intentando y les cuento.

Me alegro que ya te funcione. Hay un montón de cosas de lo que dices que no entiendo. ....pero usando Arduino para subir el código. Como lo haces?

Estoy probando con un 74HC245 como buffer para convertir de 5v a 3.3V y probablemente ahí esté metiendo la pata. Esto no lo entiendo.

El código es este:

#include <Wire.h> //I2C library
byte vdisp = 0x50;


void i2c_eeprom_write() {
  
  Wire.beginTransmission(vdisp); //esta es la dirección
  Wire.write(0x00); // MSB
  Wire.write(0xC0);
  Wire.write(0x25);
  Wire.write(0x09);
  Wire.write(0x81);
  Wire.write(0x38); 
  Wire.write(0x1B); 
  Wire.write(0x00); 
  Wire.write(0x00);
  Wire.endTransmission();
}
void i2c_eeprom_read( ) {
  
  Wire.beginTransmission(vdisp); //esta es la dirección
  Wire.write(0x00); // MSB
  Wire.endTransmission();
  for (byte i=0;i<10;i++) {
    Wire.requestFrom((int) vdisp, 1);
    if (Wire.available()) Serial.println(Wire.read());
    delay(100);
  }
  
}



void setup() 
{
  int empieza = 0;
  Wire.begin(); // initialise the connection
  Serial.begin(9600);
  i2c_eeprom_write();
  Serial.println("Memoria escrita");
  i2c_eeprom_read();
  Serial.println("Memoria Leida");
  
}

void loop() 
{
  
  
 }

Es un pequeño sketch para grabar los 8 bytes que hay que poner en la EEPROM.

Respecto del 74HC245 estoy tratando de copiar esta solución: http://arduino.cc/forum/index.php/topic,31712.0.html

El analizador funciona con 3.3V y las cosas que quiero medir andan a 5V (arduino), así que por eso quiero poner algo en el medio para adaptar entre tensiones.
Corrijo ahora que veo el datasheet y el comentario de flico, veo que las entradas toleran 5V, así que estaba complicándome sin sentido.

Si bien el software de Seleae reconoce la tarjeta y me lo marca como conectado, todo con los driver originales, no he podido leer nada. Pero tengo que hacer algún experimento más simple. Esto de los analizadores es nuevo para mi.
Los mantengo informados. Saludos!

Pensaba que conectabas el analizador a arduino para grabar la eeprom.

byte vdisp = 0x50;

Wire.beginTransmission(vdisp); //esta es la dirección Wire.write(0x00); // MSB Wire.write(0xC0); Wire.write(0x25); Wire.write(0x09); Wire.write(0x81); Wire.write(0x38); Wire.write(0x1B); Wire.write(0x00); Wire.write(0x00);

De donde has sacado estas direcciones de memoria.?

Según vi, la tarjeta no funciona con la nueva versión de Logic (la 1.1.15) porque la memoria que trae es grande y usa direcciones de 16 bits. Por eso monté una más chica (AT24C02B, porque es lo que conseguí), que usa direcciones de 8 bits, en paralelo a la existente (no hace falta quitar la original). La conecto directo a los pins SDA y SCL de la tarjeta, y pongo A0, A1 y A2 a GND.
Pero para que eso funcione, hay que meterle el códico de la Logic para que reconozca el VID y PID. Esos códigos los saqué de esta página: Saleae Logic Analyser Clone Teardown and Reprogramming |

Es esta cadena: C0 25 09 81 38 1B 00 00

Con esto lo reconoce perfecto el driver de Saleae y el software.

Ok. Gracias por la info.