原创 探讨内部RC振荡器校准及补偿

2008-2-29 22:37 6697 11 11 分类: MCU/ 嵌入式
【楼主位】 hotpower 菜农

积分:1404
派别:
等级:------
来自:西安大雁塔村
近日对M8L进行了一些演练,感觉比51---味道好极了...虽然PIC也...

但是由于系统的要求及M8L的特点,我在用RTC后,也只好用内部RC振荡器了.

当然内部RC振荡器确实对系统的稳定有一定的帮助,但频率漂移确实是件头痛的大事!!!

首害者就数串口了!!!

在5V系统下波特率为19200时,可以说不错,UBRR基本稳定在25.OSCCAL由SLISP校准.

但在3.3V系统下,保持OSCCAL不变时,随着外部条件的变化,UBRR从24(比5V的小)可以飘到21.

请大家探讨有关AVR的内部RC振荡器校准及补偿问题,能否找出一个简单可行之方法???

我琢磨了一个方法,正在验证中,先请各位发表高见...

-----此内容被hotpower于2005-01-09,00:42:34编辑过
pixel.GIF2005-01-08,23:45:33
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【1楼】 machao
积分:1427
派别:
等级:------
来自:
  请做点好事,把官方提供的资料先整理告诉大家。
点击此处打开armok0127582.pdf
点击此处打开armok0127583.pdf
点击此处下载armok0127584.zip
点击此处下载armok0127585.zip
 
pixel.GIF2005-01-09,00:47:33
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【2楼】 hotpower 菜农

积分:1404
派别:
等级:------
来自:西安大雁塔村
谢谢马老师...


今天大概看了一下,思路应该与波特率自动校准技术雷同吧...


-----此内容被hotpower于2005-01-10,00:11:56编辑过
pixel.GIF2005-01-09,02:52:21
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【3楼】 hotpower 菜农

积分:1404
派别:
等级:------
来自:西安大雁塔村
马老师:

    学生我已实现AVR的内部RC振荡器自动校准及补偿...

实际上,在我第1次为RC郁闷时,就立即将INT0接RXD,...因为我搞过几年仪表计量...

我现在也只看了"一眼"您给的ATMEL官方提供的资料...因为我要自己从郁闷中走出来...

您自称是"另类",学生我肯定是"异类"了...

现在我不需要"外部激励RXD"来校准AVR的内部RC振荡器...

正在"烤机"和优化"算法"..."误人子弟"我也是做不出来的...
pixel.GIF2005-01-09,19:44:23
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【4楼】 hotpower 菜农

积分:1404
派别:
等级:------
来自:西安大雁塔村
这是串口的"调节记录",准备优化算法,使其迅速逼近正确点...
从下面可以看出调节用了00:01:05....

软件测试设定:
/*         UART初始化            */   
void uart_init(void)
{
// OSCCAL = pgm_read_byte(osc_address);
// OSCCAL = 0xb1;//双龙校准值
 OSCCAL = 0xf0;//瞎写值
 UCSRB=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE);//允许发送和接收
// UBRR=fosc/16/(baud+1);
// UBRRL=(fosc/16/(baud+1))%256;
// UBRRH=(fosc/16/(baud+1))/256;
// UBRRL = 21;//3.3V的漂移测定值
 UBRRL = 25;//标准值
 UBRRH = 0;
 UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);//8位数据+1位STOP位
}


?庺幚膹?巰庺幚?幤尷庼幚?幥尷庼梧D幦汤庼凄F庨睦析青f晤睦悟G?物睦悟G`"勿睦乞gp????乞gp?凄胬乞cp????F?F?DF俐?GzFzdG@FzG{凣@?G{G{ @?G{G{ 腉@?GyG{   鬐@?gyGy   睦gyGy   4睦g=?g=G`?#=?'=?' ?#忇DDg1??#忇DDg寑#忇DDg2??D'8?? ?D'8?? ?D#8?? ?d#8?忄d#8?忄d#?#?d#?#?d#?d#?ddtt忄ddt?蜞d$t?蜞$$4?蜞$$4?蜞&$4蜞&$6筻$$?骮?骮?&骮仸6馺仸F馺仸V馺仸f馺仸v馺仸?鵣仸?鵣仸鵣仸鵣仮"鵣立2鵣立B鵣立R鵣`r?b`z``reg@``z``zex@``z``zey@``zpazp`@ppzpqzpq@ppzpqzpr`ppzpqzps`00zp1:0t`00:01:05 00:01:06 00:01:07 00:01:08 00:01:09 00:01:10 00:01:11 00:01:12 00:01:13 00:01:14 00:01:15 00:01:16 00:01:17 00:01:18 00:01:19 00:01:20 00:01:21 
pixel.GIF2005-01-09,20:07:49
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【5楼】 hotpower 菜农

积分:1404
派别:
等级:------
来自:西安大雁塔村
再给一组测试值,可以看出5V和3.3V的差异...

软件测试设定:

/*         UART初始化            */   
void uart_init(void)
{
// OSCCAL = pgm_read_byte(osc_address);
 OSCCAL = 0xb1;//双龙校准值
// OSCCAL = 0xf0;//瞎写值
 UCSRB=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE);//允许发送和接收
// UBRR=fosc/16/(baud+1);
// UBRRL=(fosc/16/(baud+1))%256;
// UBRRH=(fosc/16/(baud+1))/256;
// UBRRL = 21;//3.3V的漂移测定值
 UBRRL = 25;//标准值
 UBRRH = 0;
 UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);//8位数据+1位STOP位
}



?庺幚膹?巰庺幚膹滥巰庼幚D幥尷庼梧D幦汤析凄F伍睦析青f晤睦悟G?物睦悟G`"勿睦乞gp????乞gp?凄胬F?cp????F?F?DF俐?GzFzdF@G{Gz凣@G{G{ 碐@?G{G{ 腉@?GyG{   鬐@?gyG{   睦gyGy   4睦g=?g=g`?g=?#=?' ?#忇DDg1??#忇DDg寑#忇DDg2??D'8?? ?D'8?? ?D#8?? ?d#8?忄d#8?忄d#?#?d#?#?d#?d#?ddt@?ddt?蜞d$t?蜞$$4?蜞$$4?蜞$$4蜞&$4筻$$?筻?骮儰$骮仸6馺仸F馺仸V馺仸f馺仸v馺仸?鵣仸?鵣仸鵣仮鵣仮&鵣立2鵣立B鵣立R鵣敛b鵣`r``zmg@``z``zex@``z``zey@p`zpqz`p@ppzpqzpq@ppzpqzpr`ppzpqzps`pp:01zp4 00:01:05 00:01:06 00:01:07 00:01:08 00:01:09 00:01:10 00:01:11 00:01:12 00:01:13 00:01:14 00:01:15 00:01:16 00:01:17 00:01:18 
-----此内容被hotpower于2005-01-09,20:13:46编辑过
__________________________
pixel.GIF2005-01-09,20:13:16
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【6楼】 hotpower 菜农

积分:1404
派别:
等级:------
来自:西安大雁塔村
再给一组测试值,可以看出好像都要经过1分零5秒后才能调节到正确值... 

马老师:
    从实验结果来看,中途调节OSCCAL是需要一定的时间才行???

软件测试设定: 



/*         UART初始化            */   
void uart_init(void)
{
// OSCCAL = pgm_read_byte(osc_address);
// OSCCAL = 0xb1;//双龙校准值
 OSCCAL = 0x80;//瞎写值
 UCSRB=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE);//允许发送和接收
// UBRR=fosc/16/(baud+1);
// UBRRL=(fosc/16/(baud+1))%256;
// UBRRH=(fosc/16/(baud+1))/256;
// UBRRL = 21;//3.3V的漂移测定值
 UBRRL = 25;//标准值
 UBRRH = 0;
 UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);//8位数据+1位STOP位
}


徖$巰庺幚膹滥巰庼幚?幥尷庼卫D幦汤庼凄F庨睦析青f晤睦悟G?物睦悟G`"勿睦乞gp????乞gp?凄胬乞cp????F?F?DF俐?GzFzdG@G{Gz凣@G{G{ @?G{G{ 腉@?GyG{   鬐@?GyGy   睦gyGy   4睦g=gyg`?'=?'=?' ?#忇DDg1??#忇DDg寑#忇DDg2??D'8?? ?D#8?? ?D#8?? ?d#8?忄d#8?忄d#?#?d#?#?d#?d#?ddtt忄ddt?蜞d$t?蜞$$4?蜞$$4?蜞$$4蜞&$4筻$&?骮?骮儲&骮仸6馺仸F馺仸V馺仸f馺仸v馺仸?馺仸?鵣仸鵣仮鵣仮&鵣立2鵣立B鵣立R鵣敛b鵣`z``zeg@``z``zex@``z``zey@``zpazp`@ppzpqzpq@ppzpqzpr@ppzpqzps`p0:0qz04 00:01:05 00:01:06 00:01:07 00:01:08 00:01:09 00:01:10 00:01:11 00:01:12 00:01:13 00:01:14 00:01:15 00:01:16 00:01:17 00:01:18 00:01:19 00:01:20 00:01:21 
pixel.GIF2005-01-09,20:23:22
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【7楼】 hotpower 菜农

