QIHAO74

    1. tiankai001 发表于 2019-3-15 15:40 ADC里面,你把REF寄存器关闭应该可以
      ADC问题已经解决
    2. tiankai001 发表于 2019-3-15 15:53 LCDVCTL = LCDSELVDD + LCDCPEN;                // Mode 2 设置 降低LCD 功耗 片上电荷泵 这句话去 ...
      FR6972 LCD显示功耗近20UA,FR4133  LCD显示功耗只有6UA; MSP430FR4133设置没问题!
    3. MSP430FR6972如何做到液晶驱动功耗最低? 1/2585 微控制器 MCU 2019-03-15
      void CLOCK_Config()// MSP430FR4133 {         P4SEL0 |= BIT1 + BIT2;                  // Select pin4.1 pin4.2 as crystal function         do         {                 CSCTL7 &= ~(XT1OFFG + DCOFFG);            // Clear XT1 and DCO fault flag  清除 XT1 DCO 失效标志                 SFRIFG1 &= ~OFIFG;         }while (SFRIFG1 & OFIFG);                     // Test oscillator fault flag  如果失效标志存在         CSCTL4 = SELA__XT1CLK;                                        // IMPORTANT. Select ACLK = XT1 = 32768Hz } void LCD_Config(void)   // MSP430FR4133 {         uint8_t ui8Cnt;         uint8_t *pLCD = (uint8_t *)&LCDM0;                  for (ui8Cnt = 13; ui8Cnt > 0; ui8Cnt--)                        // Clear LCD memory         *pLCD++ = 0x00;                                        // CLR LCD         SYSCFG2 |= LCDPCTL;                              // R13/R23/R33/LCDC1/LCDC2 pins selected  设置 LCD功耗         LCDPCTL0 = 0xFFFF;         LCDPCTL1 = 0x01FF;                                        //设置 LCD管脚 L0~L24 pins selected         LCDVCTL = LCDSELVDD + LCDCPEN;                // Mode 2 设置 降低LCD 功耗 片上电荷泵         LCDCSSEL0 = 0x000F;                                        // 设置 公共极  COM0~3         LCDCSSEL1 = 0x0000;   LCDM0 = 0x21;                        // L0 = COM0, L1 = COM1   LCDM1 = 0x84;             LCDCTL0 |= LCD4MUX + LCDLP + LCDON;        // 打开LCD: 4-mux 模式 }
    4. ADC功耗问题已经找到 ADC12CTL0 &= ~ADC12ENC; REFCTL0 &= ~REFON; ADC12CTL0 &= ~ADC12ON;      //AD 关闭
    5. void CLOCK_Config()// MSP430FR4133 {         P4SEL0 |= BIT1 + BIT2;                  // Select pin4.1 pin4.2 as crystal function         do         {                 CSCTL7 &= ~(XT1OFFG + DCOFFG);            // Clear XT1 and DCO fault flag  清除 XT1 DCO 失效标志                 SFRIFG1 &= ~OFIFG;         }while (SFRIFG1 & OFIFG);                     // Test oscillator fault flag  如果失效标志存在         CSCTL4 = SELA__XT1CLK;                                        // IMPORTANT. Select ACLK = XT1 = 32768Hz } void LCD_Config(void)   // MSP430FR4133 {         uint8_t ui8Cnt;         uint8_t *pLCD = (uint8_t *)&LCDM0;                 for (ui8Cnt = 13; ui8Cnt > 0; ui8Cnt--)                        // Clear LCD memory         *pLCD++ = 0x00;                                        // CLR LCD         SYSCFG2 |= LCDPCTL;                              // R13/R23/R33/LCDC1/LCDC2 pins selected  设置 LCD功耗         LCDPCTL0 = 0xFFFF;         LCDPCTL1 = 0x01FF;                                        //设置 LCD管脚 L0~L24 pins selected         LCDVCTL = LCDSELVDD + LCDCPEN;                // Mode 2 设置 降低LCD 功耗 片上电荷泵         LCDCSSEL0 = 0x000F;                                        // 设置 公共极  COM0~3         LCDCSSEL1 = 0x0000;   LCDM0 = 0x21;                        // L0 = COM0, L1 = COM1   LCDM1 = 0x84;             LCDCTL0 |= LCD4MUX + LCDLP + LCDON;        // 打开LCD: 4-mux 模式 }
    6. 还有不执行LCD显示,电流就降到8.5UA,那就差不多,LCD显示攻耗近20UA太大了,我现在这样设置有错吗?电路差不多,区别就在R23/LCDCAP 接4.7uF,而FR4133 接0.1uF VSS--4.7uF -| R23/LCDCAP VSS--0.1uF -|R03 VSS--0.1uF -|R13 VSS--0.1uF -|R23 程序设置有错吗? void CLOCK_Config()  // MSP430FR6972 {                 PJSEL0 = BIT4 | BIT5;                   // For LFXT         // Configure LFXT 32kHz crystal   CSCTL0_H = CSKEY >> 8;                  // Unlock CS registers   CSCTL4 &= ~LFXTOFF;                     // Enable LFXT   do   {     CSCTL5 &= ~LFXTOFFG;                  // Clear LFXT fault flag  清除 LFXT 失效标志     SFRIFG1 &= ~OFIFG;   } while (SFRIFG1 & OFIFG);              // Test oscillator fault flag  如果失效标志存在   CSCTL0_H = 0;                           // Lock CS registers } void LCD_Config(void)  // MSP430FR6972 {          //Initialize LCD segments 0 - 15;  18 - 21; 24 ; 28 - 30   LCDCPCTL0 = 0xFFFF;   LCDCPCTL1 = 0x713C;   LCDCPCTL2 = 0x0000;                                //设置LCD管脚 L0 - L15; L18 - L21; L24 ; 28 - 30 pins selected   // Initialize LCD_C   // ACLK, Divider = 1, Pre-divider = 16; 4-pin MUX   LCDCCTL0 = LCDDIV__1 | LCDPRE__16 | LCD4MUX | LCDLP;   // VLCD generated internally,   // V2-V4 generated internally, v5 to ground   // Set VLCD voltage to 2.60v   // Enable charge pump and select internal reference for it   LCDCVCTL = VLCD_2_96 | VLCDREF_0 | LCDCPEN;   LCDCCPCTL = LCDCPCLKSYNC;               // Clock synchronization enabled   LCDCMEMCTL = LCDCLRM;                   // Clear LCD memory       //Turn LCD on   LCDCCTL0 |= LCDON;  // 打开LCD }
    7. void ADC10_Config()   // MSP430FR4133 {         CSCTL8 |= MODCLKREQEN;         PMMCTL0 = SVSHE + PMMPW;                 PMMCTL2 |= INTREFEN;                // 1.5V voltage reference generate         ADCCTL0 = ADCSHT_8 + ADCON;         // 256 ADCCLK cycles         ADCCTL1 = ADCSHS_0 + ADCSHP + ADCSSEL_0 + ADCCONSEQ_0;  // ADCSC bit SHS,         // MODCLK         // SC-SC  单通道单次         ADCCTL2 |= ADCRES + ADCSR;          // 10 bit resolution, 50ksps         ADCMCTL0 = ADCSREF_0 + ADCINCH_13;  // Reference AVCC+/AVSS-, Channel 13         ADCIE |= ADCIE0;                    // Interrupt enable         __delay_cycles(400); } ADC中断 case 12:  // MSP430FR4133 。。。 PMMCTL2 &= ~INTREFEN;   // 关闭内部参考电压 为低功耗 ADCCTL0 &= ~ADCON; //AD 关闭 break;
    8. 关于MSP430FR4133写FRAM的怪问题? 7/5225 微控制器 MCU 2017-01-09
      结贴,是常量地址定义有错,FRAM读写没有问题!
    9. 关于MSP430FR4133写FRAM的怪问题? 7/5225 微控制器 MCU 2017-01-05
      uint8_t  i; uint32_t *pAddress;                                                 for(i=0;i
    10. 关于MSP430FR4133写FRAM的怪问题? 7/5225 微控制器 MCU 2017-01-05
      我读写8 16 32 64都根据他改的
    11. 关于MSP430FR4133写FRAM的怪问题? 7/5225 微控制器 MCU 2017-01-05
      由于开发进度很紧,我直接用TI 《MSP430FR4xx 实现的水表》中的程序 其中FRAM读写,只是他用的是程序区FRAM void FRAMWrite_Long(uint32_t *pFRAM_write_ptr, uint32_t ui32data) {         SYSCFG0 &= ~PFWP;         *pFRAM_write_ptr = ui32data;         SYSCFG0 |= PFWP; } void FRAMWrite_Char(uint8_t *pFRAM_write_ptr, uint8_t ui8data) {         SYSCFG0 &= ~PFWP;         *pFRAM_write_ptr = ui8data;         SYSCFG0 |= PFWP; } pAddress = (uint8_t *)(FRAM_RECORD_BASE + (tRTCData.ui8Year - 13)*120 + (tRTCData.ui8Month - 1)*10); FRAMWrite_Char(pAddress++,tRTCData.ui8Year); FRAMWrite_Long((uint32_t *)FRAM_RECORD_ADDRESS,ui32Sum); ui32Sum = *((uint32_t *)FRAM_RECORD_ADDRESS); // Fram record address #define FRAM_RECORD_ADDRESS 0xFF00         // Refresh every 1 second #define FRAM_RECORD_CHECK 0xFF40         // First record check address #define FRAM_RECORD_BASE 0xFA00             // Monthly record in stand-alone address
    12. MSP430FR4133串口通信问题 6/3528 微控制器 MCU 2016-07-12
      while(1)         {                  __bis_SR_register(LPM3_bits + GIE);   // 进入 LPM3 w/ interrupt                 WDTCTL = WDTPW + WDTCNTCL + WDTSSEL0 + WDTIS1;  // clear watchdog  4m16s          if(bWorking_flag)          {       …..      }         #ifdef Comm_RS485       _DELAY_CYCLES(1000);          if(bRX_finished)          {                         // rs485                         Spi_uart2_rx_deal(ui8RX_buffer,ui8TX_buffer);                         bRX_finished = false;          }     #endif         }         在程序中加了 _DELAY_CYCLES(1000);差不多30秒后,就通讯正常,比原来快了很多 我有点不明白,平常串口始终在接收状态,一有信号来,就唤醒,晶振和时钟如何稳定下来,延时一小也就对发送启作用
    13. MSP430FR4133串口通信问题 6/3528 微控制器 MCU 2016-07-12
      昨天写了个测试程序 只有有收到数据,就上传数据01 02 03 04 05 06 00 00 01 02 03 04 05 06固定数据 00 00 是收到的数据,相同数据发两次 刚上电收到是 01 19 74 10 A0 81 0E 01 07 FE 01 19 74 10 A0 81 0E 01 80 01 19 34 18 A0 81 07 00 00 01 09 36 18 A0 81 07 00 00 01 02 03 04 05 06 80 80 最后才收到正确数据,感觉波特率不同步
    14. MSP430FR4133串口通信问题 6/3528 微控制器 MCU 2016-07-08
      void CLOCK_Config() {         P4SEL0 |= BIT1 + BIT2;                  // Select pin4.1 pin4.2 as crystal function         do         {                 CSCTL7 &= ~(XT1OFFG + DCOFFG);            // Clear XT1 and DCO fault flag  清除 XT1 DCO 失效标志                 SFRIFG1 &= ~OFIFG;         }while (SFRIFG1 & OFIFG);                     // Test oscillator fault flag  如果失效标志存在         CSCTL4 = SELA__XT1CLK;                                        // IMPORTANT. Select ACLK = XT1 = 32768Hz } void eUSCIA0_Config() {         UART_PORT_SEL |= UART_BIT_TXD + UART_BIT_RXD; // set pin as UART function         UCA0CTLW0 |= UCSWRST;                         // Put eUSCI in reset         UCA0CTLW0 |= UCSSEL__SMCLK;   // 8-e-1 LSB SMCLK         UCA0BR0 = 6;                                  // 9600 baud         UCA0BR1 = 0;         UCA0MCTLW = 0x2200 + UCOS16 + UCBRF_13;       // 1.04MHz/9600         UCA0CTLW0 &= ~UCSWRST;                        // Initialize eUSCI         UCA0IE |= UCRXIE;                             //开接收中断         //UCA0IE &= ~UCTXIE;                            //关闭发送中断 } uint8_t Uart_SendFrame(uint8_t *pPtr, uint8_t ui8Length) {         if(UCA0IE & UCTXIE) return 0;                // Last frame hasn't been sent out         if(ui8Length > TXBUF_SIZE) return 0;            // Length overflow the buffer                 ui8TX_counter = 0; // Clear transfer counter         UCA0TXBUF = pPtr[ui8TX_counter++];         ui8TX_number = ui8Length;                           // Number of bytes to be sent         UCA0IE |= UCTXIE;                             // Enable transfer interrupt         return 1;                                     // Send successfully } void Spi_uart2_rx_deal(uint8_t *rx_pbuf,uint8_t *tx_pbuf) {           ………                 Uart_SendFrame(ui8TX_buffer,Buffcn);        } #pragma vector=USCI_A0_VECTOR __interrupt void USCI_A0_ISR(void) {         switch(__even_in_range(UCA0IV,USCI_UART_UCTXCPTIFG))         {         case USCI_NONE: break;         case USCI_UART_UCRXIFG:              { //接收数据                     ui8RX_buffer[ui8RX_counter]= UCA0RXBUF;                         ……..                     if(uart2_crc_flag)                     {                             uart2_crc_flag=false;                             if((CRC16_verify(ui8RX_buffer, ui8RX_counter+1))==1)                             {                                       //UCA0IE&=~UCRXIE;//关闭接收中断                                             bRX_finished = true;//允许发送                             }else ui8RX_counter=0;                     }              }                    break;         case USCI_UART_UCTXIFG:                 UCA0TXBUF = ui8TX_buffer[ui8TX_counter++];                 if(ui8TX_counter>=ui8TX_number)                 {                         UCA0IE &= ~UCTXIE;                //关闭发送中断                         //UCA0IE |= UCRXIE;                 //开接收中断                         ui8RX_counter=0;                 }                 break;         case USCI_UART_UCSTTIFG: break;         case USCI_UART_UCTXCPTIFG: break;         } } void main(void) {         WM_Initialize();                // System initialize                 #ifdef Comm_RS485         HAL_RS485_INIT();         #endif         ……   while(1)         {                 __bis_SR_register(LPM3_bits + GIE);   // 进入 LPM3 w/ interrupt                WDTCTL = WDTPW + WDTCNTCL + WDTSSEL0 + WDTIS1;  // clear watchdog  4m16s          if(bWorking_flag)          {       …..      }     #ifdef Comm_RS485          if(bRX_finished)          {                         // rs485                         Spi_uart2_rx_deal(ui8RX_buffer,ui8TX_buffer);                         bRX_finished = false;          }     #endif         }        }
    15. MSP430FR4133串口通信问题 6/3528 微控制器 MCU 2016-07-08
      MSP430FR4133 code example1有用过,可以 但他晶振用DCO=8MHZ分频 我直接用外部32768
    16. MSP430FR4133串口通信问题 6/3528 微控制器 MCU 2016-07-08
      FET430UIF仿真,外部供电  串口通信RS232正常 写入MSP430FR4133 就会出现乱码,工作一段时间才正常 LPM3模式下,唤醒通信
    17. 为什么进入LPM3,电流还有20MA 8/4075 微控制器 MCU 2016-05-27
      如果RTC关掉只有7UA
    18. 为什么进入LPM3,电流还有20MA 8/4075 微控制器 MCU 2016-05-27
      查出来,外部参考电压,改用内部参考电压,现在功耗是  19UA到7UA跳变 平常只开RTC,1秒钟定时,LPM3,只在外部中断才唤醒。 这样正常吗?
    19. 为什么进入LPM3,电流还有20MA 8/4075 微控制器 MCU 2016-05-16
      本帖最后由 QIHAO74 于 2016-5-16 16:12 编辑 主要原因找到,是I/O口设置问题MSP430FR4133 现在LMP3模式下在80uA 正常吗?
    20. 请问MSP430FR4133用多少版本的IAR 3/2270 微控制器 MCU 2016-05-15
      clls2080000 发表于 2016-5-14 17:23 有最新的BSL软件吗
      没有

最近访客

< 1/1 >

统计信息

已有12人来访过

  • 芯积分:--
  • 好友:--
  • 主题:14
  • 回复:61

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言