• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::

論壇索引


Board index » All Posts (calvin)




Update : USB Workshop 中 MSD Data Logger 的範例程式
#61
管理員
管理員


在 USB Workshop 中有一個範例為使用 APP013 將 PIC18F4550 規劃為 MSD Device 並加上 FAT 的功能, 讓 PIC18F4550 不但能夠讓 PC 透過 USB 讀寫 SD Card 的資料, 也能自己讀寫 SD Card 上的檔案 , 讓 PIC18F4550 不只是一個單純的 MSD class device 的 controller 而已.

附件中的程式為修改後較為穩定的版本, 並加上 ReadFile() 的副程式於 datalogger.c 中. 來 demo 如何讀取已經存在的檔案.

在 datalogger.c 中的 DoADC() 為主程式會叫用的副程式, 它會檢查是否按下 APP013 的 S1 , 若是的話就將讀取 ADC 的次數及讀值寫入 DATALOG.TXT.

請解壓縮至目錄 C:\MCHPMSD-Logger 中

Attach file:


Link only for registered users

發表於: 2008/9/5 0:48
頂部


可工作於 Windows XP 的軟體 USB Bus Analyzer
#62
管理員
管理員


在 USB 產品的開發過程中, 我們常希望能觀察 HOST(PC) 與 Device 間的通信過程與內容. 要達成這樣的工作可以仰賴專用的硬體與軟體的 solution.

在花錢買硬體的 BUS Analyzer 之前, 您可以在下列網址下載兩種常見的純軟體達成的 USB Bus Analyzer. 這兩種軟體都有試用版本可供下載 .

1. Bus Hound
http://www.perisoft.net/bushound/index.htm

2. Snoopy :
http://sourceforge.net/projects/usbsnoop/

發表於: 2008/9/5 0:29
頂部


Re: PIC18F4550 USB(HID)與UART 的問題!!
#63
管理員
管理員


你好,

可能的原因是 USB 原先設定的 Interrupt Priority 為 High , 所以如果你 Enable 中斷後會因為我們的 F/W 未使用中斷處理 USB . 所以會有問題:)

我的做法如下 :
1. 將 CPU 的優先式中斷 Enable.
2. 將 USB 的優先等級設為 Low
3. 將 UART 的優先設 High
4. Disable 低優先中斷
RCONbits.IPEN ;            //    Enable Priority interrupt type !!
        
IPR2bits.USBIP ;        //     Set USBIF as Low priority interrupt 
        
INTCON2bits.RBIP ;        //    Set RBIP as low priority interrupt
        
IPR1bits.RCIP ;            //     Set RCIF as High priority interrupt 
        
IPR1bits.TXIP ;

        
INTCONbits.GIEH ;
        
INTCONbits.GIEL ;

發表於: 2008/8/25 11:38
頂部


Re: PIC18f4550 usb口使用疑惑
#64
管理員
管理員


Hi,

你可以參考 Microchip 提供的 Firmware Library 中, usbctrltrf.c 裡面的 subroutine USBCtrlEPService()
原則上 SIE 在收到 package 後會將收到的 PID 是什麼. 你只要檢查 BD 裡的 status byte 裡的 PID0 , PID1 and PID2 就 OK 了 :)

void USBCtrlEPService(void)
{   
    if(
USTAT == EP00_OUT)
    {
        if(
ep0Bo.Stat.PID == SETUP_TOKEN)           // EP0 SETUP
            
USBCtrlTrfSetupHandler();
        else                                        
// EP0 OUT
            
USBCtrlTrfOutHandler();
    }
    else if(
USTAT == EP00_IN)                       // EP0 IN
        
USBCtrlTrfInHandler();

發表於: 2008/7/29 12:21
頂部


Re: 下載中心->[RTC 實作及PDF講義 ]內的檔案無法下載
#65
管理員
管理員


各位,

107OAF 已經放至下載中心了 :)


107OAF 下載連結

發表於: 2008/7/21 18:37
頂部


Re: 下載中心->[RTC 實作及PDF講義 ]內的檔案無法下載
#66
管理員
管理員


各位大人,

已經重新將檔案放回去了:)

謝謝大家的提醒.

發表於: 2008/7/21 16:52
頂部


Re: 請問 18F65J50 可以使用 bootLoader燒code 嗎?
#67
管理員
管理員


你好 :

1. Compiler boot loader 程式超過 2K bytes 是因為 Student Edition 在過了 60 天期限後最佳化功能受限所以會如此. 若是將最佳化全開的話大概是 995 words.

2. 將程式做偏移是 OK 的啦, 不過不需一次就偏移 2K bytes 的空間. PIC18F4550 的 Erase block size 是 64 Bytes . PIC18F65J50 的 Erase block 為 1024 bytes. 所以偏移的空間只要能跟 Erase block 對齊就 OK 了.

3. www.microchip.com.usb 可以下載到 Firmware V2.1 , 安裝後有 PIC18FXXJ50 的 bootloader 以及 PC 端的 Visual C++ 程式及 source code. 而且PIC18FXXJ50 用的是 HID 的 Device 喔 ! 拿來試試吧 ..

加油喔 !!

發表於: 2008/5/8 23:38
頂部


Re: 為何終端機顯示之VR2電壓值無法停止??
#68
管理員
管理員


你好,
程式中因為在 Timer2 中斷不斷的叫用 Read_VR2() , Show_ADC 以及更新 OCR1. 所以當然停不住啦.

void _ISR _T2Interrupt(void)
{
OC1RS=Read_VR2( );
Show_ADC( ) ; // 將類比轉換結果顯示
OC1R = ADCBUF0<<6 ;
// SetPulseOC1(ADCBUF0<<6, 0x0000) ; // 重新設定OC1波寬

LED1=!LED1;
IFS0bits.T2IF = 0 ;

}

在 main() 中, 程式的最後為 while(1); 你可以將 _T2Interrupt()的動作剪下然後貼到 main() 的最後 .

>> 原本為 while(1) ;
>> 改為
while(1)
{
while( SWn_Status ) ;

OC1RS=Read_VR2( );
Show_ADC( ) ; // 將類比轉換結果顯示
OC1R = ADCBUF0<<6 ;

}
>> 如此就可以按一次鍵就只送一次 , 但你要自己定義 SWn_Status 到底指向哪一個 Input 腳, 而且沒按鍵的話是被 pill-high 的 :)

祝你順利 !!


發表於: 2008/5/8 23:23
頂部


Re: 請問關於 PC18F6620 ROM 的問題
#69
管理員
管理員


你好,

以上的每一行用來宣告各種型態的資料在 Program Memory 所處的位置. 例如 :

CODEPAGE NAME=vectors START=0x0 END=0x29 PROTECTED

用來告訴 MPLINK , 有一個用於 RESET & Interrupt 向量的空間, 位於 0x000 - 0x029 的區間. 而且它的屬性是 "PROTECTED" 的, MPLINK 看得到但不能用

CODEPAGE NAME=page START=0x2a END=0xFFFF

用來告訴 MPLINK , 有一個名為 page 的區段, 由 0x2a 開始一直到 0xFFFF , 因為沒有保護, 所以 MPLINK 可以用它來為 user 分配程式. 而且 0xFFFF 是 PIC18F6620 Program Memory 的最後了 ..

至於其它的則為 CPU 的 device ID , Configuration bytes & EEPROM 所在位址的宣告而已.

** 你如果要多一段保護區 0x2A ~ 0x1FF , 則若做好下列修改就不會有資料被覆蓋的問題了 :

CODEPAGE NAME=vectors START=0x0 END=0x29 PROTECTED
CODEPAGE NAME=mypage START=0x2A END=0x1FF PROTECTED
CODEPAGE NAME=page START=0x200 END=0xFFFF
CODEPAGE NAME=idlocs START=0x200000 END=0x200007 PROTECTED
CODEPAGE NAME=config START=0x300000 END=0x30000D PROTECTED
CODEPAGE NAME=devid START=0x3FFFFE END=0x3FFFFF PROTECTED
CODEPAGE NAME=eedata START=0xF00000 END=0xF003FF PROTECTED

祝你開發順利 :)




發表於: 2008/4/1 17:43
頂部


Re: 請教安裝C30的一些問題??
#70
管理員
管理員


你好,

MPLAB_C30_v3_02-StudentEdition 是免費的版本, 所以直接安裝是 OK 的. 但是 MPLAB_C30_v3_02-Full 則為正式的全功能版本. 所以是須要購買的而且安裝時須要購買當時所附的序號啦 :)

Best Regards,

發表於: 2008/3/31 11:18
頂部



« 1 ... 4 5 6 (7) 8 9 10 ... 33 »



:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------