主题中讨论的其他器件:Tina-TI、 ENERGIA、 UCC27321、 SN74LVC2G14、 TDC7200EVM
工具/软件:TINA-TI 或 Spice 模型
大家好、
我最近开始实施 TIDA-00663 LIDAR 参考设计、 我遇到了一些障碍、下面进行了列举:
1) 1) ext_15V 的功能是什么? 我没有看到到这个引脚的任何连接。
2)关于激光驱动器(UCC27321D)、我遇到了巨大的问题。 首先、我只焊接电路的 TX 部分(下图)、当我将其连接到外部 Vcc_laser = 10V (电源)时、保持 ENBL 悬空(内部上拉)、基本上会过热并释放白烟。 我可以假设它烧坏了。 我已经验证了所有引脚均已正确连接。 此外、当使用连接到 TIDA-00663的 MSP430F5529LP 时、如果我将 Vcc_laser 连接到电路板+5V 引脚等、则电路板会自动从 PC 上断开连接。 有人能帮助我了解出了什么问题吗? 我是否缺少某些内容或做得不正确?
3) 3)是否有任何 C++或 C 代码用于使用纳秒脉冲触发激光器? 我使用了 Energia,但 digitalWrite()速度太慢,引入了大约1-2us 的延迟,我发现的解决方案是在较低的级别进行编程。 这是我的代码:
#define Arduino_main
#include "wiring_prive.h"
#include "PINS_Energia.h"
#define nop __asm____volatile__("nop\n\t");//定义 nop (无操作)指令,仅浪费1个时钟周期(1/25MHz = 40ns)
#define BP_TRIG P2_0 //激光触发信号
#define BP_GPIO_EN P7_4 // UCC27321 (MOSFET 驱动器)使能
#define STOP P2_1
//按下此按钮时,触发信号通过进入无限循环而停止;要退出循环,必须按下 RST (S3)按钮,这将重新启动触发信号
#define LED P1_0 //在触发停止时开启
unsigned int T_pulse = 100;//T_puls=1/PRR 必须保证 Duty_cycle < 0.1%(激光限值)
void my_digitalWrite (uint8_t pin、uint8_t val)//预定义函数引入了太多的延迟
{
uint8_t 位= digitalPinToBitMask (pin);
volatile uint8_t * out = portOutputRegister (digitalPinToPort (pin));
(Val ==低电平? *out &=~位:*out |=位);//替换 if 语句-查看是否更快
}
void setup(){
PinMode (BP_TRIG、OUTPUT);//将两个引脚定义为输出
引脚模式(BP_GPIO_EN、输出);
引脚模式(STOP、INPUT_PULLUP);//激活停止按钮
引脚模式(LED、输出);
digitalWrite (BP_GPIO_EN、HIGH);//启用驱动程序
my_digitalWrite (BP_TRIG、LOW);//激光关闭
attachInterrupt (STOP、TRIG_STOP、FALLING);//按下按钮时会触发中断
my_digitalWrite (LED、LOW);//启用驱动程序
}
void loop(){
delayMicroseconds (T_pulse);//以微秒为单位的关闭周期
my_digitalWrite (BP_TRIG,HIGH );
NOP;//每个 nop 引入~40ns 延迟@ 25MHz
my_digitalWrite (BP_TRIG、LOW);/
}
void trig_stop ()
{
my_digitalWrite (BP_GPIO_EN、LOW);//启用驱动程序
my_digitalWrite (BP_TRIG、LOW);//激光关闭
my_digitalWrite (LED、高电平);
while (true){}//无限循环、直到按下 RST (S3)按钮
}
4) 4)施密特触发器 SN74LVC2G14或类似器件是否有 SPICE 模型? 或者是否有任何其他模拟方法?
提前感谢、
Joaquim