tag 标签: m0

相关博文
  • 热度 3
    2021-1-16 02:22
    1334 次阅读|
    1 个评论
    大家你好! 谁知道 什么公司/厂商使用megawin 开发板?我在哪里可以找到信息?
  • 热度 17
    2013-12-19 16:54
    2049 次阅读|
    0 个评论
    电阻触屏因其使用简单,成本较低被广泛应用在消费市场,医疗,工业和汽车市场.其中,4线电阻触屏更是因为成本的原因,在市场中最为常见.本文将就4线电阻触屏与 Xinnova 32位XN12L系列MCU连接的一个低成本低功耗方案进行讨论.   电阻触屏原理     测量X坐标时: )在X+,X-两电极加上一个电压Vref,Y+接一个高阻抗的ADC。 )两电极间的电场呈均匀分布,方向为X+到X-。 )手触摸时,两个导电层在触摸点接触,触摸点X层的电位被导至 层所接的ADC,得到电压Vx。 )通过Lx/L=Vx/Vref,即可得到x点的坐标。 轴的坐标可同理将Y+,Y-接上电压Vref,然后X+电极接高阻抗ADC得到。   传统电阻触屏方案 在大多数应用中,一般通过外加专用的电阻触屏IC.该IC一方面检测X+,X-,Y+,Y-因用户触摸引起的电压的变化,另一方面通过I2C/SPI接口把检测到的XY坐标传输给系统MCU.该方案主要的问题是单独的触屏IC增加了系统成本.把对电阻触屏X+,X-,Y+,Y-的检测集成到系统MCU无疑是最好的选择. 由于在检测X/Y坐标位置需要用到ADC转换,并且要提供相应的信号源,一般的MCU控制比较麻烦,但幸运的是,Xinnova MCU的引脚具备多重模拟/数字复用功能,可以轻而易举的解决这个问题.   Xinnova XN12L系列MCU简介 系列是基于ARM M0内核的通用MCU。该系列可以涵盖从低端到高端各种MCU应用,具有高性能,低成本,代码加密可靠等特点,是取代8位机16位理想的产品。与其它MCU相比,XN12L系列指令精简,内含用于增强运算的xDSP,主频更是可高达100MHz,外设丰富实用,支持在线调试,在目前MCU市场上表现非凡。主要特点有:   •        高达100MHz ARM Cortex M0 CPU •        高达88KB用户Flash和16KB SRAM •        xDSP 用于增强MCU运算功能                    32位单周期除法器                    CORDIC运算器                   CRC校验 •        多种时钟系统供用户选择                         1%精度的内部晶振                  支持外部时钟和晶振                  内部PLL                  支持实时时钟(RTC) •        多达3个独立的ADC转换器更适合系统高速采样需求                   12位,1MHz采样率                  多达12路ADC通道 •        2个模拟比较器 •        10位DAC,1MHz转换率 •        4个增强型系统定时/计数器,支持正交编码信号 •        集成的片上温度传感器 •        支持各种通讯接口 个带波特率自动检测和IrDA功能UART                       1个SPI                        1个Quad SPI (支持Flash 4 IOs数据传输)                        1个TWS(I2C兼容) •        支持内存,外设间的DMA大容量数据传输 •        支持故障诊断恢复功能(WDT/BOD) •        支持睡眠,深度睡眠和掉电三种低功耗模式 •        数据和程序的高可靠和保密性能 个128位密码的分区加密和保护技术,确保片内数据安全和防知识产权的克隆         加密模式下的应用二次开发,更好知识产权回报 •          单电源供电(3.3v)   硬件连接   与4线电阻触屏连接示意图   在该方案中,Y+,X+,Y-,X-直接与MCU引脚相连,无需任何外部器件。   软件实现方法 在该应用中,重点考量以下几个方面: 低功耗考虑 CPU时间占用考虑 AD检测点考虑 反应时间/灵敏度 位置校对 考虑到CPU时间占用和功耗,CPU不要时时刻刻对Y+,X+,Y-,X-进行检测。只有在用户触屏时才会做出反应。因此,我们考虑使用中断来对用户触屏进行检测。在平常,X+,X-设置为GPIO输出低电平,而Y+,Y-为GPIO带内部上拉输入,并允许下降沿中断。无触摸时,CPU没有任何动作且没有任何功耗在电阻触屏。当用户触屏时,Y+,Y-变为低并触发中断。在该中断处理程序中,我们需把X+端口置为高电平,同时把Y+,Y-设为ADC输入。在检测到Y+的电压值(该电压值对应触点X轴位置)后,把Y+,Y-设置为GPIO输出,且Y+为高,Y-为低,X+,X-设为ADC输入并对X+进行检测。检测到的电压值对应触点Y轴位置。在检测结束后,恢复X+,X-设置为GPIO输出低电平,而Y+,Y-为GPIO带内部上拉输入,并允许下降沿中断。 注意,在对X,Y进行位置ADC检测时,由于存在高低电平转换,需注意ADC检测必须在电压信号稳定后进行,所以相应的延迟是必须的。 另外,用户在使用电阻触屏时,需加入位置校对。   检测方法示意图     程序例程 本例程用到下列 Xinnova MCU库函数,请参看 Xinnova 网页和论坛。 Xn12lxxx.h: device description file Xn_adc.h: ADC h file Xn_adc.c: ADC driver file Xn_uart.h: UART h file Xn_UART: UART driver file /***************************************************************************** // PIO1_0 (AD2) - X- // PIO1_1 (AD3) - Y- // PIO1_2 (AD4) - X+ // PIO1_3 (AD5) - Y+ ** *****************************************************************************/ uint32_t x,y;   void SetTouchIO(void) {          //init Touch          XN_IOCON-PIO1_0 = 0x91; //x-          XN_IOCON-PIO1_1 = 0x91; //y-          XN_IOCON-PIO1_2 = 0x90; //x+          XN_IOCON-PIO1_3 = 0x90; //y+          XN_GPIO1-DIR = 0x05; //set x-,x+ as output          XN_GPIO1-OUT = 0; //x-,x+ set to low          delayms(100);          XN_GPIO1-IBE = 0x02; //沿触发中断          //XN_GPIO1-IC = 0x02; //清除中断          //XN_GPIO1-IE = 0x02;          //NVIC_EnableIRQ(EINT1_IRQn);   }   uint32_t TouchPressed(void) {          //verify if y is low          if ((XN_GPIO1-PIN 0x2)==0)                    return 1;          else                    return 0; } void ReadXY(uint32_t * x,uint32_t* y) {          uint32_t temp;          *x=0;          *y=0;          //Read x          SetADCPin(AD3PIN|AD5PIN);          XN_IOCON-PIO1_0 = 0x91; //x-          XN_IOCON-PIO1_2 = 0x90; //x+          XN_GPIO1-MASK = 0xFFFFFFF0;          XN_GPIO1-DIR = 0x05;          XN_GPIO1-OUT = 0x04; //X+ 3.3v;X- GND                //SetADCPin(AD3PIN|AD5PIN);          ADCInit(XN_ADC0,10000,TRIGGERMODE,START_BY_SOFTWAER, 0); //?K conversion rate and software trigger ADCSelChannel(XN_ADC0,((AD5DR0SEL)|(AD5DR1SEL)|(AD5DR2SEL)|(AD5DR3SEL)|(AD5DR4SEL)|(AD5DR5SEL)|(AD5DR6SEL)|(AD5DR7SEL)));          delayms(100);          ADCSoftwareTrigger(XN_ADC0);                    do                    {                             temp=ADCValue(XN_ADC0,DR7);                    }while(temp==0xFFFFFFFF);                    *x =temp;                             //Read y          SetADCPin(AD2|AD4);          XN_IOCON-PIO1_1 = 0x91; //y-          XN_IOCON-PIO1_3 = 0x90; //y+          XN_GPIO1-MASK = 0xFFFFFFF0;          XN_GPIO1-DIR = 0x0A;          XN_GPIO1-OUT = 0x02; //y+ 3.3v;y- GND              //SetADCPin(AD2|AD4); ADCSelChannel(XN_ADC0,(AD2DR0SEL)|(AD2DR1SEL)|(AD2DR2SEL)|(AD2DR3SEL)|(AD2DR4SEL)|(AD2DR5SEL)|(AD2DR6SEL)|(AD2DR7SEL));          delayms(100);          ADCSoftwareTrigger(XN_ADC0);                    do                    {                             temp=ADCValue(XN_ADC0,DR7);                    }while(temp==0xFFFFFFFF);                    *y =temp;                  }   int main(void) {            //disable watchdog          XN_WDT-MOD = 0;          //init Touch          SetTouchIO();          XN_GPIO1-IC = 0x02; //清除中断          XN_GPIO1-IE = 0x02; //enable INT          NVIC_EnableIRQ(EINT1_IRQn);          while (1)          {                                                       // Loop forever            } } void EINT1_IRQHandler(void) {          NVIC_DisableIRQ(EINT1_IRQn);            XN_GPIO1-IE = 0x0; //屏蔽GPIO1 IO 中断          if (TouchPressed())          {                    ReadXY(touch_x,touch_y);                      SetTouchIO();                    if (TouchPressed())                    {                             touch_xy_new=1;                             UART0PutHex (touch_x);                             UART0Send(",",1);                             UART0PutHex (touch_y);                             UART0Send("    ",4);                    }            }          XN_GPIO1-IC = 0x02; //清除中断          XN_GPIO1-IE = 0x02; //enable INT          NVIC_EnableIRQ(EINT1_IRQn);   return; }   总结 Xinnova  MCU 引脚复用,配置灵活。在应对4线电阻触屏应用中占用较少资源,使用简单。该方法在EBike显示屏被采用,表现稳定。
  • 热度 19
    2013-12-19 14:28
    1730 次阅读|
    0 个评论
    最近2~3年来,以ARM Cortex M内核为CPU的32位MCU席卷整个业界,对占统治地位的8位MCU,比如8051内核的MCU造成很大的威胁,据预测,32位ARM MCU将在未来的3年出货量超过8位MCU。目前用于MCU 的ARM内核以M0,M3和M4为主。在众多的ARM 内核MCU产品中,MCU种类叫人眼花缭乱,不同的功能,价格,等等。Xinnova XN12L/XN62L系列MCU以其突出的性能在32位MCU中独树一帜。 Xinnova设计团队来自前SST中国大陆和台湾团队。凭借其对闪存和MCU独特的见解,打造出针对电机控制市场MCU,其产品的主要特点如下: 100MHz CPU 工作主频,让M0 赶超M3 高精度、可调的20Mhz(1%精度)内置晶振 内置PLL CPU,数据总线和外设均可在100Mhz频率下运行 64 位总线闪存加Cache ,闪存不再是系统运行瓶颈 普通MCU采用8~32位闪存 Xinnova采用64位33MHz高速闪存 Xinnova扩展CPU Cache 在同等主频下,Xinnova MCU高达 2倍其他MCU执行效率 内置32 位矢量计算机,实时三角函数运算不是梦 三角函数运算是矢量控制基础 而三角函数运算是MCU短板 Xinnova MCU 32位矢量计算机可以在16到32时钟内实现16~32位精度Sin,Cos,Arctan运算 轻易实现各种矢量算法 16 阶的FIR 和5 阶的IIR 滤波器和单时钟32 位除法器,具备DSP 功能 以硬件乘加结构为基础,通过重复乘加和移位运算实现1~16 阶滤波算法 16阶的FIR(有限长单位冲激响应)滤波器 5阶的IIR(无限长单位冲激响应)滤波器 单时钟32位除法器,清除M0无除法忧虑 超强的24 路PWM 脉宽调制,与ADC 和模拟比较器硬件无缝衔接 3个独立PWM发生器,每个8路输出 支持死区插入 4路故障保护输入 PWM, ADC,Timer和模拟比较器硬件触发 无需软件处理,响应更快 同时支持多个电机控制 内置芯片节点温度传感器,保证系统工作在安全状态下 存储器分区128 位加密,让你的知识产权得到充分保护 两个128位加密器 每个加密器可以单独加密指定闪存和SRAM区域 加密启动后,具备读写保护 支持两级开发调试   除此之外,其产品还具有以下功能: IO 复用及数字滤波 每个IO都有多个功能,用户自主配置 每个IO还具备可配置的硬件数字滤波,不占用CPU资源 超强的定时器/ 计数器 每个计数器都有4个捕获寄存器和4个匹配寄存器 可硬件实现正交编码计数,触发计数,符号计数,门控计数复杂计数功能 超智能的UART ,实现波特率自动检测 只需发送0x80,即可让系统工作在各种通讯频率 独一无二的Quad SPI 接口 实现4 IO数据总线数据传输 访问SPI 闪存更快 支持多达32 个的DMA 通道 轻易实现内存与内存,外设与内存,外设与外设数据传输 无需CPU干预 2 个灵活模拟比较器 比较器输入模拟信号可以与外部信号,内部梯形电压或内部DA转换进行比较 AD 转换配置超级灵活 3个AD转换器 每个转换器有8个数据寄存器用于存储对信号转换结果 每个寄存器可以是任意一个AD输入 可以对AD信号实现1到多次连续、不连续的转换   该产品广泛应用在节能减排,新能源领域: 马达控制 直流无刷电机(方波控制,SPWM,SVPWM) 步进电机(细分控制) 伺服电机 逆变控制 UPS电源 变频器 太阳能逆变器
  • 热度 16
    2012-12-6 13:09
    1300 次阅读|
    0 个评论
    FreeScale推出Cotex-M0开发板FRDM-KL25Z。 具有128KB闪存、16位ADC和USB OTG和 OpenSDA调试接口。         http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=FRDM-KL25ZnodeId=01624698C9E3ECF8B2
相关资源
  • 所需E币: 1
    时间: 2023-1-14 15:36
    大小: 7.76MB
    上传者: allanwu
    有關NuvotonM0與M4系列處理器的快速教程,使大家更容易上手
  • 所需E币: 5
    时间: 2019-12-24 23:10
    大小: 380.62KB
    上传者: 238112554_qq
    本应用笔记介绍了一个基于恩智浦半导体LPC1100微控制器简单的电容式触摸设计的检测方法。……
  • 所需E币: 5
    时间: 2019-12-24 10:40
    大小: 1.91MB
    上传者: 978461154_qq
    STM32M0板资料UM1658UsermanualDiscoverykitforSTM32F030ValueLinemicrocontrollersIntroductionTheSTM32F030ValueLineDiscoverykit(32F0308DISCOVERY)helpsyoutodiscoverthedevicefeaturesandtodevelopyourapplicationseasily.ItisbasedonSTM32F030R8T6,anSTM32F0series32-bitARMCortex-M0microcontroller,andincludesanST-LINK/V2embeddeddebugtool,LEDs,pushbuttonsandaprototypingboard.Figure1.32F0308DISCOVERYSeptember2013DocID025097Rev1……