Skip to main content
Visitor II
August 19, 2025
Question

STM32H723ZG + DS8500 HART Modem → OCD pin always LOW (No Carrier) when interfacing with 2088 Pressure Transmitter

  • August 19, 2025
  • 4 replies
  • 979 views

I am working on establishing HART communication using an STM32H723ZG Nucleo board, a Maxim DS8500 HART modem, and a 2088 Pressure Transmitter (4–20 mA + HART).

Hardware Setup:

  • STM32H723ZG

    • USART3 → Debug to PC (115200, 8N1, no parity)

    • USART6 → Connected to DS8500 D_IN/D_OUT (1200 baud, 8 data bits, odd parity, 1 stop bit)

    • GPIOs:

      • PE0 → DS8500 RST (Active Low)

      • PA0 → DS8500 RTS (Low=TX, High=RX)

      • PB0 → DS8500 OCD (Input, carrier detect)

  • DS8500 Connections (per Maxim datasheet and app note):

    • MODE = High (for HART mode)

    • 3.6864 MHz crystal connected between XTAL1/XTAL2

    • REF decoupled with 0.1 µF

    • FSK_IN/OUT connected to the HART loop via the recommended RC filters

  • Loop: 2088 transmitter powered (24 V, 4–20 mA loop).

Software:

  • USART6 configured at 1200 bps, 8E1 (actually 8 data bits + odd parity + 1 stop).

  • GPIO configured:

    • PE0 default high (releases reset)

    • PA0 high (sets DS8500 in RX/demodulator mode)

    • PB0 input (read OCD)

  • Debug prints OCD state every second on USART3.

Problem:

  • OCD pin always reads LOW → No carrier detected, even though the transmitter should respond.

  • I confirmed that RTS=High (RX mode) and RST=High (not in reset).

  • MODE pin is tied High.

  • REF pin shows ~1.23 V (so demod section seems active).

  • The loop is wired correctly and the transmitter works in analog (4–20 mA changes with pressure).

What I Tried:

  1. Toggling RTS between TX and RX modes. OCD still remains low.

  2. Sending a HART preamble (0xFF * 20) via USART6 → FSK_OUT shows modulation, but still no demodulated data.

  3. Checked wiring against Maxim’s reference design (filters on FSK_IN/FSK_OUT).

  4. Verified 3.6864 MHz crystal oscillation with oscilloscope.

Questions:

  1. Is my USART6 configuration correct for DS8500 (1200 bps, 8 data bits, ODD parity, 1 stop)?

  2. Does OCD only go high when a valid UART start bit + carrier amplitude >120 mVp-p is present, or should it indicate raw carrier energy on the loop?

  3. Could there be an issue with the filter/bias network on FSK_IN preventing detection?

  4. Has anyone successfully interfaced STM32H7 with DS8500 + Rosemount/2088 transmitter, and can share working settings/schematics?

Any insights from ST engineers or community members experienced with DS8500 + STM32 would be very helpful.

Thanks!

 

    This topic has been closed for replies.

    4 replies

    Graduate II
    August 19, 2025

    If You don't get the Carrier detect it's probably a problem with Your Sensor or the DS8500, so you should ask Analog Device.

    Did You check that the input signal from the Sensor is OK (with an oscilloscope)?

    Graduate
    August 19, 2025

    -> "1200 bps, 8 data bits, ODD parity, 1 stop" this is correct for HART.

    However, ST includes the parity bit as part of the data frame, make sure the USART word length is 9:

    Chris21_0-1755614579342.png

    The 2088 transmitter is not going to respond unless you send a properly constructed HART message (Start byte after preambles, ending with checksum, etc.:

    Chris21_1-1755614844924.png

     

     

     

    Visitor II
    August 19, 2025

    Hey, 

    mentioned below is my Usart6 used to communicate with DS8500. 

    Faizan_001_0-1755641654542.png

    Now, i will show you the command i am sending. 

    Faizan_001_1-1755641708774.png

    now let me show you my code 

    Faizan_001_2-1755641777074.pngFaizan_001_3-1755641813897.pngFaizan_001_4-1755641851291.pngFaizan_001_5-1755641891647.png

    and this is what i am receiving on my serial monitor 

    Faizan_001_6-1755641947389.png

    Now what could possibly be the issue? 

    Graduate
    August 19, 2025

    Also, your 4–20 mA current loop should have a resistor in it, typically 250 Ω.

    Visitor II
    August 19, 2025

    Yes, everything is there. Check the above chat 

    Graduate II
    August 20, 2025

    Not sure it's functionality should be STM32 specific, perhaps look more broadly at other working MCU examples.

    Is the HAL layer returning any errors?

    If you scope the modem,or use a logic analyzer, can you inspect the modem's  OCD and data output to the STM32's UART RX pin?