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.
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.
le 09-01-2015 02:03 AM
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
le 09-04-2015 10:03 AM
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.
le 09-07-2015 03:51 AM
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
le 09-07-2015 04:17 AM
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.
le 09-09-2015 01:22 AM
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
le 09-09-2015 02:19 AM
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)...
2- Vérifier la configuration des PINS: HOLD et WP
3- Vérifier que les permissions d'écriture sont toutes respectées WREN
Donnez nous des nouvelles de votre avancée.
Cordialement.