Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


mph last won the day on September 12 2018

mph had the most liked content!

About mph

  • Rank

Profile Information

  • Gender
  • Location
  • Github

Recent Profile Visitors

558 profile views
  1. mph

    Multiple timers

    Implementing multiple timers simultaneously can be tricky and I was unable to find any good examples in TI's Resource Explorer. Using the MSP430FR5969 Launchpad, this code generates a sequence of multi-tone square waves to drive an external piezo-buzzer. The audio frequency is set by TA1 and waveform duration controlled by TA0. Written in C to illustrate the bit-wise register operations: https://github.com/microphonon/Piezo_Buzzer
  2. This is my understanding as well. Placing interrupts inside interrupts is best left to the experts. I am not one of them.
  3. mph

    Microphone MSP430F5438A

    I would suggest moving the audio electronics to a separate breadboard. You will have complete control of the front end: microphone selection, gain, filtering, etc. There are essentially two choices of microphones for breadboarding: condenser electret and MEMS. Sparkfun and Adafruit make breakout boards for both.
  4. I do not believe the G-series Launchpad works with Linux. CCS should have given you an warning during install. There is hardware incompatibility. You still have options: i) Install CCS on Windows ii) Get a different Launchpad that has a Linux driver. You can use this and jumper wires to flash your value line MCU.
  5. Do you have a 32 or 64 bit machine? 32-bit Linux only supported up to version 6.1.3 of CCS so you cannot run the latest version. Also be sure to add your user to the dialout group to access peripherals.
  6. Simple demo code that uses FR5969 Launchpad to set an AD5160 10k digital potentiometer in 1k increments. Device communication via SPI and control with a serial terminal program. Implemented with registers and interrupts. Link to github repo: https://github.com/microphonon/AD5160
  7. Need more information. Are you using Launchpad? CCS? Did you get example code from MSP430 Ware?
  8. I suspect you will get more help if you could provide a detailed description as to why the code is not doing what you expect. Is this code known to work or are you developing it yourself? I had to dig through the 30101 data sheet to understand the purpose of the various registers and functions. If the read and write pointers are stuck on zero, which is what you have indicated, that means they are not advancing with each iteration of the while loop. It looks like you are attempting to do a data register burst read in each iteration; the data sheet explicitly instructs not to do this. Perhaps if you replace the burst read with a byte read; see if that changes the pointer counters.
  9. Added code for the FR5969 Launchpad to the github repo.
  10. Github updated with firmware ported to MSP430FR59xx MCUs. Developed and tested with the FR5969 Launchpad.
  11. Github has been updated with firmware for the MSP430FR59xx; developed with the FR5969 Launchpad. This was a non-trivial modification of the above F5529 code as all the configuration registers are different. My Launchpad was unable to supply the ~90 mA of sensor heater current. By moving some jumpers, it can be configured to run from an external 3.3V supply and the heater worked OK. The heater is not necessary for sensor operation. TI sells a TIDA-01625 demo board that integrates the HDC2010, MSP430FR5969, and low power TFT display. They have CCS code on their github but it involves a multitude of nested libraries. The code I have written is very compact with all sensor and display operations contained in a single C program.
  12. You should be able to modify the code I recently posted that connects the 5529 Launchpad to the TI HDC2010. I think you would only have to figure out the relevant registers. There is some simple code on my github to read and display the slave serial number so I suggest starting there. If you want to use Energia/Arduino code instead of a register-based approach, someone else will have to help.
  13. The above github for this sensor has been modified to include pressure readout. Pressure is displayed in units of hectoPascal (1 hPa = 1 mbar). Typical sea-level atmospheric pressure is 1013 hPa. I tested at ~5000 ft ASL and get a correct reading of 840 hPa.
  14. The Bosch BME280 pressure-temperature-humidity sensor is very popular for projects because there are breakout boards available from Adafruit and Sparkfun as well as a large library of code to interface it to Arduino MCUs. Not so much for the MSP430, especially transparent code to understand what is happening at the register level. I have written and tested some demo C-code that hopefully fills that gap. It sacrifices generality and efficiency for compactness and transparency. I use the F5529 Launchpad and communication with the sensor is via SPI using the UCB0 module. I2C is also available for the BME280 but not implemented here. Temperature and relative humidity (no pressure) data is obtained using the forced mode with periodic polling by the MSP430. Sensor and MCU are in low-power sleep modes when not active. Data is streamed to a terminal program that is interfaced to the Launchpad via serial UART. Each BME280 has unique trimming parameters that must be retrieved and properly parsed to convert the raw data. This process is quite complicated, so separate functions were developed to handle them and placed in an include library. My IDE is CCS 6.1.3 with nofloat printf support. This code should work directly in the MSP430x5xx and MSP430x6xx families. Other MSP430 series such as FR and value-line will need to make appropriate module/register modifications. Link to github is here: https://github.com/microphonon/BME280
  • Create New...