Jump to content

RobLewis

Members
  • Content count

    59
  • Joined

  • Last visited

  • Days Won

    1

RobLewis last won the day on December 22 2014

RobLewis had the most liked content!

About RobLewis

  • Rank
    Level 1

Profile Information

  • Gender
    Male
  • Location
    Puget Sound, WA
  • Interests
    Home Automation, 3D Printing
  1. Has anyone worked with TI's CC2540 RF Dongle? I'm trying to use their Bluetooth LE packet sniffer program but it appears to have problems with Windows 10. The quick-start says that when you connect the dongle to the PC's USB port, the "Windows New Hardware Wizard" will appear. But it doesn't. And the sniffer software doesn't see the dongle. No doubt a driver problem but I don't know how to fix it.
  2. Very cool, thanks @@chicken! Do you have any idea whether this may restore the routine's ability to work at a 16MHz clock rate in the F5529? (I found that in later versions of Energia even the patched code would only work at 25 MHz).
  3. Everything I know about this issue is contained in my previous posts, particularly those from last May 3. I don't know whether @@chicken might have any additional insights, or whether Energia has been patched to fix the apparent timing problem.
  4. Reflecting on this a bit more, I wonder if one of the later Energia updates somehow broke the I2C driver when the F5529 (and possibly other boards) is run at 16 MHz. And of course that 8-bit patch needs to be mainlined, eh?
  5. Success, sort of: By going back to the old BMP085 breakout board AND using the patch for the 8-bit read AND changing the F5529 board clock setting from 16 MHz to 25 MHz, I'm now getting apparently good data from the part: Setup has initialized Serial Setup has initialized Wire Attempting to read BMP085 CHIP ID with patched m_read8... AC1=7509 AC2=-1137 AC3=-14499 AC4=34075 AC5=24637 AC6=26359 B1=5498 B2=60 MB=-32768 MC=-11075 MD=2432 Setup has initialized Serial, Wire, and Psensor Reading temperature.. UT=33838 Reading pressure.. UP=42343 Calculating temperature in 0.1 Celcius.. X1=5623 X2=-2815 B5=2808 T=176 Calculating pressure in Pascal.. B6=-1192 X1=10 X2=661 X3=671 B3=7677 X1=2109 X2=29 X3=535 B4=34631 B7=1733300000 p=100101 X1=152881 X1=7086 X2=-11238 p=100078 Temperature: 17.6C Pressure: 1001hPa I always ran the board at 16 MHz before and it worked fine for a long time, but evidently something changed. I'm ignorant of Energia's internals, but if a low-CPU-demand routine works at 25 MHz and doesn't work at 16 MHz then I have to think something is wrong with how it's marking time.
  6. It worked great for over a year with the BMP085 breakout board, and I haven't changed the hardware configuration except to try it with the new BMP180 breakout board (which lacks the EOC signal), because I thought the BMP085 had failed. Tomorrow I'll go back to the BMP085 and see what's reported by the driver in debug mode. (The humidity sensor which is connected to the same LaunchPad continues to work fine.)
  7. Tried changing this line: #define BMP085_CHIP_ID 85 to 180, and there was no change. Went back to 85, and commented out the return you suggested; still no joy. Here's what it's outputting now (note I still have your suggested patch in that discards the second byte for a 1-byte read): Setup has initialized Serial Setup has initialized Wire Attempting to read BMP085 CHIP ID with patched m_read8... BMP085 device not found AC1=8151 AC2=0 AC3=0 AC4=0 AC5=0 AC6=0 B1=0 B2=0 MB=0 MC=0 MD=0 Setup has initialized Serial, Wire, and Psensor Reading temperature.. UT=0 Reading pressure.. UP=0 Calculating temperature in 0.1 Celcius.. X1=0 X2=-1 B5=-1 T=0 Calculating pressure in Pascal.. B6=-4001 X1=0 X2=0 X3=0 B3=8151 X1=0 X2=0 X3=0 B4=0 B7=3887417296 p=-2 X1=1 X1=0 X2=0 p=234 Temperature: 0.0C Pressure: 2hPa Reading temperature.. UT=0 Reading pressure.. UP=0 Calculating temperature in 0.1 Celcius.. X1=0 X2=-1 B5=-1 T=0 Calculating pressure in Pascal.. B6=-4001 X1=0 X2=0 X3=0 B3=8151 X1=0 X2=0 X3=0 B4=0 B7=3887417296 p=-2 X1=1 X1=0 X2=0 p=234 Temperature: 0.0C Pressure: 2hPa And so on.
  8. Well, something different anyway. Now when I power cycle the board, the serial monitor shows this (which includes a few diagnostic print statements I added, and has the debug-enabled version of the driver): Setup has initialized Serial Setup has initialized Wire Attempting to read BMP085 CHIP ID with patched m_read8... BMP085 device not found Setup has initialized Serial, Wire, and Psensor Reading temperature.. UT=0 Reading pressure.. UP=0 Calculating temperature in 0.1 Celcius.. X1=0 X2=-1 B5=-1 T=0 Calculating pressure in Pascal.. B6=-4001 X1=0 X2=0 X3=0 B3=0 X1=0 X2=0 X3=0 B4=0 B7=0 p=-1 X1=1 X1=0 X2=0 p=235 Temperature: 0.0C Pressure: 2hPa Reading temperature.. UT=0 Reading pressure.. UP=0 Calculating temperature in 0.1 Celcius.. X1=0 X2=-1 B5=-1 T=0 Calculating pressure in Pascal.. B6=-4001 X1=0 X2=0 X3=0 B3=0 X1=0 X2=0 X3=0 B4=0 B7=0 p=-1 X1=1 X1=0 X2=0 p=235 Temperature: 0.0C Pressure: 2hPa Which repeats over and over, starting with "Reading temperature..". Why would it say "BMP085 device not found" and then proceed to act as though it had found one?
  9. Darn, that sounded like the answer, but sadly I don't see any change. It still hangs trying to read the CHIP ID.
  10. Still no luck getting my F5529 to read the BMP180. With or without DEBUG_BMP085 enabled, the program hangs in the begin() method. I added a print statement to the driver just before it tries to read the BMP085 CHIP ID. I see this printout but that's the last output I get, so apparently it is hanging trying to read the ID. I don't get the "BMP085 device not found" message. I wonder if there could be some problem in the Wire module. This is in Energia 15. Frustrating that this all worked fine for a long time.
  11. I replaced the BMP085 sensor with a new BMP180, which is claimed to be 100% compatible, though it seems to lack the EOC output that signals the end of a conversion. Adjusted the code to use wait loops instead of the EOC signal, but the new sensor seems to be doing exactly what the old one did. In the serial monitor, what I'm seeing is the value "2" being sent as the pressure reading. And I don't seem to be getting any temperature reading at all. The separate humidity sensor attached to the same MSP430F5529 continues to work fine. This smells to me like some kind of serial I/O bit timing issue, but why would it just suddenly start happening one day? Before I try recompiling the driver in debug mode, anybody got any tips where to look?
  12. I confess I'm not deep into the issues involved in this, but is there a prospect of eventually being able to use both I2C interfaces at the same time? And just to confirm, if I don't call setModule then I'll get the "legacy" pin assignments of P3.0 and P3.1?
  13. The setModule issue may be a red herring. I re-flashed the old LaunchPad code that was working fine, and am still getting the error, so the current suspect is a failed BMP085 sensor. (The other attached sensor, a DHT22 humidity sensor, continues to work fine.) Anybody experienced reliability issues with this part? Mine has been mounted indoors out of the weather the whole time, and a failure after less than 2 years is hopefully a fluke. It appears Bosch has updated the sensor to a new (and improved?) part, the BMP180, which according to AdaFruit is pin- and software-compatible. So I guess I'll be ordering one.
  14. Thanks for the tip, but the newer library isn't working any better than the older one. It might help if I could find some documentation anywhere of the Wire.setmodule() method (especially as regards the MSP430F5529), but I can't.
  15. OK, I'm getting confuseder and confuseder. I had the BMP085 working with an older Windows version of Energia and your library. I've updated to Energia 15 for Ubuntu and presumably have the latest version of BMP085_t.h (dated April 2013). Now my program (on the MSP430F5529) apparently no longer sees the sensor! IIRC I had to patch the earlier library to work with the F5529, but that shouldn't be necessary with this later one, right? I'm using the same "legacy" pin connections as before: SDA to P3.0 and SCL to P3.1. I did notice this in your comments at the top of your driver: MSP430 ------ Tested with Energia 0101E0009 LaunchPad Rev1.5, TI MSP430G2553 Connections * P1_6 => I2C SCL * P1_7 => I2C SDA If I understand, these pin assignments are used somewhere in the Wire library, and I've even read about a method Wire.setModule() that seemingly lets you choose from different I2C interfaces (defaulting to #3?). But I can't find any documentation of this. Can you help clear up the confusion?
×