Re: PI7C9X760 (compatible 16C450)

Liste des GroupesRevenir à fs electronique 
Sujet : Re: PI7C9X760 (compatible 16C450)
De : JKB (at) *nospam* hilbert.invalid (JKB)
Groupes : fr.sci.electronique
Date : 11. Jul 2023, 18:22:08
Autres entêtes
Organisation : Guest of ProXad - France
Message-ID : <64ad8fc0$0$3083$426a34cc@news.free.fr>
References : 1
User-Agent : slrn/1.0.3 (Linux)
Le 10-07-2023, JKB <JKB@hilbert.invalid> a écrit :
Bonjour à tous,
>
Quelqu'un a-t-il déjà utilisé un pi7c9x760 en SPI ? Il paraît qu'il
est compatible 16C450 et j'ai des interrogations sur son
fonctionnement.
>
J'arrive à le configurer et à écrire dans le sens SPI/RS232 (en mode
FIFO, le composant en question est sur un port SPI d'un ATmega1284P
tournant à 8 Mhz).
>
Tous les caractères passent sans problème. Je peux relire les
différentes valeurs des registres.
>
Dans l'autre sens, lorsque j'envoie un caractère depuis la sonde
RS232, le composant m'envoie une interruption. Parfait. je vais donc
lire le caractère dans la FIFO. Et là, j'ai systématiquement le
caractère plus 128 !
>
Caractère envoyé => caractère reçu (décimal). L'étoile indique
l'arrivée d'une interruption.
>
A => *193 (65+128)
e => *229 (101+128)
é => *195* (une DOUBLE interruption)
>
J'ai peine à croire que le composant en question soit défectueux
d'autant que c'est parfaitement reproductible.

Bon,

Problème résolu, composant foiré. Deux composants défectueux sur un
lot de dix, naturellement, les deux premiers testés.

Problème suivant :

Considérons le datasheet ici :
https://www.digikey.fr/en/products/detail/diodes-incorporated/PI7C9X760CZDEX/7802413

J'ai utilisé ce datasheet pour écrire un pilote. Dans le sens
SPI->RS232, ça fonctionne parfaitement. Dans l'autre sens, si
j'envoie caractère par caractère, lentement, ça fonctionne bien
(j'ai monté l'interruption matérielle). À chaque caractère, une
interruption va au le CPU, lequel interroge le PI7 qui lui
répond IRQ 0x0C. Jusque-là, tout est normal.

Si maintenant, je vais un peu plus vite (CTS/RTS actif), je me
prends une interruption 0x28.

Problème : qu'est-ce que cette fichue interruption 0x28 ? Page 12,
il n'y a que huit interruptions dont aucune ne correspond à 0x28 !

Sortie de mon firmware (les interruptions sont affichées en IRQ+1
parce qu'il existe une interruption 0 [modem status]). L'étoile est
l'entrée dans la routine d'interruption, suivie de l'interruption
en hexa. C= indique la valeur du caractère reçu.

IRQ 0D
C=115
*0D
IRQ 0D
C=100
*0D
IRQ 0D
C=102
*0D
IRQ 0D
C=115
*0D
IRQ 0D
C=32*29
IRQ 29
IRQ uncatched!

On dirait qu'une interrption déboule avant que la précédente ne soit
traitée jusqu'au bout (avant que les drapeaux d'interruption soient
réinitialisés). Mais je ne vois rien dans la doc sur ce sujet.

Bien cordialement,

JKB


--
Si votre demande me parvient en code 29, je vous titiouillerai volontiers
une réponse.

Date Sujet#  Auteur
10 Jul 23 * PI7C9X760 (compatible 16C450)2JKB
11 Jul 23 `- Re: PI7C9X760 (compatible 16C450)1JKB

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal