PIXNET Logo登入

iAmqq

跳到主文

It's all about PIC

部落格全站分類:不設分類

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 8月 01 週五 201413:19
  • Freescale Cortex M0+ vs Microchip PIC32


終於有機會玩玩 ARM® Cortex™-M0+ , FRDM-KL05Z,
 
 
(繼續閱讀...)
文章標籤

iamqq 發表在 痞客邦 留言(0) 人氣(172)

  • 個人分類:Other
▲top
  • 7月 24 週三 201309:45
  • AN1310 Bootloader 使用注意事項


AN1310
High-Speed Serial Bootloader for PIC16 and PIC18 Devices
 
使用此範例時, 若clock source為INT RC ,需注意Internal Oscillator Frequency Select bits的設定.在程式中除非define USE_MAX_INTOSC,才會更改OSCCON,否則將以default INT RC來執行,
(繼續閱讀...)
文章標籤

iamqq 發表在 痞客邦 留言(0) 人氣(297)

  • 個人分類:
▲top
  • 9月 14 週三 201111:07
  • Deep sleep @XLP


deep sleep
在有XLP功能的MCU,可以透過deep sleep 來讓MCU達到最省電的狀態,進入方法如下:
//Way 1.
asm ("disi #4"); 
asm ("bset DSCON, #15");  
asm ("pwrsav #0"); 
Nop();
Nop();
//Way 2.
DSCONbits.DSEN=1;
Sleep();
Nop();
Nop();
不過在wake-up之後有個地方要注意, DSCONbits.RELEASE需要 read & clear,否則 TRIS & LAT 會被 core hold住(既使TRIS &LATA已重新config.),
Ex:
void main(){
systeminitial();
if (RCONbits.DPSLP == 1){
     RCONbits.DPSLP = 0;
     DSCONbits.RELEASE = 0; //the tris & lat has been hold until DSCONbits.RELEASE=0 is executed.
DSWSRC = 0; 
}
:
:
:
}
(繼續閱讀...)
文章標籤

iamqq 發表在 痞客邦 留言(0) 人氣(57)

  • 個人分類:PIC24
▲top
  • 7月 05 週二 201111:35
  • PSV

簡單說變數宣告auto_psv, 就是讓compiler把 const的變數都放在同一個 psv中(同一個32k), 所以auto_psv不能跟address同時使用
且宣告成autp_psv ,並不是不需要PSVPAG=__builtin_psvpage(xxx), 若const太多, 多到超過32k, 還是得在access前"手動"變更PSVPAG
小於32k時不需要,是因為都在同一個psv裡,(之前以為宣告成autp_psv, 就可以不需PSVPAG=__builtin_psvpage(xxx)...@@)

而在ISR宣告時
(繼續閱讀...)
文章標籤

iamqq 發表在 痞客邦 留言(0) 人氣(853)

  • 個人分類:PIC24
▲top
  • 4月 15 週五 201109:09
  • OSCCONbits.SCS System Clock Select bits

在PIC18F2xK20,MCU可以用內部的 OSC.搭配PLL來跑到64MHZ(16MIPS),但在SCS的選則要注意不能選1x,否則PLL是無開啟的
bit 1-0 SCS<1:0>: System Clock Select bits
1x = Internal oscillator block
01 = Secondary (Timer1) oscillator
00 = Primary clock (determined by CONFIG1H[FOSC<3:0>])..............//can enable PLL
(繼續閱讀...)
文章標籤

iamqq 發表在 痞客邦 留言(0) 人氣(54)

  • 個人分類:PIC18
▲top
  • 2月 19 週六 201122:03
  • PIC32 ADC

for more detail ,psl reference MCU4101 Lab 5& 6
//ADC Single
 OpenADC10( ADC_MODULE_ON | ADC_IDLE_CONTINUE | ADC_FORMAT_INTG16 | ADC_CLK_MANUAL | ADC_AUTO_SAMPLING_ON | ADC_SAMP_OFF ,
      ADC_VREF_AVDD_AVSS | ADC_OFFSET_CAL_DISABLE | ADC_SCAN_OFF | ADC_SAMPLES_PER_INT_1 | ADC_ALT_BUF_ON | ADC_ALT_INPUT_OFF ,
      ADC_SAMPLE_TIME_31 | ADC_CONV_CLK_SYSTEM | ADC_CONV_CLK_32Tcy ,
      ENABLE_AN2_ANA , SKIP_SCAN_ALL );
 //ADC_AUTO_SAMPLING_ON(ASAM=1):採樣在上一次轉換結束後執行(the SAMP will be set automatically)
 //ADC_CONV_CLK_SYSTEM:為PB CLK
 //ADC_CLK_MANUAL(SSRC:000):手動觸發 after SAMP be clear(by S/W), then start convert
