极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1881|回复: 2

LGT8F684P 的一個導致再不能燒寫的經驗

[复制链接]
发表于 2019-1-30 17:00:47 | 显示全部楼层 |阅读模式
把SWD及SWC腳都設定成輸出,並在SWC腳上以0.5秒高變化,RSTN/RA3設成I/O mode,用SDK產生項目,在 main.c 內按預想加回如下:
  1. #include "allinone.h"
  2. // Import external definitions
  3. extern void init_modules(void);
  4. int main(void)
  5. {
  6. // Device initialization
  7. init_modules();
  8. // Add your code from here
  9. while(1)
  10. {
  11. gppToggle(GPPA, P1);
  12. delayms(500);
  13. }
  14. return 0;
  15. }
复制代码

結果:芯片不能再 燒寫了
初步結論:芯片因沒法再燒寫,故判定為已損壞
建議:最好是不要用 Reset,SWC和SWD三腳。若要使reset腳可作輸出/輸入,則其餘兩腳應只作輸入。若能保留不用Reset腳,則 SWC和SWD可任用(這個由群友bbsniua提出,本人未經驗證,但他本人已做過成品,很有信心)。
回复

使用道具 举报

 楼主| 发表于 2019-1-30 17:39:09 | 显示全部楼层
bbsniua 的一些相關經驗 和提供的對應程序範例:

一个做IO插入代码看时序,一个做模拟串口

复位不变

只有接触不良会坏

核心板的不同之处就是有个TS被接VCC了

我把那根线切断了后基本没发现过损坏的了

当然滤波电容是4.7uF的

这是我的经验

还有就是下载口被用作输出,复位也被用做输出的,那个加了判断


  1. #include "lgt8f684a.h"                        // 库文件
  2. #define _XTAL_FREQ        8000000        // 8M/4T时定义时钟频率为8M

  3. #define LED RC0

  4. void main()
  5. {
  6.         TRISA1 = 0;                        // RA1设置为输出
  7.         RA1 = 0;                                // RA1输出0
  8.         TRISC0 = 0;
  9.         LED = 0;

  10.         __delay_ms(1);        // 延时1ms
  11.         if(RA1)                                        // 检测到编程器连接时RA1被拉到1
  12.         {
  13.                 TRISA1 = 1;                // 把RA1恢复输入
  14.                 while(1)
  15.                 {
  16.                         LED ^= 1;                // LED取反
  17.                         __delay_ms(100);        // 延时100ms*2闪一次
  18.                 }
  19.         }
  20.        
  21.         while(1)
  22.         {
  23.                 LED ^= 1;
  24.                 __delay_ms(1000);        // 1000ms*2闪一次
  25.         }
  26. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-31 11:12:37 | 显示全部楼层
本帖最后由 eddiewwm 于 2019-1-31 15:38 编辑

以下是用 bbsniua 提供的基礎,把14個I/O全作輸出的走馬燈程序,實證工作正常,芯片也沒出現不能再燒寫的情況。當中要注意的是: RSTN要設在I/O Mode,而且要注意RA3是開漏輸出。

【補充:在多試了一些不同的開關時間後,發現仍會出現不能再燒寫的情況,所以,結論還是保留Reset在 Reset Mode,才是保險之策。】

  1. //===================================================
  2. // Auto generated file : 30/1/2019 12:36:42
  3. //===================================================
  4. #include "allinone.h"
  5. // Import external definitions
  6. extern void init_modules(void);
  7. #define testLED P2
  8. int showGPPALED[]={P0,P1,P2,P3,P4,P5,P6,P7};//{P0,P1,P2,P3,P4,P5,P6,P7}
  9. int showGPPCLED[]={P0,P1,P2,P3,P4,P5};

  10. int main(void)
  11. {
  12.         // Device initialization
  13.         init_modules();
  14.         // Add your code from here
  15.         TRISA1 = 0;                        // RA1?置??出
  16.         RA1 = 0;                                // RA1?出0
  17.         TRISC0 = 0;

  18.         delayms(1);        // 延?1ms
  19.         if(RA1)                                        // ??到?程器?接?RA1被拉到1
  20.         {
  21.                 TRISA1 = 1;                // 把RA1恢复?入
  22.                 while(1)
  23.                 {
  24.                         for (int i=0; i<8; i++)
  25.                         {
  26.                                 gppToggle(GPPA, showGPPALED[i]);
  27.                                 delayms(500);
  28.                         }
  29.                         for (int i=0; i<6; i++)
  30.                         {
  31.                                 gppToggle(GPPC, showGPPCLED[i]);
  32.                                 delayms(500);
  33.                         }
  34.                 }
  35.         }
  36.        
  37.         while(1)
  38.         {
  39.                         for (int i=0; i<8; i++)
  40.                         {
  41.                                 gppToggle(GPPA, showGPPALED[i]);
  42.                                 delayms(500);
  43.                         }
  44.                         for (int i=0; i<6; i++)
  45.                         {
  46.                                 gppToggle(GPPC, showGPPCLED[i]);
  47.                                 delayms(500);
  48.                         }
  49.         }
  50.        
  51.         return 0;
  52. }
复制代码


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊 ( 浙ICP备09023225号 )

GMT+8, 2019-11-14 10:29 , Processed in 0.045487 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表