积分:1404
派别:
等级:------
来自:西安大雁塔村
再给一组测试值,可以看出如果在写入时就写OSCCAL = 0xc8该多好呀...
但本程序是"全天候自动调节",无须再为内部RC振荡器"忧愁烦恼"了...

哈哈...我该做个"美梦"了...


软件测试设定:
/*         UART初始化            */   
void uart_init(void)
{
 OSCCAL = 0xc8;//本程序测出的自动校准值(真正的漂移值)
// OSCCAL = pgm_read_byte(osc_address);
// OSCCAL = 0xb1;//双龙校准值
// OSCCAL = 0x80;//瞎写值
 UCSRB=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE);//允许发送和接收
// UBRR=fosc/16/(baud+1);
// UBRRL=(fosc/16/(baud+1))%256;
// UBRRH=(fosc/16/(baud+1))/256;
// UBRRL = 21;//3.3V的漂移测定值
 UBRRL = 25;//标准值
 UBRRH = 0;
 UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);//8位数据+1位STOP位
}



00:00:01 00:00:02 00:00:03 00:00:04 00:00:05 00:00:06 00:00:07 00:00:08 00:00:09 00:00:10 00:00:11 00:00:12 00:00:13 00:00:14 00:00:15 00:00:16 00:00:17 00:00:18 00:00:19 00:00:20 00:00:21 00:00:22 00:00:23 00:00:24 00:00:25 00:00:26 00:00:27 00:00:28 00:00:29 00:00:30 00:00:31 00:00:32 00:00:33 00:00:34 00:00:35 00:00:36 00:00:37 00:00:38 00:00:39 00:00:40 00:00:41 00:00:42 00:00:43 00:00:44 00:00:45 00:00:46 00:00:47 00:00:48 00:00:49 00:00:50 00:00:51 00:00:52 00:00:53 00:00:54 00:00:55 00:00:56 00:00:57 00:00:58 
pixel.GIF2005-01-09,20:38:45
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【8楼】 hotpower 菜农

积分:1404
派别:
等级:------
来自:西安大雁塔村
实际的OSCCAL逼近"曲线"...可以看出波特率不对时的"情况"...

软件测试设定:

/*         UART初始化            */   
void uart_init(void)
{
// OSCCAL = 0xc7;//本程序测出的自动校准值(真正的漂移值)
// OSCCAL = pgm_read_byte(osc_address);
// OSCCAL = 0xb1;//双龙校准值
 OSCCAL = 0x80;//瞎写值
 UCSRB=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE);//允许发送和接收
// UBRR=fosc/16/(baud+1);
// UBRRL=(fosc/16/(baud+1))%256;
// UBRRH=(fosc/16/(baud+1))/256;
// UBRRL = 21;//3.3V的漂移测定值
 UBRRL = 25;//标准值
 UBRRH = 0;
 UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);//8位数据+1位STOP位
}

OSCCAL逼近"曲线":

00 00 02 FE 04 FE 06 FE 18 FE 1B FE 1C FE 1F FE 20 FE 23 FE 24 FE 27 FF 38 FF 3B FF 3C FF 3F FF 40 FF 43 FF 44 FF 47 FF 48 FF 4B FF 4C FF 4F FF 70 FF 73 FF 74 FF 77 FF 78 FF 7B FF 7C FF 7F 80 C3 C4 C7 C8 CB CE CF 50 51 56 57 58 59 5E 5F 60 61 62 63 6C 6D 6E 6F 78 79 7A 7B 7C 7D 7E BF C0 C1 C2 C3 C4 C5 C6 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 

由于初始化OSCCAL = 0x80即内部RC振荡器设置的发生频率很低,故头2个数据0x00实际为

OSCCAL = 0x80的启始位+0x80的低位...到倒数第3行的0xBF时,即OSCCAL = 0xbf时,串口刚能接收到正确

的数据,所以,OSCCAL = 0xbf是临界值(在UBRRL = 25时)...

但本程序还是要继续逼近真值OSCCAL = 0xc7!!!!!!!!

-----此内容被hotpower于2005-01-09,21:12:58编辑过
__________________________
pixel.GIF2005-01-09,21:08:27
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【9楼】 hotpower 菜农

积分:1404
派别:
等级:------
来自:西安大雁塔村
再给出测试报告的最后一页...等马老师给AVR菜鸟批改"作业"...

