[Numérique] Cubloc CB320 + Horloge RTC1307 - Pas d'Ack
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

Cubloc CB320 + Horloge RTC1307 - Pas d'Ack



  1. #1
    bbehr

    Cubloc CB320 + Horloge RTC1307 - Pas d'Ack


    ------

    Bonjour,
    Je planche sur un un petit projet constitué d'un CB320 et d'une horloge RTC DS1307
    Incroyablement dès que j'envois une valeur paire au DS1307 je n'ai pas d'Ack
    Le CB320 est raccordé au DS par les ports dédiés 13= Data et 12=Clock
    Le code est simplissime et j'ai déjà utilisé l'I2c sur d'autres projets en lect/écriture notamment sur un afficheur LCD tactile qui fonctionne parfaitement.

    Code:
    Set I2c 13,12 	                                        ' SDA = Data = Port 13, SCL=Clock = Port 12
    I2cstart			
        	 If I2cwrite($D0) = 1 Then	                ' Adresse i2c write
    		 Debug "Nok D0 ecriture ", Cr
    		 End If
    		 A = I2cwrite ($00) 			' adresse de debut
    		 Debug "@ debut ", Dec(A), Cr
    		 A = I2cwrite ($00) 			' Set sec
     		 Debug "Set sec ", Dec(A), Cr
    		 A = I2cwrite ($01) 			' Set min  -> Renvoi 1 = pas d'Ack reçu
    		 Debug "Set min ", Dec(A), Cr
    		 A = I2cwrite ($00)			' Set Hrs
    		 Debug "Set Hrs ", Dec(A), Cr
    		 A = I2cwrite ($02)			' Set jour
    		 Debug "Set jour", Dec(A), Cr
    		 A = I2cwrite ($00)			' Set date jour
    		 Debug "Set date jour", Dec(A), Cr
    		 A = I2cwrite ($00)			' Set date mois
    		 Debug "Set date mois", Dec(A), Cr
    		 A = I2cwrite ($00)			' Set date annee
    		 Debug "Set date annee", Dec(A), Cr
    		 A = I2cwrite ($00)			' Set Controle
    I2cstop

    J'ai tenté de mettre des tempos cela ne change rien. Quel que soit la valeur emise il n'y a pas d'Ack si c'est une valeur paire
    Exemple je mets l'@ de départ à $01 au lieu de $00 > Pas d'Ack
    Je mets les minutes à 00, 02, 04 .. j'ai un Ack ... à 01 ,03, 05 pas d'Ack
    Si une valeur n'a pas eu d'Ack, tout ce qui est envoyé derrière n'a pas d'Ack .. ce qui est à priori normal

    J'ai tenté de lire en passant par la procédure classique I2cstart, $Adresse 1307, I2cstart, $Adresse 1307 +1 => Pas d'ack ... car valeur impaire ..
    Si j'envois tout en pair tous les Ack sont là, mais impossible de lire vu que le D1 pour la lecture est rejété
    J'ai pensé à utiliser la fonction shiftout mais du coup je ne sais pas s'il faut faire le setI2C + I2c start /I2c stop
    Quoi qu'il en soit que soit avec I2Cread ou Shiftin je remonte que des valeurs 255, 255 ..

    Je vous remercie par avance pour votre aide.
    Bruno.

    -----
    Dernière modification par Antoane ; 30/10/2016 à 13h21. Motif: Ajout balises code

  2. #2
    invite03481543

    Re : Cubloc CB320 + Horloge RTC1307 - Pas d'Ack

    Bonjour,

    quelle fréquence pour l'I2C utilises-tu?

  3. #3
    invite03481543

    Re : Cubloc CB320 + Horloge RTC1307 - Pas d'Ack

    Je dois dire que ce genre de pseudo-code est une injure à la programmation...

  4. #4
    bbehr

    Re : Cubloc CB320 + Horloge RTC1307 - Pas d'Ack

    Bonjour Hulk,
    Je ne vois pas l'intérêt de ton second post .. tout le monde n'est pas ingénieur et le but était de faire très simple pour que même le bricoleur qui a pu être confronté au pb comprenne ..
    Les Cubloc c'est 100 Khz
    J'avais une EEPROM 24LC16B que j'ai mis à la place du RTC1307 et pas de soucis, je lis et j'écris ou je veux et comme je veux.

  5. A voir en vidéo sur Futura
  6. #5
    invite03481543

    Re : Cubloc CB320 + Horloge RTC1307 - Pas d'Ack

    Tu vas comprendre pourquoi je réagis ainsi:

    pourquoi inventer un pseudo langage alors qu'il existe depuis des lustres des langages très accessibles tels que basic par exemple?

    Ce genre d'écriture est totalement imbuvable et n'apporte aucune plus-value, bien au contraire elle est confusante et là est le but final, te rendre dépendant de leurs gadgets, tout comme arduino et autres chimères à 2 balles.
    Si tu es capable d'apprendre ce genre de baragouinage infâme tu es parfaitement apte à apprendre un langage structuré, opter pour ce genre de choix me consternera toujours.

    Bref tu fais comme tu le sens.
    2 pistes possibles:
    1/La DS1307 est simple à utiliser, il faut juste écrire en BCD et non pas en décimal directement dans les registres, de même en lecture il te faudra faire une conversion BCD-> décimal
    2/La DS1307 n'est pas une EEPROM, c'est plutôt une RAM, les timings sont différents et la méthode pour accéder aux registres est légèrement différente.

    Tu dois envoyer l'adresse en écriture, puis envoyer l'adresse des secondes par exemple, puis envoyer la valeur à écrire dans ce registre (en ayant au préalable converti de décimal en BCD).

  7. #6
    bbehr

    Re : Cubloc CB320 + Horloge RTC1307 - Pas d'Ack

    oui en effet je comprends mieux.
    l'eeprom c'etait juste pour tester que les instructions i2c etaient correctes et que je pouvais accéder a ce périphérique en lecture/ecriture via mon cubloc320.
    J'ai bien compris le fonctionnement du 1307 horlige rtc , Le pb est que lorsque j'envois une valeur paire elle est rejetée
    exemple j'envois 00, 02, 04 etc. dans le registre des minutes j'ai un Ack. si j'envois une valeur impaire je n'ai pas l'ack.
    J'ai vu que des personnes ont eu des soucis en laisser les broches bat en l'air, je testerai donc demain de mettre une petite pile bouton pour tester.

  8. #7
    invite03481543

    Re : Cubloc CB320 + Horloge RTC1307 - Pas d'Ack

    Si tu ne mets pas de pile sur une DS1307 il faut que tu forces à 0V cette patte BAT.
    Ca explique sans doute tes soucis.

  9. #8
    bbehr

    Re : Cubloc CB320 + Horloge RTC1307 - Pas d'Ack

    Bonjour,

    J'ai finalement trouvé.
    J'avais torsadé mes fils SDA et SCL ... 2 tours sur 3 cm !! ... c'est uniquement ça qui posait pb.
    Je pense que le boitier que j'utilise est particulièrement fragile de ce point de vue parce que sur un CB290 j'ai un LCD tactile raccordé en I2C avec 50cm de fils torsadés et cela fonctionne parfaitement
    C'est en tout un point de vigilance pour moi.

    En résumé voici ce que j'ai pu noter concernant le DS1307

    -> Il faut raccorder un condensateur de 100nf au plus proche du boitier entre +5 et masse
    -> Mettre une pile ou raccorder l'entrée Batt à la masse.
    -> Mettre le quartz sur un plan de masse avec les connections au plus court du boitier.
    -> Minimiser la longueur du bus I2C et ne pas les torsader ... dans mon cas entre DS1307 et CB320 il y avait en tout et pour tout 5 cm ...

    Bon bricolage !

  10. #9
    invite03481543

    Re : Cubloc CB320 + Horloge RTC1307 - Pas d'Ack

    Citation Envoyé par bbehr Voir le message
    exemple j'envois 00, 02, 04 etc. dans le registre des minutes j'ai un Ack. si j'envois une valeur impaire je n'ai pas l'ack.
    Je ne vois pas bien le rapport... le "torsadage" n'est certainement pas l'explication, sans quoi ça ne fonctionnerait pas du tout, valeurs paires ou impaires.

  11. #10
    bbehr

    Re : Cubloc CB320 + Horloge RTC1307 - Pas d'Ack

    Effet inductif, capacitif ?
    Ce qui est sur c'est que c'est reproductible à l'infini. Sans rien souder/dessouder on vrille les 2 fils ensemble ça ne fonctionne plus.
    Je suis perplexe comme toi, mais dois bien me rendre à l'évidence .. D'ailleurs dans l'état actuel des choses je ne sais pas si c'est lié au ds1307 ou au CB320
    J'ai encore qq tests à réaliser ..
    A+

  12. #11
    lpt1com2

    Re : Cubloc CB320 + Horloge RTC1307 - Pas d'Ack

    En effet, c’est très bizarre...
    Pourtant, si tu as confirmé en faisant la contre-manip, il reste peu de place au doute.
    Il faudrait regarder la forme des signaux avec et sans longueur de fils.
    En tout cas ton expérience est intéressante, bien que je ne fasse jamais ce genre de montage « en volant ».
    Il vaut mieux être le deuxième mari d'une veuve, que le premier

  13. #12
    invite03481543

    Re : Cubloc CB320 + Horloge RTC1307 - Pas d'Ack

    Citation Envoyé par bbehr Voir le message
    Effet inductif, capacitif ?
    Ce qui est sur c'est que c'est reproductible à l'infini. Sans rien souder/dessouder on vrille les 2 fils ensemble ça ne fonctionne plus.
    Que ça ne fonctionne plus sans doute, l'I2C est chatouilleux, c'est un bus très sensible aux effets capacitifs et le câblage doit être soigné.
    gnd+SCL/gnd+SDA/gnd+Vcc, avec une nappe et non pas des fils volants.
    De là à expliquer paire et impaire, non, la raison est ailleurs.

Discussions similaires

  1. cubloc moteur pas à pas
    Par bonobo94 dans le forum Électronique
    Réponses: 3
    Dernier message: 03/02/2014, 18h51
  2. DS18B20 Cubloc
    Par invitee16c22a7 dans le forum Électronique
    Réponses: 10
    Dernier message: 02/02/2011, 19h04
  3. Problème CUBLOC
    Par virioh dans le forum Électronique
    Réponses: 2
    Dernier message: 03/05/2010, 13h13
  4. Alimentation de CUBLOC
    Par invitef06c1c66 dans le forum Électronique
    Réponses: 6
    Dernier message: 30/09/2009, 19h18
  5. Cubloc de Comfile
    Par Gérard dans le forum Électronique
    Réponses: 4
    Dernier message: 09/07/2007, 00h04
Découvrez nos comparatifs produits sur l'informatique et les technologies.