Wednesday, December 18, 2013

eZ430-Chronos 433MHz Black

eZ430-Chronos 433MHz Black, resultado do último black friday.
Kit composto do relógio + chave philips + MSP-ez430U + usb stick cc1111f32.



Existe uma segunda versão desse kit, que a PCBs do relógio e Access point são brancas, e usam um hardware um pouco diferente. No caso do Access point o CC1111F32 foi substituido por um MSP430 + CC1101.

> Hardware do relógio
O relógio é um SoC CC430F6137 (16-bit 20MHz 4KB-RAM 32KB-FLASH 44-GPIOs).
O SoC é composto de um MSP430 + CC1101. 
O MSP430 já vem medidor de tensão/bateria e sensor de temperatura.
Além disso o LCD está ligado no barramento do MSP430, 
junto com um acelerômetro 3d (VTI CMA3000)  e um sensor de pressão atmosférica (VTI SCP1000).
O CC1101 é um rádio sub Giga Hertz com 2 FIFOs de 64 bytes, um para RX e outro para TX.
O MSP430 é completamente reprogramável usando o MSP-ez430U que vem no kit. E já vem com os conectores.

> Hardware do MSP-ez430U Rev2.0
MSP430F1612 (16bit 8MHz 5KB-RAM 55KB-FLASH)
TUSB3410 - Conversor USB / RS232
É possível atualizar o firmware ez430, mas é necessário possuir um MSP-FET430UIF
http://processors.wiki.ti.com/index.php/EZ430_Emulator_Upgrade
http://processors.wiki.ti.com/index.php/MSP-FET430UIF

> Hardware do Access Point
O access point é um SoC CC1111F32. O SoC é composto de um 8051 (8-bit 4KB-RAM 32KB-FLASH), um rádio CC1101 e uma interface USB.
O CC1111F32 é completamente reprogramável usando o CC-Debugger, que tem de ser comprado separadamente.  Além disso, é preciso soldar o conector nas ilhas de solda na parte de baixo do PCB.

> Notas sobre o Hardware
A solução como um todo funciona, mas não é auto-contida. Se der problema no firmware do MSP-ez430U é necessário comprar um MSP-FET430UIF para consertar. Se der problema no firmware do CC1111F32 é necessário comprar um CC-DEBUGGER para consertar. Além disso existe uma mistura de processadores, uma parte usa MSP430 e outra parte usa 8051, o que implica na necessidade de ter dois ambientes de desenvolvimento diferentes.

> Notas sobre o software
1) Chronos: código fonte completo disponível.
2) MSP-ez430U: código fonte indisponível.
3) CC1111F32: código fonte completo disponível.
4) Controle de controle para PC: código fonte parcialmente disponível.


Kit ez430-Chronos

eZ430-Chronos 433MHz Black PCB.
Com bateria nova.

eZ430-Chronos desmontado para gravação




root@ubuntu:~# dmesg
 generic-usb 0003:0451:F432.0002: hiddev0,hidraw1: USB HID v1.01 Device [Texas Instruments Texas Instruments MSP-FET430UIF]


root@ubuntu:~# lsusb
Bus 002 Device 014: ID 0451:16a6 Texas Instruments, Inc. BM-USBD1 BlueRobin RF heart rate sensor receiver
Bus 002 Device 015: ID 0451:f432 Texas Instruments, Inc. eZ430 Development Tool


root@ubuntu:~# aptitude install gcc-msp430 binutils-msp430 gdb-msp430 msp430-libc msp430mcu mspdebug


root@ubuntu:~# mspdebug --usb-list
Devices on bus 002:
    002:017 0451:f432 eZ430-RF2500 [serial: 54FF41E50F942A19]
    002:013 0e0f:0008  [serial: 000650268328]
    002:003 0e0f:0002  [serial: ?]
    002:002 0e0f:0003  [serial: ?]
    002:001 1d6b:0001  [serial: 0000:02:00.0]
Devices on bus 001:
    001:001 1d6b:0002  [serial: 0000:02:03.0]

