From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Discussions au sujet des autres produits NI

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

NI 8451 SPI C#

Bonjour,

Après de nombreuse recherche, je me décide à faire appel à la communauté pour m'aider.

Avant toute chose, je suis débutant et ne connais le matériel NI que depuis 1 petit mois.

 

L'on m’a demandé de réaliser un programme en C# pour lire et écrire dans une mémoire, via un NI-8451 USB.

J'ai trouvé des exemples (fournit par NI & sur internet) utilisant VISA pour réaliser l'opération. Je peux récupérer divers information via la MessageBasedSession (Nom, interface, etc...).

Les soucis arrivent lors de l’opération de lecture qui se termine par une Exception de timeout, j'ai donc augmenté la durée et réduit à 2 bytes la lecture, idem.

Je tiens à préciser que les exemples de NI en C++ eux fonctionne très bien, lecture et écriture.

 

Je ne suis pas familier avec ce genre de produits, donc je peux avoir fait une erreur simple.

En vous remerciant d'avance pour vos réponses.

 

Pilote version 14.0

Windows 7 x64

 

0 Compliments
Message 1 sur 6
4 784 Visites

Bonjour Maverik03,

 

J'aurais quelques questions à vous poser pour faire avancer à la résolution de votre problématique.

 

- Quelle système avez vous avec votre NI-8451? Quel composant mémoire?

- Si vous dites que c'est à la lecture que le problème apparait, ça veut dire que l'écriture fonctionne?

- Comment vous assurez-vous que votre écriture fonctionne hormis par le fait qu'aucun code d'erreur n'est retourné?

- A quelle fréquence votre Clock fonctionne?

- Avez vous moyen de poster votre code?

 

Quelques pistes à étudier en premier lieux:

- avez vous vérifier qu'aucun PIN de votre composant "LOCK" ou "SHUTDOWN" n'est activé?

- vérifier le format des trams envoyées et qu'aucune écriture à un registre particulier n'est auparavant nécessaire pour lire et écrire sur la mémoire.

- vérifier que vous n'envoyez que "n" bits à votre composant (bits de trame). Sur certains composants, l'envoie non respecté d'un bon nombre de bits retourne une erreur

- vérifier que votre clock, CS et votre ligne MOSI répond aux normes de synchronisation de la datasheet de votre composant.

 

N'hésitez pas à revenir vers nous avec plus d'informations.

 

Cordialement.

0 Compliments
Message 2 sur 6
4 730 Visites

Bonjour,

Je vous remercie de votre réponse,

Tous d'abord la lecture et l'écriture ne fonctionne pas en C# a l'inverse du C++ ou les deux opérations fonctionne.

N'étant pas familier avec l'écriture sur mémoire, je ne peux répondre à vos questions si simplement, j'ai sollicité une personne de mon entreprise qui devrait pouvoir m'éclaircir de ce côté, je reviendrais donc vers vous dans la semaine probablement.

Merci

Cordialement

MAVERIK03

 

0 Compliments
Message 3 sur 6
4 705 Visites

Bonjour Maverik03.

 

Merci de votre réponse. Si les opérations fonctionne en C++ et pas en C# et que vous ne changez pas le cablage, votre problème doit provenir de votre code.

 

Pourriez-vous nous envoyer vos 2 codes sources et encore mieux isoler votre partie de communication SPI, que les gens puissent voir plus facilement d'ou pourrait venir votre problématique.

 

Merci de votre retour.

0 Compliments
Message 4 sur 6
4 698 Visites

Bonjour,

 

Je vous remercie encore une fois de l'attention porté à mon problème, mon entreprise ne me permet malheureusement pas de diffuser de sources, même dépouillé.

Pour créer mon code je me suis fortement inspiré d'un exemple, censé être fonctionnel, trouvé sur le net que je partage avec vous.

Je dispose également de quelque information supplémentaire:

 

Mémoire: 25LC256

Clock: 1000 MHz

Clock Phase: 0

Clock Polarity: 0

Chip select: 0

Port Socket Number:6400

 

Je dois rencontrer mon collègue cet après-midi, je reviendrais donc vers vous ce soir ou demain après-midi

Cordialement,

                   MAVERIK03

 

 

0 Compliments
Message 5 sur 6
4 678 Visites

Bonjour Maverik03,

 

Il sera compliqué pour nous de vous aider si nous n'avons pas une base sur laquelle travailler.

Ce que je peux vous conseiller, c'est de vérifier les points suivants:

 

1- Regarder à l'oscilloscope la trame envoyée sur la ligne MOSI et vérifié qu'elle correspond à la datasheet de l'EEPROM. Si la trame ne correspondant pas, vous pourrez au moins cibler le problème: synchronisation, datas, état du CS (ne pas oublier qu'il doit être par défaut à l'état haut)...

 

25LC256-1.PNG

 

2- Vérifier la configuration des PINS: HOLD et WP

25LC256-2.PNG

 

3- Vérifier que les permissions d'écriture sont toutes respectées WREN

 

25LC256-3.PNG

Donnez nous des nouvelles de votre avancée.

 

Cordialement.

 

0 Compliments
Message 6 sur 6
4 673 Visites