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.

[参考译文] EK-TM4C1294XL:GPIO 不会变为零

Guru**** 2473260 points
Other Parts Discussed in Thread: EK-TM4C1294XL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/681941/ek-tm4c1294xl-gpio-is-not-going-to-zero

器件型号:EK-TM4C1294XL

您好!

我对这一点比较陌生、但我基本上是想让 GPIO 对回路进行充电、然后 再关闭、这样我就可以查看回路中的谐振。 但是、当我的 GPIO 处于高电平状态时、它为3.3V、当它处于低电平状态时、我的读数为1.8V。 我需要它为零、这样它不会干扰我的谐振读数。 除了万用表外、没有任何器件连接到电路板。

这是我的代码。

我尝试使用 GpioinWrite (注释掉)将其设置为零相同的问题、这次我尝试从上拉切换到下拉、相同的问题。 有什么想法吗?

#include
#include
#include "inc/hw_memmap.h"
#include "driverlib/gpio.h"
#include "driverlib/sysctl.h"
#include "inc/hw_types.h"
#include "inc/hw_timer.h"
#include "inc/hw_ints.h"
#include "driverlib/timer.h"
#include "driverlib/interrupt.h"
#include "utils/uartstdio.h"
#include "driverlib/pin_map.h"

void NonPreciseTimer (int value){
   int i;
   I = 0;
   while (i!=值){
       ++I;
   }



内部
main (空)

   //启用引脚 A
   SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
   //检查引脚 A 是否已启用
   while (!SysCtlPeripheralReady (SYSCTL_Periph_GPIOA));
   {
   }
   //启用充电引脚
   GPIODirModeSet (GPIO_Porta_base、GPIO_INT_PIN_0、GPIO_DIR_MODE_OUT);
   GPIOPadConfigSet (GPIO_Porta_base、GPIO_INT_PIN_0、GPIO_Strength _2mA、GPIO_PIN_TYPE_STD_WPU);
   //GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_0、GPIO_PIN_0);
   //非精确延迟以确保油箱回路已充电
   非精确定时器(1000000);
   //关闭引脚
   GPIOPadConfigSet (GPIO_Porta_base、GPIO_INT_PIN_0、GPIO_Strength _2mA、GPIO_PIN_TYPE_STD_WPD);
   //GPIOPinWrite (GPIO_Porta_base、GPIO_PIN_0、0x0);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您的"回路"是否不可能对该"残余" (1V8)电压负责?

    您(暂时)的"断开与油箱的连接-并重复两个(输出高电平和低电平)测量结果、是否不会产生"快速/延迟"检查结果?"

    大多数此类回路在回路电感器"被剥夺"电流时"振荡"、尤其是这样。

    没有提到您的 "工作频率或电流与油箱电感器的关系"。   这两种方法都是有用的。

    应添加"注意事项"- MCU GPIO 与此类"回路"的任何"直接连接"... (可能)将 GPIO 暴露在"Out of Spec"电压瞬变中-这可能会对 GPIO 造成永久损坏。

    在"驱动 GPIO "和"油箱电路"之间施加"保护性缓冲组件"比"正常/习惯"要多得多。

    MCU 是一款"精密器件"、旨在处理和处理数据-它们(从不)以 "负担的爆炸!"著称。   (能够生成"不需要的浪涌"或对其反应良好!)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗯、不是我完全没有连接该储罐电路。 我只是使用万用表测试引脚、现在除了万用表外、没有任何引脚连接到电路板。
    当我最终连接它时、将会有一个二极管来防止这种情况
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    然后、预计"油箱回路"已"损坏"。
    您如何连接您的二极管? 同样、事实证明、将 GPIO "直接连接"到这样的"振荡电路"是不明智的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您需要查看 EK-TM4C1294XL 电路板的原理图。 它位于用户指南的背面:
    www.ti.com/.../spmu365c.pdf
    GPIO 端口 A 引脚0用作 UART 接收、并通过跳线 J4和零欧姆电阻器连接到 U20。 U20引脚上的上拉电阻强度大致等于 TM4C1294上的下拉电阻。 这将产生1.8V 电压。 您可以移除 JP4跳线、您应该会看到引脚变为低电平。

    使用这些数字引脚驱动模拟电路时请小心谨慎。 确保限制电流和反冲电压。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    CB1、
    感谢您发布有关连接到油箱回路的警告。 我正在撰写我的回答、您的速度更快。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我从未连接过它、我在连接之前尝试进行测试、因此我在电路连接到任何东西之前注意到了这一点。 实际上、该电路板根本没有与我的储罐电路或任何其他电路接触。 我的储罐电路已经在 Arduino 上构建和测试、因此二极管一直在那里、这意味着如果我甚至连接了它、它就不会造成任何损坏。 但是、很清楚、我从未连接过它。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢、就是这样、我移除了跳线、一切正常、我只使用了不同的引脚。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    即使使用"不同的引脚"-任何到电感电路的直接 MCU GPIO 连接(甚至长 PCB 走线包含电感)也证明"有风险!"

    用于功率 FET 的"推挽"晶体管电路或"栅极驱动器"将在向油箱电路提供额外电流(拉电流和灌电流)的同时"保护您的 MCU"。

    在 MCU (似乎)刚刚存活下来之前-您以这种方式运行会带来问题! (可能会更快而不是更晚到达...)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Bob、

    谢谢您-您可能会记得、公司/我没有使用'129 -我也没有查看@海报的代码-而是"抓住了可以合理地假定的"、因为"直接连接"的油箱回路会造成"损坏"。

    海报似乎"绑定/确定"现在进行连接-这是不明智的、因为它会对 MCU 施加压力(并可能会扼杀 GPIO)、并且证明电压/电流输出"不足"、从而充分驱动(大多数)回路...

     您的帖子肯定会证明其"已解决"-但"无样论坛" crüe 在传达海报"验证"其"确认他人的指导"的"占空"方面不能做到错误!   这种情况在丰度方面发生-以及始终令人印象深刻的情况: "TM4Cxyz: TM4Cxyz"  许多工作显然还在继续...