>Compilar o projeto do relógio
root@ubuntu:~# git clone https://github.com/murix/openchronos-ubuntu_12.04.git
root@ubuntu:~# cd openchronos-ubuntu_12.04
root@ubuntu:~/openchronos-ubuntu_12.04# make

root@ubuntu:~/openchronos-ubuntu_12.04# mspdebug rf2500 'prog build/eZChronos.elf'
MSPDebug version 0.18 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2011 Daniel Beer
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Trying to open interface 1 on 017
Initializing FET...
FET protocol version is 30001000
Configured for Spy-Bi-Wire
Set Vcc: 3000 mV
Device ID: 0x6137
Device: CC430F6137
Code memory starts at 0x8000
Number of breakpoints: 3
fet: FET returned NAK
fet: warning: message 0x30 failed
Erasing...
Programming...
Writing 4096 bytes to 8000 [section: .text]...
Writing 4096 bytes to 9000 [section: .text]...
Writing 4096 bytes to a000 [section: .text]...
Writing 4096 bytes to b000 [section: .text]...
Writing 4096 bytes to c000 [section: .text]...
Writing 3904 bytes to d000 [section: .text]...
Writing  144 bytes to df40 [section: .data]...
Writing  128 bytes to ff80 [section: .vectors]...
root@ubuntu:~/openchronos-ubuntu_12.04# 



http://processors.wiki.ti.com/index.php/EZ430-Chronos

root@ubuntu:~# wget http://www.ti.com/lit/sw/slac388c/slac388c.zip

> instalar mais alguns pacotes rodar o centro de controle
root@ubuntu:~# aptitude install tcl tk xdotool

O pacote xdotool é usado para simular teclado e mouse.


>Regravando o firmware oficial versão 2.1 (contido no slac388c.zip)

root@ubuntu:~/ez430/Recovery/Chronos Watch/Applications# mspdebug rf2500 'prog Recovery_ez430_chronos_433MHz_2_1.txt'
MSPDebug version 0.18 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2011 Daniel Beer
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Trying to open interface 1 on 020
Initializing FET...
FET protocol version is 30001000
Configured for Spy-Bi-Wire
Set Vcc: 3000 mV
Device ID: 0x6137
Device: CC430F6137
Code memory starts at 0x8000
Number of breakpoints: 3
fet: FET returned NAK
fet: warning: message 0x30 failed
Erasing...
Programming...
Writing 4096 bytes to 8000...
Writing 4096 bytes to 9000...
Writing 4096 bytes to a000...
Writing 4096 bytes to b000...
Writing 4096 bytes to c000...
Writing 4096 bytes to d000...
Writing 4096 bytes to e000...
Writing 2221 bytes to f000...
Writing  386 bytes to f8ae...
Writing   38 bytes to ffda...
root@ubuntu:~/ez430/Recovery/Chronos Watch/Applications#

> Manual do usuário
http://www.ti.com/lit/ug/slau292f/slau292f.pdf

> Esquema de navegação nos menus




> Depois de algumas tentativas, o RF finalmente funcionou.
O problema era que estava dando era o reset do Chronos em todas as tentativas de TX do RF.
Para fazer TX todo e qualquer rádio consome uma corrente maior do que a usada no RX.
A bateria com 2,90V ainda funciona direito para todas as funções que não envolve o TX do RF.

Com todos os firmwares testados (oficiais e abertos) a bateria de 2,90V provoca reset, e algumas vezes os botões param de funcionar.
Com a bateria nova (3,01V a 3,12V) todos os firmware funcionaram perfeitamente o TX do RF.
Com o kit conectado no MSP-FET/Debugger também funciona tudo sem problemas, já que alimentação vem direto do USB.

Code Composer Studio (CCStudio) Integrated Development Environment (IDE) v5,
com projeto do ez430-Chronos que vem no slac388c.zip.
O centro de controle vem no pacote slac341d.zip


Bateria com apenas 2.9V provoca reset se rodar qualquer função que use RF
Tela em que fica travado após usar RF com bateria fraca.
Com a bateria nova deu 3,01V


Bateria nova fazendo broadcast RF do acelerômetro sem problemas.