找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2746|回復(fù): 8
收起左側(cè)

誰成功將STC8H8K64U單片機(jī)芯片寫成USB接口仿真芯片?

[復(fù)制鏈接]
ID:106977 發(fā)表于 2023-3-14 17:05 | 顯示全部樓層 |閱讀模式
STC8H8K64U單片機(jī),我用串口方式P3.0/3.1寫成了串口調(diào)試的仿真芯片,可以在Keil下聯(lián)機(jī)調(diào)試程序。但寫的使用USB接口的仿真芯片,軟件提示操作成功,但插上電腦的USB口就是不見仿真器的CDC串口出現(xiàn),無法當(dāng)作仿真器。使用芯片的USB口表面也可操作寫仿真器,實(shí)際就是不能使用。片子是買的STC的打狗棒成品,下載程序正常,無論是串口模式還是USB模式,運(yùn)行正常。就是無法寫成USB接口仿真器,無論是串口寫還是USB接口寫均不行。下載稍作修改的官方USB轉(zhuǎn)CDC串口程序,可模擬出CDC串口。串口助手可打開進(jìn)行通訊。好像就是USB接口的仿真器不行?
回復(fù)

使用道具 舉報(bào)

ID:1034262 發(fā)表于 2023-3-14 18:36 | 顯示全部樓層
我使用STC8H手冊附錄J.5設(shè)置仿真沒問題。
回復(fù)

使用道具 舉報(bào)

ID:106977 發(fā)表于 2023-3-14 21:01 | 顯示全部樓層
請問是設(shè)置成USB接口的仿真芯片嗎?我設(shè)置成串口P3.0/3.1仿真可以,但設(shè)置成USB接口的仿真芯片不行。
回復(fù)

使用道具 舉報(bào)

ID:106977 發(fā)表于 2023-3-14 21:25 | 顯示全部樓層
剛才注意到手冊上說,STC8H8K64U只有B/C/D版本才支持USB接口仿真調(diào)試,A版不支持。請問怎么知道芯片是哪個(gè)版本?我的打狗棒是前不久從某一個(gè)寶上買的,
回復(fù)

使用道具 舉報(bào)

ID:525244 發(fā)表于 2023-3-15 14:49 來自手機(jī) | 顯示全部樓層
lgwd 發(fā)表于 2023-3-14 21:25
剛才注意到手冊上說,STC8H8K64U只有B/C/D版本才支持USB接口仿真調(diào)試,A版不支持。請問怎么知道芯片是哪個(gè) ...

是不是ISP搜索單片機(jī)的時(shí)候,就會(huì)顯示版本?
回復(fù)

使用道具 舉報(bào)

ID:155507 發(fā)表于 2023-3-15 16:41 | 顯示全部樓層
lgwd 發(fā)表于 2023-3-14 21:01
請問是設(shè)置成USB接口的仿真芯片嗎?我設(shè)置成串口P3.0/3.1仿真可以,但設(shè)置成USB接口的仿真芯片不行。


