• Help required with 22V10 - Using a pin as Input an Output

    From Dave Hitchins@21:1/5 to All on Wed Mar 17 01:07:48 2021
    I'm having problems with the SDA part of an IIC implementation in a AMD 22V10C (not from China!). I can Output data, to the SDA output, but I'm not able to read the SDA input! My CUPL equations, as a whole, compile OK using WINCUPL and the .JED file
    programs OK.

    These are the intermediate declarations:
    FCD7  = !nPFC & A7 & A6 & !A5 & A4 & !A3 & A2 & A1 & A0;
    SCLH  = FCD7 & !BnWR & D6 ;
    SCLL = FCD7 & !BnWR & !D6 ;
    SDAH = FCD7 & !BnWR & D7 ;
    SDAL = FCD7 & !BnWR & !D7 ;

    These are the outputs associated with SDA I/O:
    PIN 15  = D7          /* Data line 7 */
    PIN 18  = SDAOE   /* SDA output control latch */
    PIN 19  = SDA        /* SDA I/O pin */

    This is the equation for the SDA output control latch and sets the SDA output Low when needed. This sections works just fine.
    SDAOE  =  SDAH    /* Set high - write FCD7 with D7=H */               # !SDAH & !SDAL & SDAOE     /* Set low - write FCD7 with D7=0 */
                  # !nRST ;    /* Set high - on reset */

    This is the SDA output pin. Pulled high, externally, with a 4K7 resistor. Works as an output just fine.
    SDA.OE  = !SDAOE ;    /* Only on when 'LOW' output required */
    SDA   = SDAOE ;    /* Always low when output enabled */

    This is the problem pin.
    D7  = SDA ;    /* SDA input transferred to D7 output on read of FCD7 */
    D7.OE  = FCD7 & BnWR ;

    If I toggle the SDAOE latch I can read its state through D7 e.g. I can read SDA output, however, if I set the SDAOE latch High, ready for read of the SDA INPUT, I can't then read the input - I just read a High value on D7. It seems that the path from
    the SDA pin through to the & array isn't there!

    Anybody have any clues to what's going wrong? Thanks . . . Dave H.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Phil Allison@21:1/5 to All on Wed Mar 17 04:18:34 2021
    Dave Hitchins wrote:
    -------------------------------------

    Hi Dave,

    WTF makes you think your is a *basic* question about * electronics * ??????????????

    You DID even read the NG name ?? -------------------------------------------------------



    I'm having problems with the SDA part of an IIC implementation in a AMD 22V10C (not from China!). I can Output data, to the SDA output, but I'm not able to read the SDA input! My CUPL equations, as a whole, compile OK using WINCUPL and the .JED file
    programs OK.

    These are the intermediate declarations:
    FCD7 = !nPFC & A7 & A6 & !A5 & A4 & !A3 & A2 & A1 & A0;
    SCLH = FCD7 & !BnWR & D6 ;
    SCLL = FCD7 & !BnWR & !D6 ;
    SDAH = FCD7 & !BnWR & D7 ;
    SDAL = FCD7 & !BnWR & !D7 ;

    These are the outputs associated with SDA I/O:
    PIN 15 = D7 /* Data line 7 */
    PIN 18 = SDAOE /* SDA output control latch */
    PIN 19 = SDA /* SDA I/O pin */

    This is the equation for the SDA output control latch and sets the SDA output Low when needed. This sections works just fine.
    SDAOE = SDAH /* Set high - write FCD7 with D7=H */
    # !SDAH & !SDAL & SDAOE /* Set low - write FCD7 with D7=0 */
    # !nRST ; /* Set high - on reset */

    This is the SDA output pin. Pulled high, externally, with a 4K7 resistor. Works as an output just fine.
    SDA.OE = !SDAOE ; /* Only on when 'LOW' output required */
    SDA = SDAOE ; /* Always low when output enabled */

    This is the problem pin.
    D7 = SDA ; /* SDA input transferred to D7 output on read of FCD7 */
    D7.OE = FCD7 & BnWR ;

    If I toggle the SDAOE latch I can read its state through D7 e.g. I can read SDA output, however, if I set the SDAOE latch High, ready for read of the SDA INPUT, I can't then read the input - I just read a High value on D7. It seems that the path from
    the SDA pin through to the & array isn't there!

    Anybody have any clues to what's going wrong? Thanks . . . Dave H.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)