Microcontroller     

เริ่มต้น AVR Microcontroller                    

 [ข้อมูลเมื่อ  27 มิถุนายน 2552 ]

     

ไมโครคอนโทรลเลอร์  AVR
        ไมโครคอนโทรลเลอร์  AVR เป็นไอซีไมโครคอนโทรลเลอร์ของบริษัท Atmel มีสถาปัตยกรรมภายในเป็นแบบ RISC ( reduced instruction set computer)  โดยใช้สัญญาณนาฬิกาเพียง 1 ลูกในการปฏิบัติงานใน 1 คำสั่ง โดยจะประกอบด้วยหน่วยความจำโปรแกรมภายในที่เป็นแบบแฟลช์ โปรแกรมข้อมูลได้แบบ In-System programmable และในบางเบอร์ยังสามารถมีการกำหนดตำแหน่งของหน่วยความจำที่สร้างเป็นบูตโหลดเดอร์ (เขียนโปรแกรมเพื่อติดต่อกับ PC หรือไอซีตัวอื่นๆ และยังสามารถโปรแกรมให้กับตัวเองได้) มีขนาดของหน่วยความจำตามเบอร์ของไอซีแต่ละตัว ยกตัวอย่างคุณสมบัติเบื้องต้นของไอซีเบอร์ Atmega8A ได้ดังต่อไปนี้

    เป็นไอซีขนาด 8-bit ใช้พลังงานต่ำ  
    มีโครงสร้างภายในแบบ RISC
    มีคำสั่งควบคุมการทำงานไมโครคอนโทรลเลอร์ 130 คำสั่ง คำสั่งส่วนมากจะทำสำเร็จในรอบสัญญาณนาฬิกาเดี่ยว
    มีจำนวนรีจิสเตอร์ทั่วไปขนาด 32 x 8   
    มีหน่วยความจำโปรแกรมภายในแบบ Flash ขนาด 8K Bytes มีการโปรแกรมได้แบบ In-System Self-programmable
    มีหน่วยความจำภายในแบบ EEPROM ขนาด 512 Bytes
    มีหน่วยความจำภายในแบบ SRAM ขนาด 1K Byte
    เขียน /ลบ ได้ถึง 10,000 ครัง สำหรับหน่วยความจำแบบ Flash และ 100,000 สำหรับหน่วยความจำแบบ EEPROM
    กำหนดการ Boot Code Section ในตำแหน่งต่างๆ และ Lock Bits ได้ (ทำ boot loadder)
    Programming Lock for Software Security ป้องกันข้อมูล
     Timer/Counters ขนาด 8-bit 2 ตัว และมี Separate Prescaler โหมด Compare อีก 1 ตัว
    One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture
    มี PWM 3 ช่อง
    มีการติดต่อแบบ Master/Slave SPI Serial Interface
    ใช้งาน RC Oscillator ภายในไอซี และภายนอกไอซีได้
    ทำงานที่แรงดัน 2.7 - 5.5V for ATmega8A
    ทำงานที่ความถี่ 0 - 16 MHz for ATmega8A

   คุณสมบัติที่ยังเหลือเปิดอ่านจาก Datasheet ดูเพิ่มเติมได้ที่ Atmel


ข้อสังเกต
    เบอร์ไอซี และรูปร่างของไอซี มีคุณสมบัติบางอย่างไม่เท่ากันเช่น
       
              เบอร์ที่ลงท้ายด้วยอักษรตัว L ค่าความถี่ และแรงดันในการใช้งาน จะต่างกันไปเช่น ATmega8L จะทำงานที่สัญญาณนาฬิกา 0 - 8 MHz และที่แรงดัน 2.7 - 5.5V ส่วน ATmega8 จะทำงานที่สัญญาณนาฬิกา 0 - 16MHz และที่แรงดัน 4.5 - 5.5V

              ส่วนรูปร่างของไอซี เช่นมีรูปร่าง(package) แบบ  TQFP หรือ QFN/MLFจะมี 8-channel ADC ส่วนรูปร่างแบบ PDIP จะมี ADC 6-channel 

 TQFP
QFN/MLF
 PDIP

 


 

ไมโครคอนโทรลเลอร์ AVR ได้แบ่งออกเป็น 4 กลุ่มใหญ่ๆ ดังนี้

 

 

                     
1 TinyAVR —  ATtiny series เช่นเบอร์ Tiny13 , Tiny2313 ...

o    มีหน่วยความจำโปรแกรมขนาด 1–8 kB   
o    มีจำนวนขาใช้งาน 6–32-ขา
o    มีส่วนของอุปกรณ์เสริมที่ค่อนข้างจำกัด



                                    
2 MegaAVR —  ATmega series เช่นเบอร์ ATmega8 ,ATmega16, ATmega32, ATmega64 ...

o    มีหน่วยความจำโปรแกรมขนาด  4 – 256 kB  
o    มีจำนวนขาใช้งาน  28–100 ขา
o    มีชุดคำสั่งที่สามารถจัดการกับหน่วยความจำที่มีขนาดใหญ่มากขึ้น
o    มีส่วนของอุปกรณ์เสริมมากในตัวไอซี



                    

3 XMEGA —  ATxmega series เช่นเบอร์ ATxmega64A1, ATxmega128A1...

o    มีหน่วยความจำโปรแกรมขนาด   16–384 kB   
o    มีจำนวนขาใช้งาน   44–64–100 ขา   
o    มีชุดคำสั่งที่สามารถจัดการกับระบบ  DMA  และการเข้าถึงเหตุการณ์ได้เร็วมากขึ้น โดยใช้การสื่อสารในแบบต่างๆ ได้หลายรูปแบบ
o    มีส่วนของอุปกรณ์เสริมมากในตัวไอซีโดยการใช้งานกับ Digital-to-analog converter (DACs) และยังสามารถเขียนรหัสเฉพาะ โดยเข้ากันได้กับไฟล์แบบ AES และ DES (เช่นใช้สำหรับการกำหนดรหัสส่วนตัว)

 

                                  

4 Application specific AVR เป็นไอซีที่สร้างเพื่อใช้งานเฉพาะ เช่น CAN AVR (ATmega64C1), LCD AVR (ATmega3290P/V), USB AVR (AT90USB1287) ...

 

 

เก็บตกจากเรื่อง

RISC  คือการให้ซีพียูทำงานที่มีไซเกิลแน่นอน โดยลดจำนวนคำสั่งลงให้เหลือคำสั่งพื้นฐานมากที่สุด  แล้วใช้หลักการไปป์ไลน์(pipeline) คือการนำเอาคำสั่งมาเรียงการทำงานให้เป็นแบบขนานเหลื่อมกัน หรือเข้าทำงาน  ในแต่ละตำแหน่งตามลำดับเรียงกันไป ทุกตำแหน่งงานจะมีการงานทำงานตลอดเวลา จึงเป็นการลดจำนวนคำสั่งลงนั้นเอง  ซึ่งเรียกการทำงานของซีพียูแบบนี้เป็นประเภท RISC หรือ Reduce  Instruction set Computer สถาปัตยกรรมที่มีโครงสร้างเป็นแบบ RISC จึงทำงานได้เร็วและ เป็นกลไก ที่สามารถเพิ่มขีดความสามารถโดยรวมได้หนึ่งคำสั่งใช้เวลาหนึ่งลูกของสัญญาณ นั่นคือถ้าเป็น 10 MHz ก็ทำได้ 10 ล้านคำสั่งในเวลา 1 วินาที ทำให้สามารถใช้คำสั่งง่ายขึ้น ไม่ยุ่งยากซับซ้อน

 

เครื่องโปรแกรมแบบ ISP (In-System Programming) (ติดตามวิธีการสร้างเครื่องโปรแกรมแบบต่างๆได้ อีกไม่นานครับ)
            สามารถโปรแกรมข้อมูลลงในหน่วยความจำโปรแกรมได้โดยตรง โดยไม่ต้องถอดไอซีออกจากบอร์ด มีวงจรที่ไม่ซับซ้อน การแก้ไขข้อมูลทำได้สะดวก และรวดเร็ว ดังนั้นการปรับปรุงข้อมูลในหน่วยความจำโปรแกรมที่อยู่ภายในตัวไอซี จึงทำได้อย่างสะดวก และรวดเร็ว ขาสำหรับใช้ในการโปรแกรมแบบ ISP จะประกอบด้วย
            ขา MOSI (Master data Output Slave Data Input)
            ขา MISO (Master Data Input Slave Data Output)
            ขา SCK (Master Clock output, Slave Clock input) และ
            ขา RST ( RESET used to activate the serial Programming )  


                                 

                                               
                                   
                                                       อ้างอิงรูปจาก http://www.sixca.com/eng/articles/avr_isp/

                        

                                                       อ้างอิงรูปจากของผมเอง 6 รูปแบบ


แหล่งที่มา www.en.wikipedia.org/wiki/Atmel_AVR

Designed by Adisak Chinawong