欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: STC單片機下載幾次后就無法下載, 靜置一會兒后又可以下載 [打印本頁]

作者: Kituro    時間: 2021-11-20 19:24
標題: STC單片機下載幾次后就無法下載, 靜置一會兒后又可以下載
單片機型號位STC8A8K64S4A12, 手上有兩塊自己做的開發板, 都是這個問題, 下載一次或幾次后就無法下載, 開發板靜置10分鐘左右又可以下載程序了USB轉串口芯片為CH340C, 無外部晶振

ISP軟件為STC-ISP v6.86u 確定沒有任何設置錯誤:



我的猜想:
1. 可能是我電源退耦沒有做好, 上電時可能有電涌, 干擾串口信號或直接讓CH340C停止工作\

    我的退耦方案: 一個47uF和0.1uF的電容放置在USB口旁邊退耦, CH340C按Datasheet給的方案來放置電容, VCC和V3.3接0.1uF退耦
    USB口到CH340C大約有1.5-2cm左右的距離, UD+和UD-兩條數據線近似等長, 長度相差167mil
2. 在板子的某個地方有電容效應, 下載后電荷量積攢到一定程度就影響信號無法下載, 靜置后讓電容放電, 于是又可以下載

求教這是什么問題?應該如何解決?
跪謝大佬相助!

作者: Kituro    時間: 2021-11-20 22:02
補充: "無法下載"指的是軟件一直顯示"正在檢測單片機"
作者: mtdzok    時間: 2021-11-20 22:14
應該是電源兩端有大電容,下載時的斷電動作無法使單片機復位
作者: 188610329    時間: 2021-11-20 22:33
1)  按規范,8A8K 的 AVCC, AGND 都需要連接。最差也要并到 VCC 和 GND
2) 8A和8F系列, P3.1需要接300R電阻,(太高太低都會間歇性下載失敗)。P3.0的二極管就不說了,沒啥變化。
3) 由于設計上的不足,下載8A8K時,條件允許的話,斷電時斷GND。
作者: npn    時間: 2021-11-20 23:07
如果單片機進入掉電模式,1uF就能維持很長時間,下載前請將電容放電。
作者: grb7906    時間: 2021-11-21 07:09
每次下載,接通電源前,短路下板上電源,再接入電源下載

作者: Kituro    時間: 2021-11-21 10:56
mtdzok 發表于 2021-11-20 22:14
應該是電源兩端有大電容,下載時的斷電動作無法使單片機復位

一語中的! 感謝指導!!
作者: Kituro    時間: 2021-11-21 10:57
npn 發表于 2021-11-20 23:07
如果單片機進入掉電模式,1uF就能維持很長時間,下載前請將電容放電。

是這樣的! 短路電容兩端后就可以下載了! 感謝大佬指導!
那板子設計的時候有沒有什么方法規避這種問題呢?不然每次下載都要給電容放電很麻煩
沒有大電容就不能有效退耦, 有大電容放電又很慢, 應該怎么解決?
作者: Kituro    時間: 2021-11-21 10:58
grb7906 發表于 2021-11-21 07:09
每次下載,接通電源前,短路下板上電源,再接入電源下載

這個方法很有效! 感謝!!
作者: npn    時間: 2021-11-21 12:23
本帖最后由 npn 于 2021-11-21 12:27 編輯
Kituro 發表于 2021-11-21 10:57
是這樣的! 短路電容兩端后就可以下載了! 感謝大佬指導!
那板子設計的時候有沒有什么方法規避這種問題呢? ...

你可以看一下STC自帶的這個功能,板子不需要改動,執行一條指令 IAP_CONTR |= 0x60; 復位到ISP程序區就可以下載。

作者: Kituro    時間: 2021-11-21 13:31
本帖最后由 Kituro 于 2021-11-21 13:36 編輯
npn 發表于 2021-11-21 12:23
你可以看一下STC自帶的這個功能,板子不需要改動,執行一條指令 IAP_CONTR |= 0x60; 復位到ISP程序區就可 ...

我復制IAP_CONTR |= 0x60;到我的程序中, 提示error C129: missing ';' before '|='


作者: npn    時間: 2021-11-21 19:06
Kituro 發表于 2021-11-21 13:31
我復制IAP_CONTR |= 0x60;到我的程序中, 提示error C129: missing ';' before '|='

C語言哪有這么寫的? 指令要放到函數里。
作者: npn    時間: 2021-11-21 21:08
npn 發表于 2021-11-21 19:06
C語言哪有這么寫的? 指令要放到函數里。

請將該指令放置到需要的地方,比如串口、外部中斷、按鍵長按等事件,一但執行就會 立即復位。
作者: yzwzfyz    時間: 2021-11-23 10:37
保證下載命令發出后,單片機處理于掉電狀態,這時再上電,就成功了。
作者: yzwzfyz    時間: 2021-11-23 10:39
道理很簡單:
燒寫或仿真程序是由內置的一段固有監控程序完成的,固有監控程序只在冷起動時運行一下,當它發現沒有燒寫或仿真命令時,就跳轉0000H,執行用戶程序。
而發現有燒寫或仿真命令時,才執行燒寫或仿真命令。
作者: hhh402    時間: 2021-11-23 11:11
這個問題我遇到過,主要是電磁干擾問題,開發板的連接線隨意接會有干擾影響下載,解決方法是將最高下載波特率從115200改為9600就可以了。減速就好
作者: npn    時間: 2021-11-23 11:20
hhh402 發表于 2021-11-23 11:11
這個問題我遇到過,主要是電磁干擾問題,開發板的連接線隨意接會有干擾影響下載,解決方法是將最高下載波特 ...

串口沒有時鐘線,如果波特率過高,晶振誤差導致誤碼,這就是握手失敗或下載到一半出錯的問題。




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1