mercredi 2 janvier 2019

Analyseur logique CY7C68013A


Analyseur logique CY7C68013A


Récemment j'ai acheté ce petit module.
Cette petite carte est sensée servir de base à la réalisation d'un analyseur logique à 16 voies 24MHz.
C'est un clone de la Saleae Logic.

Il existe d'autres modèles sous boîtier offrant une meilleure protection des entrées :

1. PulseView

Je l'ai couplée au logiciel PulseView Sigrok, logiciel permettant de s'interfacer avec une multitude d'appareils de mesure allant de l'analyseur logique à l'oscilloscope en passant par les multimètres, décibel-mètres, etc.

Pour l'analyse de signaux, Sigrok permet d'activer divers plugins d'analyse de protocoles :
  • UART
  • I2C
  • SPI
  • CAN
  • IR NEC, RC-5
  • etc.

Ici la procédure d'installation WINDOWS.

Certaines distributions LINUX proposent un package directement installable :
  • Debian
  • Ubuntu
  • Arch Linux
  • Slackware
  • Fedora
  • Gentoo
  • openSUSE
Pour Ubuntu :

sudo apt-get install  pulseview

Il existe aussi une procédure d'installation LINUX en partant des sources.

Bonne nouvelle :Une fois installé et lancé ce logiciel reconnaît la carte comme un CYPRESS FX2 :


Avec une carte ARDUINO et un module DS3231 j'ai essayé d'analyser les signaux sur le bus I2C et UART.

Voici le sketch :

#include <Wire.h>
#include <DS3231.h>

DS3231 clock;
RTCDateTime dt;

void setup()
{
  Serial.begin(115200);

  // Initialize DS3231
  Serial.println("Initialize DS3231");;
  clock.begin();

  // Set sketch compiling time
  clock.setDateTime(__DATE__, __TIME__);
}

void loop()
{
  dt = clock.getDateTime();

  // For leading zero look to DS3231_dateformat example

  Serial.print("Raw data: ");
  Serial.print(dt.year);   Serial.print("-");
  Serial.print(dt.month);  Serial.print("-");
  Serial.print(dt.day);    Serial.print(" ");
  Serial.print(dt.hour);   Serial.print(":");
  Serial.print(dt.minute); Serial.print(":");
  Serial.print(dt.second); Serial.println("");

  delay(1000);
}


1.1. Analyse I2C

Les branchements sont réalisés comme suit :
  • PB0 de la carte CY7C68013A sur SCL de l'ARDUINO
  • PB1 de la carte CY7C68013A sur SDA de l'ARDUINO
Sélections dans PulseView :
  • fréquence d’échantillonnage : 2MHz
  • nombre d'échantillons : 2 M sample
A l'aide de l'icône "Grip-fil" supprimer les canaux D2 à D15, inutiles.

Ajouter un décodeur I2C à l'aide de la petite icône à droite de la liste de sélection de fréquence d’échantillonnage.
Cliquer sur la flèche I2C venant d'apparaître en bas à gauche et affecter :
  • SCL à D0
  • SDA à D1
Cliquer sur le bouton Run.

On obtient ceci :


On reconnaît bien l'adresse du DS3231 : 0x68
Ensuite la commande de lecture de l'heure : 0x00
Et enfin les données : 0x47 0x18 0x21 0x3 0x2 0x1 0x19, qui correspondent aux secondes, minutes, heures, jour dans la semaine, jour, mois et année.

Il était bien 21:18:47 au 02/01/2019 au moment de la capture. Ça a l'air de marcher plutôt pas mal.

1.2. Analyse UART

Les branchements sont réalisés comme suit :
  • PB0 de la carte CY7C68013A sur TX de l'ARDUINO
  • PB1 de la carte CY7C68013A sur RX de l'ARDUINO
Supprimer le décodeur I2C (click droit sur la flèche I2C puis Delete).

Ajouter un décodeur UART à l'aide de la petite icône à droite de la liste de sélection de fréquence d’échantillonnage.
Cliquer sur la flèche UART venant d'apparaître en bas à gauche et affecter :
  • TX à D1
  • RX à D0
Cliquer sur le bouton Run.

On obtient ceci :


On reconnaît bien les caractères envoyés sur la console par le sketch :
Raw data : 2019-1-2 22:12:7[0D][OA]

2. Saleae

Comme le CY7C68013A est un clone de Saleae, il est compatible avec leur application :
https://www.saleae.com/downloads/

3. Conclusion

Cette petite carte à 3€ couplée au logiciel Sigrok semble tenir ses engagements et promet de belles analyses de signaux, sans se ruiner.

Cordialement
Henri

4. Mises à jour

17/02/2019 : installation pour LINUX à partir de packages
                     2. Saleae
18/08/2019 : Introduction : clone Saleae

Aucun commentaire:

Publier un commentaire