A coisa principal
flash_cc2531
flash_cc2531 Permite programar o seu CC2531 USB Stick do seu Raspberry, sem a necessidade de Arduino ou A CC Debugger.
Pré-requisito
Você precisa de Raspberry ou Odroid-c2.
Você precisa do que conectar a porta de depuração da chave às portas GPIO de Raspberry, por exemplo, um cabo CC e quatro linhas Dupont (veja mais).
WiringPi deve ser instalado (se não estiver pré-instalado, geralmente você pode instalá-lo com sudo apt install wiringpi
), caso contrário, consulte o local de Gordon ou este local alternativo ).
Finalmente você precisa do programa:
-
Geralmente Coordenador zigbee : Versão 1.2 ( Recomendado ) ou versão 3.0
-
Ou roteador zigbee : Roteador zigbee 1.2
Projetei flash_cc2531 em Raspberry Pi 3 com raspbian, mas a programação bem-sucedida foi relatada em outros modelos:
-
no pi 4, você precisará da versão 2.52 de wiringpi : instalar wiringPi 2.52 de Gordon site
-
no pi 1 e no pi 2 você precisará para usar outros pinos.
Preparado
Baixe flash_cc2531 para seu raspberry :
git clone https://github.com/jmichault/flash_cc2531.git
Conecte os seguintes pinos da porta roxa à porta GPO:
O layout do pino raspberry está disponível aqui: https://pinout.xyz/
Em seguida, insira a chave USB na porta.
Download Cable CC e 4 linhas Dupont Feminino para o sexo feminino são perfeitos para este propósito: ![ Foto da chave e o raspberry
Esta é a minha opção favorita, mas se você Não tenha um cabo CC Você também pode reproduzir diretamente o cabo Dupont na chave: veja, por exemplo, o lemariva.com [ [ [ [
tente isto:
cd flash_cc2531
./cc_chipid
Deve retornar:
ID = b524.
(o valor pode ser diferente se a versão do hardware da sua chave não for igual à minha).
Se você vir 0000 ou FFFF algo estiver incorreto:
-
primeiro verifique sua fiação.
-
em seguida, tente um tempo base maior, por exemplo com
./cc_chipid -m 100
, ou./cc_chipid -m 160
ou./cc_chipid -m 300
. -
se nada disso funcionar, tente recompilar com
make
.
uso
Para salvar o conteúdo da memória flash no arquivo save.hex:
./cc_read save.hex
(leva cerca de 2 minutos).
Para excluir a memória do relâmpago:
./cc_erase
Nota: Você deve deletar antes de escrever (a menos que você realmente saiba o que vai fazer).
Para programar o arquivo CC2531ZNP-Prod.hex na tecla CC2531:
./cc_write CC2531ZNP-Prod.hex
(dura cerca de 3 minutos).
Use outros pinos
todos os comandos aceitam os seguintes argumentos:
-
-c pino: alterar o pino DC (por padrão 27)
-
-d pino: alterar o pino DD (por padrão 28)
-
-r pino: alterar o pino reset (por padrão 24)
-
-m : altera o multiplicador de atraso e, portanto, o tempo base (por padrão: ajuste automático)
a numeração do pino usada é a de wiringPi. Use gpio readall
para ter o layout em sua coluna Raspberry ( wPi ).
Por exemplo, se você quiser usar os pinos 3, 11 e 13:
Conecte os seguintes pinos de porta purificadora à porta GPIO:
-
pino 1 ( GND ) -> pino 14 ( GND )
-
pino 7 ( reset ) -> pino 3 ( wPi 8, BCM2 )
-
pino 3 ( DC ) -> pino 11 ( wPi 0, BCM17 )
-
pino 4 ( DD ) -> pino 13 ( wPi 2, BCM27 )
E agora você pode ler um identificador, salvar, excluir e escrever uma memória relâmpago com os seguintes comandos:
./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
e se não funcionar?
-
pare todos os outros programas.
-
defina a velocidade do processador antes de programar. Exemplo:
sudo echo performance >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
-
use a opção -m para aumentar os limites de tempo usados. Exemplo:
./cc_write -m 300 CC2531ZNP-Prod.hex
-
recompile o programa com
make
. -
procure uma solução nas questões já feitas no github
-
Faça sua pergunta sobre github.
-
Verifique seu bloco de nutrição
grep Under /var/log/kern.log
Se você tiver muitas linhas, então você tem que mudar o bloco de nutrição.
Eu quero conectar mais de 15 periferia
Nós lemos em vários lugares que a chave CC2531 só pode lidar com 15 dispositivos máximos.
De fato, o limite para CC2531 é muito maior.
Observe também que o Protocolo zigbee limita o número de links diretos para 32º.
Minha chave tem seu LED vermelho que ilumina.
Acontece que os principais desprogramas, devido ao meio ambiente carregado por parasitas ou devido à má nutrição.
-
Verifique seu bloco de nutrição
grep Under /var/log/kern.log
Se você tiver muitas linhas, então você tem que mudar o bloco de nutrição.
-
Afaste a chave para materiais perturbadores: alto-falantes, wi-fi roteador, …
-
Reprogramar a chave
Licença
Este projeto está licenciado sob a GPL v3 ( ver COPYING ).