Avrdude के साथ बैकअप एवीआर

मैं एटीटीनी एवीआर के साथ भारी प्रयोग कर रहा हूं और मैं हर प्रयोग के लिए एक नया एवीआर खरीदने का जोखिम नहीं उठा सकता, इसलिए मैंने बैकअप स्क्रिप्ट सोचा। विचार यह है कि मैं अपने एवीआर को वापस इस्तेमाल करने के बाद कारखाने के डिफ़ॉल्ट पर ला सकता हूं। विशेष रूप से फ़्यूज़ और अंशांकन मुश्किल हैं, मैं पुनर्प्राप्त करने में सक्षम होना चाहता हूं, क्योंकि वे 'बूट' पैरामीटर, घड़ी की गति और पावर दक्षता बदल सकते हैं।

विचार निम्नलिखित लिपि के साथ मेरे एवीआर बैकअप करना है:

#!/bin/bash

baud=115200
avr=attiny45
dst=$avr.`date +"%Y%m%d_%H%M%s"`
port=/dev/ttyUSB0

# calibration  One or more bytes of RC oscillator calibration data.
# eeprom       The EEPROM of the device.
# efuse        The extended fuse byte.
# flash        The flash ROM of the device.
# fuse         The fuse byte in devices that have only a single fuse byte.
# hfuse        The high fuse byte.
# lfuse        The low fuse byte.
# lock         The lock byte.
# signature    The three device signature bytes (device ID).
# fuseN        The fuse bytes of ATxmega devices, N is an integer number for each fuse supported by the device.
# application  The application flash area of ATxmega devices.
# apptable     The application table flash area of ATxmega devices.
# boot         The boot flash area of ATxmega devices.
# prodsig      The production signature (calibration) area of ATxmega devices.
# usersig      The user signature area of ATxmega devices.

for memory in calibration eeprom efuse flash fuse hfuse lfuse lock signature application apptable boot prodsig usersig; do
        avrdude -p $avr -c stk500v1 -P $port -b $baud -U $memory:r:/dev/stdout:i > ./$dst.$memory.hex ||
                rm ./$dst.$memory.hex
done

एकमात्र निकास फ्यूजन मेमोरी है, लेकिन मैं एटक्समेगा का उपयोग नहीं करता और मुझे बस इसकी परवाह नहीं थी।

EDIT1: I use an ATmega168 powered Arduino Duemanilove with ArduinoISP sketch, which emulates stk500v1, to program my devices. High voltage programming is not supported.

EDIT2: Managed to succesfully unbrick my ATtiny45 with my Arduino too using the information at http://www.rickety.us/2010/03/arduino-avr-high-voltage-serial-programmer/

अब सवाल निम्नानुसार है: बैकअप स्क्रिप्ट डिज़ाइन के रूप में काम करने लगती है, लेकिन इससे पहले कि मैं अपने एवीआर 'ईंट' से पहले, परिणामस्वरूप फाइलों को प्रोग्रामिंग करूँगा, एवीआर को फ़ैक्टरी डिफ़ॉल्ट पर वापस लाएगा?

7
पहला: क्या आपके पास उच्च वोल्टेज एवीआर प्रोग्रामर है? यदि आप नहीं करते हैं, तो एक प्राप्त करें और फिर डिफ़ॉल्ट सेटिंग्स लिखने की चिंता करें, क्योंकि कुछ मामलों में आपको एवीआर को नष्ट करने की आवश्यकता होगी।
जोड़ा लेखक meyank, स्रोत

1 उत्तर

आपकी स्क्रिप्ट से ऐसा लगता है कि आप एक एसटीके 500 बोर्ड का उपयोग कर रहे हैं। आप एटीनी चिप्स के साथ उच्च वोल्टेज प्रोग्रामिंग करने के लिए एसटीके 500 का उपयोग कर सकते हैं, ताकि आप हमेशा एमसीयू को कारखाने के डिफ़ॉल्ट पर रीसेट कर सकें।

ऐसी कुछ चीजें हैं जिन्हें आप अपनी स्क्रिप्ट से ठीक नहीं कर पाएंगे, उदाहरण के लिए यदि आप DWEN सेट करते हैं या रीसेट कार्यक्षमता को अक्षम करते हैं, तो आप आईएसपी इंटरफ़ेस का उपयोग करने में सक्षम नहीं होंगे।

5
जोड़ा
मुझे इस सप्ताह के अंत में डेटाशीट में DWEN की जांच करनी है। मैं अक्षम रीसेट के बारे में सहमत हूं, जो एक ज्ञात/गणना जोखिम है। मेरा एसटीके 500 वास्तव में एक Arduino Duemanilove ArduinoISP एस/डब्ल्यू चला रहा है, इसलिए मुझे संदेह है कि उच्च वोल्टेज प्रोग्रामिंग एक विकल्प है।
जोड़ा लेखक La raison, स्रोत