Pb de programmation 20X2

guil

New Member
Bonjour à tous,

Je débute dans la programmation des picaxe et je rencontre déjà une difficulté. Mon objectif est de faire une application pour gérer un terrarium, mais pour l'instant j'essaie de me familiariser avec les bêtes en parcourant le forum. J'ai repris l'exemple du site electromag1 qui présente l'utilisation d'un 08M2 avec un afficheur en I2C et un adaptateur PCF8574. Ce montage et le programme qui va avec fonctionne très bien.
Mon problème a commencé lorsque j'ai voulu mettre ce programme dans un 20X2. J'ai réussi à charger le programme 1 fois et depuis je n'arrive plus à faire aucun chargement dans le 20x2, j'ai systématiquement un message du genre "hardware non connecté sur ccom4", PE6 ne trouve pas le picaxe qui est branche, alors qu'avec le 08M2 aucun problème. Merci de votre aide pour m'aider à trouver des pistes pour solutionner ce problème.
Pour charger les programmes dans les picaxes, j'utilise un cordon USB/serie DB9 et pas le cordon Axe027.
Je vous joins ci-dessous le programme que j'ai mis dans le 20X2. Le programme chargé une fois dans le 20X2 tourne car j'ai bien un message sur l'afficheur

Code:
;Utilisation expandeur PCF8574 sur LCD MM 04 05 2015
;   SCL sur b.7
;   SDA sur b.5
;   tension var sur b.4

 #picaxe 20x2
 dirsC =%000111
 symbol rsbit=bit0
 symbol cpt=b1
 symbol car=b2
 symbol dat=b3
 symbol vari= w13
     setfreq M32
            
 ; Initialisation I2C 4 bits , etc ********
     hi2csetup i2cmaster,%01001110, i2cslow_32, i2cbyte        
 ; Initialisation LCD ********* 
     for cpt=0 to 5
         lookup cpt,($33,$32,$28,$c,$6,$01),car
         gosub EnvoiByteCommInit
     next
     pause 200   ;temps init du LCD
               
 ;  Affichage texte ***********************            
  car= 128	 	'curseur debut ligne1
     gosub EnvoiByteComm    
     for cpt=0 to 6
     lookup cpt,("Bonjour"),car
     GOSUB EnvoiByteData    
     next    
     car= 136    'curseur  ligne2
     gosub EnvoiByteComm    
    for cpt=0 to 7
    lookup cpt,("Enfin???"),car
     GOSUB EnvoiByteData    
     next    

 ; sub envoi vers lcd via i2C
	EnvoiByteCommInit:
		pause 15
	EnvoiByteComm:
		rsbit=0
	EnvoiByteData:	;1ere moitie
		dat=car & $F0 | %1000 | rsbit
		hi2cout (dat)
		dat=dat | %1100
		hi2cout (dat)
		pause 5
		dat=dat | %1000
		hi2cout (dat)
				;2eme moitie
		dat=car & $0F * 16 | %1000 | rsbit
		hi2cout (dat)
		dat=dat |%1100
		hi2cout (dat)
		pause 5
		dat=dat |%1000
		hi2cout (dat)
rsbit=1
 return
D'avane merci pour votre aide
Cordialement
 

guil

New Member
Bonjour,
Ci-dessous le cablage utilisé,

Cablage picaxe.jpg

Des essais ont été fait avec une alimentation par le port USB du PC ou avec une alimentation 5V extérieur, sans différence sur le resultat obtenu.
GM
 

PieM

Senior Member
Bonjour,

Faites un hard reset: mettre le picaxe sous tension après avoir lancé le chargement programme.
 

MGU

Senior Member
Et si vous pouvez redémarrer un chargement mettez un end avant la ligne
; sub envoi vers lcd via i2C
Bonjour,

Merci Piem, effectivement, ce bout de programme de test manque de "finition". Je vais rectifier l'original.

Je ne connais pas le convertisseur série utilisé ici, mais si il fonctionne avec un 08M2, c'est qu'il est conforme AXE127.
Un test du cordon devrait le confirmer.

Mais quoi faire si le hard reset ne donne rien?

MM
 

PieM

Senior Member
Bonjour,

Merci Piem, effectivement, ce bout de programme de test manque de "finition". Je vais rectifier l'original.

Je ne connais pas le convertisseur série utilisé ici, mais si il fonctionne avec un 08M2, c'est qu'il est conforme AXE127.
Un test du cordon devrait le confirmer.

Mais quoi faire si le hard reset ne donne rien?

MM
Bonjour Michel,

Je pense que le problème ne vient pas du cordon mais d'un blocage du Picaxe 20X2.
En fait le end est normalement mis automatiquement mais en fin de programme.
Toutefois, dans le cas présent , il est possible que le programme continue sur les routines sous programme, auquel cas il peut se trouver avec un pb de pile, donc un blocage qui l'empêche de se laisser reprogrammer.
Mais ce n'est qu'une supposition !
 

guil

New Member
Bonjour,

ça marche ! ! ! ! Merci à tous pour votre aide.

Le hard reset m'a permis de charger à nouveau le Picaxe.
Effectivement PieM a raison c'est le end manquant à la fin du programme qui perturbait le 20X2 alors que le 08M2 ne semble pas sensible à cet oubli.
Sans le End, seul le premier chargement fonctionne et ensuite impossible de recharger le picaxe et avec le End tout rentre dans l'ordre.

Encore Merci

Je serais sans doute amené à solliciter à nouveau les membres du forum pour mon projet mais pour l'instant je vais juste essayer de mettre en I2C sur le 20X2 l'afficheur et une RTC DS1307.
Cordialement
 
Last edited:

MGU

Senior Member
OK ! Parfait, désolé pour cet oubli.

Ne manquez pas de nous tenir au courant de vos essais, même si ça fonctionne..

MM
 
Top