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 II

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!

 

6 REPLIES 6
MHoll.2
Senior III

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)?

Chris21
Senior III

-> "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

 

 

 

Chris21
Senior III

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

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? 

Yes, everything is there. Check the above chat 

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?

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..