Re: PI7C9X760

Liste des GroupesRevenir à fs electronique 
Sujet : Re: PI7C9X760
De : JKB (at) *nospam* hilbert.invalid (JKB)
Groupes : fr.sci.electronique
Date : 02. May 2023, 19:31:39
Autres entêtes
Organisation : Guest of ProXad - France
Message-ID : <645148fb$0$25945$426a74cc@news.free.fr>
References : 1
User-Agent : slrn/1.0.3 (Linux)
Bonsoir,

Je me réponds à moi-même.

Le PI7C9X760 semble être à la tension minimale d'alimentation près
un SC16IS760 de NXP (la version NXP demande 2,5V là où celle de
Pericom demande 1,8V).

J'ai téléchargé la doc de NXP qui est autrement mieux fichue est
j'ai enfin réussi à obtenir quelque chose sur le port de sortie.

La configuration est maintenant la suivante :

void
pi7c9x760_init()
{
    // CTS : input
    // RTS : output
    // DTR : output (GPIO 5)
    // DSR : input (GPIO 4)
    // RI  : input (GPIO 7)
    // CD  : input (GPIO 6)

    // 115200, 8N1
    // Diviseur 8
    // Sample rate 26 (16 - SCR + CPRN)
    // SCR vaut par défaut 0.

    // CPR accessible par LCR==0xBF et SFR[2]==1
    pi7c9x760_write(0x03, 0xBF);        // LCR
    pi7c9x760_write(0x0D, 0x5A);        // SFREN
    pi7c9x760_write(0x07, 0x04);        // SFR
    pi7c9x760_write(0x04, 0x1A);        // CPR
    pi7c9x760_write(0x09, 0x06);        // TX/RX Control Register
    pi7c9x760_write(0x07, 0x00);        // SFR

    pi7c9x760_write(0x03, 0x80);        // LCR : divisor latch enable
    // DLH et DLL accessibles parce que LCR[7]==1 et LCR!=0xBF
    // Diviseur 8
    pi7c9x760_write(0x01, 0x00);        // DLH
    pi7c9x760_write(0x00, 0x08);        // DLL

    // Access EFR register
    pi7c9x760_write(0x03, 0xBF);        // LCR
    pi7c9x760_write(0x02, 0x01);        // EFR

    // 8N1
    pi7c9x760_write(0x03, 0x03);        // LCR

    // FIFO
    pi7c9x760_write(0x02, 0x67);        // FCR

    // Interruptions
    pi7c9x760_write(0x01, 0x03);        // IER: TX/RX data ready irqs

    return;
}

Les routines de lecture et d'écriture sont toujours les mêmes. Je
lis toujours correctement les contenus des registres.

Dans une routine, j'essaie maintenant d'envoyer des caractères
ASCII sur le port série et j'obtiens :

2023-05-02 19:25:14.406852:
E8 E9 E9 E8 E8 EB E9 E8 EA EB EB EA EA EB EB EC
EC ED ED EC EE EF EF EE EC
2023-05-02 19:25:15.718416:
E8 E9 E9 E8 EA EB E9 EA EA E9 E9 EA EA EB EB EC
EC ED ED EC EC ED ED EC EE
2023-05-02 19:25:17.014097:
E8 E9 E9 E8 E8 E9 EB EA E8 EB EB EA EA EB EB EC
EC ED ED EE EC ED ED EC EE
2023-05-02 19:25:18.309762:
E8 E9 E9 EA E8 E9 EB E8 EA EB E9 EA EA EB EB EC
EC ED ED EC EC ED ED EE EE
2023-05-02 19:25:19.621330:
E8 E9 E9 EA E8 E9 E9 E8 EA E9 EB EA EA EB EB EC
EC ED ED EE EC EF ED EC EE
2023-05-02 19:25:20.916976:
E8 E9 E9 E8 EA E9 E9 EA EA E9 EB EA EA EB EB EC
EC ED ED EC EC EF ED EE EE
2023-05-02 19:25:22.228530:
E8 E9 E9 E8 E8 E9 E9 E8 E8 EB E9 EA EA EB EB EC
EC ED ED EC EC EF ED EC EC

Là, j'obtiens bien mes 25 caractères. Sauf que... je tente d'envoyer
ceci :

        for(i = 'A'; i < 'Z'; i++)
        {
            pi7c9x760_write(0x00, i);
        }

La vitesse sur le port semble donc être la bonne. LSR vaut $60, donc
FIFO data error et THR et TSR vides.

Pourquoi FIFO error ? Je suppose que c'est ce qui explique la non
répétabilité des données transmises.

Je suis preneur de toute idée,

JKB

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

Date Sujet#  Auteur
28 Apr 23 * PI7C9X7603JKB
2 May 23 +- Re: PI7C9X7601JKB
3 May 23 `- Re: PI7C9X7601JKB

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal