作者ResolaQQ (ResolaQQ)
看板Electronics
標題[問題] 自己寫了一個USB燒錄器,但速度有點慢...
時間Fri Aug 14 16:54:55 2015
啥都不開,最快的情況下,每秒能燒 11 bytes
https://youtu.be/ZJvEX7UOl_c
開啟除錯和驗證模式,每秒只能夠燒 2 bytes
https://youtu.be/kFm9HJKHf4A
題外話,除錯模式有把所有燒錄過程顯示出來
使用的 USB to TTL 晶片是 PL-2303HXD
燒錄慢的原因似乎是因為 RTS 跟 DTR 轉換邏輯的速度很慢
10 萬次邏輯轉換測試裡,最快要 2 ms,最慢要 14 ms
而且之前設定 20 ms 也有燒錄失敗過,所以實際情況應該還會更糟
想請問這是 PL-2303HXD 的晶片問題嗎?
如果改用 FT232 或 CP2102,燒錄速度是否會大幅提升?
謝謝各位
--
放著養蚊子的部落格
http://resolaqq.blogspot.tw
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.233.7.104
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Electronics/M.1439542498.A.780.html
1F:推 qinriddick: 不曉得你的mcu是哪顆... 08/15 19:17
2F:→ qinriddick: n年前用51 ISP燒錄三種都測試過沒有問題 08/15 19:18
3F:→ AKPPT: CLK=? 還有你設的baud rate? 都有影響 我是用FT232做的 08/15 19:24
4F:→ AKPPT: 但是用這種USB to RS232多少會慢一些 直接用MAX232速度最快 08/15 19:25
5F:→ teravideo: 將鮑率提升到921600bps,FT232、PL2303、CP2102、CH340 08/15 21:13
6F:→ teravideo: 都有支援,或SUNIX的PCI的RS-232卡也有支援 08/15 21:16
7F:→ ResolaQQ: MCU是AT89S52,Baud Rate是115200(預設值) 08/16 02:44
8F:→ ResolaQQ: 不過我的程式不是用TX在燒的耶,這樣改Baud Rate有用嗎? 08/16 02:45
9F:→ ResolaQQ: 弄錯了,Baud Rate預設是9600 08/16 03:12
10F:→ ResolaQQ: 但試過Baud Rate 75/9600/921600/12000000 08/16 03:14
11F:→ ResolaQQ: 燒256 bytes所花的時間一樣都是21秒,一秒都不差 08/16 03:15
12F:→ ResolaQQ: AT89S52的CLK是24M,PL-2303HXD沒得外接,內建似乎是96M 08/16 03:19
13F:→ dsplab: 建議改用1T指令集的變種8051,笙泉或宏晶都有類似晶片, 08/16 13:26
14F:→ dsplab: AT89S52應該沒辦法使用921600bps的串列速度! 08/16 13:28
15F:推 kingstong: 可以問一下燒錄器是用哪種COMPILER嗎?!是ASM還是機器語 08/16 13:41
16F:→ kingstong: 言?! 08/16 13:41
17F:→ ResolaQQ: 燒錄器是指燒錄程式嗎?我是用Python寫的 08/16 14:00
18F:→ ResolaQQ: 1T指令集的變種8051我在研究一下,缺乏知識,有看沒有懂 08/16 14:24
19F:推 kingstong: 沒錯Python就是一種COMPILER,燒錄器就是燒錄程式,就像 08/16 15:46
20F:→ kingstong: 瀏覽器明明就是程式偏偏就取名瀏覽器.這樣看來PYTHON 08/16 15:48
21F:→ kingstong: 算是一種很低階的COMPILER. 08/16 15:48
22F:推 kingstong: 在CompScience版有PYTHON的討論區,有興趣你可以去逛一 08/16 15:51
23F:→ kingstong: 下. 08/16 15:51
24F:→ ResolaQQ: 可是Python是直譯程式,不用編譯耶,一般是分到高階語言 08/16 16:16
25F:→ ResolaQQ: 雖然有RPython需要編譯而且跑得快很多,但一般不會用到 08/16 16:18
26F:推 kingstong: Lisp,Pascal,C,BASIC 與 Python都有直譯器版本能用 08/16 18:06
27F:→ kingstong: WIKI直譯語言和直譯器. 08/16 18:06
28F:→ Schottky: 我以前自己做 AT89S52 燒錄器時也發生過一樣的事 08/17 09:10
29F:→ Schottky: 不管是用主機板原生 RS-232 還是 printer port 08/17 09:10
30F:→ Schottky: 甚至用另一顆 AT89S52 來燒都一樣,速度慢又不穩定 08/17 09:11
31F:→ Schottky: 當時並沒有去深究原因,後來直接照著做別人的燒錄器解決 08/17 09:12
32F:→ Schottky: 現在想想,用過這麼多介面狀況都一樣,應該是我在 08/17 09:13
33F:→ Schottky: implement ISP 燒錄程序時有什麼細節沒注意到的緣故 08/17 09:13
34F:→ ResolaQQ: 可是燒錄程序就那麼幾行,應該不太會出錯 08/17 13:19
35F:→ ResolaQQ: 不然下次我也試試看用另一顆AT89S52來燒AT89S52好了 08/17 13:21