ראשי מאמרים השוואה בין מיקרו-בקרים מסידרת PIC של חברת Microchip לבין בקרים מסידרת AVR של חברת ATMEL.
השוואה בין מיקרו-בקרים מסידרת PIC של חברת Microchip לבין בקרים מסידרת AVR של חברת ATMEL.

ATMEL Logo

Microchip LOGO

מאמר זה סוקר את ההבדלם העיקריים בין שתי סדרות של בקרים מתוכנתים של שתים מהחברות המובילות בשוק בקרי ה 8 ביט - ATMEL ו-MicroChip. הסקירה תתמקד בקבוצה זו של במיקרו-בקרים המתאפינים במחיר זול יחסית (1-7$), צריכת הספק נמוכה ושטח קטן, והינם בעלי יכולות מגוונות, המספיקות למערכות רבות שאינן דורשות יכולות עיבוד אותות גבוהות. תחילה אסקור את ההבדלים העיקריים בין הטכנולוגיות של החברות ולאחר מכן אשווה קריטריונים שונים בין שני רכיבים דומים משתי החברות.

 

ארכיטקטורת מעבד

זיכרון

זיכרון הנתונים במעבדי PIC מחולק לבנקים שונים (כתלות בגודל הזיכרון) מה שמצריך שינוי של מצביע הבוחר את הבנק זיכרון הנוכחי איתו עובדים בכל גישה לזיכרון. דבר זה מקשה מאוד כשעובדים עם מבנה נתונים שגולש מגודל הבנק. (כאשר עובדים עם קומפיילר C מנגנון זה "מטופל" ע"י הקומפיילר). ב AVR כל זיכרון ה DATA ניתן לגישה באופן ישיר.

מנגנון פסיקות

לרכיבים ממשפחת AVR יש מנגנון פסיקות משוכלל התומך במספר רב יחסית של פסיקות הממומשות בחומרה,כלומר ארכיטקטורה נפרדת המפעילה רוטינת פסיקה מווקטור יחודי בזיכרון לסוגי פסיקות שונים כגון פסיקות שעונים/ADC/פסיקות ממקור חיצוני ועוד, בעוד שבמעבדים ממשפחת  PIC יש רק שתי רמות של פסיקות: נמוכות וגבוהות, כך שנאלצים שכמה רכיבי מערכת המוציאים פסיקות יפעילו את אותה רוטינת פסיקה, ורק בה יבדק בקוד מקור הפסיקה ובהתאם הטיפול בה.

מבנה הרגיסטרים ואוצר פקודות

ל PIC יש רק גריסטר לשימוש כללי אחד, בעוד של AVR יש 32 רגיסטרים. יתרון זה יכול לקצר חישוב של פעולות מורכבות, שכן ניתן לשמור נתונים זמניים על יותר רגיסטרים ובכך להקטין את מחזורי השעון הנדרשים לפעולה. לרכיבי AVR אוצר פקודות גדול יותר הממומש בחומרה, המתבצעות ב1-2 מחזורי שעון, מה שיכול להאיץ את ביצועי המעבד.

צריכת הספק

באופן כללי, בקרים ממשפחת PIC נחשבים בעלי צריכת אנרגיה נמוכה יותר במצב שינה, כלומר עדיפים לשימוש במוצרים בהם נדרש אורך חיי סוללה ארוך (כגון שלטי טלוויזה, שעונים.)

מחיר

בקרי ממשפחת PIC נחשבים לזולים יותר בכמויות קטנות, לכן נוחים יותר מבחינת עלויות פיתוח ויצור ל מוצרים בכמות קטנה.

צורבים, כלי איתור שגיאות (debug) ופיתוח

ICD2 DebuggerATMel AVR JTAG MicroChip משתמשת בפרוטוקול עצמאי שלה עבור כלי איתור השגיאות שלה (debugger) הנקרא ICD- In Circuit Debugger, בעוד ש ATMEL עושה שימוש בפרוטוקול JTAG הסטנדרטי.

בנוסף, לרכיבי PIC יש אפשרות לתכנות של עד שלוש נקודות עצירה (BreakPoints) -  מה שאומר שניתן לראות את מצב הרגיסטרים במערכת רק ב 3 נקודות שונות בכל הרצה. זוהי מגבלה מהותית שמנסיוני האישי מקשה את פעולת איתור השגיאות. בבקרים של חברת ATMEL אין הגבלה כזו הדוקה, כך שתהליך האיתור השגיאות קל משמעותית.

סביבת פיתוח וקומפיילרים

ATMEL AVR Studio

MicroChip's MPLABחברת MicroChip מציעה את סביבת הפיתוח (IDE) שלה הנקראת MPLAB. בסביבה זו ניתן לעבוד עם קומפיילר אסמבלר חינמי ועם סידרה של קומפילרים לשפת C עבור ארכיטקטורות מעבד השונות -  C18,C30 הכוללות ספריות נוחות מאוד לשימוש עבור התקנים הפריפריאליים של הבקרים.

ישנם עוד חברות רבות המציעות קומפיילי C עבור מעבדי PIC כגון HighTech ועוד.
מנסיוני האישי, סביבת פיתוח זו אינה נוחה (ונחותה בהרבה מסביבות פיתוח קוד ל PC כגון סביבת הפיתוח  VisualStudio של מייקרוסופט)

ATMEL מציעה את סביבת הפיתוח שלה AVR STUDIO  שהיא נוחה למדי, אך קצת כבדה ומסורבלת.
יש גם את IAR שהיא סביבה מצויינת. יש לא מעט קומפילרים ל C עבור בקרי AVR ואף קומפיילר gcc.

 

 

 

 

 

 

 

 

 

 

 

 

 

השוואה בין שני רכיבים ספציפיים משתי החברות

כדי לבצע את ההשוואה, חיפשתי שני רכיבם ברמות מחירים זהות ובעלי יכולות עיקריות זהות, כך שיהיה ניתן לבצע השוואה נכונה והוגנת בין המשפחות. אומנם אני אשווה כאן בין שני רכיבים ספצפיים, אך מכיוון שמרבית הרכיבים במשפחה מבוססים על טכנולוגית ליבה זהה, ההשוואה הספציפית יכולה להעיד על כלל הרכיבים ממשפחות אלה.

הקריטריונים המרכזיים שחיפשתי היו:

1. מחיר בסביבות ה 4$
2. גודל הזיכרון הפנימי: כמות הקוד שניתן לכתוב לבקר. 
3. ממשק תקשורת מהר - במידה והחומרה שבליבה הבקר תתממשק למחשב, רצוי שיהיה לה ממשק בעל קצב העברת נתונים גבוה ואמין, לכן בחרתי ברכיבים להם יכולת מובנת לממשק USB.

הרכיבים שבחרתי הם:  ATMega32U של Atmel ו PIC18F4550 של Microchip.

להלן טבלה המפרטת את נפח הזיכרונות והרכיבים הפריפריאלים העיקריים הממומשים בכל אחד מהבקרים:

 

ATMega32U4PIC18F4550Microcontroller
ATMELMicrochipCompany
AVRPICSeries
32K x 8bit16K x 16bitProgram Memory
2.5Kbyte2kbyteData Memory - RAM
2635Number of I/O
44TQFP44TQFPPackage
16Mhz48MhzSpeed
1612MIPS - Million instructions/sec
1kByte2kbyteEEPROM emory Size
12X 10bit13X 10bitAnalog To Digital Conversion
11timers: 8 bit
33timers: 1 bit
42PWM channels
11SPI
11I2C
11USB 2.0 Full Speed 12Mbps
2.7-5.5V4.2-5.5VVoltage
1-3uA0.1-2uAsleep mode current 5V 25Deg
3.5$4.1$Price @ 100qu

רואים כי אין הבדלים גדולים בין שני הרכיבים. יתרון קל ל PIC בצריכת הספק במצב שינה, ומספר פיני I/O. 
יתרון ל AVR בנפח זכרון, בתכנון יותר נכון של ארכיטקטורת ה ADC והטיימרים.

סיכום

היתרונות הבולטים של רכיבי AVR הם בסביבת פיתוח נוחה יותר, בעיקר בגלל ה debugger המוגבל של MicroChip ובגלל ארכיטקטורת מערכת נכונה יותר.

היתרונות של מעבדי PIC הם סף כניסה נמוך יותר, צריכת זרם נמוכה, וכמות I/O גדולה יותר לאריזה.

נראה שאין מנצחת ברורה, ושהשימוש צריך להיות על פי היישום. ובכל זאת, אם עליכם לבחור רק בטכנולוגיה אחת, הייתי ממליץ על בקרי AVR.

תגובות
הוסף תגובה
הוסף תגובה
שם:
דואל:
 
כותרת:

!joomlacomment 4.0 Copyright (C) 2009 Compojoom.com . All rights reserved."