[hpsdr] Hermes input attenuator enable bit not documented ?

Andrea Montefusco andrea.montefusco at gmail.com
Sun Jan 20 16:06:18 PST 2013

Hi all,

maybe it has already been spotted and reported, but it seems to me in protocol doc version 1.45 a 
bit of information is missing.

During testing I am doing in order to extend  ghpsdr3-alex hpsdr-server functionality, I was unable 
to activate the Hermes attenuator (I have a TAPR Hermes inside an ANAN-10 case and PA).

So, browsing the Verilog code (Hermes.v), I discovered that, aside the value of attenuation, there 
is a additional bit, named Hermes_atten_enable, that is decoded into the register 0x14-C4:

if (IF_Rx_ctrl_0[7:1] == 7'b0001_010)
   IF_Line_In_Gain   <= IF_Rx_ctrl_2[4:0];    // decode line-in gain setting
   Hermes_atten      <= IF_Rx_ctrl_4[4:0];    // decode input attenuation setting
   Hermes_atten_enable <= IF_Rx_ctrl_4[5];    // decode Hermes attenuator enable/disable

looking to the code below, I believe (but may be wrong due my poor knowledge of Verilog) that the 
attenuation value is kept in account as specified, but only if that enable bit is set.
Otherwise the Preamp bit (0x00-C3) wins and the DAT attenuator is fully disabled.
If even Preamp is  zero, the DAT is set to -20 dB.

assign atten_data = Hermes_atten_enable ? Hermes_atten : (Preamp ? 5'b0_0000 : 5'b1_0100);

Now, whilst all the above could be understood from previous messages in list, I think the doc should 
be changed accordingly.


Andrea Montefusco iw0hdv        http://www.montefusco.com
tel: +393356992791                     fax: +390623318709

More information about the Hpsdr mailing list