可以呀,我用stc_usb_cdc.hex。
STC8H-CDC.png

  1. /*---------------------------------------------------------------------*/
  2. /* --- STC MCU Limited ------------------------------------------------*/
  3. /* --- STC 1T Series MCU Demo Programme -------------------------------*/
  4. /* 如果要在程序中使用此代碼,請?jiān)诔绦蛑凶⒚魇褂昧薙TC的資料及程序        */
  5. /*---------------------------------------------------------------------*/

  6. /*************  功能說明    **************

  7. 本例程基于STC8H8K64U核心轉(zhuǎn)接板(打狗棒)進(jìn)行編寫測試。

  8. 使用USB線連接核心板USB接口與電腦;

  9. MCU通過USB CDC(Communication Device Class)協(xié)議識(shí)別為串口設(shè)備;

  10. 使用串口助手打開CDC虛擬串口,然后向MCU發(fā)送數(shù)據(jù),MCU返回接收到的數(shù)據(jù)到串口助手;

  11. 數(shù)據(jù)長度限制在64字節(jié)以內(nèi)。

  12. 如果data空間不夠,可將Memory Model設(shè)為Large模式,然后使用“stc_usb_cdc_8h_xdata.lib”庫函數(shù)。

  13. 下載時(shí), 選擇時(shí)鐘 24MHZ (用戶可自行修改頻率)。

  14. ******************************************/

  15. #include "stc.h"
  16. #include "usb.h"

  17. //USB調(diào)試及復(fù)位所需定義
  18. char *USER_DEVICEDESC = NULL;
  19. char *USER_PRODUCTDESC = NULL;
  20. char *USER_STCISPCMD = "@STCISP#";                      //設(shè)置自動(dòng)復(fù)位到ISP區(qū)的用戶接口命令

  21. void sys_init();

  22. void main()
  23. {
  24.     sys_init();  //系統(tǒng)初始化
  25.     usb_init();  //USB CDC 接口配置
  26.     IE2 |= 0x80; //IE2相關(guān)的中斷位操作使能后,需要重新設(shè)置EUSB
  27.     EA = 1;
  28.    
  29.     while (1)
  30.     {
  31.         if(DeviceState != DEVSTATE_CONFIGURED)  //等待USB完成配置
  32.             continue;

  33.         if (bUsbOutReady)
  34.         {
  35.             usb_OUT_done();    //接收應(yīng)答(固定格式)
  36.             
  37.             printf("OutNumber=%bd\r\n",OutNumber);  //使用 printf 函數(shù)打印接收數(shù)據(jù)長度

  38.             USB_SendData(UsbOutBuffer,OutNumber);  //發(fā)送數(shù)據(jù)緩沖區(qū),長度(接收數(shù)據(jù)原樣返回, 用于測試)
  39.         }
  40.     }
  41. }

  42. void sys_init()
  43. {
  44.     P_SW2 |= 0x80; //擴(kuò)展寄存器(XFR)訪問使能

  45.     P0M1 = 0x00;   P0M0 = 0x00;   //設(shè)置為準(zhǔn)雙向口
  46.     P1M1 = 0x00;   P1M0 = 0x00;   //設(shè)置為準(zhǔn)雙向口
  47.     P2M1 = 0x00;   P2M0 = 0x00;   //設(shè)置為準(zhǔn)雙向口
  48.     P3M1 = 0x00;   P3M0 = 0x00;   //設(shè)置為準(zhǔn)雙向口
  49.     P4M1 = 0x00;   P4M0 = 0x00;   //設(shè)置為準(zhǔn)雙向口
  50.     P5M1 = 0x00;   P5M0 = 0x00;   //設(shè)置為準(zhǔn)雙向口
  51.     P6M1 = 0x00;   P6M0 = 0x00;   //設(shè)置為準(zhǔn)雙向口
  52.     P7M1 = 0x00;   P7M0 = 0x00;   //設(shè)置為準(zhǔn)雙向口

  53.     //====== USB 初始化 ======
  54.     P3M0 &= ~0x03;
  55.     P3M1 |= 0x03;
  56.    
  57.     IRC48MCR = 0x80;
  58.     while (!(IRC48MCR & 0x01));
  59.    
  60.     USBCLK = 0x00;
  61.     USBCON = 0x90;
  62.     //========================
  63. }
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

ID:155507 發(fā)表于 2023-3-15 16:56 | 顯示全部樓層
zgrfox110 發(fā)表于 2023-3-15 14:49
是不是ISP搜索單片機(jī)的時(shí)候,就會(huì)顯示版本?

不會(huì)顯示版本

正在檢測目標(biāo)單片機(jī) ...
  單片機(jī)型號: STC8H8K64U
  固件版本號: 7.4.6U

當(dāng)前芯片的硬件選項(xiàng)為:
  . 系統(tǒng)ISP工作頻率: 24.000MHz
  . 內(nèi)部IRC振蕩器的頻率: 12.000MHz
  . 掉電喚醒定時(shí)器的頻率: 34.650KHz
  . 振蕩器放大增益使能
  . 用戶EEPROM大小被設(shè)置為 0.5 K
  . P3.2和P3.3與下次下載無關(guān)
  . 上電復(fù)位時(shí)增加額外的復(fù)位延時(shí)
  . 復(fù)位引腳仍為復(fù)位腳
  . 檢測到低壓時(shí)不復(fù)位,可產(chǎn)生低壓中斷
  . 低壓檢測門檻電壓 : 2.00 V
  . 上電復(fù)位時(shí),硬件不啟動(dòng)內(nèi)部看門狗
  . 上電自動(dòng)啟動(dòng)內(nèi)部看門狗時(shí)的預(yù)分頻數(shù)為 : 256
  . 空閑狀態(tài)時(shí)看門狗定時(shí)器停止計(jì)數(shù)
  . 下次下載用戶程序時(shí),將用戶EEPROM區(qū)一并擦除
  . 下次下載用戶程序時(shí),沒有相關(guān)的端口控制485
  . 下次下載時(shí)不需要校驗(yàn)下載口令
  . 未使能芯片的仿真功能
  . 內(nèi)部參考電壓: 1190 mV (參考范圍: 1100~1300mV)
  . 內(nèi)部安排測試時(shí)間: 2022年8月15日

  單片機(jī)型號: STC8H8K64U
  固件版本號: 7.4.6U

回復(fù)

使用道具 舉報(bào)

ID:155507 發(fā)表于 2023-3-15 16:58 | 顯示全部樓層
lgwd 發(fā)表于 2023-3-14 21:25
剛才注意到手冊上說,STC8H8K64U只有B/C/D版本才支持USB接口仿真調(diào)試,A版不支持。請問怎么知道芯片是哪個(gè) ...

怎么知道芯片是哪個(gè)版本  B
STC8H-VerB.jpg


回復(fù)

使用道具 舉報(bào)

ID:106977 發(fā)表于 2023-3-16 21:04 | 顯示全部樓層
我買的打狗棒上的芯片只看見STC三個(gè)字,其它完全看不清,不過問題解決了。
STC8H8K64U建立USB接口仿真器.jpg
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表