Jump to content

ike

Members
  • Content Count

    97
  • Joined

  • Last visited

  • Days Won

    2

Reputation Activity

  1. Like
    ike reacted to roadrunner84 in Neural network code   
    You need to buy a controller with the DWIM module built in, choose any of the MSP430G7xxx chips and you'll be fine.
  2. Like
    ike reacted to greeeg in MSP430FR vs M0+ which is better for battery-less operation   
    @@rockets4kids While I tend to agree with alot of your points, we should assume that @@RFEE has done enough background work on his design to know which parameters he is using as a metric.
     
    This statement makes sense with where he is coming from with thew startup times.
     
    Take the vibration for example. the system might be completely dead, i.e. not enough enough power to sleep. then when a large vibration occurs the system needs to wake up, and transmit some signals using only the energy it gathered from that shock.
     
    Ignoring a few extra things, like the RF system requiring energy to wake up, and any sensors etc.
     
    TI give a great table in their datasheets, Table 5-10 "Typical wake-up charge" Taken from the FR5969 datasheet Pg 31.
     
     
    A*s or Ampere Seconds is just Coulombs, the standard unit for charge. This is literally the energy required for the IC to power-up before it will execute any code.
     
    Looking at EnergyMicro's M0+ they don't have any comparable values.
    We can compute a value to try and compare. however during a MCU start-up not everything is running as it is in active mode, so these figures will be larger than if tested.
     
    Gecko zero M0+
    typical startup time 163us (Device datasheet, table 3-5 power management)
    Startup speed 14Mhz (reference manual pg 106)
    Active mode current: 117uA/Mhz  * 14Mhz = 1638uA (device datasheet, operating current)
     
    Startup charge = 266nAs
     
     
    Personally, I would build your device using both MCUs and personally test the difference. Asking about product comparisons on a forum about one of the products is inevitably going to return biased results.
     
    Full disclosure I have never used any energyMicro devices. I just spent a few minutes on google and reading datasheets.
     
     
  3. Like
    ike reacted to jpnorair in 300m Range RF PCB discussion   
    Implementing this is a lot more difficult than simply using the SX127x, which has some other built-in features for achieving long range.
     
    HopeRF sources Semtech components, or possibly pirates the HW -- I have no way to verify.  Either way, SX127x might be used in a HopeRF module fairly soon.
     
    The SAW-based transceivers certainly do not supply coherent receivers, PSK, or integrated convolutional code, so you need to use a different device.  Implementing RS can be done in firmware, but it is not easy.  It is even less easy to do it fast in firmware.
  4. Like
    ike got a reaction from londonlad in Total Noob Q'n, Need Help Controlling a Transistor   
    You need to connect GND too. For current to flow you need 2 wires. And you may try with 1k ohm resistors instead of 10k.
  5. Like
    ike reacted to jpnorair in MSP430FR5969 Wolverine Issues   
    Really, you should try the electric hot-plate method.
     
    Moreover, I have never had much luck with solder paste, unless I also have a stencil.  It just gets everywhere and causes all kinds of problems.  QFN48 is an ultra-common package, so having a one-up stencil for it isn't a bad idea: http://www.stencilsunlimited.com/flip-up-stencils-p-362.html.  For example, I use QFN48 almost exclusively as an MCU package in my designs, and I use more Cortex-M than I do MSP430.  Everything comes in QFN48.
     
    As a final note, make sure to clean the board thoroughly with a toothbrush you never plan on using, and high-concentration isopropanol (above 90%).  If you look at solder paste under a microscope, it is a combination of flux and thousands of tiny solder balls.  Those balls cause all kinds of problems if they are in places you don't want them, and they are impossible to spot with the naked eye.  Your board make look clean -- it isn't, unless you've cleaned it.  
  6. Like
    ike reacted to simpleavr in M-Clock build, M for Minimalist, Multi-mode or Matrix   
    Minimalist Multi-mode Matrix Clock
     

     
    Description
     
    This is a multi-mode clock project based on the msp430g2432. It can be assembled with minimal parts. With limited 8x8 pixels display resolution, this 12 hour clock shows time in 6 different modes. This project is based on a older attiny 2313 project I did a few years ago.
     
    HHMM mode, typical hours plus minutes scrolling digits with colon separator.
     

     
    Seconds mode, shows only seconds.
     

     
    Tix mode (shown below), led matrix is divided into quadrant, the upper quadrants shows the hour in bcd (binary coded decimal) values. they are represented by the number of dots to indicate the digits. the lower quadrants show the minute in bcd. i.e. for 5:34 it shows no dot + 5 dots on the upper half and 3 dots + 4 dots on the lower half.
     

     
    Dice mode (shown below), the led matrix is divided into two set of 'dices'. with the upper pair showing hour from 1 - 12, the lower pair of dice shows minutes in 5 minute increments. i.e. for 5:35 it shows dice value upper 5 + lower 7 (5 hour, 7 x 5 min).
     

     
    Binary (really it's bcd, or binary coded decimal) mode, (shown below) the hour, minute and second digits are show as binary dot on different columns in the led matrix. the columns 0 and 1 (from left) represents the hour digits, column 2 is blanked, columns 3 and 4 represent the minute digits, colum 5 is blanked, columns 6 and 7 represents the second digits.
     

     
    The circuit employs row and column multiplexing to drive the leds, one row at a time, this gives a 12.5% duty cycle when "sets" of leds (8 of them in each of the 8 rows) are turn on briefly. current limiting resistors are eliminated to save breadboard estate and as we are not constantly driving individual leds, they are not going to be damaged.
     
    The control (user interface) is also arranged so that we only use one tactile button for input. the firmware capture long button presses (press and hold) for menu rotation and normal button presses for menu selection.
     
    By migrating this project from an AVR mcu to a msp430 mcu I had made it possible to keep time a lot more accurately. During display (i.e. led on) the project runs at 1Mhz DCO. The msp430 mcu has factory calibrated clock values. When not displaying, this project enters a LPM3 (low-power mode 3) to conserve power. At LPM3 the DCO clock cannot be used and the project switches to use a 32Khz crystal based AClk to keep time.
     
    Features
    Minimal component count, 4 parts.
    Battery operated from 3V to 3.6V.
    Use of watchdog timer to keep time, power-down sleep mode (LPM3) takes uA power.
    32Khz crystal to keep accurate time when sleep.
    Runs 1Mhz DCO calibrated clock when active (displaying time).
    This is a 12H clock, not 24H and has no AM/PM indicator.
    Easter egg application.
    Parts list
    msp430g2432 (or other G series dip 20pin devices w/ 4k+ flash)
    8x8 LED matrix display (red only, this is a 3V project)
    tactile button
    32Khz clock crystal
    2x LR44 button cell or 3V-3.6V other battery source

     
    Application Notes
    Short key press in display mode cycles through HHMM, seconds, tix, dice, binary and sleep modes.
    Long press enters setup mode, subsequent long press rotates thru menu.
    Menu items cycles thru 'Set Clock', 'Dimmer', 'Auto-off'.
    In 'Set Clock' setup mode, short presses increment digit values (hours, minutes) and long press confirms.
    In 'Dimmer' setup mode, short presses cycles through available brightness levels, long press confirms setting.
    In 'Auto-off' setup mode, short presses toggle the auto-off on and off. With auto-off turned on, the clock displays time for 15 seconds and turn itself into LPM3 sleep mode to converse power. With auto-off turned off, display is on continuously.
    When in sleep mode, MCU goes in power down mode, consuming less than 30uA of power, 32Khz crystal w/ watchdog timer is used to keep time. A pin interrupt is enabled to allow for wake up via tactile button. In this mode the main clock is disabled to conserve power.
    Led segment multiplexing includes time delays to compensate for brightness differences for individual rows.
     
    Breadboard Layout
     
     
    the 8x8 led matrix has dot size of 1.9mm and is of common cathode, if you have common anode type, you can change a few lines in the code for adoption. see the following diagram and see if you have the right pin-outs. it appears they are quite common and if you purchase via ebay most suppliers have the same pin-out even if the model number is different.
     



       +=====================================================+
       |  .  .  +-------------------(1)------------(1) .  .  |
       |  .  .  |  .  .  .  o||o (2)------------------+.  .  | (crystal)
       |  .  ./ |  .  . \.  +--+--+--+--+--+--+--+  . |.  .  |
       |  . (+) |  .  .  o C7 C6 R1 C0 R3 C5 C3 R0  . |.  .  | (2xLR44 cell)
       |  .  .\ |  .  . /.  |    b2 b3           |  . |.  .  |
       |  . (+) |        +--+--+--+--+--+--+--+--+--+ |.  .  |
       |     |  |       |G b6 b7  T  R a7 a6 b5 b4 b3||      |
       |     |  |       |                            ||      | (msp430 mcu)
       |     |  |       |+ a0 a1 a2 a3 a4 a5 b0 b1 b2||      |
       |  .  | (1) .  . .+--+--+--+--+--+--+--+--+--+ |.  .  |
       |  .  +----------(+) +--+--+--+--+--+--+--+ (2)+.  .  | (8x8 red led matrix)
       |  .  .  .  .  .  .  R4 R6 C1 C2 R7 C4 R5 R2 .  .  .  |
       |  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  |
       |  .  . (1)-[  ]-(+) .  .  .  .  .  .  .  .  .  .  .  | (tactile button)
       |  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  |
       +=====================================================+


       *note: all (1)s, (2)s and (+) points are electrically connected


    Schematic
     


                                MSP430G2xxx
                             -----------------
              --------------|RESET            |
              | ------------|TEST             |
              | |           |                 |
              | |   ROW5 <--|P2.0         P1.0|--> ROW4 (of LED Matrix)
     /|\      | |   ROW2 <--|P2.1         P1.1|--> ROW6
      |  _|_  | --- ROW1 <--|P2.2         P1.2|--> COL1
      --o   o------ COL0 <--|P2.3         P1.3|--> COL2
        Button      ROW0 <--|P2.4         P1.4|--> ROW7
                    COL3 <--|P2.5         P1.5|--> COL4
          32Khz /-- COL7 <--|P2.6(XIN)    P1.6|--> COL5
        Crystal \-- COL6 <--|P2.7(XOUT)   P1.7|--> ROW3
                            |                 |

    Assembling
    Follow breadboard layout and place two jumper wires on mini breadboard
    Place msp430g2432 mcu
    Place 32Khz crystal
    Place Tactile Button
    Place power source (I am using 2xLR44 w/ magnets as holders)
    Finally place 8x8 led matrix on top of msp430g2432
    /EDIT match clock mode description w/ photos, current build is on G2432, G2452,G2553, etc will also work.
  7. Like
    ike reacted to roadrunner84 in UART Reliability   
    UART synchronises at byte level. So unless your bytes are head-to-tail any synchronisation error will be nullified at the start token of your byte.
    The easiest way to ensure your data will not be head-to-tail is to set up your transmitter to use 8N2, while you set up your receiver to 8N1. As a result your transmitter will send two stop bits, while your receiver will expect only one. The second stop bit will then be interpreted as an idle line by the receiver, resulting in it synchronising to the bitrate again at the start bit from the transmitter.
    Alternatively force your transmitter to send at a rate of at most 91% of the bandwidth, this does essentially the same, but your transmitter will not send two stop bits but a stop bit and a bit time length of idle.
    So if your baudrate is 200kBdps, you should be sure to send no faster than 18.18 kByte per second (200k/10 * 91% = 18.2 kByte, or 200k/11 = 18.18.. kByte)
  8. Like
    ike reacted to mrvisual in TI Back to School Promotion   
    Don't turn it on, take it apart:
     
    http://flic.kr/s/aHsjHPrs1H (MSP-SA430)
  9. Like
    ike got a reaction from tingo in any way to restore DCO calibration values w/o a crystal hooked up?   
    https://github.com/RickKimball/msp430_code/blob/master/fabooh/examples/serial/dco_calibrate/goldilocks.cpp
  10. Like
    ike got a reaction from oPossum in autorouting for custom PCB   
    http://en.wikipedia.org/wiki/Travelling_salesman_problem
  11. Like
    ike got a reaction from tripwire in any way to restore DCO calibration values w/o a crystal hooked up?   
    https://github.com/RickKimball/msp430_code/blob/master/fabooh/examples/serial/dco_calibrate/goldilocks.cpp
  12. Like
    ike reacted to jpnorair in Interrupts based on analog value   
    You could do it with the comparator peripheral.  You could also do with the the SVM if the value you are trying to measure is the supply voltage.
     
    If you are attempting to do hysteresis, you will need two comparators.  EDIT: Comp_B can accomplish some degree of hysteresis via the filtering options + falling edge triggering.
  13. Like
    ike reacted to simpleavr in Yet another N00b programming question   
    Perhaps this is Bitcoin country? 
  14. Like
    ike reacted to rockets4kids in tone generator on MSP430 g2553   
    Are you seriously so lazy that you are not even going to bother to edit the text of your classroom assignment before asking someone else to do it for you?
  15. Like
    ike reacted to rockets4kids in ultra low power mcu, is it a narrow segment?   
    You can't really compare the M4 with the MSP430, and even the M3s are a stretch.  The M0 is actually a good comparison with the MSP430, and on the contrary, they tend to have as much or more flash/ram than the msp430.
     
    Spec wise, the LPC1114 blows the 2553 out of the water at half the price.  Sadly, there is little documentation available outside of the data sheet, very little sample code, and almost no community support.
     
    TI would be in some real trouble if anyone addressed those issues...
  16. Like
    ike reacted to Rickta59 in My time with the LPC1114 dip28   
    The lpc chips have a built in bootloader much like bsl on the msp430 chips.
    I think there is a sanctioned flash loader. However, I'm just partial to
    opensource and things that run on linux.
     
    You'll find a lot of different versions of the lpc21isp code out there.
    The first one I tried (from the meatandnetworking.com article) was just
    plain broken. I'm using this version of lpc21isp I found on github.
     

    https://github.com/Senseg/lpc21isp It was missing support for our chip. So, I did have to patch it so it knows aboutthe 28 pin version of the lpc1114. I think g0rdon provide me those patches. Thanks
    g0rdon! Basically the changes add the 28 pin dip chip id and provides the proper
    smaller ram size (4k) to the device table. At startup, lpc21isp interrogates the
    chip and then decides if it knows about the chip or not.
     

    $ git diff lpcprog.c diff --git a/lpcprog.c b/lpcprog.c index ccf6c41..3fc5471 100644 --- a/lpcprog.c +++ b/lpcprog.c @@ -111,6 +111,8 @@ static LPC_DEVICE_TYPE LPCtypes[] = { 0x2532902B, "1113.../202", 24, 4, 6, 1024, SectorTable_17xx, CHIP_VARIANT_LPC11XX { 0x0434102B, "1113.../301", 24, 8, 6, 4096, SectorTable_17xx, CHIP_VARIANT_LPC11XX { 0x2532102B, "1113.../302", 24, 8, 6, 4096, SectorTable_17xx, CHIP_VARIANT_LPC11XX + { 0x0A40902B, "1114.../102", 32, 4, 8, 1024, SectorTable_17xx, CHIP_VARIANT_LPC11XX + { 0x1A40902B, "1114.../102", 32, 4, 8, 1024, SectorTable_17xx, CHIP_VARIANT_LPC11XX { 0x0444502B, "1114.../201", 32, 4, 8, 1024, SectorTable_17xx, CHIP_VARIANT_LPC11XX { 0x2540902B, "1114.../202", 32, 4, 8, 1024, SectorTable_17xx, CHIP_VARIANT_LPC11XX { 0x0444102B, "1114.../301", 32, 8, 8, 4096, SectorTable_17xx, CHIP_VARIANT_LPC11XX (END) When I first started with electronics I had paid full price for a 3.3V FTDI breakoutboard from SparkFun, ouch! However, it actually came in handy with this chip as it
    supports the full set of modem signals. I use RX/TX/RTS/DTR. This allows me to use the
    lpc21isp program to toggle the boot pin and reset for me. No hands loading.
    FTDI->LPC
    TX-> Pin 15 (LPX RX)
    RX-> Pin 16 (LPC TX)
    DTR-> Pin 23 (RESET)
    RTS-> Pin 24 (BOOTISP)/P0.1
    GND-> Pin 22 (GND)
     
    To load new code i just use make and use the control flags argument
    to have it automatically reset the chip, erase it, and then reset the
    chip when the code is loading.
     

    $ make clean all ... lpc21isp -wipe -control -postreset lpc1114fn28_release/blink.hex /dev/ttyUSB0 115200 12000 ...
  17. Like
    ike reacted to Rickta59 in My time with the LPC1114 dip28   
    A lot has changed recently with regard to arm toolchains. No longer do you have to build
    one yourself. You can easily get a fully featured arm compiler binary for all 3 platforms.
    (win32/linux/osx). Since last December you can find the linaro gcc available from here:
     

    https://launchpad.net/gcc-arm-embedded/+download You want to grab the one that says arm-none-eabi-... for your OS. The 'none-eabi'means it is a compiler for 'bare-metal' chips without any OS support. EABI
    means the libraries conform to the standard ELF ABI for arm chips. They update
    these files every quarter with new versions, new features and fixes. Make sure
    you read the release notes to see what is new and any cautions.
     
    Once you have a compiler, you can use it with Fredie Chopin's lpc1114_led_blink example
    that has a fully featured makefile.
     

    http://www.freddiechopin.info/en/download/category/6-examples The lpc1114 is a cortex-m0 chip and has full support. They provide newlib librariesthat you can link against although if you are concerned about small code you might
    want to avoid that stuff.
     
    -rick
  18. Like
    ike reacted to simpleavr in 1 Battery (JT) Power Source for MSP430 Launchpad ^_^   
    while looking at ike's link, i found another implementation which is more refined but require more components.
     
    circuit can be found here
     
    http://www.instructables.com/id/Wave-JT/step3/Circuit/
     
    the advantage i see is
     
    safe boot, a zener shunt regulator limits the max output to 3.3v (in my case) s/w control output, after booting, use adc (vcc/2 channel 11) to monitor boost voltage and turn booster on and off to maintain what's needed. this will keep the output below the zener shunt and reduce waste. s/w power down possible i also tied the boot button to the RST line on the msp430, and eliminated the RST pull up resistor. just need to setup NMI at boot-time.  
    layout, bird's view

     
    no more battery wires running into my breadboard, LR44 cell is held by RE magnets

     
    circuit is based on two NPN transistors and a easy to find (can be smaller) inductor

     
     
     
     
    i run a rgb led cycler as the demo application, it draws current on three pins and the load is not consistent. at the moment i am still struggling to find the best strategy / timing to read adc and adjust booster on/off. but it seems reliable enough for many applications.
     
    here is a video on a run.
     

  19. Like
    ike reacted to jazz in pullup resistor on reset pin   
    This is (maybe) related to non MSP430 devices. For MSP430, fuse programming voltage (Vpp) is supplied via TDI pin (4 wire JTAG) or TEST pin (SBW), not RESET pin.
     
  20. Like
    ike got a reaction from sirri in 1 Battery (JT) Power Source for MSP430 Launchpad ^_^   
    sirri what is the point of that? You can use 2pcs AAA, or if the size and weigh are concern then use CR2032.
  21. Like
    ike reacted to Rickta59 in My time with the LPC1114 dip28   
    I've been trying out the LPC1114 chip from NXP. It is an arm cortex-m0 chip with 32k of flash
    and 4k of ram. Quantity 1 pricing is < $3. Did I mention this is available in dip-28 packaging,
    very friendly to breadboards? Well it is.

    http://octopart.com/lpc1114fn28%2F102%2C12-nxp+semiconductors-22360689 I was going to post this on our sister site, however this chip is more like an msp430 than the cortex-m4 you find on the stellaris launchpad. 
    Others have posted tutorials to get you going.
     

    http://www.meatandnetworking.com/tutorials/lpc1114fn28-with-open-source-tools/ - how to setup on a breadboad http://www.embeddedrelated.com/showarticle/101.php?articleid=101- getting started with C++ and the lpc1114 http://www.blacksphere.co.nz/main/blackmagic - an open source SWD debugger that can run on an stm32f4 discovery board. I'm rounding out my fabooh framework with chips other than the just the msp430.  This seemed like a good hobbyistfriendly chip to add.I'm not ready to release anything but just wanted to let people know I'm working with it so you
    may see some code at some point.
     
    In the meantime, I mostly wanted to share this Rei Vilo style breakout for the pins and get a dialog going with others who
    might be interested in using this chip.  So if you have interest in this chip, speak up!
     

    http://bit.ly/11GTwWb - LPC1114DIP pin break out.  Hover over the cells for a more detailed description of the pin functions.  -rick
  22. Like
    ike got a reaction from athornsb in Timer0_A0 and Port 2 interrupt priority issue.   
    Of course that code will not work for your application, as I told you: You will have to modify it.
    With WDT_MDLY_8 you have 8ms and with WDT_MDLY_0_5 you have 0.5ms intervals, if you use fSMCLK @ 1MHz.
  23. Like
    ike reacted to RobG in Timer0_A0 and Port 2 interrupt priority issue.   
    How fast is the encoder spinning? How many contacts does it have, two?
     
    You can get the code from the example app that is loaded on every LaunchPad.
     
    Here are your WDT options (from the header file,) and remember that you can always change your clock to get different intervals. 
    /* WDT-interval times [1ms] coded with Bits 0-2 */ /* WDT is clocked by fSMCLK (assumed 1MHz) */ #define WDT_MDLY_32 /* 32ms interval (default) */ #define WDT_MDLY_8 /* 8ms " */ #define WDT_MDLY_0_5 /* 0.5ms " */ #define WDT_MDLY_0_064 /* 0.064ms " */ /* WDT is clocked by fACLK (assumed 32KHz) */ #define WDT_ADLY_1000 /* 1000ms " */ #define WDT_ADLY_250 /* 250ms " */ #define WDT_ADLY_16 /* 16ms " */ #define WDT_ADLY_1_9 /* 1.9ms " */
  24. Like
    ike reacted to kff2 in TIDeals : April 17th - Chronos Watch.   
    For those of you considering getting a Chronos watch, please keep in mind that
     
    1) This watch is not waterproof. Apparently, the "30m waterproof" classification, as advertised in TI's literature, really means "can get an occasional splash". The watch will leak if you swim or take a shower in it.
     
    2) This being an experimental device, there is absolutely no warranty provided by either TI or DigiKey.
     
    See this post for more details:
     
    http://forum.43oh.com/topic/2142-bad-experience-with-a-ti-deals-purchase/
  25. Like
    ike reacted to cubeberg in TIDeals : April 17th - Chronos Watch.   
    Considering all of their stock is still from 2010 - it doesn't surprise me that they keep putting them on sale.  Too bad on the price though - they used to go for $25 on tideals...
×
×
  • Create New...