(繼續閱讀...)
文章標籤

iamqq 發表在 痞客邦 留言(0) 人氣(107)

  • 個人分類:PIC32
▲top
  • 10月 29 週五 201009:23
  • DISI

在16Bit的MCU中,並無提供一個GIE的控制元來對所有的interrupt enable or disable,不過有instruction可以做到相同的事情
DISI #lit14  ;Disable Interrupts for k instruction cycles
DISI可以將優先權1~6的中斷給禁止一段時間,但不能禁止TRAP或是優先權7的中斷源(IP7 & trap also can interrupter main-routine)
DISI #0 ;中斷復原
ps:建議不要直接去操作DISICNT Reg.,DISICNT為0時,無法寫入新值(需用DISI指令)
(繼續閱讀...)
文章標籤

iamqq 發表在 痞客邦 留言(0) 人氣(15)

  • 個人分類:PIC30_33
▲top
  • 6月 21 週一 201013:58
  • Slew rate control @I2C

I2C_SLEW control.bmp
PIC18F46J50
EEPROM:24lc02B
Ru=3.6k    //pull-up
I2C speed:400kHz (INTOSC:4MHZ  SSPADD=4)
SLEW_OFF    SSPxSTATbits.SMP=1;
SLEW_ON     SSPxSTATbits.SMP=0;
(繼續閱讀...)
文章標籤

iamqq 發表在 痞客邦 留言(0) 人氣(179)

  • 個人分類:
▲top
  • 4月 24 週六 201018:23
  • pb_clk for PIC32

在PIC32中若要得正確的pb_clk,除了要先填適當的congig bit之外,在程式中亦需執行下列function
// Configure the device for maximum performance but do not change the PBDIV
// Given the options, this function will change the flash wait states, RAM
// wait state and enable prefetch cache but will not change the PBDIV.
// The PBDIV value is already set via the pragma FPBDIV option above..
 SYSTEMConfig(SYS_FREQ, SYS_CFG_WAIT_STATES | SYS_CFG_PCACHE);
or
 SYSTEMConfig(SYS_FEEQ, SYS_CFG_ALL);
or
 SYSTEMConfigPerformance(SYS_FEEQ);
 
 否則peripheral的clk將會錯誤
 
 ex:
 #define SYS_FEEQ 80000000L
 
 int pb_clk;
 pb_clk=SYSTEMConfig(SYS_FEEQ, SYS_CFG_ALL);
(繼續閱讀...)
文章標籤

iamqq 發表在 痞客邦 留言(0) 人氣(73)

  • 個人分類:PIC32
▲top
  • 4月 11 週日 201000:41
  • Out of Scope in C30 @MPLAB IDE

在MPLAB IDE下有一個可以觀察變數的視窗"watch"
一般來說所有的變數都可以在此視窗下被看見,除了Reserved Memory 或是 Local Variable:
 
解決 Reserved Memory 的問題是在 MPLAB IDE 下有個 "Release & Debug" 的下拉視窗 :
如果要用 ICD2 or Real ICE Degubbing 的話,該選項就要選擇 "Debug" 後重新 Build All 再燒錄,
這樣 Linker 才可以將除錯要用到的資源保留下來這樣才不會跟你的程式衝突(共用RAM的問題)。如果
要讓 Target Board 單獨執行的話就可以勾選 "Release" 的選項。
(繼續閱讀...)
文章標籤

iamqq 發表在 痞客邦 留言(0) 人氣(582)

  • 個人分類:Compiler & tool
▲top
12...4»

個人資訊

iamqq
暱稱:
iamqq
分類:
不設分類
好友:
累積中
地區:

熱門文章

  • (856)I2C slave mode
  • (585)VB-MSComm
  • (72)PICASM VS. MPASM

文章分類

  • Other (1)
  • PIC24 (3)
  • PIC30_33 (2)
  • AIPD (1)
  • Compiler & tool (5)
  • PIC32 (3)
  • PIC18 (1)
  • PIC12_16 (8)
  • 未分類文章 (1)

最新文章

  • Freescale Cortex M0+ vs Microchip PIC32
  • AN1310 Bootloader 使用注意事項
  • Deep sleep @XLP
  • PSV
  • OSCCONbits.SCS System Clock Select bits
  • PIC32 ADC
  • DISI
  • Slew rate control @I2C
  • pb_clk for PIC32
  • Out of Scope in C30 @MPLAB IDE

最新留言

    文章精選

    文章搜尋

    誰來我家

    參觀人氣

    • 本日人氣:
    • 累積人氣: