• Content count

  • Joined

  • Last visited

  • Days Won


Everything posted by NurseBob

  1. @Biza It's not clear which devices you are actually using. Is it the '432 launchpad? And how are you connecting to the SD card? Is it a BoosterPack version? A simple schematic would allow a means to compare code with wiring...
  2. I'd like to know what comes of your testing when you get to it.
  3. Well, there's magical thinking... And then there's magic! While looking for a file I noticed my server had booted and was back online. Checked the logs and discovered the driver for my 8-drive 24TB JOBD external SATA enclosure had failed to load. This is a Highpoint Rocket Raid system. It's junk. Has been from the outset, but I purchased everything while relatively ignorant. And, as @yyrkoon has noted, enterprise hardware is mind-bendingly pricey. So, I use the system as not a backup, but as a secondary copy location for video, images and audio. Maybe after I win the lottery I can put a proper system in place.
  4. I just spent the last two hours trying to figure out why all of the UART-related register code was failing on my 5529LP. After hooking up to a different 5529, where code performed as expected, I finally remembered that several months ago I'd found that one of my LP boards had a "broken" UART/I2C - Of course, I'd not marked the board when I set it aside. Dumb. Board is marked now. It's still useful for other experiments, so I'll keep it on hand; I just won't use it for any comms protocols.
  5. @yyrkoon I've thought about restoring my centos server - I took it out of service when I stopped writing my own websites; easier to use wordpress to manage blogs. Though, as you've noted, nothing is immune from some type of corruption, including my own thought processes...
  6. Interesting coincidence: My Windows R2 2008 server won't boot this morning - according to the diagnostics - bad driver due to recent update... This machine is set up with a failover shadow boot drive, and of course there are a month's worth (if I remember correctly) of system images. However, I'm REALLY BUSY right now. So, I'll limp along without fixing it today, maybe Sunday, or not... Who has time for this junk. Sigh Superstition ON Talking about backup strategies triggered this failure... Superstition OFF
  7. @zeke I am working with SVN as well. At times I find it a bit arcane... But no more so than the other code management tools.
  8. @dubnet Well, I do have three monitors... So, yes, I am able to see my logic analyzer, two debuggers, and off to my right, when needed the oscilloscope. I know there are those out there with more talent, skill and experience who are able to manage with their blinky LED, but I need all the help I can get!
  9. @darrenlocust Maybe a dumb question, but I don't see you mentioning Vcc. SBW is actually 4 wires, Vcc, GND, and the SBWTDIO,SBWTCK leads. How did you get from the 14 pin connector on the FET to the board? Patch wires? Also, in IAR project options, under the FET Debugger, did you select Automatic selection, or manually select Spy-By-Wire? And, I know this is obvious, but under General Options did you select the G2553?
  10. @zeke Do you use any version control software? For me, that's yet another repository, though it's still locally stored on my home server. I should probabkly be backing that up to the cloud too...
  11. @dubnet > For your video work where is the bottleneck? CPU. Disk and RAM are not a problem. HD video processing is very, very CPU intensive, and the graphics accelerators and GPUs really don't participate in the rendering process. Overall, I'm not at all unhappy. I've seen other systems that take easily 8 to 10 times longer to render files similar to mine. Aside from CPU, the real bottleneck is uploading to youtube, or any other service. A 90 minute video takes about 4-6 hours to upload. On more than one occasion I've had both a render and upload running. No stress for the machine (all twelve threads will be at 40-70% for the render, but the upload really doesn't register on the resources). FWIW - the long videos were my recordings of lectures for my nursing students; they were subjected to 3 hour lectures on a weekly basis. Otherwise my goal is less than ten minutes for a topic of interest...
  12. RE: AWS S3, I'm running with their simplest service - basically a dropbox type of situation. AWS S3 suffers from a more complex interface than dropbox, but fits my needs. When I was actively posting to my video blog, I used their service to store the downloadable files rather than paying Network Solutions for exorbitantly priced storage. As to cross platform single backup solutions, I've not researched that, so I've really got nothing to offer there. However, if your machines are co-located, you might consider setting-up some type of NAS storage that everyone writes to, and then upload those backups to a cloud-based option? While my original plan was to upload all of my backups, they end up in the TB+ range, and uploading a TB of data for one day's worth of data would take days... Losing proposition. So, I limit what gets sent off site, and pray that having multiple locations (basement, and a couple of other locations at home), that my data will survive a local disaster. Bad choice, but I've yet to see any TB level solutions that involve consumer-based internet speeds. Fingers crossed in that regard.
  13. Yep. I've been though a couple of cycles of boot and data drive upgrades. I love being a kindred spirit! My primary workstation is an i7 x980 with 24GB ram and 7 hard drives (21TB total storage). I built this machine to do viideo and photo editing. Even at 6+ years old, it will render an hour of 1080p HD video in just under an hour. Everytime I think about upgrading, I find myself looking at Xeon processors and about 4 - 6 grand to get any significant improvement in performance. Since I really only do the video for non-commercial stuff, it's not worth the extra cost. So, since the system is responsive, meets my current needs, I don't get too caught-up in getting the latest and greatest - though I am wanting one of the Wacom Cintiq HD tablets. Maybe for Christmas??? Off topic: I've found that having multiple monitors and running two instances of CCS or IAR an interesting and productive way to debug comms between a pair of '430 devices.
  14. Bummer is certainly an understatement. As to my local backups I run Macrium reflect pro (now V7 home edition). I have all of my code and eagle files on a 1TB 10k rpm hard drive. Macrium does a full backup every day around 02:00 to an internal 5TB drive, and then copies to my server's 24TB JOBD array. Finally, the source files get posted to my AWS account for "offsite" storage. My AWS account runs about $2.00/month. And the last upgrade for my 5 licenses for Macrium was about $150. Money well spent. All of the machines on my home network run daily backups. In general, I do a daily full system image for the boot drives, and then the data files are incremental folder/file backups. I generally keep 8 full backups of my system images, and for the data files, there's a full backup done weekly, and I keep four full backups + the incrementals for a month. FWIW, Macrium's Windows PE rescue disk saved my butt last week when the system files became corrupted due to a problem with my aging RAM. I was able to recover the system and get completely back up and running after a day's effort (about 200 reboots while playing with BIOS HD settings...)
  15. All too familiar... But at least you marked it! Given that my board was DOA for Rx,Tx, I wonder what the level of production QC actually is. I'm not complaining, especially given the price, just curious.
  16. Take a look at the code for "mostefficient.c" referenced in this pdf for energytrace. While the code is not for your device, it does use a very lean means of doing what I think you're looking for: It sends formated numeric temperature values via the UART to a serial console.
  17. I suspect you've posted a snippet of your code? It's not exactly clear, but it appears you are setting up a Master TX (write) to a Slave. > UCB0CTL1 |= UCTR + UCTXSTT; /// here scl clock goes low. uctr=1 but uctxstt=0. any suggestions?? < At this line you're telling the msp to wait for a TX interrupt, but I don't see where you've enabled any interrupts. Looking at msp430g2xx3_uscib0_i2c_03.c, which appears very similar to your post, there is this line: IE2 |= UCB0TXIE; // Enable TX ready interrupt immeadiately preceeding your problem statement.
  18. This google search string: msp430 sd card library returns numerous useful code examples for msp devices. Further, there is this here on 43oh.
  19. @Curtis63, I've used both solutions as suggested by @energia, depending on my power choices. One thing to keep in mind if you're using the ADC is what type of battery and the typical discharge curve. Also, you need to think about when and how often you check - right after a power-intensive action may yeld different results than letting a battery recover for some pre-determined time (again, dependent on how the battery responds to loads). My systems are powered by LiPo cells, so the higher voltage output needs at least a voltage divider, and to avoid a slow drain, the ground needs to be through a port or via some other switching device. Batteries are interesting and challenging.
  20. @villekille You might start here for a little background. And as always, Google is a good place to start. FWIW, just entering "bluetooth" in the forum search returns some 20 pages of references. I can't advise you on which '430 to use, but any with a UART and an ADC that meets your needs (again, you don't specify the precision). You may want to do a parametric search on the TI site for '430 mcus that meed your needs.
  21. Events: Such a range of sources. Hardware (internal and external), timers, user-generated, etc. As you alluded to, there's usually a heirarchy of priorities that impact how they are, or need to be, handled. I don't really have any internal association between event-driven and OO; one reflects how things happen, the other is merely one way to define a world view. The PC GUI world is certainly built around the event model and the understanding of the potentially random timing of events coupled with a management of event priority. My fading memory seems to recall that the original implementation of the Windows GUI several decades back was niether OO nor C++, but a loop which handled and/or generated messages. As to my own project, the ISRs are C. The name mangling of C++ led to problems. So, just as TI's C++ libraries do, I define the ISRs as extern C routines. I do spend some time looking at the order and frequency of the case statements in terms of execution, but my implementation spends very little time doing any communication with the sensors, and typically only in response to a sensor-generated interrupt (also rare events), otherwise the app is spending it's time sleeping. I agree, complex code is likely slower to execute. And almost never should reside in an ISR; aside from my TX RX event handlers, my ISRs follow the "set a flag or generate a software interrupt and return" rule. And as much as possible, even the TX RX handlers are setting flags for a main-based while loop to process then go back to sleep where communication timing is not an issue. My knowledge of the C language is probably barely adequate to the task, as well as is my knowledge of C++. However, experimentation is a basis for how my brain works and remembers. I've spent hours in the debugger stepping through both C and disassembled code; fixed problems, and sometimes have even remembered not to create the same problem again. Were it not for Google, code snippets, reference circuits, etc., my little project would have never gotten started, let alone to the point it's reached. Ok, now I'm rambling...
  22. @yyrkoon Understood and agreed. Bob
  23. Typical I2C addresses are the top 7 bits, with the 8th bit determining if the conversation is a read or write. I've been working with a port expander (sx1509) which has 4 possible addresses (determined by pins that are high or low). So multiple addressing for devices is a common theme. I've actually found using binary representation for addressing, or registers, handy. I also found this on implementing an I2C slave from scratch, which proved useful conceptually: While the GPS code is not necessarily relevant, he offers a pretty decent explanation of the communication and setting up of address registers. Re: Davies code - yes, at times he hides implementation via enums, etc, but his long form and ISR versions of an I2C handler are a bit more complete and explanatory than the TI code examples. The "challenge" with the TI code examples is getting past the point that they do nothing useful... Typically they iterate though a defined list of numbers and then restart. The slave code I'm using is focused on the F2013, which is limited to USI. I suspect you want to use the more advanced capabilities in the USCI. My recollection is you're using the G2553? If so, look at the MSP430Ware->Devices->MSP430G2xx->Code Examples->MSP430G2x53- msp430g2xx3_uscib0_i2c_12.c and msp430g2xx3_uscib0_i2c_13.c - the 12 code: USCI_B0 I2C Master TX/RX multiple bytes from MSP430 Slave with a repeated start in between TX and RX operations. and 13 code: USCI_B0 I2C Slave RX/TX multiple bytes to MSP430 Master serve as useful examples of the setup and ISR handlers. Don't omit the pullup resistors - the internal pullups are not sufficient or consistent. Bob
  24. If the device is a commercial part, it's published. If it's your own design, the '430 peripheral code examples will be your guide. Basically, you set up the I2C handler for the slave to respond to its transmitted address. FWIW, the hand-coded examples in Davies' MSP430 Microcontroller Basics(there's a pdf version - google "msp430 microcontroller basics") book on the '430 give a reasonable explanation. If you're designing something to be incorporated with other I2C devices, then you need to pick an address or addresses that aren't in conflict with other devices. I don't know if there's a "registry" for I2C device addresses.... The example code for TI and Davies all use 0x48 and 0x90; for the addresses.