标题:
A/D问题
[打印本页]
作者:
xiaoxiu
时间:
2007-12-21 22:34
标题:
A/D问题
请问斑竹:
S12的A/D时钟能不能超过2MHZ,如果超过了会怎么样?
作者:
happyfred
时间:
2007-12-22 17:06
我刚试了一下,没有问题,如果太高就慧出现问题了,数据变化不连续。
作者:
xiaoxiu
时间:
2007-12-23 19:18
我的AD转化就是两个数据00和FF输入电视视频信号(最高才1.25V,是CCD输出信号)请问斑竹 是不是AD还要接外部参考电压还是AD坏了?
作者:
strongchen
时间:
2007-12-24 10:10
AD应该要接外部参考电压。你的VREFH和VREFL是怎么接的?
作者:
xiaoxiu
时间:
2007-12-24 12:31
你说的VREFH和VREFL就是资料上的VRH和VRL吧 这两个端口 我什么也没节,我见很多人用这个AD都没接外部参考电压,如果要接,VRH接5V,VRL接0V就可以了吧
作者:
xiaoxiu
时间:
2007-12-24 12:36
斑竹 我急啊 我的毕业设计下星期就要答辩了,是用CCD采集图象传到电脑上,再显示,现在电脑上的程序弄好了,就差图象采集了.不知道是什么原因得出来的图象怎么也不同步,数据也不对!!
作者:
strongchen
时间:
2007-12-24 14:03
对,VRH接5V,VRL接0V就可以了。你的图像是靠什么信号同步的?
作者:
xiaoxiu
时间:
2007-12-24 19:49
我的图象是靠LM1881分离同步信号,但是我下午刚接上参考电压还可以出图象,现在又什么也没有了,怎么回事?图象提取程序是这样的:
/************************IRQ Interrupt**********************/
#pragma CODE_SEG NON_BANKED
interrupt void IRQ_ISR (void)
{ m_cCCDFrameShiftFlag = m_cCCDFrameShiftFlag|CCD_VS;
if(m_cCCDFrameShiftFlag == 0xfe){
m_cFrameSyncFlag = 1; //同步标志
}
/*if(PORTA_BIT1==1){
m_cFrameSyncFlag = 1;
}else{
m_cFrameSyncFlag =0;
m_cFrameCompleteFlag = 0;
m_cFrameSampeFlag=0 ;
}*/
m_cCCDFrameShiftFlag = m_cCCDFrameShiftFlag<<1;
if(m_cFrameSyncFlag == 1){
m_cMuxPulseCnt++; //==19 COLS=50旁边刚好有两行
if(PORTA_BIT0==0) { //去掉
if(m_cMuxPulseCnt == 22){ //SAMPLE_START_CNT 23
m_cFrameSampeFlag = 1; //奇
m_cFrameSyncFlag = 0; //15 good
m_cMuxPulseCnt = 0;
}
}else{ //去掉
if(m_cMuxPulseCnt ==23){ //偶 22:23刚好不闪烁
m_cFrameSampeFlag = 1;
m_cFrameSyncFlag = 0;
m_cMuxPulseCnt = 0;
}
}
}
if(m_cFrameSampeFlag == 1){
if(m_cCCDRowNum%3==0) //%6
{
m_cRowNum++;
ATD0CTL2=0xC2; // 启动AD转换 开中断
ATD0CTL3 =0x19;//0x19; //00011001顺序转换长度为3 ,调试时保留,no fifl
ATD0CTL4 =0x80;//0x80 ATDclk = 0.08us //实测时间 2.48us/次 //总线25M
ATD0CTL5=0XA0;
ATD0DIEN=0X00;
}
m_cCCDRowNum++;
m_cSampNum =-3; //-20 good
if(m_cRowNum == CCD_ROWS-1){
m_cFrameSampeFlag = 0;
m_cFrameCompleteFlag = 1;
m_cCCDFrameShiftFlag = 0; //
//HUANG
IRQDis(); //huangqin
}
}else{
m_cCCDRowNum =-1;
m_cRowNum = -1;
PORTB=0x00; //test
}
}
#pragma CODE_SEG DEFAULT
/************************ATD0 Interrupt**********************/
#pragma CODE_SEG NON_BANKED
interrupt void ATD0_ISR (void)
{ //char ADDATA;
//ADDATA=ATD0DR0;
//SCI_PutByte('k');
m_cSampNum++;
if(m_cSampNum < CCD_COLS){
if(m_cSampNum>=0){
m_aImage[m_cRowNum][m_cSampNum] =(uchar)ATD0DR0;
}
}else{
m_cSampNum =-3;
ATD0CTL2=0X00;
//PIEJ=0x00;
}
}
#pragma CODE_SEG DEFAULT
作者:
xiaoxiu
时间:
2007-12-24 19:53
还有就是我的图象在电脑上显示 总是从左向右移 不知道是不是场不同步,显示程序没问题,麻烦斑竹帮我看看!!
作者:
xiaoxiu
时间:
2007-12-24 19:55
图象出来了 ,但是还是总向左移动!
作者:
xiaoxiu
时间:
2007-12-24 20:27
图象时有时无,不知道是什么原因,是不是频率太高的缘故,
/****************************PLLinit************************/
void PLLInit(void){
//PLL 05 01
SYNR=0x05; //SYNR=0x02 时,书上说是:16
//此时片内系统时钟为48MHz.这说法好像不对.
REFDV=0x01;
while(!(0x08&CRGFLG)) ; //PLL 锁相环锁定标志
CLKSEL=0x80;
}
/*==================================================
作者:
strongchen
时间:
2007-12-26 10:14
你的输入时钟频率是多少?
作者:
xiaoxiu
时间:
2007-12-26 18:12
输入的外部时钟是16M
作者:
strongchen
时间:
2007-12-27 11:42
此时你的PLL输出频率为96M,总线频率为48M,远高于S12的最高总线率即25M。
作者:
xiaoxiu
时间:
2007-12-27 14:24
哦 我明白了,超过S12的最高总线率就会不稳定,谢谢斑竹!!
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0