Jump to content
43oh

tripwire

Members
  • Content Count

    193
  • Joined

  • Last visited

  • Days Won

    14

Reputation Activity

  1. Like
    tripwire reacted to bobnova in Ethernet Booster Pack msp430g2553 and Energia   
    Given the cost of the boosterpack ($20 and out of stock) plus a F5529 ($13), you might consider buying the TM4C129 Tiva-C Connected Launchpad instead, it's $20 and has native Ethernet, plus a very large/fast microcontroller and a ton of pins.
    I realize we're on 43oh and it's a Tiva thing, but still.
  2. Like
    tripwire reacted to username in DAC GUI V2   
    Hey all,
     
    Round 2: This extends the peripherals of the MSP430 to a UART based ascii AT command set. For example, send "AT+GET_ADC" over the USB->Serial bridge to get all the ADC values returned. Since I released my first GUI there have been a couple others like it. You will find that this version's strength is that the underlying C driver set is my personal driver set which is quite powerful XD . I then wrote a C# GUI as a wrapper around this command set.
     
    Features Implemented: Digital IO, Analog I, PWM, SPI

     
    PWM Example:

     
    Steps to use:
    1. Download code & .exe file here: https://github.com/NateZimmer/ICBM
    2. Import C code into CCSV5.1 (haven't tested with other versions) and flash to launchpad.
    3. Ensure UART jumpers on the MSP430 Launchpad are set to Hardware based UART on a msp430g2553 launchpad Rev 1.5
    4. Run GUI and connect to launchpad.
    5. Enjoy!
     
    Skip to 10:35 for setup instructions:
     
     


     
    Todo:
    Implement DCO Calibration for better CLK accuracy
    Implement I2C
    Implement Graphing/Logging
    Implement more flexible spi chip select features
     
    Please let me know if this does not work for you
  3. Like
    tripwire reacted to abecedarian in Airdog Airleash - How does this even work?   
    I've used 'certain' compasses on transmission line towers to orient cell site antennae without issues- never more than 2 degrees off, relative true North.
  4. Like
    tripwire reacted to abecedarian in Propeller open-sources P8X32A processor   
    http://www.parallax.com/microcontrollers/propeller-1-open-source
     
  5. Like
    tripwire reacted to oPossum in Propeller open-sources P8X32A processor   
    No, not due to sales. Sales are fine at Parallax. They have been releasing a FPGA bitstream for the Propeller 2 that has been under development. The community really like being able to test a next gen chip before it became available. The release of a VHDL and bitstream for a Propeller 1 workalike will in no way harm sales of the Propeller chip. The FPGA is much more expensive then a propeller chip, and it would not be cost effective for a competitor to have an ASIC made. It is simply something they are doing for a few in the community that can hack away at the VHDL and do cool stuff.
  6. Like
    tripwire got a reaction from guybarash in PWM input   
    Table 16 ("TA2 signal connections") on page 33 of the datasheet is a good place to start. The left half of that table shows the inputs for the different module blocks of TA2. For externally connected inputs it gives the corresponding pin numbers for the various package types. In the case of the F5529 this is fairly simple; P2.3-5 are your external inputs to TA2, so the input pins match the output pins. That's not always the case, which is why it's important to check the timer's "signal connections" table in the datasheet.
     
    Notice how the table says that the three external inputs are called module input CCI0A, CCI1A and CCI2A. You'll need to know that when you set up TA2CCTL0, TA2CCTL1 or TA2CCTL2 later.
     
    Assuming you've connected the input signal to P2.3, you then need to configure that pin to pass the input through to the timer module. Table 50 on page 83 of the datasheet shows what you need to do. In this case, you want to configure P2.3 for the TA2.CCI0A function. That means clearing bit 3 of P2DIR and setting bit 3 of P2SEL.
     
    Next you need to set up TA2CCTL0. Set the CAP bit, and set the CCIS bits to 00 to take the input from for CCI0A. You can pick which signal edge(s) trigger a capture with the CM_x bits.
     
    Finally you need to set up the timer. For capturing you generally want to use continuous mode so the range of timer values is as big as possible.
     
    To measure the frequency and duty cycle you'll need to capture the timer's value on the rising and falling edge of the input signal. You can either use a single capture register set to capture on both edges, or use separate registers for the rising edge and the falling edge. If you use two registers you'll need to connect the input signal to multiple timer input pins, of course.
  7. Like
    tripwire reacted to cubeberg in Capacitive touch buttons in Eagle   
    I would recommend studying TI's white papers on the subject. There is more to it than just shapes - ground plane, isolation, trace routing, tuning, etc. Not to say that it is hard - just some considerations you should be aware of. 30 minutes of reading will save you some greif. I will try to look up the ones I used and post in a bit.
  8. Like
    tripwire reacted to xxx1 in SURPRISE!! THANK YOU! 2 Coupons   
    Texas Instruments 2 coupons codes. Enjoy!!
     

  9. Like
    tripwire reacted to bluehash in Well... crap.   
    Aww man! @@abecedarian, you totally get an award for this. Check it out
     
    I don't have that display. I have the 5x20 line one. You can have it if you want.
  10. Like
    tripwire reacted to yosh in connecting GPS and PC via UART serial comm.   
    See image:
     

  11. Like
    tripwire reacted to RobG in Arrow's Black November - Complimentary Shipping on Any Online Order   
    Here we go again.
    I needed one part # and happened that Arrow had it in stock and at the best price. I wanted to avoid buying from Arrow since I remember all my problems with previous orders, but I figured I will give it a try.
    I check shipping charges w/o logging in and they were $8. As usually, shipping charges were not shown when logged in. I contacted support to verify that charges are the same and there are no extra charges on top of this just because I am using My Arrow account.
    I was told that yes, the shipping is $8 and there are no extra charges.
     
    My first order was cancelled because the part that suppose to be in stock last week... well, they don't carry that part even though it's listed and can be back-ordered.
    My second order was OK, but as usually with Arrow, you don't get the total amount right away. Not only that, I never got shipping confirmation email or email with invoice.
    After checking it online, I found out that I was charged $16 for shipping.
    I contacted support via chat and they told me that I have to call sales dept. I asked if they are open (I am on east coast and it was after 6pm) and they said they are not. I called anyways and a rep answered my call. I spent many minutes trying to explain why I think this is wrong, but he tried to convince me that they do it all the time and this is their standard rate, some handling and fuel charge, and that they don't know the actual shipping cost until it's all packed up.
    He finally offered to submit request for $8 credit (next week,) after I said I will refuse delivery.
     
    Every other company is able to estimate shipping at checkout, just not Arrow (well, they can if you don't log in.)
    If this was large order, I wouldn't mind paying few extra bucks, but my order was small.
    No more Arrow for me.
  12. Like
    tripwire reacted to bluehash in Image quality and external images   
    @@username. Good questions. See replies below. I'm more than happy to help out users, but some conditions are set in place due to reasons listed below.
     
    1- Images can be reduced in quality significantly when uploaded to the forum to the point where in certain applications, they are no longer useful
    >> Yes, that is being done to conserve bandwidth. For now, pdfs are the only way to get schematics readable.
     
    2- Non users cannot see these images
    >> There is a reason for that. The "Projects" section is open. The remaining sections are closed. The only reason I've done this is to increase member base and to make visitors at least register for what they need. It takes ~30 seconds to register, and the content is free. There is absolutely no loss to the visitor, except time.
     
    I've experimented this before when I had everything open, registrations dropped from 10-15 a day to 5 a day. I need to keep people on the site to sustain it.
     
    3- Images are replaced by microscopic thumbnails
    >> For bandwidth reasons. If I keep a cap on the image size, users struggle with getting the size down. They eventually get irritated and don't post the image. I'm looking into reducing image optimization, since it is not a click setting in the backend.
     
    4- User hosted images are not allowed
    >> They eventually die - this is the only reason. I know a few members link from their personal sites, but still, what happens if the sites go down? However, members are still free to add links to their site.
  13. Like
  14. Like
    tripwire reacted to CptanPanic in A sub-forum for displays (LCDs, OLEDs, etc)...   
    A good way to solve this is with tags. That way you can just tag a post with 'Displays', and then you can easily browse all of the posts with this topic. Maybe the forum can add this feature?
  15. Like
    tripwire reacted to igor in Raffle - confusing participation message for guests   
    One thing that bothers me a little about the giveaways is the way the raffle participation message is worded.
    When I connect to 43oh.com it says 
     
    "Hi, guest ,You are welcome to participate in our giveaway!"
    and then there is a link to the giveaway,
     
    but when you click the link you get a screen that again says you are welcome to participate, but with a button on the right that is gray saying "You can't participate!"
     
    Bit of a mixed message there.  (Even an exclamation point to drive the message home.)
     
    It might be friendlier to change that "You can't participate!" button to say something like.
     
    Sign in to participate
    or
    Create an account to participate
     
    Or in some other way indicate that guests are in fact welcome to participate, they just need to go through a few more steps in order to do so.
    Thanks.
  16. Like
    tripwire got a reaction from stirlingboy in Embedding breakpoints in C code   
    Hi,
     
    Since I started programming for MSP430 I've been looking for the MSP equivalent of "__asm int 3" (aka DebugBreak). I've come up with this fragment, tested on CCS 5.3.0:
    #ifndef NDEBUG // If debugger is attached and software breakpoints are enabled, DEBUG_BREAK will pause execution #define DEBUG_BREAK _op_code(0x4343) #else // Strip out DEBUG_BREAKs in final/release builds #define DEBUG_BREAK #endif  
    Put this in a header file and you can then embed breakpoints in your code with a DEBUG_BREAK; statement. To reiterate what it says in the comment above: DEBUG_BREAK only halts if the debugger is attached and software breakpoints are enabled!
     
     
    For an example of where it's useful, consider the DCO calibration constants check used in a lot of example programs:
    if(CALBC1_1MHZ == 0xFF || CALDCO_1MHZ == 0xFF) // Check calibration constants weren't erased { DEBUG_BREAK; // Halt program (if debugger is connected) while(1); // Loop forever (as a backup) to prevent use of erased calibration data }  
    As it normally appears (without the DEBUG_BREAK) the CPU just enters an infinite loop if the calibration data is missing. You have to notice that the program isn't progressing and manually pause to see what the problem is. With the addition of a DEBUG_BREAK the program pauses immediately so you can see what went wrong!
     
    They're handy for use in trap ISRs, to pause when an unexpected interrupt fires so you can find out what caused it. In that case you may want to leave out the infinite loop so the program can be resumed afterwards. They're useful for general debugging too, since embedding breakpoints like this has some advantages over breakpoints set in the debugger. More on that later...
     
     
    To understand how it works you need to know some details about how hardware and software breakpoints work. Time for a crash-course in breakpoints
     
    Placing a hardware breakpoint tells the MSP's Embedded Emulation Module (EEM) to halt the CPU whenever an instruction is fetched from the breakpoint's address. The EEM contains trigger modules that spy on the address and data buses inside the chip, and fire when they see a specified value. Once the trigger is set up the MSP runs code as normal until the trigger fires, which makes the EEM halt the CPU and stop all the clocks. This is great because it means hardware breakpoints don't mess up the internal state of the MSP. Unfortunately the EEM has a limited number of triggers (just 2 on the value-line chips), so you can only have two breakpoints!
     
    Software breakpoints work around that limitation by using one of the EEM triggers in a different way. Instead of halting when an instruction is fetched from a specific address, it halts when a specific instruction is fetched from any address. That means you can have as many breakpoints as you like, as long as they're all on the same instruction opcode. The debugger uses 0x4343 (a type of NOP) as its breakpoint opcode. When you place a software breakpoint the debugger first makes a record of the original opcode at that address. Then it overwrites it with 0x4343 in the MSP's flash memory. As before, the MSP runs code as normal until the trigger module detects an instruction fetch of the 0x4343 opcode. The EEM halts the CPU and stops the clocks. Now the debugger has to restore the opcode that it overwrote earlier and make sure it's the next instruction to execute. After you step or resume it needs to put the breakpoint opcode back again, assuming you didn't disable it in the meantime.
     
    All this writing to flash has an overhead, and the bad news is that the clocks need to be restarted during the process. That means that setting and hitting software breakpoints can make the on-chip timer peripherals go haywire.
     
    DEBUG_BREAK makes use of the debugger's trigger setup for software breakpoints, but it doesn't require any runtime flash memory overwrites. The breakpoint is entirely handled by the MSP's EEM like a hardware breakpoint, but you can have as many as you like. The only disadvantage is that you need to rebuild to move them ;-)
  17. Like
    tripwire reacted to zeke in Turning MSP430 into an amperemeter - possible?   
    You know, I have seen similar functionality in the MAX849 DC-DC converter. 
    The MAX848/MAX849 have an internal, two-channel, serial ADC. The ADC converts an analog input voltage into a digital stream available at the DATA pin. The converter skips clock pulses in proportion to the input voltage. Output format is a return-to-zero bit stream with a bit duration of 1/fCLK. At zero-scale input voltage, all pulses are skipped and DATA remains low; with a positive fullscale input voltage, no pulses are skipped; and at midscale, every other pulse is skipped. I wonder if TI was inspired by this old part?
     
     
     
  18. Like
    tripwire reacted to Fred in What are you working on today/this week?   
    Whilst I'm here, I had an unusual day today. UK comedian Ross Noble dropped round to my house with a TV crew to ask me about my NFC implant! He did a series a while ago called Freewheeling where he was led to random things by Twitter. Well worth checking out. Anyway, series 2 will be on in December / January. I'll have to wait until then to see if I made the cut. He left my place to go find a taxidermist who stuffs mice into positions doing things like reading newspapers.
  19. Like
    tripwire reacted to ILAMtitan in First actual fried MSP430   
    One more fried board, courtesy of a colleague of mine.  I know it's not an MSP, but the LM3S parts make some pretty patterns when you hit with mains voltage.  Just another reminder to always triple check when working with HV.
     

  20. Like
    tripwire reacted to bluehash in Newark 15% Coupon Code   
    Enjoy. Let me know if you find it handy.
     

  21. Like
    tripwire reacted to David Bender in Yet another DCO calibrator   
    This DCO calibrator starts with me not having a crystal on my board, and stealing rick's idea about using the UART to calibrate the DCO. It works without the UART peripheral or capture compare. The host sends the 'U' character and the micro responds with what adjustment it made, or that it calibrated to the target frequency. When the micro is calibrated, it sends the calibration constant values to the host, which prints them for the user. I used an oscope to verify the frequency on the P1.4's SMCLK output.
     
    Code is here:
    https://github.com/analog10/UART_DCO_Calibrator
     
    rick's original concept is here:
    https://github.com/RickKimball/msp430_code/blob/master/fabooh/examples/serial/dco_calibrate/goldilocks.cpp
  22. Like
    tripwire reacted to RobG in (Universal) Color LCD graphics library (2)   
    This is my new universal graphics library (original one is here.)
     
    Supported boards (this is out of the "box" support, but the library will work with any board after small changes.)
     
    TI's MSP430FR5969 LaunchPad (ugl16msp only for now)
    TI's MSP430F5529 LaunchPad
    TI's MSP430G2 LaunchPad with G2553 chip
    RobG's MSP430G2955 Dev Board
    RobG's MSP430F5172 Dev Board
    RobG's MSP430F5510 Dev Board
     
    Supported displays
     
    1.8" ST7735 based JD-T1800 - ugl8
    2.2" HX8340 based displays - ugl8
    2.2" ILI9225 based displays (touch panel) - ugl8
    2.2" ILI9341 based displays 320x240 pixels - ugl16
     
    Tiva versions are right here
     

     

     
     
    ugl8msp.zip (name change 4/18/14)
    ugl16msp.zip (updated 4/19/14)
  23. Like
    tripwire reacted to cubeberg in TLV Die record - how is it set?   
    It is actually done by blowing fuses on each chip. It is done during the testing phase - I assume there are test points available that aren't bonded to.
  24. Like
    tripwire reacted to Fred in What are you working on today/this week?   
    I'm working on a reflow oven project. I wanted to keep all the mains voltage safely contained, so the triac/PSU part of it sits inside the oven casing. Whilst testing just this bit I set the oven on and just let it go, partly to see if the temperature inside the oven case (which can reach about 50C) would cause any trouble.

    Anyway, this is what 280C does to a PCB that the thermocouple was attached to. It's only a little bit over reflow temperature, so I want expecting all the smoke and black gunk dripping out!



    The PCB was one of the daughter boards that came with RobG's nanopad. Sorry, Rob!
  25. Like
    tripwire reacted to mbeals in What are you working on today/this week?   
    I won't get to any serious development this week, but I'm at least thinking about how I want to approach it.
     
    This is a LFM (linear fm) TDM (time division multiplex) MIMO (multiple input/output) S-band phased array radar that I built as part of an MIT summer course.  The current iteration is using an ATmega dev board to drive the transmitter, process the return and transmit it over USB to the host processing software.  The problem is that the MCU is somewhat under powered which is impacting the PRF.  The data transmission operation is blocking, so there is a fair amount of dead time that could be used for continuous pulsing.
     
    So my goal is to replace the "brain" with something that has a little more horse power.  Right now I'm weighing my options between something with a Tiva series chip or a beagle bone black.  I'm also considering a DSP chip, but haven't looked very far into what my options are and how the DSP specific logic would benefit me since all the FFT's are done off board.


×
×
  • Create New...