जब Arduino Uno का उपयोग ISP करता है तो “Yikes! अमान्य डिवाइस हस्ताक्षर "का अर्थ है खराब कनेक्शन, खराब कॉन्फ़िगरेशन या एवरड्यूड का बुरा संस्करण?


12

मैं Arduino UNO का उपयोग एक ATTINY45 में पूर्व-संकलित हेक्स छवि को प्रोग्राम करने के लिए कर रहा हूँ, Arduino IDE डायरेक्टरी में Avrdude का उपयोग करते हुए, विंडोज 7 पर। Uno में ISP स्केच है, जो उदाहरण निर्देशिका से लोड किया गया है और जो काम करता है- दिल की धड़कन एलईडी अच्छी तरह से दालें।

हार्डवेयर पक्ष में मेरे पास यह सेटअप है , ATTINY को छोड़कर, सतह-माउंट है, जो एक सर्फ़बोर्ड के साथ अपने सभी पिनों को सत्यापित करके एक वोल्टमीटर के साथ मिलाया जाता है। मैं एक हेडर-पिन स्ट्रिप का उपयोग करता हूं, जो कि सर्फ़बोर्ड को छूने वाले पिनों को प्राप्त करने के लिए, यूनो से एटीटीआईएनवाई तक सिग्नल प्राप्त करने के लिए आयोजित किया जाता है।

ये कमांड लाइन हैं, जिन्हें मैंने IDE के डिबगिंग आउटपुट को देखने से लिया है:

REM set the fuse for 8MHz, so the ISP programmer can work
C:\Progra~1\Arduino\hardware\tools\avr\bin\avrdude -CC:\Progra~1\Arduino\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -pattiny45 -cstk500v1 -P\\.\COM7 -b19200 -e -Uefuse:w:0xff:m -Uhfuse:w:0xdf:m -Ulfuse:w:0xe2:m 
REM load the program
C:\Progra~1\Arduino\hardware\tools\avr\bin\avrdude -CC:\Progra~1\Arduino\hardware/tools/avr/etc/avrdude.conf -v -pattiny45 -cstk500v1 -P\\.\COM7 -b19200 -Uflash:w:firefly.hex:i
REM set fuse for 1MHz, as the project requires
C:\Progra~1\Arduino\hardware/tools/avr/bin/avrdude -CC:\Progra~1\Arduino\hardware/tools/avr/etc/avrdude.conf -v -pattiny45 -cstk500v1 -P\\.\COM7 -b19200 -e -Uefuse:w:0xff:m -Uhfuse:w:0xdf:m -Ulfuse:w:0x62:m 

-मैं उन अलग से चलाने की कोशिश, लेकिन हमेशा इस त्रुटि:

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
     Double check connections and try again, or use -F to override
     this check.

लेकिन कभी-कभी संख्या ff0000 या ffff00 या ffffff होती है

मैंने पढ़ा कि "Arduino ने Arduino बोर्ड को स्केच अपलोड करने के लिए एवड्रूड के थोड़े संशोधित संस्करण का उपयोग किया है। बोर्ड के डिवाइस हस्ताक्षर के लिए मानक संस्करण क्वेरीज़ एक तरह से बूटलोडर द्वारा समझ में नहीं आया, जिसके परिणामस्वरूप यह त्रुटि हुई।" क्या इसका मतलब यह है कि Arduino avrdude का उपयोग एक नई ATTINY चिप के साथ, इस पर कोई बूटलोडर नहीं, यह भी उसी त्रुटि का कारण होगा? दूसरे शब्दों में, एक गैर-Arduino-bootloaded AVR चिप को क्वेरी करने के लिए संशोधित avrdude असमर्थ है?

या क्या उस त्रुटि का सीधा मतलब है कि मेरे सभी प्रोग्रामर पिन और ATTINY के बीच अच्छा संपर्क नहीं है?

और, क्या फ़्यूज़ सेटिंग्स वास्तव में आवश्यक हैं, क्या यूनो 1MHz पर चलने वाले एक अटारी में फ्लैश को प्रोग्राम कर सकता है और इस प्रकार मुझे कुछ कदम बचा सकता है?

(मैं सिर्फ एक "वास्तविक" प्रोग्रामर खरीदूंगा, लेकिन अगले दो दिनों में इस कोड को प्राप्त करने की आवश्यकता है, और नोवा स्कोटिया के एक ग्रामीण हिस्से में हूं)


प्रोग्रामर को सेट करने का प्रयास करें -c avrisp। मुझे लगता है कि आप इसे 1 मेगाहर्ट्ज पर बिना किसी समस्या के प्रोग्राम कर सकते हैं।
user2973

1
जब मैं arduino IDE से अपलोड करता हूं और प्रोग्रामर को "Arduino को ISP" के रूप में सेट करता हूं तो यह -carduinostk500 का उपयोग नहीं करता है । आईडीई से अटारी पर पलक कार्यक्रम को अपलोड करने का प्रयास करें। इस तरह से आप सबसे नीचे सही कमांडलाइन देख सकते हैं, यदि आप सेटिंग्स में "वर्बोज़ आउटपुट" को सक्षम करते हैं।
गेरबन

क्या आपने पहले ArduinoISP स्केच अपलोड किया था?
फिल्लीएनजे

फिल, मैंने इन चरणों से पहले ArduinoISP स्केच को Uno में लोड किया, यह सफल रहा, और मुझे पिन 9 पल्स में हरे रंग की "दिल की धड़कन" एलईडी दिखाई देती है। Gerben / user2973, मैंने "-carduino" की कोशिश की, मैं अगले "-c avrisp" की कोशिश करूंगा। धन्यवाद।
यारी

यह ISP <-> लक्ष्य कनेक्शन समस्या जैसा दिखता है। आपके सर्किट में कुछ भी जो लाइनों को लोड कर सकता है? क्या आंतरिक घड़ी के लिए एटिनी फ्यूज अभी भी निर्धारित हैं, या आप एक बाहरी प्रदान कर रहे हैं? क्या आप सुनिश्चित हैं कि आपके पास सभी चार सिग्नल तार और जमीन जुड़े हुए हैं, और सही क्रम में हैं? शायद आपको सोल्डर सेटअप करना चाहिए, यह सत्यापित करने के लिए कि यह आपके हाथ से चलने वाला तरीका नहीं है (हालाँकि मैंने भी इसका इस्तेमाल किया है)
क्रिस स्ट्रैटन

जवाबों:


12

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

  1. प्रोग्रामर (Uno) और ATTINY के बीच खराब संपर्क के कारण "Yikes! अमान्य डिवाइस हस्ताक्षर" त्रुटि हो रही थी।

  2. बूटलोडर के नए माइक्रोकंट्रोलर पर नहीं होने से इसका कोई लेना-देना नहीं था। नई ATTINY45 चिप को इन-सर्किट प्रोग्रामर को काम करने के लिए बूटलोडर की जरूरत नहीं है।

  3. यूनो ATTINY45 को अपनी गति, 1MHz या 8MHz दोनों में से किसी एक पर कॉन्फ़िगर कर सकता है। फ़ैक्टरी सेटिंग्स ठीक हैं, और फ़्यूज़ को बदलने की आवश्यकता नहीं है।

  4. दोनों avrdude संस्करणों ने प्रोग्रामिंग के लिए काम किया- 6.1 लेखक की साइट से, और Arduino IDE से संशोधित।

  5. avrdude के किसी भी उपयोग के माध्यम से कर सकते हैं ऊनो कार्यक्रम -c avrisp, -c arduinoया -c stk500v1, है ना चाहे किसी भी करता है।

एक छोटा सा सवाल जिसका मैं जवाब नहीं दे पा रहा था, वह था ऊना कार्यक्रमों की गति क्या थी (अरुडिनो आई / ओ पिन और माइक्रोकंट्रोलर के बीच संचार की गति फ्लैश हो रही थी)। क्या यह धारावाहिक बंदरगाह की गति से संबंधित है? लेकिन इस समस्या का जवाब देना उचित नहीं था। कोई और इसे पूछ सकता है कि क्या पर्याप्त उत्सुक है।


2
ArduinoISP SPI इंटरफ़ेस को घड़ी / 128 पर सेट करता है, इसलिए 16 MHz के लिए Uno कनेक्टेड AVR को 16 MHz / 128 = 125 kbit / s पर प्रोग्राम किया जाता है। लेकिन सीमित कारक धारावाहिक गति हैं और जब PROG_FLICKER सेट हो जाता है, तो प्रत्येक पृष्ठ के लिए 30 एमएस विलंब जोड़ा जाता है।
user2973

4

मुझे बिल्कुल यह समस्या थी। यदि बाहरी घड़ी के लिए एटीटीनी सेट की जाती है, तो ArduinoISP बाहरी क्रिस्टल के बिना इसे प्रोग्राम करने में सक्षम नहीं होगा। एक 16 मेगाहर्ट्ज क्रिस्टल और 2 कैपेसिटर से जुड़ा और पूरी तरह से काम किया।

(तब मैं एट्टीनी को आंतरिक घड़ी में सेट करने में सक्षम था, क्रिस्टल को हटा दिया, और फिर क्रिस्टल के बिना पूरी तरह से काम किया।)


1

बोर्ड और उनके फ्यूज विवरण को पहले से सेट किए गए से जोड़ें और यह काम करेगा।

सिर्फ C:\Program Files\Arduino\hardware\arduino\avr\boards.txtजोड़ने के लिए और बोर्ड विवरण जोड़ें।

########
############ Definitions for ATmega 8MHz 
##############################################################
atmega16-8.name=Atmega16 (internal 8MHz clock)

atmega16-8.upload.tool=avrdude

atmega16-8.upload.protocol=stk500v1

atmega16-8.upload.maximum_size=14336
atmega16-8.upload.speed=19200

atmega16-8.bootloader.low_fuses=0xE8
atmega16-8.bootloader.high_fuses=0x99

atmega16-8.build.mcu=atmega16
atmega16-8.build.f_cpu=8000000L
atmega16-8.build.core=arduino:arduino
atmega16-8.build.variant=mega16

##############################################################
############################

मै उसका इस्तेमाल किया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.