This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TL16C450: Line Status Register not getting reset as per the Master Reset table

Part Number: TL16C450

We have an older phone line system that we upgraded to an Ethernet communication interface and the first 10 units are in the field working. We do not have any of the first batch units available for testing. We did call one of customers and he did indicate that the ACE unit had a part number of ST16C450. These parts are out of production so we switched to the TI version of TL16C450. The problem we are having is the Line Status Register (LSR) does not get set as indicated in the manual page 15 "Table 2. ACE Reset Functions ". Bits Bit #5 and #6 are to be set high and all others are to get cleared; set low (Bit#7  = Not used). Is this a know problem with this chip?

Is there a work around?

  • Hey Gerry,

    "The problem we are having is the Line Status Register (LSR) does not get set as indicated in the manual page 15 "Table 2. "
    Can you tell us what you are seeing in the LSR when you reset the device?

    Are you looking at LSR immediately after power up? Or are you toggling the MR pin?

    If the latter, how long do you hold the MR pin high?

    "Is there a work around?"
    Assuming the issue is after power up and not because toggling the MR, I am wondering if the device is not starting up properly. Potentially the Vcc ramp rate could be too slow or too fast.

    Can you confirm toggling the MR high for longer than 1 us resets the LSR logic?

    I currently do not have an EVM/boards for this device so if you are seeing issues where the device is not meeting the correct logic after start up then I will have to check with our design team to see if they have a design model of this device to verify that atleast the design simulation matches the datasheet table.

    Thanks,
    -Bobby
  • Bobby, 

    The value our code is looking for is 60Hex and our code cannot change since units are in the field.

     We are looking for LSR to equal 06Hex after a one second delay after setting up other registers within the 16C450 chip. Remember the SL16C450 version works.

     I have attached a photo of the power and reset pulse and a section of code showing the modem initialization routine.

     047E                                             ;****************

     047E           MD.INITIALIZE:                    ;INITIALIZE MODEM

     047E                                             ;****************

     047E                                             ;INPUTS:

     047E                                             ; MD.WORD.LENGTH

     047E                                             ; MD.STOP.BITS

     047E                                             ; MD.PARITY

     047E                                             ; MD.BAUD.RATE

     047E                                             ; MODEM PORT ADDRESSES

     047E                                             ;OUTPUTS:

     047E                                             ; MODEM SETUP

     047E                                             ; PSW = 0 IF OK

                   

     047E 212ECB              LXI   H,MD.WORD.LENGTH

     0481 AF                  XRA   A

     0482 3233E0            STA     MD.PAGE         ;SET CURRENT MODEM BURAM PAGE TO ZERO

     0485 0E03                MVI   C,3             ;COUNTER

     0487 B6        MI.1:     ORA   M               ;COMPILE L.CTL.PORT DAT =

     0488 23                  INX   H               ; + MD.WORD.LENGTH

     0489 23                  INX   H

     048A 0D                  DCR   C               ; + MD.STOP.BITS

     048B C28704              JNZ   MI.1            ; + MD.PARITY

     048E F5                  PUSH  PSW             ;SAVE FOR LATER USE

     048F F680                ORI   080H            ;SET DLAB BIT ON

     0491 32FBA2              STA   MD.L.CTL.PORT

     0494 3A2CCB              LDA   MD.BAUD.RATE    ;SETUP BAUD RATE

     0497 32F8A2              STA   MD.LSB.DIV.PORT

     049A 3A2DCB              LDA   MD.BAUD.RATE+1

     049D 32F9A2              STA   MD.MSB.DIV.PORT

     04A0 F1                  POP   PSW

     04A1 32FBA2              STA   MD.L.CTL.PORT     ;TURN OFF DLAB BIT

     04A4           

     04A4 AF                  XRA   A

     04A5 32FCA2              STA   MD.CTL.PORT       ;INITIALIZE MODEM CONTROL PORT

     04A8 32FDA2              STA   MD.L.STA.PORT     ;CLEARS MD.DATA.PORT

     04AB CDC43D              CALL  ONE.SEC           ;GIVE MODEM TIME TO RESPOND

     04AE 3AFDA2              LDA   MD.L.STA.PORT

     04B1 E66E                ANI   06EH              ;MASK OFF UNKNOWN BITS

     04B3 FE60                CPI   060H              ;ALIVE MODEM IF MATCHES

     04B5 C9                  RET

     

  • Hey Gerry,

    Your Vcc ramp up looks good. And Reset looks valid to me (The reset is in the order of ms which meets the timing requirement). It likely isn't a ramp issue.

    Your code is a bit hard for me to follow (coding is not my strong suit here). Are you able to see what the LSR register is reading upon start up? Like you pointed out, you are looking for 0x06 but you seem to be getting a different value. I'd like to know what value you are reading instead of 0x06.

    I checked with our design team and it seems the device is way too old and we don't have any models for it. I think in order to get you better support for this device, I would need to order a break out board and see if I can validate whether or not I see the LSR registers reset properly. I will try to place an order tomorrow and hopefully be able to receive and test the device by next week and get back to you.

    Thanks,
    -Bobby
  • Hey Gerry,

    I wasn't able to find any breakout boards on our accepted vendors lists which had something for this device.

    Could you provide the LSR value you are reading when you initially start up the device? I know you aren't able to modify the code but are you able to externally toggle the reset and check the LSR to see if that changes anything? (Wondering if we could add an external device that could toggle reset after Vcc goes up if the reset is the issue).

    -Bobby
  • Hi Gerry,

    Just checking in on this. Were you able to resolve the issue? If not, have you had a chance to look into Bobby's questions above?

    Regards,
    Max
  • Hi Max and Bobby,

    We ordered more Exar chips (they are discontinued but seem to be available) and after replacing the TI version,  all our boards are working. If it helps, the value in the LSR we are looking for is 60 Hex and neither bit is set. We are masking off all other bits except 60 Hex and our code hangs using the TI chip but not the Exar chip.

    Since this is an old chip, and I do not think we will be selling more than 100 of these, I suggest that TI not invest more engineering time to solve this problem. We have designed this chip into our 30 year old product since we still support  it and still sell it. Our product is a very reliable product but needed a more modern means of communication. Only if TI has other customers who are using this product and are having issues, do I suggest that we continue.

    Thank you for all your help. Over and out. Let's close this ticket.

  • Gerry,

    Thanks for the update. I think your comments make sense. I'm glad to hear your boards are working! If you need anything in the future please don't hesitate to contact us.

    Regards,
    Max