软件测试设定: 

/*         UART初始化            */    
void uart_init(void) 

// OSCCAL = 0xc7;//本程序测出的自动校准值(真正的漂移值) 
// OSCCAL = pgm_read_byte(osc_address); 
// OSCCAL = 0xb1;//双龙校准值 
 OSCCAL = 0xff;//瞎写值 
 UCSRB=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE);//允许发送和接收 
// UBRR=fosc/16/(baud+1); 
// UBRRL=(fosc/16/(baud+1))%256; 
// UBRRH=(fosc/16/(baud+1))/256; 
// UBRRL = 21;//3.3V的漂移测定值 
 UBRRL = 25;//标准值 
 UBRRH = 0; 
 UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);//8位数据+1位STOP位 


OSCCAL逼近"曲线": 

FF FF FF FE FE FD FD FC FC FB FB FA FA F9 F8 F9 F8 F7 F6 F7 F6 F5 F4 F5 F4 F3 F2 F3 F0 F3 F2 F1 F0 EF EE ED EC EB EA E9 E8 E7 F6 F5 D4 D3 D2 D1 D0 CF CE CD CC CB CA C9 C8 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 
__________________________
pixel.GIF2005-01-09,21:16:27
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【10楼】 hotpower 菜农

积分:1404
派别:
等级:------
来自:西安大雁塔村
快速逼近算法"曲线"...

测试值:
OSCCAL = 0x00;

00 00 00 00 00 81 C8 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7

测试值:
OSCCAL = 0x80;

00 00 00 00 80 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7

测试值:
OSCCAL = 0xb1;

61 B1 CF C4 C8 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7

测试值:
OSCCAL = 0xc7;

C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7


测试值:
OSCCAL = 0xff;
FF FF 7F C8 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7
pixel.GIF2005-01-09,22:50:42
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【11楼】 hotpower 菜农

积分:1404
派别:
等级:------
来自:西安大雁塔村
恭喜自己用了近5个小时攻克了AVR的内部RC振荡器校准及补偿问题...

郁闷的hs12232-9...明天吧...

真累呀...只休息了4个小时...下辈子打死我也再不干了...
pixel.GIF2005-01-09,23:13:54
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【12楼】 hotpower 菜农

积分:1404
派别:
等级:------
来自:西安大雁塔村
看到马老师上线,现在交"作业"--实验原始记录报告...
__________________________
pixel.GIF2005-01-10,00:39:44
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【13楼】 machao
积分:1427
派别:
等级:------
来自:
    应先讲清楚原理吗,让大家了解的思路和算法。给个UART初始化和一串232的输出结果是不是买关子? 
 
pixel.GIF2005-01-10,02:35:48
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【14楼】 hotpower 菜农

积分:1404
派别:
等级:------
来自:西安大雁塔村
关键是没什么原理和道理。。。

我想先探讨后论述主要是害怕有人说:“我早已。。。”

所以,正因为太简单,故。。。但确实很实用。。。
pixel.GIF2005-01-10,08:32:43
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【15楼】 hotpower 菜农

积分:1404
派别:
等级:------
来自:西安大雁塔村
马老师:
    学生俺并非"卖关子"...只是不想误人子弟了...先让大家自己想想看,这样会提高"功力"的...
pixel.GIF2005-01-10,13:12:25
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【16楼】 dfgeoff 嗜血蜗牛

积分:689
派别:
等级:------
来自:江苏南京
咦?这也会下去?帮up上去。

自动RC校正对于使用内部RC振荡器的工程来说是必须的,不然,那么多的(比如1K)芯片,都要读RC校正值,再改程序,未免太累人。

因为自己没什么水平,一直不敢随便跟着叫好,以免影响hotpower DX和马老师的交流。现在帮个忙,冲前面去。

并期待后续!
__________________________
抗日联盟!在不影响生活的前提下,不买日货!
欢迎交流51单片机、AVR、CPLD/FPGA。江苏南京。
MSN:dfgeoff@hotmail.com  QQ: 4997129  E-mail:dfgeoff@163.com
pixel.GIF2005-01-10,22:21:28
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【17楼】 hotpower 菜农

积分:1404
派别:
等级:------
来自:西安大雁塔村
哈哈...实际学生我在20年前搞仪表计量了6年时间...

我知道这是学生交的一篇"水文"...

我肯定会将原理及源程序公开发表的,现在主要等花农先做完这篇作业...让他动动大脑...

以免"花心太重"...

