From eaf794a41c161df2cd634c0fea02dfd21e4c6d77 Mon Sep 17 00:00:00 2001 From: Jonathan Hargreaves <hargreaves@astron.nl> Date: Tue, 17 Nov 2015 12:37:55 +0000 Subject: [PATCH] UniBoard2 i2c sens and pmbus packages: fix bugs found during initial testbench simulation --- .../src/vhdl/i2c_commander_unb2_pmbus_pkg.vhd | 76 ++++++++++++++---- .../src/vhdl/i2c_commander_unb2_sens_pkg.vhd | 80 +++++++++++++++---- .../io/i2c/src/vhdl/i2c_dev_unb2_pkg.vhd | 52 ++++++------ 3 files changed, 153 insertions(+), 55 deletions(-) diff --git a/libraries/io/i2c/src/vhdl/i2c_commander_unb2_pmbus_pkg.vhd b/libraries/io/i2c/src/vhdl/i2c_commander_unb2_pmbus_pkg.vhd index 9464b96d8b..8148fa8e1e 100644 --- a/libraries/io/i2c/src/vhdl/i2c_commander_unb2_pmbus_pkg.vhd +++ b/libraries/io/i2c/src/vhdl/i2c_commander_unb2_pmbus_pkg.vhd @@ -55,12 +55,36 @@ PACKAGE i2c_commander_unb2_pmbus_pkg IS CONSTANT k_expected_mask_1 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; CONSTANT k_expected_mask_2 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; CONSTANT k_expected_mask_3 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; - - CONSTANT k_expected_mask_arr : t_slv_32_arr(0 TO c_i2c_unb2_nof_protocol_lists-1) := (k_expected_mask_0, - k_expected_mask_1, - k_expected_mask_2, - k_expected_mask_3); - + CONSTANT k_expected_mask_4 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + CONSTANT k_expected_mask_5 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + CONSTANT k_expected_mask_6 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + CONSTANT k_expected_mask_7 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + CONSTANT k_expected_mask_8 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + CONSTANT k_expected_mask_9 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + CONSTANT k_expected_mask_10 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + CONSTANT k_expected_mask_11 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + CONSTANT k_expected_mask_12 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + CONSTANT k_expected_mask_13 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + CONSTANT k_expected_mask_14 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + CONSTANT k_expected_mask_15 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + + CONSTANT k_expected_mask_arr : t_slv_32_arr(0 TO c_i2c_cmdr_max_nof_protocols-1) := (k_expected_mask_0, + k_expected_mask_1, + k_expected_mask_2, + k_expected_mask_3, + k_expected_mask_4, + k_expected_mask_5, + k_expected_mask_6, + k_expected_mask_7, + k_expected_mask_8, + k_expected_mask_9, + k_expected_mask_10, + k_expected_mask_11, + k_expected_mask_12, + k_expected_mask_13, + k_expected_mask_14, + k_expected_mask_15); + -- Define the corresponding expected nof read data CONSTANT k_nof_result_data_0 : NATURAL := c_i2c_unb2_pmbus_nof_result_data_read_all; CONSTANT k_nof_result_data_1 : NATURAL := c_i2c_cmdr_nof_result_data_none; @@ -77,11 +101,35 @@ PACKAGE i2c_commander_unb2_pmbus_pkg IS CONSTANT k_protocol_ofs_1 : NATURAL := k_protocol_list_0'LENGTH + k_protocol_ofs_0; CONSTANT k_protocol_ofs_2 : NATURAL := k_protocol_list_1'LENGTH + k_protocol_ofs_1; CONSTANT k_protocol_ofs_3 : NATURAL := k_protocol_list_2'LENGTH + k_protocol_ofs_2; - - CONSTANT k_protocol_ofs_arr : t_natural_arr(0 TO c_i2c_unb2_nof_protocol_lists-1) := (k_protocol_ofs_0, + CONSTANT k_protocol_ofs_4 : NATURAL := 0 + k_protocol_ofs_3; + CONSTANT k_protocol_ofs_5 : NATURAL := 0 + k_protocol_ofs_4; + CONSTANT k_protocol_ofs_6 : NATURAL := 0 + k_protocol_ofs_5; + CONSTANT k_protocol_ofs_7 : NATURAL := 0 + k_protocol_ofs_6; + CONSTANT k_protocol_ofs_8 : NATURAL := 0 + k_protocol_ofs_7; + CONSTANT k_protocol_ofs_9 : NATURAL := 0 + k_protocol_ofs_8; + CONSTANT k_protocol_ofs_10 : NATURAL := 0 + k_protocol_ofs_9; + CONSTANT k_protocol_ofs_11 : NATURAL := 0 + k_protocol_ofs_10; + CONSTANT k_protocol_ofs_12 : NATURAL := 0 + k_protocol_ofs_11; + CONSTANT k_protocol_ofs_13 : NATURAL := 0 + k_protocol_ofs_12; + CONSTANT k_protocol_ofs_14 : NATURAL := 0 + k_protocol_ofs_13; + CONSTANT k_protocol_ofs_15 : NATURAL := 0 + k_protocol_ofs_14; + + CONSTANT k_protocol_ofs_arr : t_natural_arr(0 TO c_i2c_cmdr_max_nof_protocols-1) := (k_protocol_ofs_0, k_protocol_ofs_1, k_protocol_ofs_2, - k_protocol_ofs_3); + k_protocol_ofs_3, + k_protocol_ofs_4, + k_protocol_ofs_5, + k_protocol_ofs_6, + k_protocol_ofs_7, + k_protocol_ofs_8, + k_protocol_ofs_9, + k_protocol_ofs_10, + k_protocol_ofs_11, + k_protocol_ofs_12, + k_protocol_ofs_13, + k_protocol_ofs_14, + k_protocol_ofs_15); -- RAM sizes CONSTANT k_protocol_ram_nof_dat : NATURAL := ceil_div(k_protocol_ram_init'LENGTH, c_i2c_cmdr_mem_block_sz) * c_i2c_cmdr_mem_block_sz; @@ -91,7 +139,7 @@ PACKAGE i2c_commander_unb2_pmbus_pkg IS -- Commander settings CONSTANT k_nof_protocols : NATURAL := 2; -- Must be >= actually used nof protocol lists in k_protocol_ram_init and <= c_i2c_cmdr_max_nof_protocols=16 protocols. - CONSTANT k_nof_result_data_max : NATURAL := 4; -- Must be >= the maximum nof read bytes in any protocol list in k_protocol_ram_init + CONSTANT k_nof_result_data_max : NATURAL := 32; -- Must be >= the maximum nof read bytes in any protocol list in k_protocol_ram_init CONSTANT k_result_cnt_w : NATURAL := k_result_adr_w; @@ -99,16 +147,16 @@ PACKAGE i2c_commander_unb2_pmbus_pkg IS -- Global constants (with prefix 'c_i2c_cmdr_unbh_') ------------------------------------------------------------------------------ - CONSTANT c_i2c_cmdr_unbh_protocol_ram_init : t_nat_natural_arr := k_protocol_ram_init; - CONSTANT c_i2c_cmdr_unbh_nof_result_data_arr : t_nat_natural_arr := k_nof_result_data_arr; + CONSTANT c_i2c_cmdr_unb2_pmbus_protocol_ram_init : t_nat_natural_arr := k_protocol_ram_init; + CONSTANT c_i2c_cmdr_unb2_pmbus_nof_result_data_arr : t_nat_natural_arr := k_nof_result_data_arr; - CONSTANT c_i2c_cmdr_unbh_i2c_mm : t_c_i2c_mm := (c_i2c_control_adr_w, + CONSTANT c_i2c_cmdr_unb2_pmbus_i2c_mm : t_c_i2c_mm := (c_i2c_control_adr_w, k_protocol_ram_adr_w, k_protocol_ram_nof_dat, k_result_adr_w, k_result_nof_dat); - CONSTANT c_i2c_cmdr_unbh_protocol_commander : t_c_i2c_cmdr_commander := (k_nof_protocols, + CONSTANT c_i2c_cmdr_unb2_pmbus_protocol_commander : t_c_i2c_cmdr_commander := (k_nof_protocols, k_protocol_ofs_arr, k_expected_mask_arr, k_result_cnt_w, diff --git a/libraries/io/i2c/src/vhdl/i2c_commander_unb2_sens_pkg.vhd b/libraries/io/i2c/src/vhdl/i2c_commander_unb2_sens_pkg.vhd index a8dad33acc..e0b758289e 100644 --- a/libraries/io/i2c/src/vhdl/i2c_commander_unb2_sens_pkg.vhd +++ b/libraries/io/i2c/src/vhdl/i2c_commander_unb2_sens_pkg.vhd @@ -55,11 +55,36 @@ PACKAGE i2c_commander_unb2_sens_pkg IS CONSTANT k_expected_mask_1 : STD_LOGIC_VECTOR := c_i2c_unb2_sens_max1617_expected_mask_read_temp; CONSTANT k_expected_mask_2 : STD_LOGIC_VECTOR := c_i2c_unb2_sens_expected_mask_read_all; CONSTANT k_expected_mask_3 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; - - CONSTANT k_expected_mask_arr : t_slv_32_arr(0 TO c_i2c_unb2_nof_protocol_lists-1) := (k_expected_mask_0, - k_expected_mask_1, - k_expected_mask_2, - k_expected_mask_3); + CONSTANT k_expected_mask_4 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + CONSTANT k_expected_mask_5 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + CONSTANT k_expected_mask_6 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + CONSTANT k_expected_mask_7 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + CONSTANT k_expected_mask_8 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + CONSTANT k_expected_mask_9 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + CONSTANT k_expected_mask_10 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + CONSTANT k_expected_mask_11 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + CONSTANT k_expected_mask_12 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + CONSTANT k_expected_mask_13 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + CONSTANT k_expected_mask_14 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + CONSTANT k_expected_mask_15 : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end; + + CONSTANT k_expected_mask_arr : t_slv_32_arr(0 TO c_i2c_cmdr_max_nof_protocols-1) := (k_expected_mask_0, + k_expected_mask_1, + k_expected_mask_2, + k_expected_mask_3, + k_expected_mask_4, + k_expected_mask_5, + k_expected_mask_6, + k_expected_mask_7, + k_expected_mask_8, + k_expected_mask_9, + k_expected_mask_10, + k_expected_mask_11, + k_expected_mask_12, + k_expected_mask_13, + k_expected_mask_14, + k_expected_mask_15); + -- Define the corresponding expected nof read data CONSTANT k_nof_result_data_0 : NATURAL := c_i2c_unb2_sens_max1617_nof_result_data_read_config; @@ -77,12 +102,37 @@ PACKAGE i2c_commander_unb2_sens_pkg IS CONSTANT k_protocol_ofs_1 : NATURAL := k_protocol_list_0'LENGTH + k_protocol_ofs_0; CONSTANT k_protocol_ofs_2 : NATURAL := k_protocol_list_1'LENGTH + k_protocol_ofs_1; CONSTANT k_protocol_ofs_3 : NATURAL := k_protocol_list_2'LENGTH + k_protocol_ofs_2; - - CONSTANT k_protocol_ofs_arr : t_natural_arr(0 TO c_i2c_unb2_nof_protocol_lists-1) := (k_protocol_ofs_0, + CONSTANT k_protocol_ofs_4 : NATURAL := 0 + k_protocol_ofs_3; + CONSTANT k_protocol_ofs_5 : NATURAL := 0 + k_protocol_ofs_4; + CONSTANT k_protocol_ofs_6 : NATURAL := 0 + k_protocol_ofs_5; + CONSTANT k_protocol_ofs_7 : NATURAL := 0 + k_protocol_ofs_6; + CONSTANT k_protocol_ofs_8 : NATURAL := 0 + k_protocol_ofs_7; + CONSTANT k_protocol_ofs_9 : NATURAL := 0 + k_protocol_ofs_8; + CONSTANT k_protocol_ofs_10 : NATURAL := 0 + k_protocol_ofs_9; + CONSTANT k_protocol_ofs_11 : NATURAL := 0 + k_protocol_ofs_10; + CONSTANT k_protocol_ofs_12 : NATURAL := 0 + k_protocol_ofs_11; + CONSTANT k_protocol_ofs_13 : NATURAL := 0 + k_protocol_ofs_12; + CONSTANT k_protocol_ofs_14 : NATURAL := 0 + k_protocol_ofs_13; + CONSTANT k_protocol_ofs_15 : NATURAL := 0 + k_protocol_ofs_14; + + CONSTANT k_protocol_ofs_arr : t_natural_arr(0 TO c_i2c_cmdr_max_nof_protocols-1) := (k_protocol_ofs_0, k_protocol_ofs_1, k_protocol_ofs_2, - k_protocol_ofs_3); - + k_protocol_ofs_3, + k_protocol_ofs_4, + k_protocol_ofs_5, + k_protocol_ofs_6, + k_protocol_ofs_7, + k_protocol_ofs_8, + k_protocol_ofs_9, + k_protocol_ofs_10, + k_protocol_ofs_11, + k_protocol_ofs_12, + k_protocol_ofs_13, + k_protocol_ofs_14, + k_protocol_ofs_15); + + -- RAM sizes CONSTANT k_protocol_ram_nof_dat : NATURAL := ceil_div(k_protocol_ram_init'LENGTH, c_i2c_cmdr_mem_block_sz) * c_i2c_cmdr_mem_block_sz; CONSTANT k_protocol_ram_adr_w : NATURAL := ceil_log2(k_protocol_ram_nof_dat); @@ -90,8 +140,8 @@ PACKAGE i2c_commander_unb2_sens_pkg IS CONSTANT k_result_nof_dat : NATURAL := 2**k_result_adr_w; -- Commander settings - CONSTANT k_nof_protocols : NATURAL := 2; -- Must be >= actually used nof protocol lists in k_protocol_ram_init and <= c_i2c_cmdr_max_nof_protocols=16 protocols. - CONSTANT k_nof_result_data_max : NATURAL := 4; -- Must be >= the maximum nof read bytes in any protocol list in k_protocol_ram_init + CONSTANT k_nof_protocols : NATURAL := 3; -- Must be >= actually used nof protocol lists in k_protocol_ram_init and <= c_i2c_cmdr_max_nof_protocols=16 protocols. + CONSTANT k_nof_result_data_max : NATURAL := 32; -- Must be >= the maximum nof read bytes in any protocol list in k_protocol_ram_init CONSTANT k_result_cnt_w : NATURAL := k_result_adr_w; @@ -99,16 +149,16 @@ PACKAGE i2c_commander_unb2_sens_pkg IS -- Global constants (with prefix 'c_i2c_cmdr_unbh_') ------------------------------------------------------------------------------ - CONSTANT c_i2c_cmdr_unbh_protocol_ram_init : t_nat_natural_arr := k_protocol_ram_init; - CONSTANT c_i2c_cmdr_unbh_nof_result_data_arr : t_nat_natural_arr := k_nof_result_data_arr; + CONSTANT c_i2c_cmdr_unb2_sens_protocol_ram_init : t_nat_natural_arr := k_protocol_ram_init; + CONSTANT c_i2c_cmdr_unb2_sens_nof_result_data_arr : t_nat_natural_arr := k_nof_result_data_arr; - CONSTANT c_i2c_cmdr_unbh_i2c_mm : t_c_i2c_mm := (c_i2c_control_adr_w, + CONSTANT c_i2c_cmdr_unb2_sens_i2c_mm : t_c_i2c_mm := (c_i2c_control_adr_w, k_protocol_ram_adr_w, k_protocol_ram_nof_dat, k_result_adr_w, k_result_nof_dat); - CONSTANT c_i2c_cmdr_unbh_protocol_commander : t_c_i2c_cmdr_commander := (k_nof_protocols, + CONSTANT c_i2c_cmdr_unb2_sens_protocol_commander : t_c_i2c_cmdr_commander := (k_nof_protocols, k_protocol_ofs_arr, k_expected_mask_arr, k_result_cnt_w, diff --git a/libraries/io/i2c/src/vhdl/i2c_dev_unb2_pkg.vhd b/libraries/io/i2c/src/vhdl/i2c_dev_unb2_pkg.vhd index 1603ccdf5e..8af25c6069 100644 --- a/libraries/io/i2c/src/vhdl/i2c_dev_unb2_pkg.vhd +++ b/libraries/io/i2c/src/vhdl/i2c_dev_unb2_pkg.vhd @@ -34,37 +34,37 @@ PACKAGE i2c_dev_unb2_pkg IS -- I2C slave addresses of the devices on the I2C sens bus on UniBoard2 CONSTANT I2C_UNB2_SENS_TEMP_MAX1617_ADR : NATURAL := MAX1617_ADR_MID_LOW; -- temperature sensor, slave address is 0x29 - CONSTANT I2C_UNB2_SENS_DCDC_BMR456_ADR : NATURAL := X"2C"; -- dc/dc converter, slave address is 0x2c - CONSTANT I2C_UNB2_SENS_PIM_PIM4328PD_ADR : NATURAL := X"2b"; -- power input module, slave address is 0x2b - CONSTANT I2C_UNB2_SENS_1V2_BMR461_ADR : NATURAL := X"0f"; -- 1.2V power supply, slave address is 0x0f - CONSTANT I2C_UNB2_SENS_3V3_BMR461_ADR : NATURAL := X"0e"; -- 3.3V power supply, slave address is 0x0e - CONSTANT I2C_UNB2_SENS_CLK_BMR461_ADR : NATURAL := X"0d"; -- clock power supply, slave address is 0x0d - CONSTANT I2C_UNB2_SENS_QSFP0_BMR464_ADR : NATURAL := X"02"; -- qsfp0 power supply, slave address is 0x02 - CONSTANT I2C_UNB2_SENS_QSFP1_BMR464_ADR : NATURAL := X"01"; -- qsfp1 power supply, slave address is 0x01 - CONSTANT I2C_UNB2_SENS_EEPROM_CAT24C02_ADR : NATURAL := X"a0"; -- eeprom , slave address is 0xa0 - CONSTANT I2C_UNB2_SENS_TEMP_TMP451_ADR : NATURAL := X"ac"; -- temperature sensor, slave address is 0x4c + CONSTANT I2C_UNB2_SENS_DCDC_BMR456_ADR : NATURAL := 16#2C#; -- dc/dc converter, slave address is 0x2c + CONSTANT I2C_UNB2_SENS_PIM_PIM4328PD_ADR : NATURAL := 16#2b#; -- power input module, slave address is 0x2b + CONSTANT I2C_UNB2_SENS_1V2_BMR461_ADR : NATURAL := 16#0f#; -- 1.2V power supply, slave address is 0x0f + CONSTANT I2C_UNB2_SENS_3V3_BMR461_ADR : NATURAL := 16#0e#; -- 3.3V power supply, slave address is 0x0e + CONSTANT I2C_UNB2_SENS_CLK_BMR461_ADR : NATURAL := 16#0d#; -- clock power supply, slave address is 0x0d + CONSTANT I2C_UNB2_SENS_QSFP0_BMR464_ADR : NATURAL := 16#02#; -- qsfp0 power supply, slave address is 0x02 + CONSTANT I2C_UNB2_SENS_QSFP1_BMR464_ADR : NATURAL := 16#01#; -- qsfp1 power supply, slave address is 0x01 + CONSTANT I2C_UNB2_SENS_EEPROM_CAT24C02_ADR : NATURAL := 16#a0#; -- eeprom , slave address is 0xa0 + CONSTANT I2C_UNB2_SENS_TEMP_TMP451_ADR : NATURAL := 16#ac#; -- temperature sensor, slave address is 0x4c -- I2C slave addresses of the devices on the I2C pm bus on UniBoard2 - CONSTANT I2C_UNB2_PMB_CORE_BMR464_ADR : NATURAL := X"01"; -- core supply, slave address is 0x01 - CONSTANT I2C_UNB2_PMB_VCCRAM_BMR461_ADR : NATURAL := X"0d"; -- vcc ram supply, slave address is 0x0d - CONSTANT I2C_UNB2_PMB_TCVR0_BMR461_ADR : NATURAL := X"0e"; -- transceiver0 supply, slave address is 0x0e - CONSTANT I2C_UNB2_PMB_TCVR1_BMR461_ADR : NATURAL := X"0f"; -- transceiver1 supply, slave address is 0x0f - CONSTANT I2C_UNB2_PMB_CTRL_BMR461_ADR : NATURAL := X"10"; -- control supply, slave address is 0x10 - CONSTANT I2C_UNB2_PMB_FPGAIO_BMR461_ADR : NATURAL := X"11"; -- fpga io supply, slave address is 0x11 + CONSTANT I2C_UNB2_PMB_CORE_BMR464_ADR : NATURAL := 16#01#; -- core supply, slave address is 0x01 + CONSTANT I2C_UNB2_PMB_VCCRAM_BMR461_ADR : NATURAL := 16#0d#; -- vcc ram supply, slave address is 0x0d + CONSTANT I2C_UNB2_PMB_TCVR0_BMR461_ADR : NATURAL := 16#0e#; -- transceiver0 supply, slave address is 0x0e + CONSTANT I2C_UNB2_PMB_TCVR1_BMR461_ADR : NATURAL := 16#0f#; -- transceiver1 supply, slave address is 0x0f + CONSTANT I2C_UNB2_PMB_CTRL_BMR461_ADR : NATURAL := 16#10#; -- control supply, slave address is 0x10 + CONSTANT I2C_UNB2_PMB_FPGAIO_BMR461_ADR : NATURAL := 16#11#; -- fpga io supply, slave address is 0x11 -- I2C slave addresses of the devices on the I2C ddr4 memory bus on UniBoard2 - CONSTANT I2C_UNB2_MB_I_DDR4_ADR : NATURAL := X"18"; -- ddr4 module I, slave address is 0x18 - CONSTANT I2C_UNB2_MB_II_DDR4_ADR : NATURAL := X"19"; -- ddr4 module II, slave address is 0x19 + CONSTANT I2C_UNB2_MB_I_DDR4_ADR : NATURAL := 16#18#; -- ddr4 module I, slave address is 0x18 + CONSTANT I2C_UNB2_MB_II_DDR4_ADR : NATURAL := 16#19#; -- ddr4 module II, slave address is 0x19 CONSTANT c_i2c_unb_temp_high : NATURAL := 85; -- commands -- these can later go into device specific packages - CONSTANT PMBUS_REG_READ_VIN : NATURAL := X"88"; -- common to all PMB devices - CONSTANT PMBUS_REG_READ_VCAP : NATURAL := X"8a"; -- used in the PIM4328PD - CONSTANT PMBUS_REG_READ_VOUT : NATURAL := X"8b"; -- common to all PMB devices - CONSTANT PMBUS_REG_READ_IOUT : NATURAL := X"8c"; -- common to all PMB devices - CONSTANT PMBUS_REG_READ_TEmP : NATURAL := X"8d"; -- common to all PMB devices + CONSTANT PMBUS_REG_READ_VIN : NATURAL := 16#88#; -- common to all PMB devices + CONSTANT PMBUS_REG_READ_VCAP : NATURAL := 16#8a#; -- used in the PIM4328PD + CONSTANT PMBUS_REG_READ_VOUT : NATURAL := 16#8b#; -- common to all PMB devices + CONSTANT PMBUS_REG_READ_IOUT : NATURAL := 16#8c#; -- common to all PMB devices + CONSTANT PMBUS_REG_READ_TEmP : NATURAL := 16#8d#; -- common to all PMB devices CONSTANT c_i2c_unb2_nof_protocol_lists : NATURAL := 4; -- for now we allow four protocol lists for each i2c interface @@ -136,13 +136,13 @@ PACKAGE i2c_dev_unb2_pkg IS SMBUS_READ_BYTE , I2C_UNB2_PMB_TCVR0_BMR461_ADR, PMBUS_REG_READ_TEMP, SMBUS_READ_BYTE , I2C_UNB2_PMB_TCVR1_BMR461_ADR, PMBUS_REG_READ_VOUT, SMBUS_READ_BYTE , I2C_UNB2_PMB_TCVR1_BMR461_ADR, PMBUS_REG_READ_IOUT, - SMBUS_READ_BYTE , I2C_UNB2_PMB_TCVR1_BMR461_ADR, PMBUS1_REG_READ_TEMP, + SMBUS_READ_BYTE , I2C_UNB2_PMB_TCVR1_BMR461_ADR, PMBUS_REG_READ_TEMP, SMBUS_READ_BYTE , I2C_UNB2_PMB_CTRL_BMR461_ADR, PMBUS_REG_READ_VOUT, SMBUS_READ_BYTE , I2C_UNB2_PMB_CTRL_BMR461_ADR, PMBUS_REG_READ_IOUT, SMBUS_READ_BYTE , I2C_UNB2_PMB_CTRL_BMR461_ADR, PMBUS_REG_READ_TEMP, - SMBUS_READ_BYTE , I2C_UNB2_PMB_FPGIO_BMR461_ADR, PMBUS_REG_READ_VOUT, - SMBUS_READ_BYTE , I2C_UNB2_PMB_FPGIO_BMR461_ADR, PMBUS_REG_READ_IOUT, - SMBUS_READ_BYTE , I2C_UNB2_PMB_FPGIO_BMR461_ADR, PMBUS_REG_READ_TEMP, + SMBUS_READ_BYTE , I2C_UNB2_PMB_FPGAIO_BMR461_ADR, PMBUS_REG_READ_VOUT, + SMBUS_READ_BYTE , I2C_UNB2_PMB_FPGAIO_BMR461_ADR, PMBUS_REG_READ_IOUT, + SMBUS_READ_BYTE , I2C_UNB2_PMB_FPGAIO_BMR461_ADR, PMBUS_REG_READ_TEMP, SMBUS_C_END ); -- GitLab