ช่วยด้วยครับ ผมกำลังโปรแกรม Hex file ลง ATmega 328p

  • 8 Replies
  • 3830 Views
*

Offline JK-FlipFlop

  • ***
  • 105
  • エンジニア 46
    • View Profile
    • Facebook
ผมลอง design บอร์ด ATmega 328p ขึ้นมาครับ วงจรผม ใช้ Int Osc ครับ

Programmer ที่ใช้ คือ AVRISP mkII และใช้ AVR Studio 4 ในการเบิร์น

พอทำการ Connect กับ AVRISP mkII เข้าได้ครับ แต่พอจะทำการ Read Signature มันขึ้นแบบนี้ครับ

"Getting isp parameter.. SD=0x06 .. OKOK
Entering programming mode.. FAILED!
Leaving programming mode.. OK!"

มันไม่สามารถเข้า Programming Mode ได้ ไม่ทราบว่าเป็นเพราะอะไรหรือครับ

ผมลอง Set ISP frequency ทุกค่าแล้ว ก็ยังไม่ได้ครับ


*

Offline samira

  • ***
  • 128
    • View Profile
เจอ error แบบนี้ บอกได้เลย ปวดกระดองใจครับ
( เจอมาบ่อย ครับ ) แต่ก็พอ กล้อมแกล้ม แก้ปัญหาได้โดยส่วนใหญ่

มันมีความเป็นไปได้ที่เราแทบจะไม่รู้ว่า มันเกิดจากอะไรได้บ้าง ( ฟะ )

1 ช่วยเช๊คดูว่า ความเร็วของการ burn flash นั้น มันเกิน 1 ใน 4 ของความเร็ว chip ( internal clock ) หรือเปล่า
ที่ว่า ตรวจสอบ set ISP frequency นั้น ต้องเร็วไม่เกิน 1/4 ของ CLK(system) นะครับ
เพราะเคยใช้ chip ที่ fuse bit DIV8 นั้น ไม่ได้ enable ฉนั้น มันวิ่งที่ 8 MHz เลยตัังความเร็วใว้ 1 MHz ( เพราะมัน burn ได้เร็วดี)
แต่ต่อมัน ดันใช้ chip ที่ DIV8 fusebit ถูก enable ใว้ พอ burn flash มันไม่ผ่าน งง อยู่นาน พอเปลี่ยนมาเป็น 125KHz มันก็ผ่าน ( แต่ เสร็จช้าหน่อย )
1.1 และอย่าลืมไปดู( จาก datasheet) ว่า fuse bit ( DIV8) นั้น มัน enable ใว้หรือเปล่า
กล่าวคือ ใช้ Int Osc นั้น ตกลงมัน 1 หรือ 8 MHz กันแน่ ( แต่คิดว่า อันนี้ แม้ไม่ตรง ก็น่าจะผ่าน)

2 ลองไปดูว่า chip ที่จะ burn flash นั้น ได้เลือกตรงกับที่เราจะใช้หรือเปล่า
เพราะ เห็นว่า อ่าน signature ไม่ได้

3 ดูว่า power supply เข้าบอร์ด ที่ทำนั้น ( Vcc ) มันเข้า หรือ ถึง ตาม spec
( เคยเจอว่า burn flash ไม่เข้า เพราะแบตที่ใช้ แรงดัน มันต่ำไป )

4 pin ที่ต่อเข้า ISP ( MOSI, MISO, SCK & RST ) มันต่อไปใช้กับอะไร หรือเปล่า
เพิ่งเจอปัญหาอันนี้ เร็วๆ นี้ เพราะ สาย MOSI ดันไปต่อใช้  พอจะ burn flash เข้า มันร้อง
พอลองเอาสายต่อ ออก แล้ว ให้ ISP pin นั้น มันอยู่ของมันโดดๆ คือ ให้มันทำหน้าที่ ISP อย่างเดียว ก็ผ่าน (ยังงง ไม่หาย เรื่องนี้ )
5 board มี power supply เข้า ตอน burn flash หรือเปล่า  และ programmer pin ซึ่งมี
MOSI, MISO, CLK, RST, V , GND ให้ดูว่า มี power supply ตรง V pin หรือเปล่า

อ้อ ขอถามหน่อยครับว่า AVRISP MK ii ที่ใช้นั้น "ท่านได้แต่ใดมา" == ของใครทำ ครับ

ที่นึกได้ ก็เท่านี้
ขอให้โชคดี และสนุกกับ DIY
( ทำ DIY มันก็สนุกอย่างนี้แหละถ้าทำผ่านนะ
แต่.............หากไม่ผ่าน ก็ปวดกระดองใจไปตราบใดที่แก้ไม่ออก )
“ If you’re born poor, it’s not your mistake. But if you die poor, it’s your mistake"
Bill Gates.

ตามที่ท่าน samira ว่าครับ

และดูให้แน่ใจว่า ขาต่างๆ ต่อถูกต้องแล้ว

MISO <-> MISO
MOSI <-> MOSI
SCK <-> SCK
RST <-> RST
GND <-> GND

และ ขา RST ถ้ามี C หรือ R ต่ออยู่ให้ลองถอดออกก่อน

*

Offline az

  • ***
  • 169
    • View Profile
3 อย่าลืมดูว่า power supply เข้าบอร์ด ที่ทำนั้น ( Vcc ) มันเข้า หรือ ถึง ตาม spec
( เคยเจอว่า burn flash ไม่เข้า เพราะแบตที่ใช้ แรงดัน มันต่ำไป )

กรณีนี้ผม modify นิดหน่อยครับ โดยการต่อสวิตเพิ่มเข้าไป โดยสามารถเลือกใช้ Vcc จากตัว AVR ISP mkii ได้เลย
                       switch
Vcc[usb]   ---------/ .------------ Vcc[connect to device]


กรณีของเจ้าของกระทู้ เป็นไปได้ไหมว่า AVR Studio 4 ยังไม่ support ATmega 328p
ลอง update firmware ของ AVR ISP mkii โดยการใช้ AVR Studio ที่ version สูงกว่า

หรือลอง program ผ่านทาง avrdude ดูนะครับ

หากยังไม่สามารถ program ได้ ก็ลองย้อนกลับไปดูวงจรอีกสักรอบว่าต่อถูกต้องหรือไม่


อ้อ ขอถามหน่อยครับว่า AVRISP MK ii ที่ใช้นั้น "ท่านได้แต่ใดมา" == ของใครทำ ครับ

ตอบท่าน samira เพิ่มเติม ครับ ถ้าเป็นตัว AVRISP MK ii ของ Atmel โดยตรง(make in Malaysia) ต้องนำเข้ามาครับ ราคาไม่น่าจะเกิน 2k บาทนะครับ
เพราะแสวงหา..  มิใช่เพราะรอคอย
เพราะเชี่ยวชาญ..  มิใช่เพราะโอกาส
เพราะสามารถ..  มิใช่เพราะโชคช่วย
ดังนี้แล้ว "ลิขิตฟ้า  หรือจะสู้มานะตน..."

*

Offline JK-FlipFlop

  • ***
  • 105
  • エンジニア 46
    • View Profile
    • Facebook
ตอบท่าน Samira ผมลองหมดแล้ว ยกเว้น 1.1 ครับ เด๋วผมขอลองอันนี้ใหม่อีกที เรื่องขาไม่ผิดครับ ลองนั่งไล่แล้วครับ

ส่วนตัวนี้ผมยืมเค้ามาอีกที ใช้งานได้ครับ เปนตัว Made in Malaysia ครับผม

*

Offline JK-FlipFlop

  • ***
  • 105
  • エンジニア 46
    • View Profile
    • Facebook
ตอนนี้ โอเคแล้วครับผม

ขอบคุณทุกท่านครับ เรื่องของเรื่องคือ เจ้าของ MCU ตัวดังกล่าว เค้าดันเบิร์น Bootloader

Set ค่า FUSE ต่างๆ มาเปนแบบ External OSC ครับ แล้วพอผมเอามาลงบอร์ดผม มันไม่มี External มันเลย ตรวจไม่พบ

Target ครับผม

ตอนนี้แก้ปัญหาได้เรียบร้อยแล้วครับ โดยการ โยกไปใส่บอร์ดที่มี External OSC ครับผม

*

Offline samira

  • ***
  • 128
    • View Profile
ขอบคุณที่มา update ผลการทดลองให้ทราบ

ใช่ครับ ลืมไปสนิท เรื่องให้ตรวจ set fusebit ว่าเป็น int OSC หรือ External Crystal.
ก็จะได้เป็นเรื่องเตือนใจว่า ต้องนึกถึงเรื่องนี้ด้วย ( มันของไกล้ตัวมาก แต่ดันลืมนึกไป )

“ If you’re born poor, it’s not your mistake. But if you die poor, it’s your mistake"
Bill Gates.

เมื่อไหร่จะมาห้องแชทสักกะที...น้อ