From e1d63a1ac2acbc22ff39f05b0f4d3d58a819cf34 Mon Sep 17 00:00:00 2001 From: Erik Kooistra <kooistra@astron.nl> Date: Fri, 16 Oct 2015 13:17:16 +0000 Subject: [PATCH] Added func_i2c_calculate_clk_cnt with bit_rate_in_kHz argument. --- libraries/io/i2c/src/vhdl/i2c_pkg.vhd | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libraries/io/i2c/src/vhdl/i2c_pkg.vhd b/libraries/io/i2c/src/vhdl/i2c_pkg.vhd index 55c846fa66..556ea2a630 100644 --- a/libraries/io/i2c/src/vhdl/i2c_pkg.vhd +++ b/libraries/io/i2c/src/vhdl/i2c_pkg.vhd @@ -56,6 +56,7 @@ PACKAGE i2c_pkg IS CONSTANT c_i2c_phy_sim : t_c_i2c_phy := (1, c_i2c_comma_w_dis); -- Calculate clk_cnt from system_clock_freq_in_MHz + FUNCTION func_i2c_calculate_clk_cnt(system_clock_freq_in_MHz, bit_rate_in_kHz : NATURAL) RETURN NATURAL; FUNCTION func_i2c_calculate_clk_cnt(system_clock_freq_in_MHz : NATURAL) RETURN NATURAL; -- Calculate (clk_cnt, comma_w) from system_clock_freq_in_MHz @@ -70,6 +71,14 @@ END i2c_pkg; PACKAGE BODY i2c_pkg IS + FUNCTION func_i2c_calculate_clk_cnt(system_clock_freq_in_MHz, bit_rate_in_kHz : NATURAL) RETURN NATURAL IS + -- . Adapt c_i2c_clk_freq and c_i2c_bit_rate and c_i2c_clk_cnt will be set appropriately + -- . Default no comma time is needed, it appeared necessary for the uP based I2C slave in the LOFAR HBA client + CONSTANT c_clk_cnt_factor : NATURAL := 5; + BEGIN + RETURN system_clock_freq_in_MHz * 1000 / bit_rate_in_kHz / c_clk_cnt_factor - 1; + END; + FUNCTION func_i2c_calculate_clk_cnt(system_clock_freq_in_MHz : NATURAL) RETURN NATURAL IS -- . Adapt c_i2c_clk_freq and c_i2c_bit_rate and c_i2c_clk_cnt will be set appropriately -- . Default no comma time is needed, it appeared necessary for the uP based I2C slave in the LOFAR HBA client -- GitLab