Author Topic: HP6632B: Decoding serial communication between front panel & DSP  (Read 2133 times)

0 Members and 1 Guest are viewing this topic.

Offline eblc1388Topic starter

  • Frequent Contributor
  • **
  • Posts: 394
  • Country: gb
HP6632B: Decoding serial communication between front panel & DSP
« on: February 01, 2017, 03:31:29 am »
A few weeks ago, I had to open up my 6632B in order to replace two tantalum capacitors. I took that opportunity to take a sniff at the communication between the front panel display MCU and the DSP MCU. The following is what I have found out so far. There are still some missing details which I have not tested, namely the data bytes which lights up the respective indicator on the VFD.

I share my notes and annotated images here should you wish to investigate further.  Hopefully it will enable you to build a replacement display of some sort. Please share any of your new findings to the forum.

HP6632B signal interface between front panel & DSP
===================================================

1. Interface between main DSP and Front Panel Key/Disp is via two serial
   lines(TX, RX), at a baudrate of 15625bps

2. Normal voltage level on both TX & RX is HIGH(5V), LSB is sent first,
   data bit value "0" =0V, bit "1"=5V

3. When idle, DSP will send 0x82 to Key/Disp, and Key/Disp will response
   after approximately 1.1ms, with a value of 0x8A
   (See image Signals_01.gif)
   
4. user key press will be sent to DSP as a keycode 0xMN, precedes by two byte
   header 0xC0,0x00. e.g. Voltage button keycode is 0x0B, so the sequence
   0xC0,0x00,0x0B is sent (See image Keycodes.gif for value MN)

5. shift key press handling is internal to the Key/Disp MCU and a different     
   keycode will be sent to the DSP. The 'Shift' symbol on the VFD display
   is controlled by the display MCU instead of the DSP   

6. if shift key is pressed first, then the middle command byte changes to 0x01
   so if "Shift" is pressed first in (4) above, then 0xC0,0x01,0x0B will be sent 
   
7. front panel rotary encoder rotation clockwise is sent using code
   0xC2,0x01,0x00 and counterclockwise 0xC2,0x01,0x01     
   
8. Message from DSP to Disp/Keypad uses the following format in HEX:
   (note: the byte count value vary depends on message length, but all ended with 0x82)
   
   Voltage and current values:
   ===========================
   Header(1 byte)                          : E0
   byte count(including self & ending 0x82): 12 (value 18)   
   ASCII messages, multibytes      (In HEX): 20 30 2E 30 30 36 56 20 2D 30 2E 30 30 31 30 41 (16 bytes)
                                 (In ascii):                           0  .  0  0  6  V     -  0  .  0  0  1  0  A
   ending byte 0x82                        : 82                   
   
   Display Indicators On/Off:
   ==========================
   Header(1 byte)                          : E1
   byte count(including self & ending 0x82): 0A (value 10)   
   ASCII messages, multibytes      (In HEX): 00 02 00 00 00 00 00 00 (8 bytes)
   ending byte 0x82                        : 82                   
 
The following users thanked this post: bingo600, chickenHeadKnob, TiN, 0xPIT, Micke

Offline Micke

  • Regular Contributor
  • *
  • Posts: 101
  • Country: se
Re: HP6632B: Decoding serial communication between front panel & DSP
« Reply #1 on: February 02, 2017, 08:52:38 am »
Very nice work, thanks for sharing!  :-+
The only display indicator that is not possible to show is "Shift", this is generated on the display board itself and kept there.

In my 6634B (100V 1A), I had the same problem, had to change tantalums on the display board. Also there was short circuit in a small 0805 decoupling MLCC cap on the 5V rail.
My VFD was much worse than just dim, it was almost unreadable, even if having totally dark in the room! must have been on 24/7 since manufacturing...
I started thinking of reverse engineering just like you did, but found a very nice guy (Roberto) who had already done that, so I bought a kit from him with pre-programmed PIC MCU and 3D printed display frame. I bought this OLED display (white text, black background) http://www.ebay.com/itm/IIC-I2C-1602-16x2-OLED-Red-Green-Module-Display-For-Arduino-PIC-AVR-ARM-/191843635700?
Robertos webpage: http://www.rbarrios.com/projects/6632BOLED/
 

Offline eblc1388Topic starter

  • Frequent Contributor
  • **
  • Posts: 394
  • Country: gb
Re: HP6632B: Decoding serial communication between front panel & DSP
« Reply #2 on: February 03, 2017, 02:47:58 am »
At least we now know the HP6634B and serveral others in the same design line will probably using the same serial protocol. The seller you have mentioned in the above link selling those OLED display had no more write color display available, only red and green. Green is also a nice color display so maybe someone thinking about replacing the display should get hold of them while it is still available.

One aspect I don't like the present HP design is the display does not show the user voltage setting and current limit setting, even when the output is DISABLED. There is not really any point in showing some residual mV and mA when the output is OFF. I would rather know what voltage I would get when I turn the output ON, like many other power supplies do. The voltage setting is displayed in bracket to alert user that it is not the output voltage. It might be too late to recover your project when the PS output voltage is not what one thinks it should be.

A replacement display perhaps can be more informative in this aspect as the present one lack the ability to cram all these extra information onto its one line display. I would probably choose a 128x64 graphic one so I can put everything I like onto it. But then my current display is working normally so it could be a long project in the future.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf