งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

ไมโครคอนโทรลเลอ ร์เบื้องต้น ปฏิบัติการเกี่ยวกับวิศวกรรม คอมพิวเตอร์ (01204223) ผศ. ดร. ชัยพร ใจแก้ว ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเกษตรศาสตร์

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "ไมโครคอนโทรลเลอ ร์เบื้องต้น ปฏิบัติการเกี่ยวกับวิศวกรรม คอมพิวเตอร์ (01204223) ผศ. ดร. ชัยพร ใจแก้ว ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเกษตรศาสตร์"— ใบสำเนางานนำเสนอ:

1 ไมโครคอนโทรลเลอ ร์เบื้องต้น ปฏิบัติการเกี่ยวกับวิศวกรรม คอมพิวเตอร์ ( ) ผศ. ดร. ชัยพร ใจแก้ว ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเกษตรศาสตร์

2 2 ไมโครคอนโทรลเลอร์ คอมพิวเตอร์ขนาดเล็กที่ถูกรวมไว้ ในชิปเดียว คอมพิวเตอร์ขนาดเล็กที่ถูกรวมไว้ ในชิปเดียว ประกอบด้วย ประกอบด้วย  หน่วยประมวลผลกลาง (CPU)  วงจรอินพุท / เอาท์พุท  หน่วยความจำแรมและแฟลช  ตัวจับเวลา ตัวนับ  ฯลฯ

3 3 ส่วนประกอบภายในและ การใช้งาน CPU I/O Ports Flash Memory RAM Analog to Digital Converter Timers & Counters Registers แหล่งจ่ายไฟ ( เช่น พอร์ท USB, ถ่านไฟฉาย, Power Bank) อุปกรณ์ภายนอก ( เช่น LED, จอ LCD, สวิตช์, ตัววัดแสง, มอเตอร์, รีเลย์ ฯลฯ )

4 4 สถาปัตยกรรม AVR สถาปัตยกรรมแบบ 8 บิต RISC สถาปัตยกรรมแบบ 8 บิต RISC ถูกพัฒนาขึ้นโดยบริษัท Atmel ใน ปี 1996 ถูกพัฒนาขึ้นโดยบริษัท Atmel ใน ปี 1996 ซีรีส์ต่าง ๆ ของ ไมโครคอนโทรลเลอร์ตระกูล AVR ซีรีส์ต่าง ๆ ของ ไมโครคอนโทรลเลอร์ตระกูล AVR  tinyAVR เช่น ATtiny12, ATtiny24  megaAVR เช่น ATmega8, ATmega168  XMEGA เช่น ATxmega128A1, ATxmega384A1 1 KB RAM 16 KB Flash

5 5 วงจรบอร์ด ไมโครคอนโทรลเลอร์

6 6 กระบวนการพัฒนาเฟิร์ม แวร์ ซอร์สโค้ด (.c,.cpp,.s) เท็กซ์เอดิเตอร์ ( gedit, vim ฯลฯ ) สร้างซอร์สไฟล์ 1 ไฟล์ executable (.elf) ครอสคอมไพเลอร์ ( avr-gcc ) คอมไพล์โปรแกรม รหัส ภาษาเครื่อง (.hex) โปรแกรมสกัดโค้ด ( avr-objcopy ) สกัดรหัสภาษาเครื่อง 3 ชิป โปรแกรมเมอ ร์ โปรแกรมอัพโหลด ( avrdude ) อัพโหลดเฟิร์มแวร์ ลงชิป 4

7 7 เฟิร์มแวร์ตัวแรก สั่งให้ LED สีเขียวบน เมนบอร์ดติดและดับ สลับกันไปทุก ๆ ครึ่ง วินาที สั่งให้ LED สีเขียวบน เมนบอร์ดติดและดับ สลับกันไปทุก ๆ ครึ่ง วินาที เริ่มต้น กำหนดให้ขา PD3 เป็นเอาท์พุทหน่วงเวลา 500 ms ส่งลอจิก 0 ไปยังขา PD3 หน่วงเวลา 500 ms ส่งลอจิก 1 ไปยังขา PD3

