utilisation de hspi Sdi (pinB.5 sur 20X2) en Output?

#1
Bonjour,

dans mon application je me sers de l'interface SPi du 20X2, uniquement en master (hspi sdo pin c.1, hspi sck pin B.7
et des chip-selecs avec pin B.4 et B.3)
J'ai tenté d'utiliser la pinB.5 (spiin) en output. Elle est déprogrammee en input des que j'active une
ecriture hspiout
Existe-t-il un moyen/une instruction pour forcer continuellement pinB.5 en sortie?
Dans le manuel 2 il est explique que"the hspiout command will only function when the hspiin pin is in the expected default state"
quel est ce default state?
Je n'ai pas constate de condition sur pinB.5 (hspiin), les bytes sur hspiout sont correctement sortis.

Merci /Topor
 

PieM

Senior Member
#2
Bonjour,
A partir du moment ou l'on utilise les fonctions hardware, on a plus la maîtrise des fonctions des pins.
la doc est claire:
Due to the internal operation of the microcontrollers SPI port, a hspiout
command will only function when the hspiin ‘input pin’ is in the expected
default state. If this pin is incorrect (e.g. high when it should be low), the hspiout
byte cannot be sent (as the microcontroller automatically detects an SPI error
condition). After 2.3 seconds of fault condition the PICAXE microcontroller will
automatically reset.

Pour garder le contrôle, il faut passer par du bit-banging.
 
#3
bonsoir PieM,

qu'est ce que le bit-banging?
j'ai pas compris ce qu'est le default state: est ce l'etat de la pin (entree ou sortie) ou le niveau (1 ou 0)

si hspiin est une entree, est ce que je peux aussi l'utiliser comme une input standard sans aleas lorsque le spi fonctionne?
avec par exemple la lecture test if pin B.5 then?

Merci/ Topor
 

PieM

Senior Member
#4
bonsoir PieM,

qu'est ce que le bit-banging?
j'ai pas compris ce qu'est le default state: est ce l'etat de la pin (entree ou sortie) ou le niveau (1 ou 0)

si hspiin est une entree, est ce que je peux aussi l'utiliser comme une input standard sans aleas lorsque le spi fonctionne?
avec par exemple la lecture test if pin B.5 then?

Merci/ Topor
Bonjour,

La liaison SPI est une liaison full duplex. Le Hspi, hardware configure donc les 3 lignes Clk, MISO, et MOSI. la broche MISO ou sdi doit donc être configurée en entrée par le µC, donc à haute impédance.
envoyer une info sur cette broche va à mon avis perturber le système car vue comme un bit lors des impulsions d'horloge. Mais l'essai est facile à faire.
Mais attention, car l'info sur sdi viendrait donc d'une autre source que le slave . Donc des niveaux opposés qui vont se rencontrer ? je ne comprends pas trop.

Le bit-banging est une solution entièrement soft, implémentée par les instructions shiftin et shiftout sur X1 et X2, ou par la procédure basic décrite dans ces commandes.
 
Top