jpnorair 340 Posted March 21, 2015 Share Posted March 21, 2015 Some information about TI's new IoT radio SoC product line is now trickling-out. CC1310 is a sub-1GHz wireless SoC, and CC26xx units are for 2.4GHz PHYs. Otherwise, these SoCs are basically identical. CC1310 | Sub-1 GHz | Wireless Connectivity | Description & parametrics CC2620 | RF4CE | Wireless Connectivity | Description & parametrics The specs of the CC1310 are absolutely insane. There's no question it is built on a 90nm fab, or maybe even 65nm. It contains 3 MCUs: the main unit (Cortex M3) the radio controller (Cortex M0) and a sensor controller that is some sort of proprietary 16 bit. I am interested in working on this platform, and I'm also interested in helping to port Energia to it. What I can do is the firmware side of things. I am not a Java programmer, nor do I want to be one. So I'm putting-out this thread as a "call to arms" for anyone interested in a community-led effort to support the CC1310 with Energia. bluehash, estratos, jazz and 1 other 4 Quote Link to post Share on other sites
spirilis 1,265 Posted March 27, 2015 Share Posted March 27, 2015 @@jpnorair - FYI, I have been thinking about this a bit the past few days, and I think a good approach would be to try and implement the Wiring core using Arduino 1.6+ with their 3rd party hardware support infrastructure. No Java coding required. As a side note, I have embarked this week on an unofficial port of the MSP430 to Arduino 1.6.1 using the new RedHat GCC (msp430-elf-gcc) compiler; this port is targeting the larger F5xxx/6xxx and FRxxxx series chips along with the larger of the G2xxx. So this week I've got pretty cozy with creating and modifying the "platform.txt" and "boards.txt" files for 3rd party hardware support. This is the guide I've been following - https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification My current "platform.txt" looks like this at the moment: ~/Documents/Arduino/hardware/spirilis/msp430/platform.txt name=TI MSP430 Energia-Arduino msp430-elf port version=1.0.0 compiler.path=/opt/local/msp430-elf-gcc/bin/ compiler.c.cmd=msp430-elf-gcc compiler.c.flags=-c -g -Os -ffunction-sections -fdata-sections -Wall -fno-exceptions compiler.cpp.cmd=msp430-elf-g++ compiler.cpp.flags=-c -g -Os -ffunction-sections -fdata-sections -Wall -fno-exceptions -fno-rtti -fpermissive compiler.c.elf.cmd=msp430-elf-g++ compiler.c.elf.flags=-Os -Wl,--gc-sections -minrt compiler.ar.cmd=msp430-elf-ar compiler.ar.flags=rcs compiler.objcopy.cmd=msp430-elf-objcopy compiler.size.cmd=msp430-elf-size # Compile C files recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.c.flags} -mmcu={build.mcu} -DF_CPU_DEFAULT={build.f_cpu} -m{build.optlarge} {build.extra_flags} -DARDUINO={runtime.ide.version} -DENERGIA={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DMSP430_MEMORY_{build.optlarge} {includes} "{source_file}" -o "{object_file}" recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mmcu={build.mcu} -o "{build.path}/{build.project_name}.elf" -u main {object_files} "{build.path}/{archive_file}" "-L{build.path}" -T "{build.ldscript}" -lm {build.optlibs} # Compile C++ files recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} -mmcu={build.mcu} -DF_CPU_DEFAULT={build.f_cpu} -m{build.optlarge} {build.extra_flags} -DARDUINO={runtime.ide.version} -DENERGIA={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DMSP430_MEMORY_{build.optlarge} {includes} "{source_file}" -o "{object_file}" # Compile ASM files recipe.S.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.c.flags} -mmcu={build.mcu} -DF_CPU_DEFAULT={build.f_cpu} -m{build.optlarge} {build.extra_flags} -DARDUINO={runtime.ide.version} -DENERGIA={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DMSP430_MEMORY_{build.optlarge} {includes} "{source_file}" -o "{object_file}" # Create AR archive recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} "{build.path}/{archive_file}" "{object_file}" # Find ELF code size recipe.objcopy.nodebug.pattern="{compiler.path}{compiler.objcopy.cmd}" -g "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.nodebug.elf" recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/{build.project_name}.nodebug.elf" recipe.size.regex=Total\s+([0-9]+).* # Tools definition tools.mspdebug.cmd.path=/usr/local/bin/mspdebug tools.mspdebug.upload.params.verbose=-v tools.mspdebug.upload.params.quiet= tools.mspdebug.upload.pattern="{cmd.path}" {upload.verbose} {upload.protocol} "prog {build.path}/{build.project_name}.elf" tools.mspdebug.bootloader.pattern="{cmd.path}" --allow-fw-update tilib "md 0x1000" (I don't have a good name for my port so I'm calling it Energia-on-Arduino for now.) Boards.txt: # TI MSP430 - Energia-to-Arduino 1.6 port ############################################################## lpmsp430f5529.name=LaunchPad w/ msp430f5529 (16MHz / 16-bit ptr) lpmsp430f5529.upload.tool=mspdebug lpmsp430f5529.upload.protocol=tilib lpmsp430f5529.upload.maximum_size=48128 lpmsp430f5529.build.mcu=msp430f5529 lpmsp430f5529.build.f_cpu=16000000L lpmsp430f5529.build.core=msp430 lpmsp430f5529.build.variant=launchpad_f5529 lpmsp430f5529.build.ldscript=msp430f5529.ld lpmsp430f5529.build.extra_flags= lpmsp430f5529.build.optlarge=small lpmsp430f5529.build.optlibs= ############################################################## lpmsp430f5529_25.name=LaunchPad w/ msp430f5529 (25MHz / 16-bit ptr) lpmsp430f5529_25.upload.tool=mspdebug lpmsp430f5529_25.upload.protocol=tilib lpmsp430f5529_25.upload.maximum_size=48128 lpmsp430f5529_25.build.mcu=msp430f5529 lpmsp430f5529_25.build.f_cpu=25000000L lpmsp430f5529_25.build.core=msp430 lpmsp430f5529_25.build.variant=launchpad_f5529 lpmsp430f5529_25.build.ldscript=msp430f5529.ld lpmsp430f5529_25.build.extra_flags= lpmsp430f5529_25.build.optlarge=small lpmsp430f5529_25.build.optlibs= So with whatever tools TI provides, assuming they can be fully run from the CLI, this "platform.txt" layout should give you a place to start. What dev boards/tools do you have in mind (and/or have already purchased)? Curious what your plans are estratos, jpnorair and bluehash 3 Quote Link to post Share on other sites
spirilis 1,265 Posted March 27, 2015 Share Posted March 27, 2015 As a side note, I believe going this route (Arduino 3rd party HW support) is what the panStamp guys ended up doing. jpnorair and estratos 2 Quote Link to post Share on other sites
jpnorair 340 Posted March 27, 2015 Author Share Posted March 27, 2015 Thanks for the advice. Right now, I still have no CC1310 hardware, so I'm just brainstorming. One great announcement for me is Energia MT. It runs as threads on TI-RTOS (or SYS-BIOS, same thing). So I should be able to port most of that effort to my RTOS, which has much better features (and API) for keeping the apps low-power. Quote Link to post Share on other sites
estratos 5 Posted April 10, 2015 Share Posted April 10, 2015 Hi @@jpnorair and @@spirilis, We are also behind this SOC. We were in fact looking for a Cortex-Mx solution for the new generation of panStamps so TI's announcement is quite timely. As @@spirilis says, we'd rather go with an integration on Arduino 1.6. Unlike Energia, Arduino 1.6 isolates every architecture and platform from the rest, giving you full freedom to maintain your own cores and libraries. Moreover, Arduino 1.6 allows creating custom menus and handle multiple compilers and bootloaders without having to touch a single line of Java code. On the downside, It's almost impossible to make your custom platfoms part of the official Arduino distro so you usually end by releasing your sources in form of a patch, to be installed on top of an exsiting Arduino install. This is a good point about Energia IMO. @@jpnorair, I'm not interested in exploring the multi-tasking possibilities provided by this MCU but for the rest we could cooperate to develop the cores for Energia and Arduino if you want. I've myself not requested TI about one of their beta boards yet. I'm just guessing that TI will release the platform anytime soon. Regards, Daniel. spirilis 1 Quote Link to post Share on other sites
jpnorair 340 Posted April 10, 2015 Author Share Posted April 10, 2015 I'm not interested in exploring the multi-tasking possibilities provided by this MCU but for the rest we could cooperate to develop the cores for Energia and Arduino if you want. That is OK. I am happy to collaborate in any way that makes sense. It sounds like there is still plenty of overlap. So, PanStamp is now added to my mailing list on this topic. estratos 1 Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.