שְׁאֵלָה:
מה ההשלכות של הפעלת ATmega328P ב 8 מגה הרץ ו -3.3 וולט עם מערכת Arduino?
Vulcan
2015-02-19 04:58:17 UTC
view on stackexchange narkive permalink

אני עובד על ארדואינו מותאם אישית שיפעל ב -3.3 וולט ללא רגולטורים או שבבי USB (לצריכת חשמל). שמעתי שאובר-קלוק על השבב ב -16 מגה-הרץ / 3.3 וולט הוא בדרך כלל בסדר, אבל בכל מקרה הייתי רוצה להישאר בתוך המפרט.

ראשית: לרוץ ב -8 מגה-הרץ, האם אני רק צריך להחליף הגביש? או שיש עוד משהו שעלי לעשות?

שנית: האם אני צריך לבצע שינויים בקוד כלשהו כדי לשקף את המהירות החדשה? אני משתמש בחיבורי סדרתי, SPI ו- I2C בפרויקט זה, יחד עם מערכת ההפעלה NilRTOS ופונקציות מיליס / עיכוב. האם כל אלה יישברו? האם הקוד יפעל לאט יותר בצורה ניכרת?

שלישית: כיצד אוכל לתכנת את השבב? האם זה בסדר לתכנת אותו ב- Arduino Uno ב- 16 MHz, ואז להשתיל אותו ל- arduino המותאם אישית?

רביעית: האם צריכת החשמל תשתנה ב- 8 MHz?

תודה!

יש הרבה לוחות תואמים Arduino 3.3V, Sparkfun Pro mini הוא דוגמה אחת. זה נתמך על ידי IDE ולכן כל ההתאמות הספציפיות לשעון יבוצעו עבורך ברגע שתבחר אותו מהתפריט הנפתח 'לוחות'.
ב -8 מגה-הרץ כנראה יהיה בסדר שתשתמשו במתנד הפנימי במקום בגביש. היזהר כשאתה מרכיב קוד שכאשר אתה בוחר "Pro Mini 328p ב- 8MHz" ש- 8 מוחל על קוד, אז לא הייתי מציע לקמפל ל- 16MHz ואז להשתיל או שאתה עלול לגלות שעיכוב (1000) לוקח שתי שניות כדוגמה פשוטה. ובדוק את חיסכון בחשמל / שינה בקוד H2OhNo. (רגע נוסף כשאני מציע לך בכלל לקבל מתכנת במקום להגביל את עצמך להעלאות סדרתיות, חפש בטינדי "ISP.")
שתיים תשובות:
AMADANON Inc.
2015-02-19 06:32:19 UTC
view on stackexchange narkive permalink

נראה כי הנוסחה היא וולט * 5.9-6.6 = mhz (תקף בין 1.8v ל 4.5v), כך שב 3.3v, זה ייתן 12.8mhz. שים לב שאם אתה פועל במהירות 12.8mhz, כל ירידה מתחת ל -3.3 v עשויה לגרום לבעיות (וקשה מאוד לאבחון גם!) או שאתה עלול לברוח עם זה.

עם זאת, שבבי Arduino Atmega328p יש זיהוי "השחמה" מוגדר על 4.3v - כל טיפה שמתחת לזה, השבב נכבה. אתה יכול להשיג ספק שירותי אינטרנט (AKA ICSP) כדי להחליף את הנתיכים - עבור אל http://www.engbedded.com/fusecalc/ כדי להבין על מה להגדיר נתיכים. אתה יכול גם להשתמש ב- ISP כדי לקרוא את הנתיכים הנוכחיים, או אכן לתכנת מחדש את השבב ללא לוח Arduino - לכל הפרויקטים שלי כותרת בת 6 פינים. אם תעשה זאת, לפני שתתכנת מחדש באמצעות לוח הארדואינו, תצטרך "צריבת Bootloader" (בתפריט הכלים). שים לב שניתן עדיין לבצע תכנות באמצעות Arduino IDE.

לחלופין, אם אתה רוצה לעבור "אור" (ויש לך ספק אינטרנט), אתה יכול לשנות את הנתיכים לשימוש בשעון הפנימי 8mhz - זה מתפנה גם 2 סיכות נוספות! שים לב, עם זאת, שהשעון הפנימי עשוי להיסחף 1.2 שעות ביום (= 5%), לעומת 1.7 שניות ביום (= 20 חלקים למיליון) על גבי גביש קוורץ טיפוסי. אם אינך משתמש בו לצורך שעון זמן, כנראה שזה לא משנה.

יהיה עליך לבצע שינויים בתזמון, עבור הקוד שלך - עליך להוסיף boards.txt עם הגדרות נכונות עבור השבב / שעון השעון שלך וכו '- אתה יכול להעתיק את ההגדרות מהערך ללוח, לשנות את השם ולשנות את ההגדרה "build.f_cpu"; הפעל מחדש (או התחל) את ה- Arduino IDE שלך, עבור אל "כלים-> לוח" ובחר את הלוח שהוספת.

אתה יכול להזיז את השבב על הלוח / לתכנת אותו מחדש (שים לב שה- לוח שנבחר ב- Tools-> Board הוא לוח FINAL, ולא לוח התכנות). היזהר לחבר / לנתק אותו - בסופו של דבר, תכופף את הסיכות! לחלופין, תוכלו להשתמש ב- ISP (ICSP), כאמור לעיל - מומלץ מאוד. תכנות ספק שירותי האינטרנט יעבוד גם אם השבב הוא ברירת המחדל של היצרן, כל עוד יש לו שעון עובד.

כמה כוח משתמש בשבב תלוי מאוד במה שאתה עושה איתו - לא רק מהירויות שעון, מקור שעון וכו 'אלא גם מצבי שינה. אם אתה ישן הרבה, זה עלול למשוך פחות כשאתה רץ מהר יותר מאשר לרוץ לאט יותר - אם כמעט כל הזמן שלך ישן, יש לספור את צריכת החשמל במחזור שעון ולא לשנייה - אם השעון שלך הוא חצי מהמהירות, ו חצי זרם, ואז אתה מצייר את אותו זרם לכל הוראה. מכיוון ששאר הזמן שלך מושקע בשינה, אתה לא מקבל שום תועלת. ראה http://www.gammon.com.au/power לקבלת פירוט טוב מאוד של צריכת החשמל, טיפים לחיסכון בחשמל וכו '.

אם אתה מאט השעון נמוך מדי, סדרתי ו- i2c עשויים להפוך לא אמינים (אלא אם כן אתה מאט את המהירות), אבל הייתי מצליח להיות מסוגל לרדת ל 1mhz לפני זה כדי להיות בעיה - שבב 1mhz מנסה לעשות 9600bps יש 104 הוראות לכל קצת נתונים שהועברו. i2c פועל במהירות של 100 קילו-הרץ, כך שתקבל 10 הוראות לביט (ב -1 מ"ז) - אולי תדחוף אותו. 8mhz צריך להיות בסדר. בדוק, בדוק, בדוק.

עדכון: ישנן 3 הגדרות אפשריות לזיהוי השחמה - ישנם 3 ערכים אפשריים עבור ה- AtMega328p: מושבת, 1.8v, 2.7v ו- 4.3v. התרשמתי (לעיל) שארדואינו מוגדר בדרך כלל ל -4.3 v; כנראה שזה לא המקרה (ראה הערה למטה). אני זוכר שראיתי איפשהו שיש זיהוי השחמה. זה דבר שכדאי לזכור, אם הארדואינו שלך מתאפס, במיוחד כאשר אתה מציב עומסים גדולים יותר על הסוללה (מנועים פועלים, נוריות מרובות וכו ').

תודה על התגובה הזו! אני קצת מבולבל ממה שאמרת על כך שגלאי השחמה נכבה מתחת ל -4.3 וולט. אני פועל עכשיו ב -3.7 וולט וזה עובד בסדר; לא היה צריך לבצע שינויים בנתיכים.
@user40, ראה את הקטע "עדכן" בתחתית ההודעה שלי.
Nick Gammon
2015-06-26 02:31:21 UTC
view on stackexchange narkive permalink

ראשית: כדי להפעיל 8 מגה-הרץ, האם אני רק צריך להחליף את הגביש? או שיש עוד משהו שעלי לעשות?

לא, הפעל על המתנד הפנימי כפי שהציע AMADANON Inc.

לחלופין, הגדר את השעון "חלק את 8 "נתיך (אשר יפעיל אותו ב -2 מגה-הרץ מגביש 16 מגה-הרץ) ואז בקוד לשנות את החלוקה חזרה ל -2 כלומר.

  #include <avr / power.h>void setup () {// שעון איטי לחלק ב- 2 שעון_התקנה (שעון_דיב_2); } // סוף ההתקנה  

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

שנית: האם עלי לבצע שינויים בקוד כלשהו כדי לשקף את המהירות החדשה? אני משתמש בחיבורי סדרתי, SPI ו- I2C בפרויקט זה, יחד עם מערכת ההפעלה NilRTOS ופונקציות מיליס / עיכוב.

אם אתה אומר ל- IDE שיש לך מעבד 8 מגה-הרץ (למשל. Lilypad), עליו להתאים עיכובים, חישובי קצב שידור וכו 'כראוי.

האם כל אלה יישברו?

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

האם הקוד יפעל לאט יותר?

ובכן כן, הוא יפעל בחצי מהירות לעומת 16 מגה-הרץ.

שלישית: כיצד אוכל לתכנת את השבב? האם זה בסדר לתכנת אותו ב- Arduino Uno ב- 16 מגה-הרץ, ואז להשתיל אותו ל- arduino המותאם אישית?

אתה יכול לעשות זאת. לחלופין, תוכל לחבר כותרת ICSP או כותרת FTDI ולתכנת אותה באתר.

דוגמאות כאן: http://www.gammon.com.au/breadboard

רביעית: האם צריכת החשמל תשתנה ב- 8 מגה-הרץ?

כן, הוא מצטמצם מעט.

אתה יכול להפחית אותו משמעותית יותר על ידי שימוש בטכניקות אחרות כמתואר ב http://www.gammon.com.au/power, ומופנה על ידי AMADANON Inc.

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


שאלה ותשובה זו תורגמה אוטומטית מהשפה האנגלית.התוכן המקורי זמין ב- stackexchange, ואנו מודים לו על רישיון cc by-sa 3.0 עליו הוא מופץ.
Loading...