energia / Energia

Fork of Arduino for the Texas Instruments LaunchPad's
http://energia.nu
Other
793 stars 673 forks source link

CC430 Support #81

Closed zacmanchester closed 12 years ago

zacmanchester commented 12 years ago

Hi,

I've started implementing support for the cc430f5137 chip and the em430f5137rf900 board: http://www.ti.com/tool/em430f5137rf900

Right now the blinking light examples run but it looks like it will take some work to get the timers, ADCs, and USCIs working. It's in my fork under Branch_CC430_support.

I'm really interested in putting together an RF library for the built in CC1101 core. Anyone else interested?

robertinant commented 12 years ago

Hi Zac,

Having support for the F5137 would be great. I would definitely be interested in pulling some of that code into master when the time comes.

Robert

dberenguer commented 11 years ago

Hi Zac,

I'm interested in joining your efforts to port the CC430 platform to Energia. How can I help? Have you managed to make the RF part work?

Daniel.

jpnorair commented 11 years ago

Hello, I have quite a bit of CC430 and CC1101 supporting code in OpenTag (github.com/jpnorair/opentag). It might be more sophisticated to what you have in mind, but it's there. Also, I've been working on a port of Energia as an OpenTag task, but there is nothing new posted on GitHub yet for this.

What boards are you supporting for CC430, and what method of upload?

Best regards, JP Norair

dberenguer commented 11 years ago

Hi JP,

I read your posts about your own implementation but I'm really looking forward to port Energia to the CC430 MCU. I've contacted Zac, the guy behind the KickSat project. He's done something about this some time ago and is willing to retake the efforts now that some more people wants to contribute.

I have some experience with the OpenChronos platform but what I really want is to consider developing a new generation of panStamps based on the CC430 IC. In the meantime, I've ordered a MSP430-CCRF platform from Olimex.

Congratulations JP for your work around OpenTag and DASH7.

Best regards,

Daniel Berenguer

On 24 November 2012 00:11, JP Norair notifications@github.com wrote:

Hello, I have quite a bit of CC430 and CC1101 supporting code in OpenTag ( github.com/jpnorair/opentag). It might be more sophisticated to what you have in mind, but it's there. Also, I've been working on a port of Energia as an OpenTag task, but there is nothing new posted on GitHub yet for this.

What boards are you supporting for CC430, and what method of upload?

Best regards, JP Norair

— Reply to this email directly or view it on GitHubhttps://github.com/energia/Energia/issues/81#issuecomment-10671452.

jpnorair commented 11 years ago

What is your method of sketch upload? BSL? ez430? I am interested in this work too, because maybe I can re-use it for my CC430 projects.

Best regards, JPN

On 23 Nov 2012, at 15:22, dberenguer wrote:

Hi JP,

I read your posts about your own implementation but I'm really looking forward to port Energia to the CC430 MCU. I've contacted Zac, the guy behind the KickSat project. He's done something about this some time ago and is willing to retake the efforts now that some more people wants to contribute.

I have some experience with the OpenChronos platform but what I really want is to consider developing a new generation of panStamps based on the CC430 IC. In the meantime, I've ordered a MSP430-CCRF platform from Olimex.

Congratulations JP for your work around OpenTag and DASH7.

Best regards,

Daniel Berenguer

On 24 November 2012 00:11, JP Norair notifications@github.com wrote:

Hello, I have quite a bit of CC430 and CC1101 supporting code in OpenTag ( github.com/jpnorair/opentag). It might be more sophisticated to what you have in mind, but it's there. Also, I've been working on a port of Energia as an OpenTag task, but there is nothing new posted on GitHub yet for this.

What boards are you supporting for CC430, and what method of upload?

Best regards, JP Norair

— Reply to this email directly or view it on GitHubhttps://github.com/energia/Energia/issues/81#issuecomment-10671452.

— Reply to this email directly or view it on GitHub.

zacmanchester commented 11 years ago

Hi JP and Daniel,

I'm really interested in supporting my own board:

https://github.com/zacinaction/kicksat

But it's closely based on the TI evaluation board for the CC430f5137 and supporting the MCU/Radio would make it easy to port to any other board using the same chip.

I have a radio library working and the arduino Serial library ported. I've partially implemented I2C (wire) but it's buggy (works with the HMC5883L magnetometer, doesn't work with other chips I've tried).

I'm using the ez430. I've actually made a shield board for the launchpad to mount my boards for programming:

http://www.kickstarter.com/projects/zacinaction/kicksat-your-personal-spacecraft-in-space/posts/327570

I'm very excited to collaborate with some other people and I'd really like to get this integrated back upstream into Energia.

On Fri, Nov 23, 2012 at 4:14 PM, JP Norair notifications@github.com wrote:

What is your method of sketch upload? BSL? ez430? I am interested in this work too, because maybe I can re-use it for my CC430 projects.

Best regards, JPN

On 23 Nov 2012, at 15:22, dberenguer wrote:

Hi JP,

I read your posts about your own implementation but I'm really looking forward to port Energia to the CC430 MCU. I've contacted Zac, the guy behind the KickSat project. He's done something about this some time ago and is willing to retake the efforts now that some more people wants to contribute.

I have some experience with the OpenChronos platform but what I really want is to consider developing a new generation of panStamps based on the CC430 IC. In the meantime, I've ordered a MSP430-CCRF platform from Olimex.

Congratulations JP for your work around OpenTag and DASH7.

Best regards,

Daniel Berenguer

On 24 November 2012 00:11, JP Norair notifications@github.com wrote:

Hello, I have quite a bit of CC430 and CC1101 supporting code in OpenTag ( github.com/jpnorair/opentag). It might be more sophisticated to what you have in mind, but it's there. Also, I've been working on a port of Energia as an OpenTag task, but there is nothing new posted on GitHub yet for this.

What boards are you supporting for CC430, and what method of upload?

Best regards, JP Norair

— Reply to this email directly or view it on GitHub< https://github.com/energia/Energia/issues/81#issuecomment-10671452>.

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHubhttps://github.com/energia/Energia/issues/81#issuecomment-10672061.

dberenguer commented 11 years ago

I'm willing to use ez430 as programmer for some time but I think the idea would be to switch to BSL for the final target board.

Looking forward to receive my eval board and test your fork, Zac.

Daniel.

On 24 November 2012 03:24, Zac Manchester notifications@github.com wrote:

Hi JP and Daniel,

I'm really interested in supporting my own board:

https://github.com/zacinaction/kicksat

But it's closely based on the TI evaluation board for the CC430f5137 and supporting the MCU/Radio would make it easy to port to any other board using the same chip.

I have a radio library working and the arduino Serial library ported. I've partially implemented I2C (wire) but it's buggy (works with the HMC5883L magnetometer, doesn't work with other chips I've tried).

I'm using the ez430. I've actually made a shield board for the launchpad to mount my boards for programming:

http://www.kickstarter.com/projects/zacinaction/kicksat-your-personal-spacecraft-in-space/posts/327570

I'm very excited to collaborate with some other people and I'd really like to get this integrated back upstream into Energia.

  • Zac

On Fri, Nov 23, 2012 at 4:14 PM, JP Norair notifications@github.com wrote:

What is your method of sketch upload? BSL? ez430? I am interested in this work too, because maybe I can re-use it for my CC430 projects.

Best regards, JPN

On 23 Nov 2012, at 15:22, dberenguer wrote:

Hi JP,

I read your posts about your own implementation but I'm really looking forward to port Energia to the CC430 MCU. I've contacted Zac, the guy behind the KickSat project. He's done something about this some time ago and is willing to retake the efforts now that some more people wants to contribute.

I have some experience with the OpenChronos platform but what I really want is to consider developing a new generation of panStamps based on the CC430 IC. In the meantime, I've ordered a MSP430-CCRF platform from Olimex.

Congratulations JP for your work around OpenTag and DASH7.

Best regards,

Daniel Berenguer

On 24 November 2012 00:11, JP Norair notifications@github.com wrote:

Hello, I have quite a bit of CC430 and CC1101 supporting code in OpenTag ( github.com/jpnorair/opentag). It might be more sophisticated to what you have in mind, but it's there. Also, I've been working on a port of Energia as an OpenTag task, but there is nothing new posted on GitHub yet for this.

What boards are you supporting for CC430, and what method of upload?

Best regards, JP Norair

— Reply to this email directly or view it on GitHub< https://github.com/energia/Energia/issues/81#issuecomment-10671452>.

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHub< https://github.com/energia/Energia/issues/81#issuecomment-10672061>.

— Reply to this email directly or view it on GitHubhttps://github.com/energia/Energia/issues/81#issuecomment-10673115.

jpnorair commented 11 years ago

I'm working on a BSL and a GoodFET build for CC430, open source and on my GitHub when I'm finished.

BSL for CC430 is a small challenge, because it requires some pin toggling in front of the UART communication. I am not an expert in Wiring systems (Arduino, Energia, etc), so I don't know how these use BSL. If you are using a normal serial line driver or a USB-serial bridge supporting Control Pins (RTS, CTS, DTR, DTE), it should be possible to implement a BSL for CC430. If anyone on this list has experience with this kind of thing, I would love to learn from you.

Best regards, JPN

On 24 Nov 2012, at 01:50, dberenguer wrote:

I'm willing to use ez430 as programmer for some time but I think the idea would be to switch to BSL for the final target board.

Looking forward to receive my eval board and test your fork, Zac.

Daniel.

On 24 November 2012 03:24, Zac Manchester notifications@github.com wrote:

Hi JP and Daniel,

I'm really interested in supporting my own board:

https://github.com/zacinaction/kicksat

But it's closely based on the TI evaluation board for the CC430f5137 and supporting the MCU/Radio would make it easy to port to any other board using the same chip.

I have a radio library working and the arduino Serial library ported. I've partially implemented I2C (wire) but it's buggy (works with the HMC5883L magnetometer, doesn't work with other chips I've tried).

I'm using the ez430. I've actually made a shield board for the launchpad to mount my boards for programming:

http://www.kickstarter.com/projects/zacinaction/kicksat-your-personal-spacecraft-in-space/posts/327570

I'm very excited to collaborate with some other people and I'd really like to get this integrated back upstream into Energia.

  • Zac

On Fri, Nov 23, 2012 at 4:14 PM, JP Norair notifications@github.com wrote:

What is your method of sketch upload? BSL? ez430? I am interested in this work too, because maybe I can re-use it for my CC430 projects.

Best regards, JPN

On 23 Nov 2012, at 15:22, dberenguer wrote:

Hi JP,

I read your posts about your own implementation but I'm really looking forward to port Energia to the CC430 MCU. I've contacted Zac, the guy behind the KickSat project. He's done something about this some time ago and is willing to retake the efforts now that some more people wants to contribute.

I have some experience with the OpenChronos platform but what I really want is to consider developing a new generation of panStamps based on the CC430 IC. In the meantime, I've ordered a MSP430-CCRF platform from Olimex.

Congratulations JP for your work around OpenTag and DASH7.

Best regards,

Daniel Berenguer

On 24 November 2012 00:11, JP Norair notifications@github.com wrote:

Hello, I have quite a bit of CC430 and CC1101 supporting code in OpenTag ( github.com/jpnorair/opentag). It might be more sophisticated to what you have in mind, but it's there. Also, I've been working on a port of Energia as an OpenTag task, but there is nothing new posted on GitHub yet for this.

What boards are you supporting for CC430, and what method of upload?

Best regards, JP Norair

— Reply to this email directly or view it on GitHub< https://github.com/energia/Energia/issues/81#issuecomment-10671452>.

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHub< https://github.com/energia/Energia/issues/81#issuecomment-10672061>.

— Reply to this email directly or view it on GitHubhttps://github.com/energia/Energia/issues/81#issuecomment-10673115.

— Reply to this email directly or view it on GitHub.

dberenguer commented 11 years ago

Silly question: wasn't BSL already implemented in the Energia IDE?

RickKimball commented 11 years ago

No, BSL is only available on some of the msp430 chips. With the low end msp430g series, the g2553 chip is the only one that has it. In addition, you would have to use an external UART interface to connect to the proper pins. SBW is much more convenient when using the msp430 Launchpad as it cost less than most usb interface dongles.

dberenguer commented 11 years ago

But SBW is JTAG... Is there any pure serial bootloader available for the whole MSP430/CC430 families? I personally don't mind having to use external USB/UART converters.

Thanks!

dberenguer commented 11 years ago

Answering my own question, it seems that the CC430 processors support BSL so I now understand JP's concerns about adding support for this from Energia.

jpnorair commented 11 years ago

TI's document slau319b is a pdf with information about the MSP430 & CC430 bootloader design. On CC430, you need to wire the UART TX/RX to pins 1.5 and 1.6 (maybe not in that order, check your datasheet, but on those pins), and you need to wire DTR to RST and RTS to TCK. The host needs to control DTR and RTS in a certain way to enable the bootloader. After that, you have a 9600 baud serial line, and a basic BSL protocol.

The Processing serial libraries probably need to be modified in order to do the DTR & RTS sequence. Someone who knows Java and Processing could make these additions easily, I would think.

Then you would need to implement the BSL protocol as something that the processing interface can use. That should be pretty easy too, again, if you know Processing and Java. The BSL protocol is very simple.

I should point out that the only real benefit of using BSL vs. SBW is that you don't need the proprietary SBW adapter. GoodFET support for SBW is still in alpha, and even then you will need an adapter.

Another option with the CC430 is to build a runtime sketch loader. This is in fact what I am doing at the beginning, since my firmware platform includes an NDEF protocol library. It will be no trouble to load sketches during platform runtime.

On 25 Nov 2012, at 08:30, dberenguer notifications@github.com wrote:

Answering my own question, it seems that the CC430 processors support BSL so I now understand JP's concerns about adding support for this from Energia.

— Reply to this email directly or view it on GitHub.

dberenguer commented 11 years ago

Implementing BSL from Java seems a simple task. My problem is that I know nothing about the Wiring/Processing IDE. Do you know if different firmware loaders can coexist?

Developing a wireless firmware loader would be great too. Is this what you're doing JP?

jpnorair commented 11 years ago

Here is the last post I'm going to make on this item (#81), and hopefully it answers all the questions. If you want to discuss more, maybe the Energia IRC is a good place to continue. (#energia on freenode)

The short: I am implementing both wireline and wireless sketch upload, usable during runtime without resetting the MCU. Wireless upload is quite a big task, but my platform (OpenTag/DASH7) already has libraries for user authentication, file access, and encryption, so the hard part is already done.

Obviously, this isn't going to work on MSP430G-based Launchpads. I use CC430F5 and MSP430F55 boards, and for these it is completely possible. On future MSP430F5529 launchpad or Wolverine boards it will work, also. On KickSat, it will work also, unless Zac is doing something really weird.

The long: The Sketch loader I'm doing uses OpenTag/DASH7 as a platform, and DASH7 specifies an NDEF-based message pipe that can be used over any communication interface. If you use it over a wire (e.g. /dev/ttyXXX) or the DASH7 wireless interface it does not matter, but there are some caveats:

General Features and To-dos:

Sketch Loader Notes:

On 25 Nov 2012, at 14:05, dberenguer notifications@github.com wrote:

Implementing BSL from Java seems a simple task. My problem is that I know nothing about the Wiring/Processing IDE. Do you know if different firmware loaders can coexist?

Developing a wireless firmware loader would be great too. Is this what you're doing JP?

— Reply to this email directly or view it on GitHub.

dberenguer commented 11 years ago

Thanks JP for the details.

rei-vilo commented 8 years ago

See #912

cameronus commented 7 years ago

Have any other efforts been started to have native support for the CC430 in Energia?

rei-vilo commented 7 years ago

What do you mean by « native support » ?

cameronus commented 7 years ago

Native support, as in Energia will work with the CC430 out of the box, instead of having to install a board manually.

robertinant commented 7 years ago

http://www.panstamp.com/product/197/

You can load it into the Arduino IDE through the custom board manager URL in you preferences. See the tutorial here:

https://github.com/panStamp/panstamp/wiki/Installing-panStamp-cores-and-libraries-for-Arduino

cameronus commented 7 years ago

I need to use the standalone CC430 in a custom PCB. I have tried using their custom arduino boards but it hasn't worked out for me.

robertinant commented 7 years ago

You should be able to customize the panStamp core to suite your needs. To answer your previous question, no, we do not have any plans to enable a CC430 core at this point. If your requirements is < 1GHz then I recommend looking at the CC1310 which is enabled in Energia. On top of that you get TI-RTOS which enables you to do Multi Tasking,

cameronus commented 7 years ago

I haven't been able to get panstamp to work with my CC430F5137. Regarding the CC1310, I need it to work at super long range. The CC430 works well with my needs. Does the 1310 also have the 430's capabilities?

jpnorair commented 7 years ago

Comparing CC430 to CC1310 is like comparing a bicycle and a Ducati… except in this case the Ducati uses less energy to run.

CC1310 has 10x the computing power and 5x the memory. The radio core is also maybe 5x superior. CC1350 has integrated BLE as well, which can allow some pretty interesting applications. But let’s stick to CC1310 for now.

I’m working on ultra-long range solutions for CC1310. To a certain extent, so is TI-Norway. They are continuously improving their long-range mode, but they have other things to work on as well. In any case, people are working on this. Check out the “Long Range Mode” for CC1310.

If you want to use TI RTOS, CC1310 is pretty easy to get up and running due to all the sample code. Not sure if it can run Energia yet. I’m working to port it to some different vendor-agnostic environments.

Best, JPN

On 28 Oct 2016, at 4:14 , Cameron Jones notifications@github.com wrote:

I haven't been able to get panstamp to work with my CC430F5137. Regarding the CC1310, I need it to work at super long range. The CC430 works well with my needs. Does the 1310 also have the 430's capabilities?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/energia/Energia/issues/81#issuecomment-256812575, or mute the thread https://github.com/notifications/unsubscribe-auth/AAQhR-tjlxBehuSOKbrQbD3AAD6xvOOGks5q4UyQgaJpZM4AEJ7E.

dberenguer commented 7 years ago

Just to add some advantages of CC430 over CC1310, CC430 is cheaper, it provides a unique ID and it's supported by energia/arduino.

On 28 Oct 2016 09:10, "JP Norair" notifications@github.com wrote:

Comparing CC430 to CC1310 is like comparing a bicycle and a Ducati… except in this case the Ducati uses less energy to run.

CC1310 has 10x the computing power and 5x the memory. The radio core is also maybe 5x superior. CC1350 has integrated BLE as well, which can allow some pretty interesting applications. But let’s stick to CC1310 for now.

I’m working on ultra-long range solutions for CC1310. To a certain extent, so is TI-Norway. They are continuously improving their long-range mode, but they have other things to work on as well. In any case, people are working on this. Check out the “Long Range Mode” for CC1310.

If you want to use TI RTOS, CC1310 is pretty easy to get up and running due to all the sample code. Not sure if it can run Energia yet. I’m working to port it to some different vendor-agnostic environments.

Best, JPN

On 28 Oct 2016, at 4:14 , Cameron Jones notifications@github.com wrote:

I haven't been able to get panstamp to work with my CC430F5137. Regarding the CC1310, I need it to work at super long range. The CC430 works well with my needs. Does the 1310 also have the 430's capabilities?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub < https://github.com/energia/Energia/issues/81#issuecomment-256812575>, or mute the thread https://github.com/notifications/unsubscribe-auth/AAQhR- tjlxBehuSOKbrQbD3AAD6xvOOGks5q4UyQgaJpZM4AEJ7E.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/energia/Energia/issues/81#issuecomment-256852112, or mute the thread https://github.com/notifications/unsubscribe-auth/AA19-zMm8Ny6pzv71ncGDg8E_Zedsdfuks5q4Z_6gaJpZM4AEJ7E .

spirilis commented 7 years ago

CC1310 provides a unique ID (a whole 802.15.4 64-bit IEEE address, in fact). Its radio happens to be a heck of a lot more sensitive and with more processing power to do crazy stuff like DSSS at 500KHz w/ convolutional encoding and all that. But... more expensive.

dberenguer commented 7 years ago

Thanks Eric for the tip. I din't find any reference to that ID when I read the datasheet last time.

Daniel Berenguer http://www.panstamp.com

On 28 October 2016 at 12:46, Eric notifications@github.com wrote:

CC1310 provides a unique ID (a whole 802.15.4 64-bit IEEE address, in fact). Its radio happens to be a heck of a lot more sensitive and with more processing power to do crazy stuff like DSSS at 500KHz w/ convolutional encoding and all that. But... more expensive.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/energia/Energia/issues/81#issuecomment-256891250, or mute the thread https://github.com/notifications/unsubscribe-auth/AA19-y5x52URTkufgaBnQy-6os07tTc5ks5q4dKSgaJpZM4AEJ7E .

