Author Topic: Arduino MEGA328P  (Read 3772 times)

Offline az

  • Full Member
  • ***
  • Posts: 164
    • View Profile
Re: Arduino MEGA328P
« Reply #120 on: November 14, 2017, 11:22:39 am »
ใช้ตัวไหน หาซื้อได้ที่ไหนครับ

ลองติดต่อคุณ p_chusak  ดูนะครับ
เพราะแสวงหา..  มิใช่เพราะรอคอย
เพราะเชี่ยวชาญ..  มิใช่เพราะโอกาส
เพราะสามารถ..  มิใช่เพราะโชคช่วย
ดังนี้แล้ว "ลิขิตฟ้า  หรือจะสู้มานะตน..."


Offline tha

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 827
    • View Profile
Re: Arduino MEGA328P
« Reply #121 on: November 15, 2017, 05:50:43 am »
ติดต่อยังไงครับ หมู่นี้เงียบหายกันไปเลย
ผมใช้ ET-AVR ISP mkII แก้ fuse bit ก็ได้เริ่มจะเป็นแล้ว
ของที่สั่งซื้อจาก es มาแล้ว ก็เลยประกอบบอร์ด จะเรียกว่าบอร์ดอะไรดีน๊า เรียกว่าบอร์ด I-DO-E-TO แล้วกันเพราะทำเลียนแบบบอร์ด ARDUINO
บัดกรีเสร็จก็ตรวจสอบหาจุดเสียก็โอเค ได้เป็นแบบนี้



power supply เอาไว้นอกบอร์ด usb to rs232 ก็ไม่ใส่ ใช้นอกบอร์ดทั้งหมด ใส่ atmega328p-pu แล้วก็ใช้ได้
ตื่นเช้ามาวันนี้ ก็ลองโดนไฟ  เปิด AVR Studio 4.17 เสียบ ET-AVR ISP mkII สร้าง new project
http://www.mediafire.com/file/dy8dry2lo9wjqw4/blink_1M.rar
atmega328p ตัวนี้เป็นตัวใหม่ clock ที่เขาตั้งไว้เริ่มแรก(default) เป็น internal RC oscillator 8M, CKDIV8 เหลือ clock เป็น 1MHz ตอนนี้ยังไม่ได้แก้ fuse bit พอโปรแกรม hex file เข้าไปแล้ว บอร์ดก็ทำงานได้ครับ
คราวนี้สร้าง new project ใหม่ แก้ fuse bit low byte = FF เลือก clock เป็น Low Power Crystal Oscillator 16MHz(ผมใส่ crytal 16MHz ในบอร์ดครับ) พอโปรแกรม hex file เข้าไป บอร์ดก็ทำงานได้ครับ
http://www.mediafire.com/file/1qi2r4a188t1c45/blink_16M.rar

ติดปัญหาเรื่อง fuse bit มานาน ส่งบอร์ด easy32u4 ไปให้เขาซ่อมรอบหนึ่งแล้ว ตั้ง fuse bit ผิดเป็น external clock ก็มาเสียอีกรอบนึ่ง ตอนนี้รอ External Oscillator 2MHz ที่สั่งซื้อ มาใส่เพื่อแก้ fuse bit ของบอร์ด easy32u4 ต่อไป เอ๊ะหรือว่าเอาบอร์ด atmega328p ตัวที่ทำใหม่นี้มาสร้างเป็นสัญญาน external clock ให้กับบอร์ด easy32u4 ก็ได้นี่ เดี๋ยวจะลองหาวิธีก่อน  :o

Offline tha

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 827
    • View Profile
Re: Arduino MEGA328P
« Reply #122 on: November 15, 2017, 01:23:28 pm »
คราวนี้มาซ่อม easy32u4 ที่ไม่ทำงานเพราะโปรแกรม fuse bit ผิดเป็น external clock ผมทำดังนี้ครับ
สร้างสัญญาน clock pulse จากบอร์ด atmega328p (ที่ทำขึ้นมาใหม่) ให้สัญญาน clock pulse ออกมาจากขา PD7 โดยโปรแกรมนี้ครับ
http://www.mediafire.com/file/it2rnxbwhaamtw4/clock1.rar AVR Studio 4.17
คราวนี้ใช้ saleae logic analyzer วัดปรับโปรแกรมจนได้สัญญาน clock pulse ที่ขา PD7 ออกมาได้ 500kHz พอดี เพราะเราต้องตั้งค่า ISP ของ mkII เป็น 125kHz ซึ่ง เป็น 1/4 ของสัญญาน clock พอดี
บัดกรีเอา crytal 16MHz บนบอร์ด easy32u4 ออกก่อน แล้วบัดกรีสายเข้าไปที่ XTAL1 เพื่อป้อน External clock จากขา PD7 ของบอร์ด atmega328p แล้วต่อ ground ถึงกันด้วย
เมื่อจ่ายไฟเข้าไป บอร์ด easy32u4 สามารถติดต่อกับ mkII ผ่านทาง avr studio 4.17 ได้แล้ว
คราวนี้ลองบอร์ด easy32u4 ด้วยโปรแกรมนี้ http://www.mediafire.com/file/udlb1j431j01pp8/blink1%282%29.rar ด้วย avr studio 4.17 + ISP mkII ตั้งโปรแกรม fuse bit low byte เป็น 0x62, Internal RC Oscillator 8MHz, CKDIV8 ได้ clock เป็น 1MHz แล้วโปรแกรม blink1.hex เข้าบอร์ด ปรากฎว่าไฟกระพริบสามารถทำงานได้ครับ
คราวนี้ต่อบัดกรี crytal 16MHz กลับคืนสู่บอร์ด easy32u4 ตั้งโปรแกรม fuse bit low byte เป็น 0xFF,  clock เป็น Low Power Crystal Oscillator ได้ clock เป็น 16MHz แล้วโปรแกรม blink1.hex เข้าบอร์ด ปรากฎว่าไฟกระพริบก็สามารถทำงานได้เป็นปกติแล้วครับ

เสียตังไปซื้อ oscillator 2MHz มา ของเพิ่งจะถึงเลยไม่ได้ใช้งานเลย
สิ้นสุดปัญหาการตั้ง fuse bit ไปเสียที คราวนี้ก็ตั้ง fuse bit ได้แล้ว จะได้ทำอย่างอื่นกันต่อไป  :)


Offline tha

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 827
    • View Profile
Re: Arduino MEGA328P
« Reply #123 on: November 15, 2017, 02:16:48 pm »
http://www.mediafire.com/file/n93n7gzc3dsyn6j/bootloader.rar
bootloader ของบอร์ด  ET-BASE AVR EASY32U4 โปรแกรม hex file bootloader ด้วย avr studio 4.17 + mkII บอร์ดกลับมาทำงานในโหมด arduino leonardo ได้ตามปกติครับ

Offline tha

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 827
    • View Profile
Re: Arduino MEGA328P
« Reply #124 on: November 15, 2017, 02:43:44 pm »
atmega32u4 ดูใน data sheet แล้วไม่มีโหมด Full Swing Crystal Oscillator มีแต่ใน atmega328p ซึ่งใน data sheet บอกว่า สามารถเอา XTAL2 เป็น clock output ไปขับ clock input อื่นหรือใช้ในบริเวณที่มี noise สูง แต่ก็จะกินพลังงานมากกว่า Low Power Crystal Oscillator ด้วยเช่นกัน

Offline tha

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 827
    • View Profile
Re: Arduino MEGA328P
« Reply #125 on: November 16, 2017, 02:20:47 pm »
วันนี้ทำอีกตัวหนึ่ง เจ้าสวิทช์ดำ เลยมี 2 ตัว เจ้าสวิทช์แดงกับเจ้าสวิทช์ดำ





ว่าจะทำเจ้าสวิทช์ดำเป็น arduino Duemilanove เลยลง bootloader ตามนี้
http://www.mediafire.com/file/s9yj32o9ck40tho/Bootloader%282%29.rar
ใช้ bootloader ตัวนี้ BOOT_EASY328_MANUAL_16MHZ.hex วิธีทำก็ทำตามคู่มือ แต่ใช้ ISP mkII แทน
ใช้ usb to usart cp2102 upload โปรแกรมจาก arduino IDE ไม่ได้ครับ ค้างไปเลย
ใช้ ชุด usb to usart ของ ett ก็ไม่ได้เช่นกัน ค้างไปเลย ท่านใดเคยเจอปัญหานี้บ้าง



ตั้งค่า port ไม่ตรงหรืต้องใช้ตัวอย่างนี้ครับ
https://www.mcucity.com/category/86/%E0%B9%82%E0%B8%A1%E0%B8%94%E0%B8%B9%E0%B8%A5-%E0%B9%80%E0%B8%8B%E0%B8%99%E0%B9%80%E0%B8%8B%E0%B8%AD%E0%B8%A3%E0%B9%8C-sensor-rtc-mp3-etc/rs232-rs485-can-serial-module


Offline tha

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 827
    • View Profile
Re: Arduino MEGA328P
« Reply #126 on: November 17, 2017, 02:43:28 am »
ตั้งเป็น Full Swing Crystal Oscillator ก็ทำงานได้ สำหรับบอร์ด atmega328p ถ้าเป็นบอร์ด easy32u4 ค่า F7 นี้จะเป็น reserved ไม่รู้ส่งผลเป็นไงหรือไม่มีตัวเลือกให้ตั้ง ก็ดูกันเอาเอง ค่า F7 เรียงบิทกันอย่างไรนั้น ดูใน atmega328p data sheet หน้า 349-350 ครับ