Jump to content


Popular Content

Showing content with the highest reputation since 04/23/2018 in all areas

  1. 3 points

    One Wire Controller booster

    IT'S ALIVE!!!! I have 104 ds18b20 sensors wired into my board and it is reading them all. I am celebrating! WOO HOO! Now it's time to crush an mqtt server!
  2. 2 points


    I've had intermittent problems with various versions of CCS and Energia in the past. After seeing your post I updated my CCS to with no issues. However, based on your reported error message, it's worth taking a moment to go to Window->Preferences->Code Composer Studio->Products to see if Energia is still installed.
  3. 2 points
    TI has listed a solution here: http://www.ti.com/tool/MSP-EXP430F5438 http://www.ti.com/tool/cc256xmspbtblesw The CC2650 seems to fit your requirements and you can get additional help on e2e if needed.
  4. 2 points
    Rei Vilo

    Interfacing BMG250 with TM4C1294XL

    It looks like the I²C implementation requires a specific period between write and read.
  5. 2 points

    msp430g2553 with cc1101

    Please find my attachedCC1101.7z library
  6. 2 points
    As an electrical engineering student at John Brown University, we were tasked with creating a useful product or service using the combined skills gained through our embedded systems class. As someone who likes interior decorating and hates mismatched paint, I came up with the idea to make an RGB color sensor attachment for a camera. Of course converting RGB data to paint colors is not conventional, it is something that could potentially be viable. To make things interesting and for the experience of working with a Raspberry Pi, I used a raspberry Pi camera to act as the base for the project. A KMASHI 10,000mAh power bank was used as the power source to make it portable and act as a psuedo case to strap all of the components together. It is definitely not elegant in any way, shape, or form, but it is more experience for me and hopefully you can find an interesting tid bit here or there in my documentation! Enjoy! RGBColorSensorAttatchmentRPI.docx
  7. 2 points

    MSP430 Week - Discounts in TI Store

    In case you need to stock up on MSP430 dev boards, it's MSP430 week in the TI store. http://www.ti.com/store/featured/msp430week18.html
  8. 2 points
    Wire.begin(ADXAddress); configures the TM4C129 as an I²C slave, not an I²C master. Please refer to http://energia.nu/reference/wire/wire_begin/
  9. 1 point
    INTRODUCTION This guide's intent and purpose is to allow a user with minimal Linux experience to successfully setup an absolutely free development environment to program the STM32F0 microcontroller with full debugging capability. PREREQUISITES A Linux distro, I used Linux Mint 13 (Ubuntu works nicely too) An Internet connection At least 2gb of spare hard drive space Familiarity with terminal A STM32F0 Discovery Board! PART 1 – Install Codesourcy PART 2 – Install OpenOCD PART 3 – Install Eclipse PART 4 – Setup File Directory PART 5 – Setup Eclipse PART 6 – Configure the gdb/OpenOCD Hope you enjoy! Any questions, comments, feedback, feel free to sound off below.Also a STM32F4 guide is on its way. When it gets here depends on how much spare time I have.... Edit: Thanks bluehash! Guide is now hosted on arm-hq. v1-2 Downloads stm32f0_v2.doc
  10. 1 point

    code stuck at the end of setup

    I'm not quie clear on your question, and at the risk that it's obvious... for(;;) = loop forever If your Engergia code has an empty loop(), and never does anything to generate a serial event, then it's going to be "stuck" in a loop that repeatedly checks for a serial event. So, what's in your loop() code? What do you expect to see?
  11. 1 point
    Sounds like time to read the manual. Look at the memory map of the device and I think you'll have some insights into why you're running into problems. This is not an area where I have any other useful experience. Of course, there's also e2e as a resource.
  12. 1 point


    Hi All, Many thanks for all your responses. NurseBob, you were right on the money: Energia was not installed. I re-installed it and everything is now working as it should. Many thanks! Mark
  13. 1 point
    The I²C implementation on pins 9 and 10 is software-based (or bit-banging). Some functions may work differently from the hardware ones. Let me try with a very standard I²C device.
  14. 1 point

    Supported MSP430's

    BTW, If you don't want to design board right now, I have 2 breakout boards left, for MSP430x2xx 38 pin TSSOP devices.
  15. 1 point

    Advice for proper chip selection

    In general, the G2xx chips have 16 interrupt-capable pins (if they have that many pins at all). For development, I'd suggest the G2553 on the LaunchPad.
  16. 1 point
    @hmjswt - you could easily say that about a lot of things (C vs Assembly, roll your own database, etc.) I'm a web developer - but trying to figure out everything from hardware to reporting can kill a project pretty quickly. Like @zeke - I've got a lot of unfinished projects - usually because I get bored trying to get over obstacles in the project. Since DeviceHive supports MQTT - it should be pretty easy to port a project over to something else at a later point in a project. I was able to get a simple POC working with a Raspberry Pi on DeviceHive. Not too bad - it'll be a good place to start working on MQTT for some of the hardware I've got sitting around. I'm not so sure about deploying DeviceHive though - there are a lot of components to install - although they do have docker instructions.
  17. 1 point

    Boosterpack MKII & MSP430FR6989 Game

    Hello @Turan2018 I am not a gamer but if you are using Energia then code written for other Energia compliant devices using the same BoosterPack will likely work for the FR6989. Code written for Arduino can be used as a starting place but any hardware dependent portions - such as that written for the display or Atmel specific code - will need to be ported. I would do a search for your Boosterpack first and understand how it works first - especially the display If you are using CCS then there is considerable training available, e.g. http://processors.wiki.ti.com/index.php/Getting_Started_with_the_MSP430_LaunchPad_Workshop It will not have games but will start you out on a real understanding of microcontrollers using Driverlib. I thought this Udemy course for FR6989 which uses CCS and direct register access was good although it does not cover the BoosterPack: https://www.udemy.com/mcu_msp430/
  18. 1 point

    hi from uk

    Welcome @zainmsp Your choice of energia vs ccs all depends upon your personality. Do you want to forge your own path and control every last aspect of the program? Then use CCS. Do you want to build upon the hard work of others and concentrate on program flow? Then use Energia. There is no right or wrong answer. Both options are good.
  19. 1 point

    The Marquee Clock

    Back in December 2016, I had a hard disk failure and I lost my firmware and hardware design files for this project. It was a sad day when I discovered this. I have since rewritten the firmware and it is much better this time. I am so happy that it is sporting a proper command line interface now. No more single letter chicken-pecking commands. I have also recaptured the schematics and pcb layouts for the ring pcb and the cpu pcb. The power supply design is a lost cause because I couldn't figure out what TI bucking power supply chip that I used in the first design. Oh well. What are you going to do? This time around, I will be redesigning the cpu board to include a few more features that I think are necessary. CdS light sensor to automatically dim the LEDs in a dark room. BQ32000 RTC IC to preserve the time even through the loss of power. ADC monitoring of the power supply rails to determine if the main power has been lost. Maybe put in an LM386 and speaker so the clock can finally sing Happy Birthday to my daughter on her actual birthday. I know this is just another clock but it is very gratifying to see something come to life from my imagination. So I am going to keep plugging away on it.
  20. 1 point
    Let me know if you have a problem with the above steps.
  21. 1 point
    I solved the problem by following these steps exactly: copy <energia directory>\hardware\tools\DSLite\DebugServer\drivers\MSP430.dll to <energia directory>\hardware\tools\msp430\bin\ edit <energia directory>\hardware\energia\msp430\boards.txt an change the 2 occurrences of rf2500 with tilib restart energia and you should be able to upload to the MSP-EXP430G2 with MSP430G2553. Apparently this is a known issue but there's some question about whether it's resolved using latest versions of the tool. The issue is also posted on github: https://github.com/energia/msp430-lg-core/issues/12
  22. 1 point

    Implementing an I2C slave device.

    Clavier's Short Guide to I²C Slaves on the MSP430x2xx Family Read section of the User's Guide, and the example code. Slave mode is somewhat easier than master mode because you do not have to care about getting the transaction sequence correct; you just react to the master's requests. The slave address is an arbitrary but unique 7-bit number. Just put it into the I2COA ("own address") register; the USCI module will automatically handle transactions to this address. You do not need to configure a clock source; the clock signal is supplied by the master. When the master has written a byte, you get an RXIFG interrupt. Your interrupt handler must read that byte from RXBUF. (You can set the TXNACK bit after reading RXBUF, this will tell the master to stop after the following byte.) When the master wants to read a byte, you get a TXIFG interrupt. Your interrupt handler must write a byte to TXBUF. If your code is slow, the USCI module will automatically stop the bus via clock stretching until you have reacted. You can get notifications when start and stop conditions happen (STTIFG and STPIFG), but that is not always necessary. The I²C protocol itself defines only byte reads and writes. If you have registers, you have to handle the register address yourself. Typically, the first write after a start condition is the register address, and all following writes (and all reads) are from/to the specified register (and often the register address automatically increments). As a slave, you have no control over what the master does; you must react to any write and read requests at any time. (If you really have nothing to read, just send the last byte again, or some garbage byte.)
  23. 1 point

    CC2650 SensorTag: Low power checklist

    Here's a list of things to check for if you're getting excessive power consumption on the CC2650 SensorTag - particularly when using TI-RTOS: [3.0mA constant] If you're not using the MPU, has it been powered off? By default the Board_MPU_POWER pin is set to output high during startup (TI-RTOS 2.1). [2.9mA when idle] Do you have a power policy set up in the TI-RTOS .cfg file, and is it correctly configured to run when tasks are idle? [0.5mA when SPI inactive] Are the SPI bus pins set to pulldown when the SPI driver is inactive? If they're left floating the serial flash inputs can draw excessive current. [0.27mA constant (?)] Has the TMP007 been placed in shutdown? By default it powers up in 4x oversampling mode with a typical current of 270uA. [0.20mA when alert active (?)] If you're using the TMP007 alert pin function, have you disabled pullup on Board_TMP_RDY? There's an external pullup on the board already... [0.01mA constant] Has the external serial flash been powered down? It takes a typical current of 10uA in standby, which drops to 1uA in power-down. The ones marked (?) are unconfirmed, and are just based on specifications/schematics. Further to the two TMP007 items on the list: is your TMP007 working at all? If you can't get it to respond to I2C traffic it's possible that it has been damaged. Mine was, and it resulted in additional wasted current of 4mA until I removed the chip. Being a bare die makes it quite vulnerable to damage. If you're not using SPI then the following code fragment will resolve points 1 and 3: static const PIN_Config unusedPinTable[] = { Board_MPU_POWER | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX, // MPU power off Board_SPI0_MOSI | PIN_INPUT_DIS | PIN_PULLDOWN, // disable input, enable pulldown to give a defined level on the bus Board_SPI0_CLK | PIN_INPUT_DIS | PIN_PULLDOWN, // disable input, enable pulldown to give a defined level on the bus PIN_TERMINATE }; // Open unused pins to set correct default state // Define unusedPinHandle and unusedPinState somewhere, either static or global unusedPinHandle = PIN_open(&unusedPinState, unusedPinTable); If you are using SPI you'll need to set up a pin table/handle/state for just the SPI pins, then use PIN_open after SPI_close and PIN_close before the next SPI_open. Alternatively you can just keep the SPI open... but that seems to take an extra ~100uA. I think that's because the uDMA forced to stay powered up. For point 2, the easiest way to be certain that the power policy is correctly set up is by calling it from a user-defined idle function. That way you can breakpoint the function and be sure that it is called when all tasks are idle. First you'll need to turn off the option that automatically runs the power policy when tasks are idle: Now add the following code to your project: #include <ti/sysbios/family/arm/cc26xx/Power.h> void idleFxn() { Power_standbyPolicy(); // Breakpoint this line to check that the policy is getting called on idle } Finally set up the idle function: Now run the program in the debugger and check that a breakpoint placed in idleFxn is hit during runtime. You can also step in to the Power_standbyPolicy code and see which low power mode it is able to use; sometimes it's prevented from going into full standby due to constraints set by active peripheral drivers. Removing the user-defined idle function and rechecking the "Invoke power policy when all threads are blocked" should give the same result, but it's harder to confirm that it's working correctly. The tiny saving from putting the flash into power-down for step 5 is barely worth the effort. You need code to initialise the SPI driver, get the flash into a known state from a potentially unknown one and then put it to sleep. The MCU can be reset without the external flash being power cycled, and JTAG blocks SPI traffic making the code untestable in the debugger. I only did this because I'm using the flash in my project already.
  24. 1 point

    [POTM] dAISy - A Simple AIS Receiver

    Good news for everyone having difficulties sourcing the Si4362 radio IC. I verified that the transceiver Si4463 works with dAISy. This probably also applies to Si4460 and Si4461. Besides being more widely available through distributors, more adventurous souls can even find these ICs on Aliexpress. Even better news for those that want to recreate my project with minimal effort: Si446x based radio modules are sold on eBay and elsewhere. I bought the E10-M4463D from eBay for $7.99: http://www.ebay.com/itm/100mw-433MHz-SI4463-Wireless-Transceiver-Module-With-Antenna-2100m-/151243201316 I chose this module over others because all pins of the radio are broken out to headers. Unfortunately two pins (GPIO2 and GPIO3) are reserved to control the RF switch that connects the antenna with RX or TX channels. But after a few minor changes to my code I had dAISy working. Here's the branch on Github: https://github.com/astuder/dAISy/tree/E10-M4463D The wiring changed: GPIO0 -> P2.0 NIRQ -> P2.5 GPIO2, GPIO3 -> no longer connected to the LaunchPad As the modules are built for 433 MHz and AIS is using 162 MHz, I had to replace antenna and passives on the RX side. The new passives from left to right are (ignoring the obvious 0-ohm resistors) 11pF, 150nH, 13pF. As you can see the 0603 components are a very tight fit. I reflowed them with a hot air station instead of using a soldering iron. The clunky thing on the right is a BNC connector, SMA probably would have been a more elegant fit Technically, it's still not ideal. The traces might be impedance matched to the original frequency. However a quick real-world test demonstrated similar sensitivity as my original breakout boards. EDIT: added wiring information EDIT: added link to Github
  25. 1 point

    IPC training information

    Just to follow up ... I found another website tonight called http://www.soldertraining.com/. It is another excellent resource for electronic assembly knowledge. I find the Standards & Manuals - Design attractive and I am considering purchasing a set for myself.