Atenção: esta página foi traduzida automaticamente. Se puder, você deve lê-lo em um destes idiomas:

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:

Projetei flash_cc2531 em Raspberry Pi 3 com raspbian, mas a programação bem-sucedida foi relatada em outros modelos:

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:

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:

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:

  1. pino 1 ( GND ) -> pino 14 ( GND )

  2. pino 7 ( reset ) -> pino 3 ( wPi 8, BCM2 )

  3. pino 3 ( DC ) -> pino 11 ( wPi 0, BCM17 )

  4. 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?

  1. pare todos os outros programas.

  2. defina a velocidade do processador antes de programar. Exemplo:

    sudo echo performance >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    
  3. use a opção -m para aumentar os limites de tempo usados. Exemplo:

    ./cc_write -m 300 CC2531ZNP-Prod.hex
    
  4. recompile o programa com make.

  5. procure uma solução nas questões já feitas no github

  6. Faça sua pergunta sobre github.

  7. 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.

  1. 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.

  2. Afaste a chave para materiais perturbadores: alto-falantes, wi-fi roteador, …

  3. Reprogramar a chave

Licença

Este projeto está licenciado sob a GPL v3 ( ver COPYING ).