這是在網路上收集到關於Microchip MCU的Bootloader相關資料:
Free from Microchip:
1. Microchip AN851: PIC16F/18F bootloader via serial
2. Microchip AN247: PIC18F CAN MCU bootloader via CAN bus
3. Microchip AN1094: PIC24/dsPIC30/dsPIC33 bootloader
4. Microchip TCP/IP Stack: Internet bootloader for PIC18J Ethernet MCU
5. Microchip PICkit 2: USB HID Bootloader
6. Microchip USB Firmware framerwork: USB bootloader using generic USB driver and HID
fishark 發表在 痞客邦 留言(0) 人氣(3,069)

建立好Gerber檔之後,
接著要建立NC Drill檔,
在建好Gerber file的空白處按右鍵,
出現選單, 選擇Insert NC Drill,
fishark 發表在 痞客邦 留言(0) 人氣(6,010)

在完成PCB Layout後, 接下來是奧送去給PCB板廠製造,
在這個時候需要產生Gerber檔,
首先, 在File-->CAM Manager
fishark 發表在 痞客邦 留言(1) 人氣(7,240)

一般MCU當Master使用I2C與Slave端的設備或IC溝通有兩種作法,
1. 硬體式: MCU本身已經有硬體I2C的架構, 在Microchip的MSSP包含SPI與I2C, 只需要作一些暫存器設定, 然後將資料丟到I2C buffer便可使用.
2. 軟體式: MCU本身沒有硬體式I2C的架構, 或是硬體式I2C的腳位不敷使用, 使用其他兩個Digital pin腳充當SDA與SCL, 不過I2C的Protocol是用軟體來控制的,
目前在c18中有提供software I2C protocol, 一般在C:\MCC18\src\pmc_common\SW_I2C
fishark 發表在 痞客邦 留言(0) 人氣(4,003)

畫出Schematic後,
接著就是要完成PCB layout,
在初步拉線完成後, 可以Print 1:1的PCB圖,
先check元件的大小是否正確,
fishark 發表在 痞客邦 留言(0) 人氣(877)

最近要嘗試做一個微電流計的電路,
預計是要可以量測10-9(nano)~10-12(Pico) A的電流,
收集了一些資料後,
電流值經由一個高輸入阻抗的OP放大器, 再經由可程式放大倍率的放大器調控放大的倍率, 最後傳到MCU,
fishark 發表在 痞客邦 留言(4) 人氣(2,032)

在用Protel進行PCB layout時,
"L" Hot key是很好用的功能,
尤其是有多層板Layout時,
用"L" Hot key可以選擇你想要的Layout的那一層,然後將其他層隱藏,
fishark 發表在 痞客邦 留言(1) 人氣(1,779)

在使用Orcad進行pcb的Layout前, 需確定毎個元件都有其footprint,
要建立客制化的footprint, 有兩個事情要做:
1. 建立Pad: 可使用Padstacks
fishark 發表在 痞客邦 留言(0) 人氣(4,767)
最近在使用OrCAD進行電路板的設計,
突然想說是否能從網路上就可以學習到如何操作OrCAD的方法,
買書來看雖然比較快, 不過作為網路重度使用的代表,
還是從網路上找了一些資料, 中英文的教材都有,
fishark 發表在 痞客邦 留言(0) 人氣(38,856)
在使用PIC18系列是常使用的就是c18的compiler,
我們要使用的函數, 如PWM可以自己寫, 或是call c18已經寫好的函數如OpenPWM(), ClosePWM()
我們可以進一步去看裡面的程式碼, 會發現會有EPWM_V14或EPWM_V14_1的版本定義, 如下面的程式碼:
#elif defined (EPWM_V14) || defined (EPWM_V14_1)
void OpenEPWM1( unsigned char period, unsigned char timer_source )
{
ECCP1CON=0b00001100; //ccpxm3:ccpxm0 11xx=pwm mode
//configure timer source for CCP
CCPTMRS0 &= 0b11111000;
CCPTMRS0 |= ((timer_source&0b01110000)>>4);
if( (CCPTMRS0&0x07)==0x00)
{
T2CONbits.TMR2ON = 0; // STOP TIMERx registers to POR state
PR2 = period; // Set period
T2CONbits.TMR2ON = 1; // Turn on PWMx
}
fishark 發表在 痞客邦 留言(0) 人氣(644)