混合电路仿真(Spice-VHDL-MCU联合仿真)
TINA 第8版及更新版包含了全新的强大混和仿真引擎。基于XSPICE混合模式算法,扩展了MCU和VHDL元件。你可以自由混合任意模拟或数字元件,包含微控制器(MCU)及带Spice或VHDL内容的宏。还可以在代码运行于MCU时修改这些元件。TINA 会以模拟方式分析模拟器件,以数字方式分析数字器件,并通过这些元件自动创建接口。这确保了同步和快速收敛。
我们通过某些例子探索如何使用该模式。
用VHDL和Spice子电路产生波形
以下电路根据左侧SW-MODE开关的状态产生模拟正弦波和锯齿波信号。
电路的左侧数字波形包括一个带正弦波查找表(Sine_LUT )的VHDL代码和锯齿波信号计数器。VHDL代码的核心部分是:
process(Reset, Clk)
if (LUT_index = LUT_index_max) then
end if;
begin
if (Reset = '1') then
Wave <= (others => '0');
LUT_index <= 0;
elsif rising_edge(Clk) then
if (Enable = '0') then
Wave <= (others => '0');
elsif (Sel = '0') then
Wave <= Sine_LUT(LUT_index);
else
Wave <= conv_std_logic_vector(LUT_index,5);
end if;
LUT_index <= 0;
else
LUT_index <= LUT_index + 1;
end if;
end process;
d0 <= Wave(0); d1 <= Wave(1); d2 <= Wave(2); d3 <= Wave(3); d4 <= Wave(4);
计数器的数字输出在电路当中的5位DA转换器变换为模拟信号。
DAC正弦波输出需要用低通滤波器对信号进行清除。我们使用Sallen & Key低通滤波器配置的TL081的Spice运放模型。按下属性对话框中的“进入宏”按钮,TINA会打开宏。你可以检查,如有需要,进入宏修改Spice代码。
这里有全电路的最后波形,包括五个计数器输出波形。SW_MODE 处于高状态,选择锯齿波信号。
如果我们将 SW-MODE 开关改成低,并在此运行瞬时分析,波形为:
要查看模拟滤波器的效果,点击d0...d4并按下Del按键,从图表中删除曲线。
MCU控制SMPS电路
TINA的混合模式仿真不仅仅可以支持MCU,还支持TINA库中任意线性和非线性器件。例如,我们来研究以下电路,实现了DC/DC转换器,将DC 5V转换DC 13V,运行于升压模式。
以下波形演示了模拟器件和MCU在TINA中的互动。
由简单模拟和数字元件组成的混合电路实例
混合模式电路
你可以在一个图表中显示结果,或如图所示单独显示,只要简单地在每个输出名称上附加冒号:和数字。
混合模式结果