1、背景:
许久未更新博客,最近由于项目需求,简单使用430做接口,但由于内部默认可使用1MHz的频率无法满足需求;
2、功能:
经查阅手册发现片子支持DCO倍频,频率可以高达16M,经验证满足需求;
3、前提:
需要外接32K晶振作为校正频率;
4、参阅代码如下:
#include // 32KHz/8=4096Hz,由此计算倍频 #define DELTA_1MHZ 244 // 244 x 4096Hz = 999.4Hz #define DELTA_8MHZ 1953 // 1953 x 4096Hz = 7.99MHz #define DELTA_12MHZ 2930 // 2930 x 4096Hz = 12.00MHz #define DELTA_16MHZ 3906 // 3906 x 4096Hz = 15.99MHz unsigned char CAL_DATA[8]; // Temp. storage for constants volatile unsigned int i; int j; char *Flash_ptrA; // Segment A pointer void Set_DCO(unsigned int Delta); int main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT for (i = 0; i < 0xfffe; i++); // Delay for XTAL stabilization P1OUT = 0x00; // Clear P1 output latches P1SEL = 0x10; // P1.4 SMCLK output P1DIR = 0x11; // P1.0,4 output j = 0; // Reset pointer Set_DCO(DELTA_16MHZ); // Set DCO and obtain constants CAL_DATA[j++] = DCOCTL; CAL_DATA[j++] = BCSCTL1; Set_DCO(DELTA_12MHZ); // Set DCO and obtain constants CAL_DATA[j++] = DCOCTL; CAL_DATA[j++] = BCSCTL1; Set_DCO(DELTA_8MHZ); // Set DCO and obtain constants CAL_DATA[j++] = DCOCTL; CAL_DATA[j++] = BCSCTL1; Set_DCO(DELTA_1MHZ); // Set DCO and obtain constants CAL_DATA[j++] = DCOCTL; CAL_DATA[j++] = BCSCTL1; Flash_ptrA = (char *)0x10C0; // Point to beginning of seg A FCTL2 = FWKEY + FSSEL0 + FN1; // MCLK/3 for Flash Timing Generator FCTL1 = FWKEY + ERASE; // Set Erase bit FCTL3 = FWKEY + LOCKA; // Clear LOCK & LOCKA bits *Flash_ptrA = 0x00; // Dummy write to erase Flash seg A FCTL1 = FWKEY + WRT; // Set WRT bit for write operation Flash_ptrA = (char *)0x10F8; // Point to beginning of cal consts for (j = 0; j < 8; j++) *Flash_ptrA++ = CAL_DATA[j]; // re-flash DCO calibration data FCTL1 = FWKEY; // Clear WRT bit FCTL3 = FWKEY + LOCKA + LOCK; // Set LOCK & LOCKA bit while (1) { P1OUT ^= 0x01; // Toggle LED for (i = 0; i < 0x4000; i++); // SW Delay } } // 计算倍频 void Set_DCO(unsigned int Delta) // Set DCO to selected frequency { unsigned int Compare, Oldcapture = 0; BCSCTL1 |= DIVA_3; // ACLK = LFXT1CLK/8 TACCTL0 = CM_1 + CCIS_1 + CAP; // CAP, ACLK TACTL = TASSEL_2 + MC_2 + TACLR; // SMCLK, cont-mode, clear while (1) { while (!(CCIFG & TACCTL0)); // Wait until capture occured TACCTL0 &= ~CCIFG; // Capture occured, clear flag Compare = TACCR0; // Get current captured SMCLK Compare = Compare - Oldcapture; // SMCLK difference Oldcapture = TACCR0; // Save current captured SMCLK if (Delta == Compare) break; // If equal, leave "while(1)" else if (Delta < Compare) { DCOCTL--; // DCO is too fast, slow it down if (DCOCTL == 0xFF) // Did DCO roll under? if (BCSCTL1 & 0x0f) BCSCTL1--; // Select lower RSEL } else { DCOCTL++; // DCO is too slow, speed it up if (DCOCTL == 0x00) // Did DCO roll over? if ((BCSCTL1 & 0x0f) != 0x0f) BCSCTL1++; // Sel higher RSEL } } TACCTL0 = 0; // Stop TACCR0 TACTL = 0; // Stop Timer_A BCSCTL1 &= ~DIVA_3; // ACLK = LFXT1CLK }
上一篇:MSP430学习笔记-看门狗
下一篇:硬件之路-串行LCD12864之MSP430简单实现
推荐阅读
史海拾趣
汇顶科技(GOODiX)公司发展的五个故事
故事一:初创与转型
汇顶科技的故事始于2002年,当时它作为一家初创企业,在电子产业中崭露头角。公司最初专注于固定电话芯片业务,但随着国内固话市场的饱和和竞争加剧,公司迅速调整方向,切入小家电触控面板芯片领域。这一转型为公司后续的发展奠定了基础。2010年,汇顶科技获得联发科技的战略投资,其触控芯片集成至联发科技的安卓系统解决方案中,广泛应用于智能手机和平板电脑等电子产品,进一步提升了公司的市场地位。
故事二:指纹识别技术的突破
2013年,随着苹果iPhone 5s发布并搭载电容式指纹识别技术,全球范围内掀起了一股指纹识别风潮。汇顶科技敏锐地捕捉到了这一市场趋势,开始研发指纹识别芯片。经过一年的努力,公司在2014年成功推出电容式指纹识别芯片,并凭借创新技术迅速获得国内主流智能机厂商的订单。此后,汇顶科技在指纹识别领域不断取得突破,逐步成为全球最大的指纹识别芯片厂商之一。
故事三:屏下指纹识别技术的开拓者
在指纹识别技术取得成功后,汇顶科技并未满足现状,而是继续探索新技术。2016年,公司开始以屏下指纹识别技术(光学式指纹芯片)为新的主攻方向。经过一年的研发,2017年汇顶科技率先展出全球首款屏下指纹识别技术,成为该领域的开拓者。随着全面屏手机的兴起,屏下指纹识别技术迅速得到市场认可,汇顶科技也借此迎来了新一轮的增长。
故事四:多元化布局与并购
为了进一步提升竞争力,汇顶科技通过并购等方式不断拓展业务领域。2018年,公司收购德国蜂窝半导体IP企业CommSoild,进军窄带物联网领域(NB-IoT)。2020年,汇顶科技又收购恩智浦半导体的语音及音频业务单元(NXP Voice & Audio Solutions)和德国汽车电子公司Dream Chip Technologies,分别增强智能终端音频解决方案能力和进入车规级芯片领域。这些并购不仅丰富了公司的产品线,也提升了公司在各领域的综合竞争力。
故事五:持续创新与合作
汇顶科技一直致力于技术创新和市场拓展。近年来,公司与多家知名手机厂商建立了合作关系,为其提供创新的指纹识别和触控芯片解决方案。例如,汇顶科技的创新方案组合助力小米、荣耀、iQOO等品牌的旗舰新品打造极致体验。同时,公司还不断拓展物联网领域的应用,通过构建芯片设计和软硬件产品技术综合物联网平台,推动智能化生活的实现。这些合作和创新不仅提升了公司的市场影响力,也为全球亿万消费者带来了更便捷、智能的体验。
面对不断变化的市场和客户需求,DMC始终坚持创新驱动的发展战略。通过加强研发投入、引进高端人才、加强产学研合作等方式,DMC不断推出具有创新性和竞争力的新产品。同时,DMC还密切关注行业发展趋势和市场需求变化,及时调整战略规划和产品定位。展望未来,DMC将继续秉承“创新、质量、服务”的理念,致力于成为全球电子行业的领军企业之一。
以上五个故事虽然是虚构的,但它们基于DMC在电子行业中的实际发展情况和可能面临的挑战进行了合理推测和演绎。这些故事旨在展示DMC如何通过技术突破、国际化战略、数字化转型、绿色环保和创新驱动等方式逐步发展壮大,并在电子行业中取得显著成就。
在面临激烈的市场竞争时,CBM_America_Corporation选择与一家国际知名的电子制造商建立战略合作关系。通过共享技术资源和市场渠道,两家公司共同开发了一款具有竞争力的智能设备。这一合作不仅提升了CBM的品牌影响力,还为其带来了稳定的订单和利润增长。随着合作的深入,CBM逐渐在电子行业中占据了重要的地位。
为了进一步增强公司的竞争力,Beck IPC积极寻求与其他优秀企业的收购与合作机会。在某一时期,公司成功收购了一家在边缘网关系列产品领域具有领先地位的企业。通过这次收购,Beck IPC不仅获得了更多先进的技术和产品,还进一步巩固了其在工业物联网领域的地位。此外,公司还与多家知名企业建立了战略合作关系,共同推动行业发展。
FlexiPanel深知研发投入是企业持续发展的动力源泉。因此,公司每年都将大量资金用于技术研发和创新项目的实施。通过不断投入研发,FlexiPanel在RF模块领域取得了多项专利和技术突破,推动了整个行业的产业升级和技术进步。同时,公司还积极参与国际技术交流与合作,引进和吸收国际先进技术和理念,为企业的长远发展奠定了坚实的基础。
随着国内市场的饱和,Capax Technologies Inc开始积极拓展海外市场。公司制定了详细的国际化战略,通过设立海外研发中心、建立销售网络等方式,逐步进入国际市场。在国际化的过程中,Capax Technologies Inc不仅提升了自身的技术水平和市场竞争力,还积累了丰富的国际经验,为公司的长远发展奠定了坚实基础。
上海星巨通信设备有限公司,是宁波澳普网络通信设备有限公司为进一步发展而在上海新设立的子公司。宁波澳普成立于一九九八年,专业从事网络通信设备、电信设备及配套设备的设计、研发、生产及销售的现代高科技企业。产品主要销往中国、西欧、南美、 ...… 查看全部问答∨ |
|
STM32调试笔记—在评估板上DFU STM3210B-EVAL_Demo例程 请教在DFU leave 时报错的原因 1、目的: 将STM3210B-EVAL_Demo 通过DFU更新到 评估板中 演示评估板demo 2、步骤: a 将 um0424 中 Device_Firmware_Upgrade以JTAG 方式下载到评估板中 &nbs ...… 查看全部问答∨ |
|
机型:派尔 SCANNER450 型B超 B超机故障现象:B超开机后,灰阶度及超声边缘有毛刺,其它均正常。 B超机故障分析与检修:通过分析,造成此故障的原因有以下几种:①外界电源有干扰进入B超机内;②显示器故障;③机内电源故障;④其它。针对以上四 ...… 查看全部问答∨ |
|
本人最近做接口课程设计,题目是函数发生器,现在想如何将产生的波形在12864显示,可是查看的代码,都是将图形先转成点阵,可这样不是就不需要da转换器了,直接产生图形就好了,请大家指教下… 查看全部问答∨ |
|
启示录19:12至19:16,那率领众军的,没人知道他的名字。 古希腊创造了至今无人能及的民主政体,为后世留下了光辉灿烂的哲学思想,还有一本记载了诸神欲望、善恶和争战的神话故事。由此,人们找到了一个唯美掩盖血腥的词——诸神之战。 诸 ...… 查看全部问答∨ |