This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] UCD3138:UCD3138全桥硬开关开发板源代码

Guru**** 2358920 points
Other Parts Discussed in Thread: UCD3138
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/617957/ucd3138-ucd3138-full-bridge-hard-switch-development-board-source-code

器件型号:UCD3138

大家好、我最近了解了 UCD3138全桥硬开关开发板源代码。

我 想问两个问题。

第一个问题:为什么函数“void swi_single_entry (uint32 arg1、uint32 arg2、uint32 arg3、uint8 swi_number)”和函数“void software_interrupt (uint32、uint32 arg2、uint32 arg3、uint8 swi_number)函数”名称不相同,但内容可以相互传输?

第二个问题:杂散 AnalogRegs.CSTRIM.BIT.BITER_TRIM = 23;我在手册中找不到寄存器 CSTRIM 的详细说明、在哪里可以找到?

谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在第一个问题上、相互传输由 c 编译器完成。 有一个 pragma 使您能够将多个函数调用映射到软件中断指令。 ARM7有一个软件中断指令、可接受8位代码、该 pragma 可让您将多达256个不同的函数与软件中断相关联。

    因此、当您键入函数名称时、它会将其他参数压入栈、然后发出具有正确8位值的软件中断指令。

    使用 CCS 3、我们可以执行一个技巧、使该值显示为一个参数。 我们的技巧在 CCS 6中停止工作、因此我们只将中断编号作为常规参数发送。

    但是、我们仍然使用软件中断进入特权模式来执行在用户模式下无法执行的危险操作。

    您的第二个问题-该修整寄存器在出厂时设置、每个芯片的值都不同。 它用于针对生产变化进行修整。 这就是我们通常不会披露它的原因。 我将不得不问这个。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢!
    祖阳
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、我遇到了一个问题。
    请查看以下代码:

    void configure_PGOOD_Levels (void)

    PMBus_DCDC_CONFIG_ENMODE[0].PGOOD_ON_LIMIT =(CONSTON_145_211、PMBus_DCDC_CONFIG[0].PGOOD_ON_LIMIT、-VOUT_MODE_EXP、MAX_Value_FIT 12_BITS);
    PMBus_DCDC_CONFIG_ENMODE[0].PGOOD_OFF_LIMIT =qnot_linear16_mify_fit (constant_145_211、PMBus_DCDC_CONFIG[0].PGOOD_OFF_LIMIT、-VOUT_MODE_EXP、MAX_value_FIT 12_bits);


    为什么第一条语句省略"qnot_linear16_乘 法_fit"、以便语句正确?
    如何获得常数145.211?

    谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、我有一个问题。
    请查看以下代码:
    void configure_CPCC (void)

    struct qnote constant_316_46 ={26253、-6};

    我理解 constant_316_46 = 26253 /2e6 = 26253/64 = 410.20、而不是316.46。
    那么、这个表达式是不是错误的? 是否应将其写成结构 qnote constant_410_20 ={26253、-6}? 还是我错了?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、我发现源文件中的 scale.c 是数据缩放函数。

    例如 uint32 qnote_linear11_m倍增 适合(struct qnote x、int16 linear11、uint32 max_value)、uint32 qnot_mix_fit (struct qnote x、uint16 linear16_尾 数、int8 Vout_mode、uint32 max_value)、struct note (struct qnote x、uint16线性尾数、intissa、intissa vout_value.)

    我是新手、我不了解数据缩放。
    是否有相关文档介绍这些数据缩放功能? 或者、为了了解 scale.c 文件函数、我应该学习哪些文档?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    qnote 格式是一种自制浮点格式、我们用于避免完全浮点计算的开销。 qnote 结构如下所示:

    结构 qnote

    int16尾数;
    int16指数;
    };

    如果您熟悉浮点、这应该会使事情变得更加清晰。

    如果您不熟悉浮点、网络上有很多很好的信息。

    要生成 qnote 编号、请使用 UCD3xxx 器件 GUI。 单击实用程序选项卡、然后单击尾数/指数工具。 此工具可以在浮点数和 qnote 格式之间来回转换。 这是转换工具。

    转换的剩余生成取决于您正在执行的操作。 通常、它用于将 UCD 之外的某些测量值(电压、温度、电流)转换为内部值、通常来自 ADC。

    公式中有几个因素:

    外部分压器、例如除以200的分压器
    2、1个 ADC 阶跃的电压阶跃为2.5/4096 = 0.000610。 (这是 ADC 的范围除以步进数)

    因此、如果将两者相乘、则会得到单个 ADC 步进所需的分压器之前的电压阶跃- 0.1220。

    如果乘以该数字、则会将原始 ADC 值转换为电压。

    要将电压转换为 ADC、您不想进行分频、因为这将花费更长的时间。

    而是乘以数字的倒数
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢!