你好,,请问一下,2.4V的脉冲信号,dsp2812的cap单元能捕获到信号吗?
你好,,请问一下,2.4V的脉冲信号,dsp2812的cap单元能捕获到信号吗? 建议加一级整形电路 或者电平转换电路 尤其是在工业领域内 电平转换是必须的 zhangmangui 发表于 2016-4-4 22:19建议加一级整形电路 或者电平转换电路
非常感谢您的回复!!! zhangmangui 发表于 2016-4-4 22:19
建议加一级整形电路 或者电平转换电路
您好,,我采集到的信号是8V的脉冲信号,传给dsp2812的cap单元,需要在中间加一个稳压管进行降压就可以了吗?或者有其他更好的办法吗?谢谢! yimi1 发表于 2016-4-5 15:37
您好,,我采集到的信号是8V的脉冲信号,传给dsp2812的cap单元,需要在中间加一个稳压管进行降压就可以了 ...
不建议稳压管 如果是恒定的8V幅度
建议最简单的办法 分压然后整形处理或直接送入 zhangmangui 发表于 2016-4-5 22:18
不建议稳压管 如果是恒定的8V幅度
建议最简单的办法 分压然后整形处理或直接送入 ...
加个电阻分压,可以么? yimi1 发表于 2016-4-6 09:26
加个电阻分压,可以么?
可以实现 只要保证电压幅度稳定 yimi1 发表于 2016-4-6 09:26
加个电阻分压,可以么?
可以实现 只要保证电压幅度稳定 zhangmangui 发表于 2016-4-6 22:56
可以实现 只要保证电压幅度稳定
非常感谢百忙之中的回复!祝工作顺利哈!! zhangmangui 发表于 2016-4-6 22:56
可以实现 只要保证电压幅度稳定
您好!我的8V方波脉冲,加了个110Ω的电阻分压后,转变成3.04V的方波脉冲,,但是方波的周期为什么变小了,也说为什么脉冲的频率变大了?
您有什么方法可以使电压降下来后,保持频率不变的么?{:handshake:} yimi1 发表于 2016-4-9 21:12
您好!我的8V方波脉冲,加了个110Ω的电阻分压后,转变成3.04V的方波脉冲,,但是方波的周期为什么变小了 ...
能不能将你的处理图画出来看看
如果要好些 用比较器吧 zhangmangui 发表于 2016-4-6 22:56
可以实现 只要保证电压幅度稳定
您好,DSP-SCI,我用串口调试助手收发数据,程序设计的波特率是9600,但是串口调试助手设置成9600的,接收到的数据是乱码,,如果将串口调试助手的波特率设置成低于9600的,如4800,2400,1200,600,这些都可以接收到正确的数据,这是为什么? yimi1 发表于 2016-5-9 17:40
您好,DSP-SCI,我用串口调试助手收发数据,程序设计的波特率是9600,但是串口调试助手设置成9600的,接收 ...
上位机上 串口助手一般都是调用插件做的波特率
所以不会错 这个只能说明你的下位机波特率计算错了
主要可能是外设时钟的频率有误 zhangmangui 发表于 2016-5-11 22:00
上位机上 串口助手一般都是调用插件做的波特率
所以不会错 这个只能说明你的下位机波特率计算错 ...
您好,您能帮忙看看程序,哪里错了吗?
我的系统设置的是
SysCtrlRegs.HISPCP.all = 0x0001;//HSPCLK=75MHZ
SysCtrlRegs.LOSPCP.all = 0x0002;//LSPCLK=37.5MHZ
SciaRegs.SCIHBAUD = 0x01;
SciaRegs.SCILBAUD = 0xe7; //波特率为9600
1、初始化系统模块程序:
void InitSysCtrl(void)
{
Uint16 i;
EALLOW;
// On TMX samples, to get the best performance of on chip RAM blocks M0/M1/L0/L1/H0 internal
// control registers bit have to be enabled. The bits are in Device emulation registers.
DevEmuRegs.M0RAMDFT = 0x0300;
DevEmuRegs.M1RAMDFT = 0x0300;
DevEmuRegs.L0RAMDFT = 0x0300;
DevEmuRegs.L1RAMDFT = 0x0300;
DevEmuRegs.H0RAMDFT = 0x0300;
// Disable watchdog module
SysCtrlRegs.WDCR= 0x0068;
// Initalize PLL
SysCtrlRegs.PLLCR = 0xA; ///0000 1010 CLKIN = (OSCCLK * 10.0)/2
// Wait for PLL to lock
for(i= 0; i< 5000; i++){}
// HISPCP/LOSPCP prescale register settings, normally it will be set to default values
SysCtrlRegs.HISPCP.all = 0x0001;
SysCtrlRegs.LOSPCP.all = 0x0002;
// Peripheral clock enables set for the selected peripherals.
SysCtrlRegs.PCLKCR.bit.EVAENCLK=1;
SysCtrlRegs.PCLKCR.bit.EVBENCLK=1;
SysCtrlRegs.PCLKCR.bit.SCIENCLKA=1;
EDIS;
}
2、初始化SCI程序:
void InitSci(void)
{
// Initialize SCI-A:
EALLOW;
GpioMuxRegs.GPFMUX.all = 0x0030;
EDIS;
/* loopback 8 bit data */
SciaRegs.SCICCR.all = 0x07; // 1 bit stop, disable parity, idle mode, 8 bits data
SciaRegs.SCICTL1.all = 0x03; // enable TX
SciaRegs.SCICTL2.all = 0x03; //
////////////////////9600///19200/////
SciaRegs.SCIHBAUD = 0x01;//0x00;
SciaRegs.SCILBAUD = 0xe7;//0xa2;
SciaRegs.SCICTL1.all = 0x23;
PieCtrl.PIEIER9.bit.INTx1 = 1;
PieCtrl.PIEIER9.bit.INTx2 = 1;
//tbd...
// Initialize SCI-B:
//tbd...
}
/********************************************************************************
name: int SciaTx_Ready(void)
input: none
output: i 1: ready
0: busy
*********************************************************************************/
int SciaTx_Ready(void)
{
unsigned int i;
if(SciaRegs.SCICTL2.bit.TXRDY == 1)
{
i = 1;
}
else
{
i = 0;
}
return(i);
}
/********************************************************************************
name: int SciaRx_Ready(void)
input: none
output: i 1: new data
0: none
*********************************************************************************/
int SciaRx_Ready(void)
{
unsigned int i;
if(SciaRegs.SCIRXST.bit.RXRDY == 1)
{
i = 1;
}
else
{
i = 0;
}
return(i);
}
3、主程序,SCI采用查询方式实现数据发送接收
#include "DSP28_Device.h"
unsigned int SCiRxData;
unsigned int i,j,SendFlag;
void main(void)
{
InitSysCtrl(); //初始化系统
DINT; //关中断
IER = 0x0000;
IFR = 0x0000;
InitPieCtrl(); //初始化PIE中断
InitPieVectTable(); //初始化PIE中断矢量表
InitSci(); //初始化SCIA寄存器
for(i = 0; i < 100; i++)//初始化变量
{
SCiRxData = 0x0000;
}
i = 0;
j = 0;
SendFlag = 0;
#if SCIA_INT //设置中断服务程序入口地址/
EALLOW;
PieVectTable.TXAINT = &SCITXINTA_ISR;
PieVectTable.RXAINT = &SCIRXINTA_ISR;
EDIS;
IER |= M_INT9; //开中断
#endif
EINT; // Enable INTM
ERTM; // EnableDBGM
for(;;)
{
if((SciaTx_Ready() == 1) && (SendFlag == 1))
{
SciaRegs.SCITXBUF = SCiRxData;
SendFlag = 0;
i++;
if(i == j)
{
i = 0;
j = 0;
}
}
#if !SCIA_INT
if(SciaRx_Ready() == 1)
{
SCiRxData = SciaRegs.SCIRXBUF.all;
SendFlag = 1;
j++;
if(j == 100)
{
j = 0;
}
}
#endif
}
}
yimi1 发表于 2016-5-12 10:03
您好,您能帮忙看看程序,哪里错了吗?
我的系统设置的是
SysCtrlRegs.HISPCP.all = 0x0001;//HSPCLK=75M ...
你好 看看我的分享 里面有代码
SCI等都是调试通的
https://bbs.21ic.com/icview-1010062-1-1.html
页:
[1]