Perkara utama
flash_cc2531
flash_cc2531 Membolehkan anda untuk memprogramkan batang USB CC2531 anda Raspberry, tanpa memerlukan Arduino atau A CC Debugger.
Prasyarat
Anda memerlukan Raspberry atau Odroid-c2.
Anda memerlukan apa yang menghubungkan port debug kunci ke port GPIO Raspberry, misalnya satu kabel CC dan empat baris Dupont (lihat lebih jauh).
WiringPi mesti dipasang (jika tidak dipasang sebelumnya, anda biasanya boleh memasangnya dengan sudo apt install wiringpi
), jika tidak, lihat tapak Gordon atau tapak alternatif ini ).
Akhirnya anda memerlukan program:
-
Umum Penyelaras zigbee : Version 1.2 (Disyorkan) atau](https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/Z-Stack_3.0.x/bin)](https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/Z-Stack_3.0.x/bin)](https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/Z-Stack_3.0.x/bin)
-
Atau router zigbee : Router zigbee 1.2
Saya mengunjurkan flash_cc2531 pada Raspberry Pi 3 dengan raspbian, tetapi pengaturcaraan yang berjaya dilaporkan pada model lain:
-
pada pi 4 anda memerlukan versi 2.52 dari wiringpi : memasang wiringPi 2.52 dari Gordon laman web
-
pada pi 1 dan pi 2 anda memerlukan untuk menggunakan pin lain.
Bersedia
Muat turun flash_cc2531 ke raspberry :
git clone https://github.com/jmichault/flash_cc2531.git
Sambungkan pin berikut Port Ungu ke Port GPO:
Susun atur pin raspberry boleh didapati di sini: https://pinout.xyz/
Kemudian masukkan kekunci USB ke pelabuhan.
Muat turun kabel CC dan 4 baris Dupont Perempuan ke perempuan adalah sempurna untuk tujuan ini: Foto kekunci dan raspberry ](https://github.com/jmichault/files/raw/master/Raspberry-CC2531.jpg) Ini adalah pilihan kegemaran saya, tetapi jika anda tidak mempunyai kabel CC Anda juga boleh secara langsung melepaskan kabel Dupont pada kunci: lihat contohnya tapak [ lemariva.com notenoughtech.com
cuba ini:
cd flash_cc2531
./cc_chipid
Ia mesti kembali:
ID = b524.
(nilainya mungkin berbeza jika versi perkakasan kunci anda tidak sama dengan kunci milik saya).
Jika anda melihat 0000 atau FFFF sesuatu yang salah:
-
periksa dahulu pendawaian anda.
-
kemudian cuba masa asas yang lebih tinggi, misalnya dengan
./cc_chipid -m 100
, atau./cc_chipid -m 160
atau./cc_chipid -m 300
. -
jika tidak ada yang berfungsi, cuba kumpulkan semula dengan
make
.
penggunaan
Untuk menyimpan kandungan memori flash ke fail save.hex:
./cc_read save.hex
(mengambil masa kira-kira 2 minit).
Untuk memadam memori kilat:
./cc_erase
Catatan: Anda mesti hapus sebelum menulis (kecuali anda benar-benar tahu apa yang akan anda lakukan).
Untuk program fail CC2531ZNP-Prod.hex pada kekunci CC2531:
./cc_write CC2531ZNP-Prod.hex
(berlangsung sekitar 3 minit).
Gunakan pin lain
semua arahan menerima hujah berikut:
-
-c pin: ubah pin DC (secara lalai 27)
-
Pin_-d_ : ubah pin DD (secara lalai 28)
-
Pin_-r_ : ubah pin reset (secara lalai 24)
-
-m : ubah pengganda kelewatan, dan oleh itu masa asas (secara lalai: pelarasan automatik)
penomboran pin yang digunakan ialah wiringPi. Gunakan gpio readall
untuk mempunyai susun atur di ruangan Raspberry ( wPi ).
Contohnya, jika anda ingin menggunakan pin 3, 11 dan 13:
Sambungkan pin pin yang berikut untuk port GPIO:
-
pin 1 ( GND ) -> pin 14 ( GND )
-
pin 7 ( reset ) -> pin 3 ( wPi 8, BCM2 )
-
pin 3 ( DC ) -> pin 11 ( wPi 0, BCM17 )
-
pin 4 ( DD ) -> pin 13 ( wPi 2, BCM27 )
Dan sekarang anda boleh membaca pengenal, menyimpan, memadam dan menulis memori kilat dengan arahan berikut:
./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
bagaimana jika ia tidak berfungsi?
-
hentikan semua program lain.
-
tetapkan kelajuan pemproses sebelum pengaturcaraan. Contoh:
sudo echo performance >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
-
gunakan pilihan -m untuk meningkatkan had masa yang digunakan. Contoh:
./cc_write -m 300 CC2531ZNP-Prod.hex
-
menyusun semula program dengan
make
. -
cari jalan penyelesaian dalam soalan yang sudah diajukan di github
-
Kemukakan soalan anda sendiri mengenai github.
-
Semak blok pemakanan anda
grep Under /var/log/kern.log
Sekiranya anda mendapat banyak baris maka anda perlu menukar blok pemakanan.
Saya mahu menyambung lebih daripada 15 pinggir
Kami membaca di pelbagai tempat yang kunci CC2531 hanya boleh mengendalikan 15 peranti maksimum.
Malah, had untuk CC2531 jauh lebih tinggi.
Juga ambil perhatian bahawa protokol zigbee menghadkan bilangan pautan langsung ke 32.
Kuncinya mempunyai LED merah yang menerangi.
Ia berlaku bahawa deprogram utama, sama ada disebabkan oleh persekitaran yang dimuatkan oleh parasit atau disebabkan oleh pemakanan yang kurang baik.
-
Semak blok pemakanan anda
grep Under /var/log/kern.log
Sekiranya anda mendapat banyak baris maka anda perlu menukar blok pemakanan.
-
Dapatkan kunci untuk mengganggu bahan: Pembesar suara, Wi-Fi Router, …
-
Reprogram kekunci
Lesen
Projek ini dilesenkan di bawah GPL v3 ( lihat COPYING ).