IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Programmation EEPROM


Sujet :

C++Builder

  1. #21
    Membre habitué

    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 137
    Points : 161
    Points
    161
    Par défaut
    Je travaille avec un électronicien qui programme ses PIC avec un logiciel très précis.
    Quelles sont les avantages de programmer avec ce type d'IDE par rapport à Delphi ou C++Builder ?

    Combien de temps faut-il pour faire un programme tout simple sur un PIC avec Delphi (pour un débutant) ?

  2. #22
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    As-tu essayé d'augmenter le délai?
    Si tu veux, tu peux essayer d'utiliser la DLL que je t'ai donné...
    Pour cet aprem, je n'aurai pas le temps d'étudier ton code, à+
    De retour parmis vous après 10 ans!!

  3. #23
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 115
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par Sub0
    As-tu essayé d'augmenter le délai?
    Si tu veux, tu peux essayer d'utiliser la DLL que je t'ai donné...
    Pour cet aprem, je n'aurai pas le temps d'étudier ton code, à+
    g essaye d'augmente le delai oui....tu mets combien comme delai toi?

  4. #24
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Quelles sont les avantages de programmer avec ce type d'IDE par rapport à Delphi ou C++Builder ?
    Les avantages sont que tu n'auras pas à éplucher le datasheet du µC pour comprendre comment le programmer!
    Pour programmer un PIC, il est plus simple de ce servir de ce qui a déjà été fait.
    Mais pour le reste, il faut programmer soi-même.
    -> Il n'existe pas de programme quand le montage est de sa propre conception.

    Combien de temps faut-il pour faire un programme tout simple sur un PIC avec Delphi (pour un débutant) ?
    Les programmes PIC sont des fichiers binaires à l'extension HEX. Il existe déjà des compilateurs pour les PICs.
    Utiliser Delphi, C++ Builder, ou un autre compilateur est nécessaire pour piloter un montage,
    pas pour programmer des PICs.
    Le temps que va prendre le développement d'un programme dépend de sa complexité, c'est très variable, à+
    De retour parmis vous après 10 ans!!

  5. #25
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    tu mets combien comme delai toi?
    Cela dépend des limites du composant!
    En général, je commence pas un délai très grand, et une fois que je suis sûr que tout fonctionne,
    je diminue le délai progressivement jusqu'à que ça ne fonctionne plus.
    Puis je réaugmente légèrement pour que tout refonctionne.
    De retour parmis vous après 10 ans!!

  6. #26
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 115
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par Sub0
    tu mets combien comme delai toi?
    Cela dépend des limites du composant!
    En général, je commence pas un délai très grand, et une fois que je suis sûr que tout fonctionne,
    je diminue le délai progressivement jusqu'à que ça ne fonctionne plus.
    Puis je réaugmente légèrement pour que tout refonctionne.
    pour le 24LC00 tu mettrais combien?

  7. #27
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    pour le 24LC00 tu mettrais combien?
    4 ms maximum byte write cycle time
    -> Voir la table 1-3 du datasheet que je t'ai donné.

    Le délai est crée par une boucle d'incrémentation.
    Le temps résultant est variable selon la puissance de ton PC et des ressources libres.
    Si ton montage ne fonctionne pas encore, mais un grand délai.
    Tu le diminuras quand ça marchera, à+
    De retour parmis vous après 10 ans!!

  8. #28
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 115
    Points : 48
    Points
    48
    Par défaut
    Ca marche pas, qd tu auras 5min pourrais tu regarder mon code stp, ca doit etre un truc tout con mais je vois pas.......En totu cas merci pour tout...
    a+

  9. #29
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 115
    Points : 48
    Points
    48
    Par défaut
    Ce délai corespond a quoi exactement ?

  10. #30
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Ce délai corespond a quoi exactement ?
    Une eprom possède une donnée de plusieurs bits par adresse.
    Pour l'écriture d'une donnée, il faut définir l'adresse, la donnée, puis envoyer l'écriture.
    Cette écriture nécessite un certain temps.
    De même, la mémorisation d'un bit (d'adresse ou de donnée) nécessite un certain temps.
    Quand tu envoit un bit au composant, il faut lui laisser le temps de le recevoir et de le mémoriser.
    Le délai du bus I²C sert à ça. Il permet aussi au composant de différencier l'état d'un changement d'état.

    qd tu auras 5min pourrais tu regarder mon code stp,
    Je veux bien regarder ton code, mais je doute que 5 min suffisent!
    Répond-moi d'abord:
    - Est-ce-que c'est toi qui la écrit ce code de A à Z?
    - As-tu vérifier au voltmètre que tu arrivais bien à définir l'état de data et clock?
    - As-tu d'autres éléments à me donner, où sont écrites les fonctions appellées?

    à+
    De retour parmis vous après 10 ans!!

  11. #31
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 115
    Points : 48
    Points
    48
    Par défaut
    Est-ce-que c'est toi qui la écrit ce code de A à Z?
    Non j'ai repris les write et read d'un octet, qui marchent tres bien avec une eeprom Xicor X24C00, j'ai ecris moi la fonction d'ecriture de l'eeprom pour cette derniere, no probleme...
    Le protocole I2C de la microship est completement different de celui de Xicor, donc je me suis dit que j'allais implementer le nouveau protocole I2C de la 24LC00 en me servant des fonctions de lecture/ecriture d'un octet sur le port I2C, mais heals ca ne marche pas......je penses avoir bien implementer ce nouveau protocole alors je ne comprends pas......

    As-tu vérifier au voltmètre que tu arrivais bien à définir l'état de data et clock?
    Non car ces etats marchent tres bien pour la Xicor.....donc le pilotage de SDA et SDL fonctionnent.....

    As-tu d'autres éléments à me donner, où sont écrites les fonctions appellées?
    Oui j'appelle tout betement mes fonctions ecriture/lecture d'eeprom pour la meme adresse j'ecris, je lis....

    Ecriture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Ecriture = 0xF0;
    pucPointeurDataI2C = (ubyte *) &Ecriture;
    IO_vI2C_Write_Bytes( 160,0);
    Lecture sur le port serie par borllandc++:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Prov_Test1[0] = IO_ubI2C_Read_Bytes( 160,0);
    EmissionData(1,Prov_Test1);
    voila et quoi que j'ecrive borland m'affiche toujours 0x00 et non par exemple comme ici : 0xF0.....

    Voila merci pour tout

  12. #32
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Non j'ai repris les write et read d'un octet, qui marchent tres bien avec une eeprom Xicor X24C00, j'ai ecris moi la fonction d'ecriture de l'eeprom pour cette derniere
    Tu aurais dû commencer par là!
    Ton erreur se trouve sûrement dans cette procédure.
    Il faut comparer les modes opératoires des 2 Eproms dans leur datasheet!
    L'une ne doit pas se piloter comme l'autre... la différence?
    Je te conseil de diminuer le délai et de faire des essais en modifiant des trucs dans cette proc,
    jusqu'à trouver ton (ou tes) erreur(s).
    -> Il faut étudier la séquence de lecture et d'écriture des Eproms.
    Bon courage, à+
    De retour parmis vous après 10 ans!!

  13. #33
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 115
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par Sub0
    Non j'ai repris les write et read d'un octet, qui marchent tres bien avec une eeprom Xicor X24C00, j'ai ecris moi la fonction d'ecriture de l'eeprom pour cette derniere
    Tu aurais dû commencer par là!
    Ton erreur se trouve sûrement dans cette procédure.
    Il faut comparer les modes opératoires des 2 Eproms dans leur datasheet!
    L'une ne doit pas se piloter comme l'autre... la différence?
    Je te conseil de diminuer le délai et de faire des essais en modifiant des trucs dans cette proc,
    jusqu'à trouver ton (ou tes) erreur(s).
    -> Il faut étudier la séquence de lecture et d'écriture des Eproms.
    Bon courage, à+
    Attention, qaund je dis "write" et "read" c pour 1 octet! ca ne change pas quelque soit l'eeprom.......ce qui change c le protocole d'ecriture et de lecture de l'eeprom elle meme decrites dans les datasheet respective....je me trompe? je disais juste que les "write" et read" pour 1 octet fonctionnent puisque je les ai testees.....
    a+

  14. #34
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Oui, c'est ça, tu ne te trompes pas.
    Il faut que tu adaptes tes procédures d'écriture/lecture d'Eprom au nouveau modèle...
    Tu devras analyser les datasheets des composants, pour recréer le protocol correspondant.
    C'est tout!

    Pour les essais, met un délai assez grand, et quand ça fonctionnera, tu le diminuras au maximum.

    Bon courage, à+
    De retour parmis vous après 10 ans!!

  15. #35
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 115
    Points : 48
    Points
    48
    Par défaut
    c justement la que le bas blesse je pense avoir ete fidele au nouveau protocole....
    Le delai a quel niveau de la programmation tu le mets?

  16. #36
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void IO_vI2C_Pause(void) 
    { 
    char a=0; 
     
    for (a=0;a<3;a++) ; 
    }
    5 itérations, c'est trop peu! Surtout sous Windows...
    Je ne sais pas, essaye d'avoir 5 ..10ms pour un cycle, fait le calcul avec la fréquence de ton cpu,
    ou regarde combien de temps il mets pour l'opération complète, puis divise par le nombre de cycle... à+
    De retour parmis vous après 10 ans!!

  17. #37
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 115
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par Sub0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void IO_vI2C_Pause(void) 
    { 
    char a=0; 
     
    for (a=0;a<3;a++) ; 
    }
    5 itérations, c'est trop peu! Surtout sous Windows...
    Je ne sais pas, essaye d'avoir 5 ..10ms pour un cycle, fait le calcul avec la fréquence de ton cpu,
    ou regarde combien de temps il mets pour l'opération complète, puis divise par le nombre de cycle... à+

    J'avance, j'arrive a ecrire dedans (avec la tempo ci dessus) mais la lecture ne marche pas......

  18. #38
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Comment peux-tu vérifier l'écriture sans pouvoir lire son contenu? humm?
    De retour parmis vous après 10 ans!!

  19. #39
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 115
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par Sub0
    Comment peux-tu vérifier l'écriture sans pouvoir lire son contenu? humm?
    Bah g un logiciel qui ecrit et lit sur port parallele.....je peux ecrire et lire a volonte avec ce logiciel mais moi je veux le faire pour mon soft a partir de mon microcoleur......

  20. #40
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    En général, l'écriture est plus difficile à obtenir que la lecture.
    Soit le problème vient du protocol de lecture, ou alors le délai...
    A mon avis, tu n'es plus très loin du tag résolu!
    De retour parmis vous après 10 ans!!

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. [PIC 16C84] Ajouter une eeprom externe i2c à un programme
    Par jacques8 dans le forum Autres architectures
    Réponses: 2
    Dernier message: 30/09/2005, 17h11
  2. Programme de boot qui passe la main à Windows
    Par Bob dans le forum Assembleur
    Réponses: 7
    Dernier message: 25/11/2002, 03h08
  3. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  4. communication entre programmes
    Par jérôme dans le forum C
    Réponses: 12
    Dernier message: 16/04/2002, 08h05
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo