Author Topic: Arduino MEGA328P  (Read 3771 times)

Offline tha

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 827
    • View Profile
Re: Arduino MEGA328P
« Reply #96 on: October 23, 2017, 07:55:38 am »
Quote
13.2.1. Default Clock Source(แหล่งสัญญาณนาฬิกาเริ่มต้น)
The device ถูกจัดส่งด้วย with internal RC oscillator ที่ 8.0MHz และด้วย the fuse CKDIV8 ถูกโปรแกรม, ส่งผลให้ได้ 1.0MHz system clock. The startup time ถูกตั้งค่าให้เป็นค่าสูงสุดและเปิดใช้งานช่วงเวลาหมดเวลา: CKSEL=0010, SUT=10, CKDIV8=0. การตั้งค่าเริ่มต้นนี้ช่วยให้มั่นใจว่าผู้ใช้ทุกคนสามารถทำการตั้ง clock source ที่ต้องการของเขาได้โดยใช้ programming interface ที่มีอยู

มาว่าเรื่อง clock กันต่อ เขาบอกว่าเขาโปรแกรมตัว mcu มาแล้ว เป็น  internal RC oscillator 8.0MHz  และโปรแกรมหาร fuse CKDIV8 มาด้วย ทำให้ได้ system clock ที่ 1MHz ที่เริ่มต้น(default) ที่ส่งออกมาขาย คราวนี้ถ้าเราจะใช้ความถี่นี้ในการทำงานได้เราก็ทำได้ไม่ต้องมี crytal แต่ว่าถ้าเราทำวงจรใส่ crytal ไปอย่างเช่น 16MHz เราก็ต้องมาตั้ง clock กันใหม่ พวก start-up time ต่างๆด้วย ตั้งกันอย่างไรเดี๋ยวให้ได้ตัวโปรแกรม avr isp mkII มาก่อนคงได้รู้กันครับ


Offline tha

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 827
    • View Profile
Re: Arduino MEGA328P
« Reply #97 on: October 23, 2017, 12:24:38 pm »
ดูในคู่มือของ คู่มือ ET-BASE ATMEGA64-128 R3  ใน http://www.ett.co.th/product/03A20.html ค่อนข้างจะสบสนหน่อย



ในนี่ก็มีเรื่องเซท bits fuse http://www.elecrom.com/configuring-avr-fuse-bits-for-clock-selection/

Offline tha

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 827
    • View Profile
Re: Arduino MEGA328P
« Reply #98 on: October 23, 2017, 04:15:21 pm »
นี่ก็การเซท avr fuse bite
http://www.elecrom.com/avr-fuse-bits-settings/

อย่างค่าเริ่มต้นที่เซทมาจากโรงงาน   มีค่า High byte fuse bits = 0x99 = 0b10011001
                                                  Low byte fuse bits = 0xE1 = 0b11100001

บิทไหนเป็นบิทไหนก็ดูเอา เอามาจากหน้า 348 section 31. MEMPROG- Memory Programming ของ data sheet atmega328p โน้นแหละ โดดไปโดดมา  ;D





เอะดูแล้วก็ไม่ตรงทั้งหมด ช่วยกันเช็คมั้ง  ;D

Offline tha

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 827
    • View Profile
Re: Arduino MEGA328P
« Reply #99 on: October 23, 2017, 05:09:33 pm »
http://binaryupdates.com/setting-avr-fuse-bits/ อันนี้ก็อีก

CKSEL[3:0] ถ้าเป็น 0b0001 เป็น reserved ไม่ใช่เหรอ
                          0b0010 ถึงจะเป็น Calibrated Internal RC Oscillator

ดูที่ 13.2. Clock Sources

น่าจะเป็น 0xE2 มากกว่า ใน data sheet ถึงจะตรง

Offline tha

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 827
    • View Profile
Re: Arduino MEGA328P
« Reply #100 on: October 24, 2017, 04:54:41 am »
ดูใน data sheet แล้ว low byte เป็น 0x62 สิเพราะ CKDIV8 ถูกโปรแกรม high byte ก็เป็น 0xD9 ถึงจะตรงกับใน data sheet(ค่าเริ่มต้นจากโรงงาน(default))

Offline tha

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 827
    • View Profile
Re: Arduino MEGA328P
« Reply #101 on: October 24, 2017, 12:32:05 pm »
http://www.123microcontroller.com/avr-codevision/How-to-Fuse-bits-AVR-setting อันนี้ก็ดี ของไทยเรา

Offline tha

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 827
    • View Profile
Re: Arduino MEGA328P
« Reply #102 on: October 24, 2017, 01:14:31 pm »
จะเลือกใชแรงดันเท่าไหร่ความถี่เท่าไหร่ก็ดูที่ 32. Electrical Characteristics ของมัน ไม่จำเป็นต้อง 5V, 16MHz ก็ได้
http://www.123microcontroller.com/Basic-Microcontroller-Programming/hello-world-i-am-avr







Offline tha

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 827
    • View Profile
Re: Arduino MEGA328P
« Reply #103 on: October 29, 2017, 09:43:35 am »
อากาศที่กำแพงเพชรหนาวแล้ว ทางอื่นเป็นอย่างไรกันบ้าง หนาวอย่างนี้คงจะอ่านหนังสือได้เกือบทั้งวัน หนังสือ การเขียนโปรแกรมควบคุมไมโครคอนโทรลเลอร์ AVR ด้วยภาษา C กับ WinAVR C Compiler (AVR Book 1) ก็ได้มาแล้ว แต่ยังไม่ได้ตัวโปรแกรม AVR ISP mkII มาที่ไปรษณีย์แล้วยังไม่ได้ไปเอา

ตอนนี้โน๊ตบุ๊คผมลงทั้ง avr studio 4.19, Atmel Studio 6.2 ส่วนตัวคอมไพล์ก็ลงทั้ง winavr และ avr8-gnu-toolchain เลย จะได้ลองคอมไพล์ทั้ง 2 คอมไพล์เลอร์เลย arduinoด้วย คงต้องใช้เวลาศึกษาสักระยะ
http://www.atmel.com/tools/STUDIOARCHIVE.aspx

ว่าจะทำบอร์ดทดลอง AVR atmega328p-pu https://www.es.co.th/detail.asp?Prod=006503131 จะทำแบบโล่งๆเลย เอา power supply อยู่นอกบอร์ด จะได้เปลี่ยน power supply เป็น 5v, 3.3v ได้ เปลียน clock ได้แค่เปลี่ยน crytal 16MHZ เป็น 20,12,10,8 MHz อย่างนี้ก็ flexible ดี ตอนนี้กำลังเขียนโปรแกรมลายวงจรอยู่ครับ