सबसे ज़रूरी चीज़
flash_cc2531
flash_cc2531 आपको Raspberry या CC Debugger की आवश्यकता के बिना अपने Raspberry के अपने CC2531 यूएसबी स्टिक को प्रोग्राम करने में सक्षम बनाता है।
यह सीसी 2530 कुंजी भी प्रोग्राम कर सकता है।
शर्त
आपको या तो Raspberry या Odroid-c2_की आवश्यकता है।
आपको कुंजी के बैंगनी बंदरगाह को _GPIO de Raspberry बंदरगाहों को कनेक्ट करने की आवश्यकता है, उदाहरण के लिए एक केबल CC और चार पंक्तियां Dupont ( अधिक देखें )।
WiringPi इसे स्थापित किया जाना चाहिए ( यदि यह पूर्व-स्थापित नहीं है, तो आप आमतौर पर इसे sudo apt install wiringpi
) के साथ स्थापित कर सकते हैं, अन्यथा Gordon वेबसाइट देखें या यह वैकल्पिक वेबसाइट )।
अंत में आपको कार्यक्रम की आवश्यकता है:
-
आम तौर पर समन्वयक zigbee : संस्करण 1.2 ( अनुशंसित ) या संस्करण 3.0
-
या राउटर (डिग्री 0001 डिग्री): (डिग्री 0003 डिग्री) धावक (डिग्री डिग्री 0004 डिग्री) 1.2 (डिग्री 0006 डिग्री) (डिग्री 0008 डिग्री)
मैंने flash_cc2531 पर Raspberry Pi 3 के साथ _raspbian_का अनुमान लगाया, लेकिन अन्य मॉडलों पर सफल प्रोग्रामिंग की सूचना दी गई:
-
पीआई 4 पर आपको संस्करण 2.52 wiringpi की आवश्यकता होगी: स्थापित wiringPi 2.52 of Gordon वेबसाइट
-
पी 1 और पी 2 पर आपको अन्य पिंस](#uzi_aliajn_pinglojn)का उपयोग करने के लिए [की आवश्यकता होगी।
तैयार
डाउनलोड करें flash_cc2531 आपके raspberry :
git clone https://github.com/jmichault/flash_cc2531.git
बैंगनी बंदरगाह के निम्नलिखित पिन को जीपीओ पोर्ट से कनेक्ट करें: (डिग्री 0001 डिग्री) (डिग्री 0002 डिग्री) (डिग्री 0003 डिग्री) (डिग्री 00011 डिग्री)
raspberry का पिन-लेआउट यहां उपलब्ध है: https://pinout.xyz/
फिर पोर्ट में यूएसबी कुंजी दर्ज करें।
केबल डाउनलोड करें CC और 4 पंक्तियां Dupont महिला से महिला इस उद्देश्य के लिए बिल्कुल सही है: ![ कुंजी की फोटो और raspberry
यह मेरा पसंदीदा विकल्प है, लेकिन यदि आप केबल CC कुंजी पर सीधे केबल Dupont भी चला सकते हैं: उदाहरण के लिए lemariva.com
इसे आज़माएं:
cd flash_cc2531
./cc_chipid
इसे वापस करना होगा:
ID = b524.
(मान भिन्न हो सकता है यदि आपकी कुंजी का हार्डवेयर संस्करण मेरा)के समान नहीं है।
यदि आप 0000 या FFFF देखते हैं तो गलत है:
-
पहले अपनी वायरिंग की जांच करें।
-
फिर एक उच्च आधार समय का प्रयास करें, उदाहरण के लिए
./cc_chipid -m 100
, या./cc_chipid -m 160
या./cc_chipid -m 300
। -
यदि इनमें से कोई भी काम नहीं करता है, तो
make
के साथ पुन: प्रयास करें।
प्रयोग
Save.hex फ़ाइल में फ्लैश मेमोरी की सामग्री को बचाने के लिए:
./cc_read save.hex
( लगभग 2 मिनट ) लेता है।
लाइट स्मारक को हटाने के लिए:
./cc_erase
** नोट: ** आपको ** लिखने से पहले ** हटाएं ( जब तक कि आप वास्तव में नहीं जानते कि आप क्या करेंगे )।
CC2531 फ़ाइल CC2531: पर प्रोग्राम करने के लिए
./cc_write CC2531ZNP-Prod.hex
(लगभग 3 मिनट)तक रहता है।
अन्य पिन का उपयोग करें
सभी आदेश निम्नलिखित तर्क स्वीकार करते हैं:
-
-c पिन: डिफ़ॉल्ट 27 ) द्वारा पिन DC ( बदलें
-
-d पिन: डिफ़ॉल्ट 28 ) द्वारा पिन DD ( बदलें
-
-r पिन: डिफ़ॉल्ट रूप से पिन reset ( बदलें 24 )
-
-m : देरी गुणा सेट करें, और उसके बाद मूल समय ( डिफ़ॉल्ट रूप से: स्वचालित समायोजन )
उपयोग की गई पिन नंबरिंग wiringPi_है। अपने _Raspberry (कॉलम wPi )में लेआउट रखने के लिए gpio readall
का उपयोग करें।
उदाहरण के लिए, यदि आप पिन 3, 11 और 13 का उपयोग करना चाहते हैं:
पोर्ट GPIO: पर पोर्ट को शुद्ध करने के निम्न पिन कनेक्ट करें
-
पिन 1 ( GND ) -> pin 14 ( GND ))
-
पिन 7 ( reset ) -> pin 3 ( wPi 8, BCM2 )
-
पिन 3 ( DC ) -> pin 11 ( wPi 0, BCM17 )
-
पिन 4 ( DD ) -> pin 13 ( wPi 2, BCM27 ))
और अब आप निम्न आदेशों के साथ एक लाइटनिंग मेमोरी को एक पहचान, सहेज सकते हैं, हटाएं और लिख सकते हैं:
./cc_chipid -r 8 -c 0 -d 2
./cc_read -r 8 -c 0 -d 2 save.hex
./cc_erase -r 8 -c 0 -d 2
./cc_write -r 8 -c 0 -d 2 CC2531ZNP-Prod.hex
क्या होगा अगर यह काम नहीं करता है?
-
अन्य सभी प्रोग्राम बंद करें।
-
प्रोग्रामिंग से पहले प्रोसेसर की गति निर्धारित करें। उदाहरण:
sudo echo performance >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
-
उपयोग की गई समय सीमा बढ़ाने के लिए -m विकल्प का उपयोग करें। उदाहरण:
./cc_write -m 300 CC2531ZNP-Prod.hex
-
make
के साथ कार्यक्रम को पुन: व्यवस्थित करें। -
पहले से गिथब](https://github.com/jmichault/flash_cc2531/issues?q=is%3Aissue)पर पूछे गए प्रश्नों में हल [देखें
-
गितुबके बारे में अपना प्रश्न पूछें।
-
अपने पोषण ब्लॉककी जाँच करें
grep Under /var/log/kern.log
यदि आपको बहुत सारी लाइनें मिलती हैं तो आपको पोषण ब्लॉक बदलना होगा।
मैं 15 से अधिक परिधि को जोड़ना चाहता हूं
हम विभिन्न स्थानों में पढ़ते हैं कि कुंजी CC2531 केवल 15 अधिकतम उपकरणों को संभाल सकता है।
वास्तव में, इस कुंजी के मानक फर्मवेयर में 15 प्रत्यक्ष लिंक की सीमा है। लेकिन यदि इनमें से कोई भी कनेक्शन zigbee राउटर ( है और अधिकांश डिवाइस राउटर के रूप में काम करते हैं, उदाहरण के लिए, Philips Hue बल्ब और Ikea TRÅDFRI बल्ब ) का मामला है, तो CC2531 इस राउटर के पीछे उपकरणों को प्रबंधित करें, और राउटर के पीछे उन राउटर से जुड़े …
वास्तव में, CC2531 की सीमा बहुत अधिक है। और यदि एक दिन आप अपने zigbee नेटवर्क पर 50 से अधिक डिवाइस से अधिक हो जाते हैं, तो अधिक महंगा समन्वयक में निवेश करना आपके बजट का एक छोटा सा हिस्सा होगा।
यह भी ध्यान रखें कि प्रोटोकॉल zigbee 32 वें स्थान पर सीधे लिंक की संख्या को सीमित करता है।
मेरी कुंजी के लाल एलईडी है जो रोशनी करता है।
ऐसा होता है कि मुख्य डिपोग्राम, या तो परजीवी द्वारा लोड किए गए पर्यावरण के कारण या खराब पोषण के कारण।
-
अपने पोषण ब्लॉककी जाँच करें
grep Under /var/log/kern.log
यदि आपको बहुत सारी लाइनें मिलती हैं तो आपको पोषण ब्लॉक बदलना होगा।
-
परेशान करने वाली सामग्री को दूर करें: वक्ताओं, वाई-फाई राउटर, …
-
कुंजी को पुन: प्रोग्राम करें
लाइसेंस
यह परियोजना GPL v3 ( देखें COPYING )के तहत लाइसेंस प्राप्त है।