spirilis commented 7 years ago

Yeah it's in there but buried a bit. IIRC the EasyLink TI examples have references to the FCFG (factory config) locations where it resides.

jpnorair commented 7 years ago

Yes, CC1310 is suitable for FCC 15.247 in the USA using DSSS.

The cost of implementing FHSS to clear 15.247, or the cost of certifying against 15.249 or 15.231, quite easily offsets the added cost of the CC1310 ICs.

CC430 is on 180nm and CC1310 is on 90nm. Their dies are actually comparable in size. There’s no reason the CC1310 won’t get cheaper and cheaper as it matures. If you’re planning for the future, it seems to me to be the clearly better choice.

On 28 Oct 2016, at 13:46 , Eric notifications@github.com wrote:

CC1310 provides a unique ID (a whole 802.15.4 64-bit IEEE address, in fact). Its radio happens to be a heck of a lot more sensitive and with more processing power to do crazy stuff like DSSS at 500KHz w/ convolutional encoding and all that. But... more expensive.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/energia/Energia/issues/81#issuecomment-256891250, or mute the thread https://github.com/notifications/unsubscribe-auth/AAQhR2lnDu2y5m_VL4eBkuoN4ZiOeZlOks5q4dKSgaJpZM4AEJ7E.

spirilis commented 7 years ago

@dberenguer Here's what I'm using in one of my libraries:

// Ripped from EasyLink: IEEE address location burned into ROM
//Primary IEEE address location - FCFG (Factory Config) MAC_15_4_0 register represents bits 31:0 of the 64-bit IEEE 802.15.4 address
#define EASYLINK_PRIMARY_IEEE_ADDR_LOCATION   0x500012F0
UInt32 *ieeeAddr = (UInt32 *)EASYLINK_PRIMARY_IEEE_ADDR_LOCATION;

return *ieeeAddr;

My understanding is the full 64-bit address is stored little-endian so the first 4 bytes are the lower 32 bits, second 4 bytes are the upper 32 bits. My own RF library only uses 32-bit addressing.

edit: CC13xx/26xx TRM, http://www.ti.com/lit/swcu117 page 735 - FCFG - mentions the "MAC_15_4_n" fields, page 737 call out the "MAC_15_4_0" and "MAC_15_4_1" offsets as 2F0 and 2F4, hence 0x500012F0 for MAC_15_4_0 (lower 32-bits). Looks like prior to that there's a MAC_BLE_0/1 though I'm not sure the CC1310 would implement that, the 1350 and 2640/2650 would.

cameronus commented 7 years ago

@jpnorair @spirilis @dberenguer The CC1310 seems like it might be a good choice, but its RX sensitivity is worse than the CC430's. Just to confirm, I need to use this chip for ultra long-range communication, primarily or entirely with the chip in TX mode. I also need to be able to operate with super low power, which the CC1310 does nicely. Finally, I2C, serial, and a small form factor are necessary. For my listed requirements, do you think that the CC1310 best fits my needs? Currently, I have a CC430 mounted on a surfboard and a MSP430G2 Launchpad to program it. I am using Zac Manchester's custom fork of an old version of Energia as my IDE. If I get a CC1310 on a surfboard, what programmer board should I get? I would prefer a low-cost option.

I also can't seem to find an Eagle lib that includes the CC1310.

Thank you, Cameron

spirilis commented 7 years ago

