Skip to content
This repository has been archived by the owner on Sep 10, 2019. It is now read-only.

Прошивка через Arduino

Илья Киров edited this page Jun 1, 2018 · 11 revisions

Прошивка через Arduino (или ESP826) выполняется с использованием проекта https://github.com/wavesoft/CCLib

Но с небольшими доработками!!!

Один из пользователей описал, что смог прошить CC2531 используя CCLib и описал свои замечания.

Согласно описанию сделал клон библиотеки CCLib с небольшими изменениями для прошивки через Arduino:

  • Выставлены таймауты операций, чтобы не “зависало” при блокировке порта
  • После открытия порта (почему-то у меня в Windows 7) Arduino перезагружается и соответственно не отвечает на запросы - сделана пауза в 3 секунды (где-то вычитал в интернете такой прием).
  • Понижена скорость порта до 9600, т.к. на другой скорости выходя ошибки коммуникации: ERROR: Could not read from the serial port!

Проверял на Arduino UNO прошивал стик CC2531

  1. Скачиваем и распаковываем архив с библиотекой https://github.com/kirovilya/CCLib.

  2. Прошиваем в Arduino скетч CCLib\Arduino\CCLib\Examples\CCLib_proxy\CCLib_proxy.ino

При прошивке через ESP8266, необходимо изменить подключение (п.5) и соответственно номера пинов в файле Arduino/CCLib/Examples/CCLib_proxy/CCLib_proxy.ino

  1. Если не установлен, то установить Python 2.7 или старше (проверял на python 2.7.13)

  2. Если не установлен pyserial, то выполнить pip install -r requirements.txt или pip install pyserial==3.0.1

  3. Соединить контакты согласно описанию https://github.com/kirovilya/CCLib#1-prepare-your-arduino-board НО в моем случае я подключал совсем без резисторов и объединил контакты CC_DD_I и CC_DD_O вместе и подключил к DD контакту DEBUG-разъема!

Соединял только 3 указанные контакта и GND. Во время прошивки стик должен быть подключен к USB.

  1. После этого попытаться получить информацию о чипе - если это получится, значит подключение выполнено верно (пример для порта COM9):
C:\Projects\CCLib\Python>python cc_info.py -p COM9
INFO: Found a CC2531 chip on COM9

Chip information:
      Chip ID : 0xb524
   Flash size : 256 Kb
    Page size : 2 Kb
    SRAM size : 8 Kb
          USB : Yes

Device information:
 IEEE Address : 00124b0014aa
           PC : 0000

Debug status:
 [ ] CHIP_ERASE_BUSY
 [ ] PCON_IDLE
 [X] CPU_HALTED
 [ ] PM_ACTIVE
 [ ] HALT_STATUS
 [ ] DEBUG_LOCKED
 [X] OSCILLATOR_STABLE
 [ ] STACK_OVERFLOW

Debug config:
 [ ] SOFT_POWER_MODE
 [ ] TIMERS_OFF
 [X] DMA_PAUSE
 [X] TIMER_SUSPEND

Или вот еще один пример успешного подключения на Mac

  1. Если всё успешно, то скачиваем модифицированную для прошивки через Arduino прошивку

  2. Запускаем прошивку (выполняется долго, порядка 2-3 часа):

C:\Projects\ZigBee>python cc_write_flash.py -e -p COM9 --in=CC2531ZNP-Pro-Secure_LinkKeyJoin_mod.hex
INFO: Found a CC2531 chip on COM9

Chip information:
      Chip ID : 0xb524
   Flash size : 256 Kb
    Page size : 2 Kb
    SRAM size : 8 Kb
          USB : Yes
Sections in CC2531ZNP-Pro-Secure_LinkKeyJoin_mod.hex:

 Addr.    Size
-------- -------------
 0x0000   8176 B
 0x1ff6   10 B
 0x3fff0   1 B
 0x2000   239616 B

This is going to ERASE and REPROGRAM the chip. Are you sure? <y/N>:  y

Flashing:
 - Chip erase...
 - Flashing 4 memory blocks...
 -> 0x0000 : 8176 bytes 
    Progress 100%... OK
 -> 0x1ff6 : 10 bytes 
    Progress 100%... OK
 -> 0x3fff0 : 1 bytes 
    Progress 100%... OK
 -> 0x2000 : 239616 bytes 
    Progress 100%... OK

Completed