8 8 การสั่งงาน ไมโครคอนโทรลเลอร์ โดยมากใช้ภาษาแอสเซมบลี้ หรือ ภาษาซี โดยมากใช้ภาษาแอสเซมบลี้ หรือ ภาษาซี อ่านและเขียนค่าผ่าน " รีจีสเตอร์ " อ่านและเขียนค่าผ่าน " รีจีสเตอร์ "

9 9 รีจีสเตอร์ หน่วยความจำขนาดเล็กภายใน CPU หน่วยความจำขนาดเล็กภายใน CPU ตั้งค่าและอ่านค่าได้จากโปรแกรม ตั้งค่าและอ่านค่าได้จากโปรแกรม เป็นที่พักข้อมูล เป็นที่พักข้อมูล  ที่อ่านจาก RAM/Flash เพื่อเตรียม ประมวลผล  ที่เป็นผลลัพธ์จากการคำนวณและ เตรียมเก็บลง RAM เก็บสถานะและกำหนดพฤติกรรมของ uC เช่น เก็บสถานะและกำหนดพฤติกรรมของ uC เช่น  กำหนดให้ขาไอซีเป็นอินพุทหรือ เอาท์พุท  อ่านลอจิกของขาอินพุท และเขียน ลอจิกของขาเอาท์พุท

10 10 รีจีสเตอร์ใน สถาปัตยกรรม AVR แบ่งเป็นสองประเภท แบ่งเป็นสองประเภท  General purpose registers 32 ตัว ตัวละ 8 บิต  I/O registers ทั้งหมดถูกอ้างถึงได้ผ่านตำแหน่ง ของหน่วยความจำ ทั้งหมดถูกอ้างถึงได้ผ่านตำแหน่ง ของหน่วยความจำ ไฟล์เฮดเดอร์ avr/io.h นิยามชื่อรี จีสเตอร์ไว้เพื่อความสะดวกในการ เขียนโปรแกรม ไฟล์เฮดเดอร์ avr/io.h นิยามชื่อรี จีสเตอร์ไว้เพื่อความสะดวกในการ เขียนโปรแกรม

11 11 ตัวอย่างรีจีสเตอร์ของ ATmega168 DDRD DDRD  แต่ละบิตกำหนดทิศทาง ( อินพุทหรือ เอาท์พุท ) ให้ขาแต่ละขาของพอร์ท D PORTD PORTD  แต่ละบิตกำหนดลอจิกให้ขาแต่ละขาของ พอร์ท D ที่ถูกกำหนดเป็นเอาท์พุท PIND PIND  แต่ละบิตเก็บค่าลอจิกที่อ่านได้จากขาแต่ละ ขาของพอร์ท D ที่ถูกกำหนดให้เป็นอินพุท

12 12 โปรแกรมตัวอย่าง : first.c ระวังอย่าให้โปรแกรมที่ เขียนขึ้น สำหรับ ไมโครคอนโทรลเลอร์ จบการทำงานออกจาก ฟังก์ชัน main() ระวังอย่าให้โปรแกรมที่ เขียนขึ้น สำหรับ ไมโครคอนโทรลเลอร์ จบการทำงานออกจาก ฟังก์ชัน main() กำหนดให้ PD3 เป็นเอาท์พุท #define F_CPU UL #include int main() { DDRD = 0b ; while (1) { PORTD = 0b ; _delay_ms(500); PORTD = 0b ; _delay_ms(500); } return 0; } ส่งลอจิก 1 ไปยังขา PD3 ส่งลอจิก 0 ไปยังขา PD3 ระบุว่าชิปทำงานที่ความถี่ 16 MHz

13 13 การคอมไพล์และสกัดโค้ด ภาษาเครื่อง ใช้คำสั่ง avr-gcc เพื่อคอมไพล์โปรแกรม สำหรับ MCU เบอร์ ATMega168 ใช้คำสั่ง avr-gcc เพื่อคอมไพล์โปรแกรม สำหรับ MCU เบอร์ ATMega168 สกัดโค้ดภาษาเครื่องออกจากไฟล์ executable สกัดโค้ดภาษาเครื่องออกจากไฟล์ executable $ avr-gcc -mmcu=atmega168 -O -o first.elf first.c $ avr-objcopy -j.text -j.data -O ihex first.elf first.hex ดูรายละเอียดจากวิกิ [[ การพัฒนาเฟิร์มแวร์สำหรับไมโครคอนโทรลเลอร์ ]]

14 14 การอัพโหลดเฟิร์มแวร์ โค้ดภาษาเครื่องต้อง ถูกโปรแกรมลงไปใน หน่วยความจำแฟลช ของ ไมโครคอนโทรลเลอ ร์ โค้ดภาษาเครื่องต้อง ถูกโปรแกรมลงไปใน หน่วยความจำแฟลช ของ ไมโครคอนโทรลเลอ ร์ ทำได้โดยใช้ " ชิปโปรแกรมเมอร์ " ทำได้โดยใช้ " ชิปโปรแกรมเมอร์ "

15 15 การอัพโหลดเฟิร์มแวร์ด้วย Boot Loader ชิปที่แจกให้ถูกฝัง Boot Loader เอาไว้ ซึ่งทำหน้าที่เป็นโปรแกรมเมอร์ให้กับ ตัวเอง ชิปที่แจกให้ถูกฝัง Boot Loader เอาไว้ ซึ่งทำหน้าที่เป็นโปรแกรมเมอร์ให้กับ ตัวเอง เข้าสู่ Boot Loader โดยกดปุ่ม รีเซ็ตในขณะที่มีจั๊มเปอร์ เสียบอยู่ที่ขา Boot Loader เข้าสู่ Boot Loader โดยกดปุ่ม รีเซ็ตในขณะที่มีจั๊มเปอร์ เสียบอยู่ที่ขา Boot Loader ใช้คำสั่ง avrdude เพื่ออัพโหลดโค้ด ภาษาเครื่องลงสู่ไมโครคอนโทรลเลอร์ ใช้คำสั่ง avrdude เพื่ออัพโหลดโค้ด ภาษาเครื่องลงสู่ไมโครคอนโทรลเลอร์ $ avrdude -p atmega168 -c usbasp -U flash:w:first.hex

16 16 การทำงานของ Boot Loader

17 17 แบบฝึกหัด แก้ไขโปรแกรม first.c เพื่อให้ LED สีเขียวบนบอร์ดติดดับเป็น จังหวะดังนี้ แก้ไขโปรแกรม first.c เพื่อให้ LED สีเขียวบนบอร์ดติดดับเป็น จังหวะดังนี้  ติด 1 วินาที และดับ 2 วินาที สลับกันไป

18 18 การบ้าน เขียนโปรแกรมให้ LED ทั้งสามสี ติดไล่วนเป็นลำดับ เขียว -> เหลือง -> แดง -> เขียว …  LED แต่ละดวงติดค้างเป็นเวลา.5 วินาที หมายเหตุ :  แก้ไขโปรแกรมจากตัวอย่างในวิกิ  อย่าลืมระบุ F_CPU

19 19 แบบฝึกหัด เขียนโปรแกรมให้ LED ทั้งสามสี ติดไล่วนเป็นลำดับ เขียว -> เหลือง -> แดง -> เขียว …  LED แต่ละดวงติดค้างเป็นเวลา.5 วินาที


ดาวน์โหลด ppt ไมโครคอนโทรลเลอ ร์เบื้องต้น ปฏิบัติการเกี่ยวกับวิศวกรรม คอมพิวเตอร์ (01204223) ผศ. ดร. ชัยพร ใจแก้ว ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเกษตรศาสตร์

งานนำเสนอที่คล้ายกัน


Ads by Google