Nota: esta página ha sido traducida automáticamente. Si puede, debe leerlo en uno de estos idiomas:

Lo esencial

flash_cc2531

flash_cc2531 le permite programar su memoria USB CC2531 de su Raspberry, sin la necesidad de Arduino o un CC Debugger.

Requisito previo

Necesita Raspberry o Odroid-c2.
Necesita qué conectar el puerto de depuración de la llave a los puertos GPIO de Raspberry, por ejemplo, un cable CC y cuatro líneas Dupont (ver más).
WiringPi debe instalarse (si no está preinstalado, normalmente puede instalarlo con sudo apt install wiringpi); de lo contrario, consulte el lugar de Gordon o este lugar alternativo ).
Finalmente necesitas el programa:

Proyecté flash_cc2531 en Raspberry Pi 3 con raspbian, pero se informó una programación exitosa en otros modelos:

Preparado

Descarga flash_cc2531 a tu raspberry :

git clone https://github.com/jmichault/flash_cc2531.git

Conecte los siguientes pins del puerto púrpura al puerto GPO:

El diseño de los pines raspberry está disponible aquí: https://pinout.xyz/

Luego ingrese la clave USB en el puerto.

Descargar Cable CC y 4 líneas Dupont Femeninas a mujeres son perfectas para este propósito: ![ Foto de la llave y raspberry

Esta es mi opción favorita, pero si usted No tiene un cable CC También puede reproducir directamente el cable Dupont en la tecla: consulte, por ejemplo, el lemariva.com

[ [ [ [

prueba esto:

cd flash_cc2531
./cc_chipid

Debe volver:

  ID = b524.

(el valor puede ser diferente si la versión de hardware de su llave no es la misma que la mía).
Si ve 0000 o FFFF, algo es incorrecto:

uso

Para guardar el contenido de la memoria flash en el archivo save.hex:

./cc_read save.hex

(toma aproximadamente 2 minutos).

Para eliminar la memoria de rayos:

./cc_erase

Nota: Usted debe borrar antes de escribir (a menos que realmente sepa lo que va a hacer).

Para programar el archivo CC2531ZNP-Prod.hex en la llave CC2531:

./cc_write CC2531ZNP-Prod.hex

(dura aproximadamente 3 minutos).

Usa otros pines

todos los comandos aceptan los siguientes argumentos:

la numeración de pines utilizada es la de wiringPi. Utilice gpio readall para tener el diseño en su columna Raspberry ( wPi ).

Por ejemplo, si desea utilizar los pines 3, 11 y 13:
Conecte los siguientes pins del puerto de purificación a PORT GPIO:

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

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

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

  4. pin 4 ( DD ) -> pin 13 ( wPi 2, BCM27 )

Y ahora puede leer un identificador, guardar, eliminar y escribir una memoria de rayos con los siguientes 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

¿y si no funciona?

  1. detenga todos los demás programas.

  2. establezca la velocidad del procesador antes de programar. Ejemplo:

    sudo echo performance >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    
  3. utilice la opción -m para aumentar los límites de tiempo utilizados. Ejemplo:

    ./cc_write -m 300 CC2531ZNP-Prod.hex
    
  4. recompile el programa con make.

  5. busque una solución en las preguntas ya formuladas en github

  6. Haga su propia pregunta sobre github.

  7. Compruebe su bloque de nutrición

    grep Under /var/log/kern.log
    

    Si obtiene muchas líneas, entonces tiene que cambiar el bloque de nutrición.

Quiero conectar más de 15 periferias.

Leemos en varios lugares que la llave CC2531 solo puede manejar 15 dispositivos máximos.
De hecho, el límite para CC2531 es mucho mayor.
También tenga en cuenta que el protocolo zigbee limita el número de enlaces directos al 32º.

Mi llave tiene su LED rojo que se ilumina.

Sucede que los depósitos clave, ya sea debido al entorno cargado por parásitos o debido a una mala nutrición.

  1. Compruebe su bloque de nutrición

    grep Under /var/log/kern.log
    

    Si obtiene muchas líneas, entonces tiene que cambiar el bloque de nutrición.

  2. Salga de la llave para molestar materiales: altavoces, enrutador Wi-Fi, …

  3. Reprogramar la llave

Licencia

Este proyecto tiene la licencia GPL v3 ( ver COPYING ).