cancel
Showing results for 
Search instead for 
Did you mean: 

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

Faizan_001
Associate

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!

 

0 REPLIES 0