及早发表肯定会误人子弟的!!!!!!!!!
__________________________
pixel.GIF2005-01-11,00:22:41
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【18楼】 mucode 牧
积分:79
派别:
等级:------
来自:
我的设想实现自动校准,占用0空间
串口下载线(特制的,必须由mcu控制)
写入测试程序,和下载线配合精确测量频率误差
得到校准值,重复测试

写入新程序,写入校准值
__________________________
这里是代码的牧场 http://www.mucode.com/bbs

欢迎访问牧码软件工作室 http://www.mucode.com 
pixel.GIF2005-01-12,09:23:38
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【19楼】 crazyeda
积分:167
派别:
等级:------
来自:
是否是对OSCCAL连续赋值(作为激励),检测输出信号周期来判断此时主频率.HOTPOWER的办法是不是这个意思啊
 
pixel.GIF2005-01-12,09:33:02
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【20楼】 MZMMZMMZM
积分:110
派别:
等级:------
来自:
期待
__________________________
难得糊涂
zhimou-mei@163.com
pixel.GIF2005-01-12,09:52:56
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【21楼】 HIGHWAY 器件替换网
积分:50
派别:
等级:------
来自:南京
呵呵,前辈就是不一样啊,我是懒人,是不会这么做的

等前辈给答案了
__________________________
 
pixel.GIF2005-01-12,16:55:40
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【22楼】 hotpower 菜农

积分:1404
派别:
等级:------
来自:西安大雁塔村
正在研究各种校准方法...

目前的方法是"频率漂移放火墙",只要频率漂移立即纠正...

可以应用在M8L和M16L中...正在整理文档...

pixel.GIF2005-01-12,18:57:02
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【23楼】 crazyeda
积分:167
派别:
等级:------
来自:
hotpower大叔,我一直在期待您的频率漂移防火墙,不晓得是否可以早点看到您的美文。因为发现您最近迷上了C++玩AVR,好象有点乐不思归,特提醒一下。嘿嘿
 
pixel.GIF2005-02-01,23:53:16
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【24楼】 hotpower 菜农

积分:1404
派别:
等级:------
来自:西安大雁塔村
哈哈,“频率漂移防火墙”确实已通过本人的“验收”,并在5V和3.3V下进行烤机实验。

今天电波表程序刚刚完成,明天开始用电波表检验“频率漂移防火墙”的实战能力.

GCCAVR C++菜鸟玩MCU C++“乐不思归”--确实在自我陶醉...没想到代码效率不错...

pixel.GIF2005-02-02,00:14:51
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【25楼】 crazyeda
积分:167
派别:
等级:------
来自:
年前能见到实战之文吗,希望描述一下原理,我的GCC还在摸索阶段,可能看不太明白你程序中的“颜如玉”,呵呵
 
pixel.GIF2005-02-05,00:01:00
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【26楼】 hotpower 菜农

积分:1404
派别:
等级:------
来自:西安大雁塔村
今天终于找到和我思路雷同的好文,供大家参考!!!

内部RC振荡器校准
pixel.GIF2005-02-07,12:37:14
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【27楼】 crazyeda
积分:167
派别:
等级:------
来自:
前辈依然尤抱琵琶。。。。。。。。
 
pixel.GIF2005-02-08,02:04:57
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【28楼】 zrkj
积分:13
派别:
等级:------
来自:
当用于精确定时或串行通讯时最好不要采取“内部RC振荡器”方式,特别是批量生产时更不好办,温漂和电压波动都是大问题。
 
pixel.GIF2005-02-08,08:36:50
pixel.GIF资料 pixel.GIF邮件 pixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIFpixel.GIF编辑 pixel.GIF删除 pixel.GIFpixel.GIF

【29楼】 crazyeda
积分:167
派别:
等级:------
来自:
HOTPOWER老大硬是不肯带我这菜菜,只好昨晚3:00自力更生啃了啃ATMEL的那篇关于OSCCAL校正的文档,基本上的思路还是不停的对OSCCAL赋值,然后检测和外部标准频率的相位差,一个反馈--重新赋值的过程,其中提到一个办法就是逼近法赋值,这样经过若干个比较过程最终得到精确的赋值,每次更改过OSCCAL以后要等待时钟重新稳定才可以进行频率比较.

另外不同代的AVR的RC振荡器挺不同的,MEGA8,16内部有四个独立的振荡器对应1,2,4,8M,所以有4个校准值,属于AVR的第4代片内振荡器.MEGAx8系列内部只有一个8M的振荡器,是AVR的第5代片内振荡器

HOTPOWER老前辈逼着我外语长进啊,可您好歹也说点什么啊
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
11
关闭 站长推荐上一条 /3 下一条