Jump to content
43oh

tripwire

Members
  • Content Count

    193
  • Joined

  • Last visited

  • Days Won

    14

Reputation Activity

  1. Like
    tripwire reacted to nickds1 in TLV Die record - how is it set?   
    Normally, wafers like this are stepped as the imagers can't maintain the super-fine focus over the whole wafer (this is certainly the case for fine-resolution chips such as modern CPUs).
     
    The wafer is stepped so that each die is imaged in turn - the tables cost an absolute fortune as they have to have phenomenal repeatability and the design of the lens is an enormously specialised art - only a few people in the world do it. 
     
    Quoting a friend in another forum (who is a lens designer for these machines):
  2. Like
    tripwire reacted to GeekDoc in Post a pic of your home work bench, get a ..   
    Yeah, I figured such an awesome gift deserved a frame. ;-)
  3. Like
    tripwire reacted to Druzyek in What are you working on today/this week?   
    I've been curious about 6502s lately (I was too young when the craze hit) and I have been working on this:

    The MSP430 communicates with a program over UART, driving the 6502 data lines and using IO expanders to drive the address lines. I started out with RAM and ROM stored on the PC and fetching data every cycle over UART but this maxes out at about 90hz. Now everything is stored on a 128k SPI SRAM and the MSP430 syncs that memory with the memory on the PC every 200ms. I can get about 12,000hz this way (0.012MHz) Keeping all the data on the PC lets me view memory, set breakpoints, single-step, etc. It also keeps track of what memory is uninitialized, read-only, and executable so that it can break on improper memory access.

    All the peripherals like buttons, switches, screens, LEDs, etc are virtual and can be mapped to any memory location.

    It's way too slow to be a functional computer but it works well enough for learning about 6502 hardware and assembly.
  4. Like
    tripwire reacted to gwdeveloper in What are you working on today/this week?   
    Yesterday, I cleaned out my project drawers. I donated a trash bag full of samples, circuits, pcbs and dev boards to a high school kid on Craigslist. 

     
    Mostly de-cluttering the house in preparation for a move. Any of you guys in the Indianapolis area? www.gwdeveloper.net Sent from Tapatalk...
  5. Like
    tripwire reacted to maelli01 in decode the LEGO power functions protocol   
    LEGO power functions is a system of electronic components, motors,
    lights, remote controls to power various LEGO models.
    The remote control works with IR, but works surprisingly well even
    when there is no direct visual contact. The handheld unit is small,
    has two joystick-buttons, and allows 4 different channels to be selected.
    Much cooler than a TV remote!
     
    Interesting for hacking, LEGO has made the protocol open source, so 
    anybody can play with it, as long as not making it commercial.
    The protocol can be found here:
    http://powerfunctions.lego.com/en-us/ElementSpecs/8884.aspx
     
    So I decoded the powerfuctions protocol with the launchpad/energia:
     
    Apart from the lauchpad, I only needed a IR receiver. I tested with 
    a Vishay TSOP38338, other sensors might work as well.
     
    The processor sleeps when doing nothing, wake up only when there is 
    something to do. It is low power, but not ultra low, since the IR
    receiver needs around 0.4mA.
     


    //example program f
  6. Like
    tripwire reacted to Fred in Wolverine Launchpad update for early purchasers   
    Just got this from TI. Nice to see they're looking after people who are keen on their kits.
     
  7. Like
    tripwire reacted to chicken in Products using MSP430   
    ... in fact MSP430G2402 seems to be the go-to companion MCU for Surface Pro touchscreen controllers.
     
    Surface Pro (1)

     
    Surface Pro 2

     
    The same SSD and unidentifiable MSP430 is also found in Surface Pro 2

     
  8. Like
    tripwire reacted to chicken in Products using MSP430   
    Microsoft Surface Pro 3 comes with two MSP430's.
    https://www.ifixit.com/Teardown/Microsoft+Surface+Pro+3+Teardown/26595
     
    Near the touch panel controller, there's a MSP430G2402 (8K FLASH, 256B RAM):

     
    And on the SSD there's an unidentifiable MSP430G2???:

     
  9. Like
    tripwire reacted to spirilis in What are you working on today/this week?   
    Some hack time after work today; played with the Wolverine LaunchPad, Captouch (learning its new CAPTIOxCTL interface plus the "internal-only" TA2 and TA3 timers), and trying to do some "water level sensing" by taking two jumpers, removing 1 end of each and taping the exposed ends to the outside of a glass cup w/ tape.
     

     
    I was able to consistently read a "high" water level (at or above the electrodes) vs a "low" water level (reasonably close to the "dry" baseline calibration value).
     
    Also using CCSv6 for this, with the RH GCC 4.8 compiler.  Getting cozier with that setup.  It's also sweet having EnergyTrace++ profiling for my code every time (didn't take a pic of that unfortunately).


  10. Like
    tripwire reacted to KatiePier in TI MSP430 Wolverine now in production   
    Hi @@greeeg,
     
    Basically, XMS silicon isn't signed off on for use in mass production of end products - you should only use XMS as samples for designing your product, etc, and use production silicon to actually produce any large number of units of a product for public consumption. In addition, the XMS silicon doesn't always have all of the calibration constants in the TLV that are in the production silicon - for example, temperature sensor calibration at 85C might be missing because that clearly requires testing going through a temp chamber and that may not be done for simply these XMS engineering samples. Finally, depending on the part the first production silicon may be a different revision than some or all of the XMS parts released meaning they may have different errata fixed - always check the revision letter.
     
    In any case, once production silicon is out, it's always best to use that if you are making any sort of end-product, as it should be meeting all datasheet specs and is considered production quality.
     
    Regards,
    Katie
  11. Like
    tripwire reacted to zlalanne in Serial Data GUI   
    I created a quick project to start learning nodejs. To those that are unfamiliar nodejs allows you to write javascript for the server side. So I decided to write a small gui that plots serial data. The GUI itself is written in javscript/html and uses node-webkit to package it into a .exe file (or the correct package for your os).
     
    This could easily be extended to visualize a lot more I/O from the launchpad, and given that the GUI is written in html/javascript it is really easy to create new elements.
     

     
    Here is the source:
    https://github.com/zlalanne/node-serial-gui
     
    The repository includes the nodejs code as well as a simple Energia sketch to send a random value over serial.
  12. Like
    tripwire reacted to greeeg in NFC as a programming interface   
    I've been working on a watch based around a MSP430, and sharp memory LCDs.
    I have spent alot of time developing hardware for this, and not alot of time actually writing code. (If anyone actually read the code for my ledRing project you could probably see that I'm not the most elegant programmer.)
     
    I am on revision 4 of my watch, and I've told myself no more revisions until it is on my wrist telling the time.
     
     
    But, I'm constantly thinking about ways I could improve the hardware of the watch. one of my ideas was NFC.
     
    I'm wondering if you guys think this is something that would actually be beneficial to a watch?
     
    ST make a few EEPROM/NFC hybrids, basically it's EEPROM, but you can access it via NFC, or via SPI/IIC.
     
    (http://www.st.com/web/en/catalog/mmc/FM76/CL1766/SC1412/SS851)
     
    This would allow data transfer to occur between the watch and, say your phone. (setting the time / updating calendar alerts / etc)
    Or even my laptop has NFC, I could finish writing new code, place my watch on my laptop and it could be reprogrammed.
     
    This IC also has an interesting property, in that it can output excess RF energy through one of it's pins.
    The datasheet doesn't specify how much power, and I'm sure it would depend greatly on the NFC reader, antenna design, and operating distance. I have a board designed with one and an MSP, but I forgot to buy the IC last time I did a digikey order. on my next order I'll get some and I'll be able to do some tests.
    But this might enable the watch to run without batteries, or prolong the life of batteries.
     
    Has anyone used these ST micro devices before? I know TI now have their own NFC "dynamic" tags, basically a MSP430 + RF front end.
    Anyone done any projects with NFC? I found a few epaper NFC smart stickers online, but they all seem outdated, (~2012)
     
     
  13. Like
    tripwire reacted to chicken in Displaying .c Images Using Energia Sharp LCD BoosterPack Library   
    Here you go @@Hassanul, I added a simple method to my Energia library that allows to display images like the TI logo.
     
    https://github.com/astuder/MSP430-sharp-LS013B4DN02-memory-display/tree/master/energia
    // display TI logo for 2 seconds display.bitmap(pixel_ti_logo, 96, 96, 0); delay(2000);
    and yes, my SHARP display is literally catching dust []
  14. Like
    tripwire reacted to pabigot in Be aware : Launchpad can retain old code in memory   
    Specific devices (MSP430G2553, MSP430FR5739) have datasheets. These provide pin mappings, power consumption, available peripherals. Families of devices (2xx, FR57xx) have user's guides. These provide descriptions of each peripheral, what registers are available, and the effect of manipulating those registers. You need to be familiar with both to develop non-trivial applications. Look for them here.
     
    Energia provides a familiar interface and lowers the barrier to entry for people familiar with Arduino. From everything I've heard it's a great solution; it's just not one that accommodates my control issues. For that, I developed BSP430.
  15. Like
    tripwire reacted to pabigot in Be aware : Launchpad can retain old code in memory   
    If Energia is to provide the same interface as the Arduino API it emulates, it may be appropriate that it provide an initial configuration when invoking the pinMode command. Or it may not; I have no idea what sort of behavioral promises are made by either Arduino's normal API or Energia.
     
    There could even be times when the value set before a reset is exactly what you want to inherit after a reset: that need is why there's the more general LOCKLPM5 feature on the chips that support LPM3.5 and LPM4.5 modes. Getting that level of control is why I prefer to interface directly with the hardware for things as trivial as this: then there's only one reference document I need to check.
  16. Like
    tripwire reacted to pabigot in Be aware : Launchpad can retain old code in memory   
    It's also not surprising. PxOUT is not cleared on reset; since you enabled the pin for output, the previous setting is left unchanged. This is documented in the 2xx family user's guide (Table 8-2 Digital I/O Registers) from slau144j. A sufficiently long power-down might cure the problem, but in general if you're going to change the configuration of a GPIO from its power-up state you should set all the relevant registers.
  17. Like
    tripwire reacted to Rei Vilo in Some Misconceptions about Libraries   
    I'm receiving many mails about the libraries I've developed and I'm sharing.
     
    The libraries are plug-and-play as I'm using them in my projects. However, they are designed for a specific configuration. For example, a SD-card library requires a minimum of 512 bytes of RAM as this is the size of a sector. So it won't work on the MSP430G2553.
     
    With so many LaunchPads, BoosterPacks and components possible combinations, the one-fits-all approach is just impossible. It would end with lengthy and hard to read code with many pre-processing statements. For example, changing the pins names for the pins numbers improves the portability of the library across the LaunchPad range of boards.
     
    Even if the library works out of the box, they are provided as examples and require some work from the user. This is the best way for learning. The user should read and understand them, and then customise them so they can match his/her exact needs.
     
    With new hardware and software releases coming out, a library may suffer from obsolescence. It used to work with a prior version but no longer works with the new one. For example, each new release of Energia or CCS adds new features and some times modifies others in order to ensure compatibility across the whole range.
     
    Finally, feel free to improve and share back the libraries with the community
     
    This is a cross-post with Stellarisiti.
  18. Like
    tripwire reacted to fry in Products using MSP430   
    Hello all,
     
    This seems to be a custom Chronos watch (it has a buzzer) as part of the GoalControl system:
    http://cdn.arstechnica.net/wp-content/uploads/2014/06/GoalControl-Tivoli-04.jpg
     
    The article explaining the system use can be found at: http://arstechnica.com/business/2014/06/goal-line-tech-arrives-at-world-cup-promises-to-halt-endless-arguments/
     
  19. Like
    tripwire got a reaction from greeeg in RandomElectrons RELP-2 LaunchPad   
    In theory it's supposed to be the other way around. The micro USB connectors were designed after mini USB, and fixed some flaws in the physical design.
     
    Mini USB was originally designed for up to 1000 connect/disconnect cycles, which is not a lot. Micro USB was designed for up to 10000 cycles (still not a lot, but probably good enough for most uses). One of the changes was to move the parts that are likely to fail from the socket to the plug. That generally makes replacement easier.
     
    That said, mini USB does feel nicer to use due to the extra bulk. I've never broken a micro USB, but the plugs do feel liable to snap off whenever you use them.
  20. Like
    tripwire got a reaction from bluehash in RandomElectrons RELP-2 LaunchPad   
    In theory it's supposed to be the other way around. The micro USB connectors were designed after mini USB, and fixed some flaws in the physical design.
     
    Mini USB was originally designed for up to 1000 connect/disconnect cycles, which is not a lot. Micro USB was designed for up to 10000 cycles (still not a lot, but probably good enough for most uses). One of the changes was to move the parts that are likely to fail from the socket to the plug. That generally makes replacement easier.
     
    That said, mini USB does feel nicer to use due to the extra bulk. I've never broken a micro USB, but the plugs do feel liable to snap off whenever you use them.
  21. Like
    tripwire reacted to reaper7 in Mailbag   
    black is better
     

  22. Like
    tripwire reacted to greeeg in 120 LED Ring Clock   
    Yes, there is a small test program on then MCU. it should show accelerometer data with one moving pixel over 6 of the LEDs and then the other 6 show a rainbow.
     
    this was the programming jig I made.

     
    But then later just soldered a connector, it's not a perfect fit unfortunately. It was hard to find a small connector that wouldn't obscure parts on the other-side of the PCB.

     
    Maybe a future revision could use tagConnect? ;P
     

    I finally mounted the clock, I think it's looking quite fine.


     
    And I made a write up here, included lots of photos from the physical side of the project.
    http://www.instructables.com/id/Rainbow-Ring-Wall-Clock/
  23. Like
    tripwire reacted to greeeg in 120 LED Ring Clock   
    an update.
     
    I've never encased a full electronics project in clear resin before, but thought it would make the ring look more professional.

     
    I've got to wait a day or two to make sure it's fully cured, then I have to find out how to remove it safely from my mold.

     
     
    It'll either be awesome, or a complete failure.
  24. Like
    tripwire reacted to oPossum in Tiny printf() - C version   
    This code was written when the MSP430 Lauchpad shipped with chips that had 128 bytes of RAM, 2k of flash, and no hardware serial port. So it was important to keep code very compact and a software UART was needed.
     
    Your F6137 chip has many hardware UARTS - so it would be wise to use them rather than software UART. Just write a putc() function that sends a char to the UART and you don't need the assembly code.
  25. Like
    tripwire reacted to oPossum in Tiny printf() - C version   
    This is a tiny printf() function that can be used with the chips that come with the Launchpad. Code size is about 640 bytes with CCS.
     
    There are 7 format specifiers:
    %c - Character
    %s - String
    %i - signed Integer (16 bit)
    %u - Unsigned integer (16 bit)
    %l - signed Long (32 bit)
    %n - uNsigned loNg (32 bit)
    %x - heXadecimal (16 bit)
     
    Field width, floating point and other standard printf() features are not supported.
     
    printf() code

    #include "msp430g2231.h" #include "stdarg.h" void putc(unsigned); void puts(char *); static const unsigned long dv[] = { // 4294967296 // 32 bit unsigned max 1000000000, // +0 100000000, // +1 10000000, // +2 1000000, // +3 100000, // +4 // 65535 // 16 bit unsigned max 10000, // +5 1000, // +6 100, // +7 10, // +8 1, // +9 }; static void xtoa(unsigned long x, const unsigned long *dp) { char c; unsigned long d; if(x) { while(x < *dp) ++dp; do { d = *dp++; c = '0'; while(x >= d) ++c, x -= d; putc(c); } while(!(d & 1)); } else putc('0'); } static void puth(unsigned n) { static const char hex[16] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; putc(hex[n & 15]); } void printf(char *format, ...) { char c; int i; long n; va_list a; va_start(a, format); while(c = *format++) { if(c == '%') { switch(c = *format++) { case 's': // String puts(va_arg(a, char*)); break; case 'c': // Char putc(va_arg(a, char)); break; case 'i': // 16 bit Integer case 'u': // 16 bit Unsigned i = va_arg(a, int); if(c == 'i' && i < 0) i = -i, putc('-'); xtoa((unsigned)i, dv + 5); break; case 'l': // 32 bit Long case 'n': // 32 bit uNsigned loNg n = va_arg(a, long); if(c == 'l' && n < 0) n = -n, putc('-'); xtoa((unsigned long)n, dv); break; case 'x': // 16 bit heXadecimal i = va_arg(a, int); puth(i >> 12); puth(i >> 8); puth(i >> 4); puth(i); break; case 0: return; default: goto bad_fmt; } } else bad_fmt: putc(c); } va_end(a); }
     
    test code

    #include "msp430g2231.h" void serial_setup(unsigned out_mask, unsigned in_mask, unsigned duration); void printf(char *, ...); void main(void) { char *s; char c; int i; unsigned u; long int l; long unsigned n; unsigned x; // Disable watchdog WDTCTL = WDTPW + WDTHOLD; // Use 1 MHz DCO factory calibration DCOCTL = 0; BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ; // Setup the serial port // Serial out: P1.1 (BIT1) // Serial in: P1.2 (BIT2) // Bit rate: 9600 (CPU freq / bit rate) serial_setup(BIT1, BIT2, 1000000 / 9600); printf("%s", "\r\n*** printf() test ***\r\n"); s = "test"; c = 'X'; i = -12345; u = 12345; l = -1234567890; n = 1234567890; x = 0xABCD; printf("String %s\r\n", s); printf("Char %c\r\n", c); printf("Integer %i\r\n", i); printf("Unsigned %u\r\n", u); printf("Long %l\r\n", l); printf("uNsigned loNg %n\r\n", n); printf("heX %x\r\n", x); printf("multiple args %s %c %i %u %l %n %x\r\n", s, c, i, u, l, n, x); printf("\r\n*** Done ***\r\n"); for(;; }

×
×
  • Create New...