What kind of long range? TI Norway did a test with a pair of CC1310 LaunchPads using LRM mode (0.6kBaud), which is designed for maximum long range minimal bitrate, and got 32km line of sight (both nodes above ground, maybe at the top of buildings, so ideal conditions) without any PA/LNA in the middle (using the CC1310's built-in max TX of 14dBm). That was at 868MHz fyi.

Link to that: https://e2e.ti.com/support/wireless_connectivity/proprietary_sub_1_ghz_simpliciti/f/156/p/548840/2003797#2003797

Also I'm not sure where you're getting "RX sensitivity is worse than CC430" from... CC430 uses a CC1101 inside, CC1101 RX sensitivity is -116dBm at 0.6kBaud - CC1310 LRM at 0.6kBaud is -124dBm. Looking at an example CC430 datasheet, cc430f5137, it mentions -117dBm at 0.6kBaud, still worse than the CC1310. (That's all "by the datasheet" so the standard sprinkle of salt is required...)

Another thing I've heard about from E2E forum posts is that the CC1101 and thus CC430 "saturate" if TX power is too high at close range.... that problem doesn't happen with the CC1310 series radios supposedly.

spirilis commented 7 years ago

Also FYI, I use a CC1310 LaunchPad with a Cortex 10-pin cable to program my custom CC1310 boards. The newer ARM LaunchPads (CC1310, CC1350, CC2650, newer red MSP432) include a CMSIS-DAP compliant "XDS110" FET onboard which can be used to program all the TI ARM Cortex-M devices over SWD. So the lowest-cost option for programming a CC1310 is to buy an MSP432 LaunchPad, but of course if you have some CC1310 or 1350 LaunchPads they can be used out of the box to program your external projects.

I personally splurged the $40 for a Tag-Connect 6-pin cable (with the 50mil 2x5 Cortex connector on the other end), but you can use a 50mil 2x5-to-50mil 2x5 cable, or use standard 100mil jumper wires between the jumper block and your board.

spirilis commented 7 years ago

As for Eagle, maybe ask on the E2E Sub-1GHz forum if someone has a footprint... I also am aware TI offers some sort of files compatible with "Ultra Librarian" to generate footprints in different packages... I used a free d/l version of it to produce DipTrace libraries (had to edit them a bit, but I've used it successfully with my custom boards).

edit: http://www.ti.com/packaging/docs/searchproductbypackage.tsp?orderablePartNumber=CC1310F128&packageDesignator=RGZ&pinCount=48&results=results#resultspage - the ".bxl" file is readable by Ultra Librarian

Search engine for that: http://www.ti.com/packaging/docs/searchproductbypackage.tsp

cameronus commented 7 years ago

@spirilis Thanks for the info! I seemed to have misread the datasheets about the RX sensitivity. I just want to confirm that this Launchpad sold on Amazon is the one you were referring to and would work with the Serial Wire Debug protocol to program the CC1310. You mentioned the "newer red MSP432", this one is black but I'm not sure what the difference is. By ultra-long range, I mean a much farther distance than for what its intended for; on the scale of 100s of kilometers rather than 10s. Although it is not intended for this distance, through transmitting at a low frequency, having a sensitive receiver with high gain, and utilizing CDMA, I believe that it is feasible to transmit and receive small packets in a few minutes. Also, what is the difference between the CC1310F128RGZT and the CC1310F128RGZR?

Thanks for your help, Cameron

spirilis commented 7 years ago

@thecameronjones I couldn't know if the LP on that link is the new red type. I do know the old black ones don't have the standard 50mil Cortex SWD connector and moreover, its version of the MSP432 won't be supported in the future. Probably safest to buy from TI store for the MSP432 LP right now.

spirilis commented 7 years ago

Fyi- TI store has free shipping thru end of this year "FALLFREESHIP" (saw on 43oh.com)

cameronus commented 7 years ago

@spirilis Thanks, is it possible that you could link me to both of the cables you mentioned? I can't seem to find them on Tag Connect.

spirilis commented 7 years ago

Ribbon cable (would require your board has the 50mil Cortex SWD male header soldered on): http://www.tag-connect.com/CORTEXRIBBON10

Tag-Connect TC2030 w/ legs for SWD: http://www.tag-connect.com/TC2030-CTX

Tag-Connect TC2030-NL (no legs) for SWD: http://www.tag-connect.com/TC2030-CTX-NL (this is what I use, minimal footprint with no soldered components required, but you have to hold it on with your hand unless you have a jig on the bottom to clamp the thru-pins--Tag Connect sells some board contraption for doing that)

cameronus commented 7 years ago

@spirilis I have used JTAG before, but not SWD. Am I correct in that SWD requires VCC, GND, TX, RX, TMS, TCK, and RST to program and serially communicate with the chip?

spirilis commented 7 years ago

No TX/RX and technically the UART pins aren't broken out. Likewise the launchpad FTSH connectors (those 50mil 2x5) don't have UART lines and Tag Connect's footprint doesn't include it either.

Otoh, TI has the CIO console interface over JTAG for printing some debug info, but it can significantly pause the CPU and impact the code. Useful in a pinch though. If verbose debug I/O is required just include some 100mil headers on your board for jumpering over to the LaunchPad's UART TX/RX lines in addition to JTAG.

spirilis commented 7 years ago

Incidentally, I believe there is a JTAG "mailbox" system one could use for debugger I/O but TI doesn't use it and I'm not sure if the CCS debugger can work with it. TI's CIO method has been around for a long time so I'm guessing that's why they use it even on ARM Cortex-M.

cameronus commented 7 years ago

@spirilis So, to program and use Serial input/output, I should just connect up the SWD pins for programming and use jumpers for the RX/TX, correct? In the pin diagram, there are TXD and RXD pins, so I don't understand what you mean by the UART pins aren't broken out.

Looking around on the TI forum, they say that they only support projects with TI-RTOS. I don't really understand what this is or how it will affect development for this platform. You mentioned that Energia supports the C1310 and I'm not sure how RTOS fits into this. Is there a way to use it without RTOS because I want to avoid using CCS if possible.

Also, other than a difference in the number IO pins, is there a big differentiator between the 32 and 48 pin versions of the CC1310?

If there is another platform which you would like to communicate with that is easier than talking here, let me know.

spirilis commented 7 years ago

What I mean is the Tag-Connect 6-pin connector doesn't have any UART stuff - http://www.tag-connect.com/Materials/TC2030-CTX.pdf - and the Cortex SWD connector doesn't seem to spec it either.

You are correct in that TI has standardized on their own RTOS for software developed on the CC1310. Energia runs on top of the RTOS, in fact they got a start on that whole paradigm with the MSP432 port of Energia. This might be a little different from CC430 development but thus far I don't think it's all that bad... I've wrapped my head around it enough. You'll be developing inside an RTOS environment which you can blissfully ignore all you want (by having just a single "main task" that runs all your code, however, hardware interrupts are registered a little differently using TI-RTOS's "Hwi" infrastructure). I have come to embrace the multithreaded RTOS nature myself and use Mailbox objects and Semaphores a lot to synchronize multiple tasks. I think it's a boon for sophisticated drivers (having the device driver details "handled by" a separate task).

The TI-RTOS implementations for CC13xx and CC26xx also have a "TIDrivers" API layer which is best thought of as a variety of device drivers which are RTOS-aware, and abstract some of the nitty gritty hardware. Sort've like what Energia does with its digitalWrite, digitalRead, Serial.* etc... but more complicated than that IMO. It makes I2C communication particularly easy and the RF stuff is best implemented using the RF_* functions (which live inside the ti/drivers/rf folder).

No the 32-pin version is just missing a few GPIO's from what I understand.

As for other forums, posting further questions on the TI E2E Sub-1GHz forum is probably your best bet. https://e2e.ti.com/support/wireless_connectivity/proprietary_sub_1_ghz_simpliciti/

cameronus commented 7 years ago

@spirilis I think I now have a good understanding of how I will be able to set up the CC1310. The final issue for me is using the TI-RTOS and programming the chip to transmit. If you have any code examples/resources that you could point me to, that would be very helpful. Any examples that show how using RTOS and the radio makes developement different would be useful. I plan to write all my code in Energia, so if there are libraries that make interfacing with the radio easier, I would definitely want to use them.

Thanks, Cameron

spirilis commented 7 years ago

Energia should abstract most things for you. Energia MT (the RTOS version) lets you declare multiple threads by having multiple source files with prefixed versions of "setup" and "loop" functions. Look at the MSP432 implementation for more info.

I believe @robertinant plans to include a C++ wrapper lib atop the TI EasyLink code to make radio usage easy to access.

cameronus commented 7 years ago

Can the threads interact with each other in Energia?

spirilis commented 7 years ago

Sure, ask @rei-vilo about his Galaxia library for making the TI-RTOS synchronization facilities easy to use.

cameronus commented 7 years ago

@spirilis I do not have experience with creating Eagle libraries, but after half an hour and some googling I have produced a rough library for the CC1310. If you could take a look and confirm that the SMD footprint works properly, I would be happy to share this with the community so others in the future don't have to do this. Attached is the zipped .lbr file. CC1310F64RHB.lbr.zip

Thanks, Cameron