打印
[STC单片机]

STC8A晶振转换不成功

[复制链接]
5462|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
由于需要精确定时,本来用的是芯片内部振荡器,打算改用外部晶振,总是切换不成功。STC技术好像就是那一个人,问啥基本都是“反正我这边能行”。我的电路是只有电源+晶振4刻线,程序只有切换成功输出一个口控制指示灯,晶振接的也是1.6和1.7!我就想问问还能有哪里出错??????
同时也请有知道的不领赐教,谢过了!!

相关帖子

沙发
创隆电子|  楼主 | 2017-2-9 10:25 | 只看该作者
程序也是例程里的,程序上电后1.7脚电压3.8-3.9V,1.6脚电压0.175V

使用特权

评论回复
板凳
创隆电子|  楼主 | 2017-2-9 13:03 | 只看该作者
没有起震!就是才不能功做!用有源晶振就可以,程序就是安文档提供的,现在芯片就用着几个引脚,硬件可能几乎没有了。软件也对比了寄存器,实在看不出来问题在哪里,谁手底下有芯片能帮我试一下嘛

使用特权

评论回复
地板
autopccopy| | 2017-2-9 17:24 | 只看该作者
一直用RC。使用外部晶振试试官方代码吧:



(53)

IMG_1112.JPG (165.47 KB )

IMG_1112.JPG

使用特权

评论回复
5
autopccopy| | 2017-2-9 17:29 | 只看该作者
手机发图不清楚,stc8需写启用时钟源的代码,可看stc-isp的内置例程:《stc8选择系统时钟源》。

使用特权

评论回复
6
NE5532| | 2017-2-10 15:19 | 只看该作者
创隆电子 发表于 2017-2-9 13:03
没有起震!就是才不能功做!用有源晶振就可以,程序就是安文档提供的,现在芯片就用着几个引脚,硬件可能几 ...

你用示波器看过没?核对配置字或者寄存器,是否真的选的是外部晶体,而不是外部时钟输入。

使用特权

评论回复
7
autopccopy| | 2017-2-19 13:06 | 只看该作者
LZ搞定了吗?按照数据手册或STC-ISP里的例程,一定可以使用外部晶振的哦。


233

使用特权

评论回复
8
创隆电子|  楼主 | 2017-2-19 16:54 | 只看该作者
还没有,暂时用着内部。

使用特权

评论回复
9
zhxzhxzzhhxx| | 2017-2-21 09:36 | 只看该作者
本帖最后由 zhxzhxzzhhxx 于 2017-2-21 09:38 编辑

void Sys_clk()
{
  P_SW2 = 0x80;
  XOSCCR = 0xc0;          //启动外部晶振
  while (!(XOSCCR & 1));  //等待时钟稳定
  CLKDIV = 0x00;          //时钟不分频
  CKSEL = 0x01;           //选择外部晶振
  P_SW2 = 0x00;
}
我是这样的,启动成功

使用特权

评论回复
10
coody| | 2017-2-21 16:03 | 只看该作者
STC技术支持给的,一次成功!

        P_SW2 |=  0x80;        // MOVX A,@DPTR/MOVX @DPTR,A指令的操作对象为扩展SFR(XSFR)
        XOSCCR = 0xC0;                        //启动外部晶振
        while((XOSCCR & 1)==0);        //等待振荡稳定
        CKSEL = (CKSEL & ~0x03) | 0x01; /* 选择外部晶振或时钟 */
        CLKDIV = 1;                                //分频
        P_SW2 &= ~0x80;                // MOVX A,@DPTR/MOVX @DPTR,A指令的操作对象为扩展RAM(XRAM)

使用特权

评论回复
11
创隆电子|  楼主 | 2017-4-22 10:27 | 只看该作者
刚看到抽空再试

使用特权

评论回复
12
autopccopy| | 2017-4-22 16:10 | 只看该作者

LZ还没搞定? 我还以为早解决了才未继续发帖。(PS:应该是行动派,实践得真知).
---------------------------------------------------------------------------------------

STC12/15等系列单片机大家都习惯在STC-ISP软件中选择内外部时钟源,而且STC15起可方便地在STC-ISP 软件中设定高精度(满足串口通讯)的频率。STC8系列改变了,需要在程序中选择时钟源,让我们实际来体验一下:


虽然STC8手册及STC-ISP里的官方例程可以切换时钟,但为了验证,我当时专门因这个帖子去实验。


因我习惯STC15系列后均使用内置RC,所以很少用外部晶振了。手头也没有STC8的开发板,虽然有STC8转标准89系列的转接板,但却没有预留外置晶振的位置, 引脚做I/O使用。


所以暂用手头的STC15最小系统板顶替,但必须要将AVCC引脚与VCC相连,否则STC8不会工作的(这个可以看手册)


按手册临时焊接的外部晶振与谐振电容


实验晶振是常用的11.0592Mhz


直接使用了官方STC-ISP的例程(未改动任何东西),用keil编译后烧写进单片机。用示波器直接测量晶振引脚的频率见右下角:11.05Mhz




这个是选用了例程中32K 内部时钟源,然后增加了IO直接翻转的代码,IO翻转频率为3.360Khz。

实际测试还实验了在程序中 更改不同的时钟源,均可正常工作。例如可用外部11.0592M晶振工作,然后 代码转为内部IRC 时钟(上次设定为25Mhz),后再转为32K低频内部时钟。这个可通过IO翻转接LED闪烁(要有延时函数) 或示波器观察验证。

以前的系列只能由STC-ISP下载是固定一种时钟源后就不可以改变,STC8带来了更大的灵活性。

(374)

使用特权

评论回复
13
小十哦| | 2017-4-25 11:11 | 只看该作者
autopccopy 发表于 2017-4-22 16:10
LZ还没搞定? 我还以为早解决了才未继续发帖。(PS:应该是行动派,实践得真知).
----------------------- ...

厉害

使用特权

评论回复
14
makesoft| | 2018-2-12 16:48 | 只看该作者
本帖最后由 makesoft 于 2018-2-12 17:00 编辑

++++++解决了,线路板晶体两根线短路。

和楼主一样,遇到同样问题,我的外部晶振是19.6608MHZ,电容使用两个22P。

选择晶体震荡就死在震荡检测的那条语句上,楼主的问题解决了吗,另外有其他大侠遇到这样问题吗?


  //启动扩展寄存器修改模式;串口3,串口4重新定位管脚
  P_SW2=B1000_0000;
  //启动外部晶体
  XOSCCR=B1100_0000;
  //等待时钟稳定
  while(0==(XOSCCR&B0000_0001));
  //时钟不分频
  CLKDIV=0x00;
  //选择外部晶振
  CKSEL=0x01;
  //关闭扩展寄存器修改模式
  P_SW2&=(~B1000_0000);
        //串口3,串口4重新定位管脚
  P_SW2|=B0000_0110;

使用特权

评论回复
15
zqx1000| | 2018-4-10 18:26 | 只看该作者
kankan

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

338

帖子

1

粉丝