Jump to content
43oh

tripwire

Members
  • Content Count

    193
  • Joined

  • Last visited

  • Days Won

    14

Reputation Activity

  1. Like
    tripwire reacted to spirilis in [SOLVED] Is this code blocking suspend()/lpm4?   
    Check out EnergyTrace++.  It's an "additional" feature available with MCUs that support it, the FR5969 being one (and of course the FR5969 launchpad supports it, and would support the feature if used as an external debugger for any other MSP430FRxxxx chip that supports it).  You can't use EnergyTrace and EnergyTrace++ at the same time (edit: I haven't played with this in a while, maybe it does do both simultaneously now?) but the latter, EnergyTrace++, gives tracing of the LPM modes.  It's a hardware trace method for *proving* the MCU entered LPM4.
     
    I know this works with the desktop CCSv6.
     
    edit: Ah, now I see the user is utilizing a G2553 here.  So that wouldn't work with EnergyTrace++ but if possible the user might be able to migrate their sketch over to an FR5969 or similar MCU...
     
    edit:
    http://www.ti.com/tool/energytrace
     
  2. Like
    tripwire reacted to oPossum in Flash memory can be damaged by writes? (and related things)   
    Flash will wear out after being erased and written many times. As a practical matter you will have to keep the pointer to the flash in RAM.
     
    This would be a good application for one of the FRAM MSP430s. They have essentially unlimited write endurance.
  3. Like
    tripwire reacted to igor in Flash memory can be damaged by writes? (and related things)   
    Keeping pointer in RAM would be good move if you could.
     
    If you can't, can you get away with not storing a pointer at all?
    When you need to add a reading, search for the the end of where readings already are - takes more time, and have to reserve one reading value to mean there is no reading, but don't have to store the pointer.  Using binary search should be able to find the end in order of log2(maximum number of samples).  (One of the examples below just used a simple linear search.)
     
    I have definitely seen a temperature logger for the MSP430 using flash a long time ago.
     
    This isn't the one I was thinking of, but similar concept.
    http://benlo.com/msp430/
     
    Here is another one - which seemed to be unavailable at the moment, so I went to an archived version:
    https://web.archive.org/web/20130923235655/http://hiwaay.net/~bzwilson/temp_recorder/
  4. Like
    tripwire reacted to selcukc in Tiva C Series LaunchPad Based Digital Oscilloscope with Labview Interface   
    Dear L.R.A, I don't have any problem with internal ADC, I tested it during 8 hours it works good. Actually I think it. Using the external ADC chips will provide to reach high resolutions and sampling rates. I have some ADC chips to do it, if I can find more free time, I will try on it. But the first aim is here that converting the Tiva LaunchPad to low cost scope so I did not use any extra component, only coding.
  5. Like
    tripwire reacted to selcukc in Tiva C Series LaunchPad Based Digital Oscilloscope with Labview Interface   
    TivaScope is an oscilloscope which works with Tiva Launchpad (http://www.ti.com/tool/ek-tm4c123gxl, only 12.99$) from Texas Instruments. It communicates with PC via USB port. Its maximum sampling frequency is 1MSa/s with 12bit resolution. The signal which is shown on screen was obtained from referance signal output with10KHz %30 Duty Cycle. It also supports Stellaris LM4F120 LaunchPad.
     

     
    Tutorials
    https://youtu.be/B4GVoiZVIM4
    https://youtu.be/O0G1Gm5h3fk
     
    Specifications
    Maximum sampling frequency is 1MSa/s with 12bit resolution. It supports USB 2.0 Single channel input PE3(AN0) Referance signal output with10KHz %30 Duty Cycle from PB6 Labview Interface TI E2E
  6. Like
    tripwire reacted to jazz in MSP430F550x based logic analyzer   
    Firmware is done for MSP430F5510, but it should work with any MSP430 USB device. First byte in firmware txt file is XT2 frequency (default 24 MHz, 18h), and it can be changed manually before flashing to requested XT2 value. Supported XT2 values are 4, 6, 8, 12, 16, 18, 24, 25, 26.
     
    At start, it will be checked is it everything OK with setup, and after enumeration, LED on P4.7 (5529 LP LED2) will turn on. Blinking LED is related to setup error. Device will be enumerated as CDC with name 'LA', VID 2047h and PID 099Fh.
     
    PC side is done in Lazarus 1.4.0 (http://www.lazarus-ide.org), under Win32, but it should work also on Linux. By scroll bar on left down side can be selected port.
     

     
    After port is open, right down side will be enabled, together with "Measure" button. Blinking LED is indication for data exchange (2 bytes ping pong, every second) between micro and PC.
     

     
    P1 is used as logic analyzer input. Measurement is triggered by PC side, pressing "Measure" button. It also can be triggered by P2 on micro side, P2.0 with high level, and P2.1 (S1 button on 5529 LP) with low level.
     

     
    Chart used for result presentation have zoom possibly. "Reset" button will zoom out to start up screen. Here is example of measured 1 MHz signal on P1.2.
     

     
    Firmware: la_frm.zip
    CDC Win driver: la_cdc.zip
    PC source: la_source.zip
    PC Win Exe:la_win_exe.zip
  7. Like
    tripwire reacted to Marc in msp430fr5969 pins   
    Thanks! If you look on page 6 of that user guide:
     
    P2.1/TB0.0/UCA0RXD/UCA0SOMI/TB0.0
    P2.0/TB0.6/UCA0TXD/UCA0SIMO/TB0CLK/ACLK
     
    These don't match the description in: http://energia.nu/wordpress/wp-content/uploads/2014/06/MSP430FR5969.jpeg
    Also if you compare that with pins P2.5 and P2.6 TXD(1) and RXD(1) the two are consistent, so it's not a convention issue.
     
    I can verify this when my new launchpad arrives, but it would be great to find out before then. I appreciate any available help!
  8. Like
    tripwire reacted to Rei Vilo in msp430fr5969 pins   
    Good catch and thank you for noticing me!
     
    I've checked against the pins_energia.h file.
    static const uint8_t DEBUG_UARTRXD = 22; /* Receive Data (RXD) at P2.1 */ static const uint8_t DEBUG_UARTTXD = 21; /* Transmit Data (TXD) at P2.0 */ Release 2.3 will include the fix. 
  9. Like
    tripwire reacted to yyrkoon in General PRU "news".   
    So, remoteproc, and rpmsg should very soon be a reality for the Beaglebones, and the PRU's. Honestly, I do not know a whole lot about the software technology, but what I *think* I understand seems very awesome. Basically, you get a Linux library / set of API calls, plus kernel modules to start, stop, and manipulate "additional" processor cores. What's even more awesome, is that this can be used on processors with multiple cores ( say a dual core A15 ), where Linux could run on one, and "bare metal" on the second. This should be a huge benifit for real-time projects, that also require Linux.
     
    I'll add more information as I pick it up. I'm wanting to run remoteproc + rpmsg right now, but information is sparse. One of the Jason's (Reeder I think ? ) from TI has put up some information for remoteproc / rpmsg on the TI wiki though . . . pretty much a step by step how to - But using CCS, which I'm sort of allergic to
     
    *Random thought* The PRU's have *something* I can not think of the name, that can store the whole register set in one go. Called "broadside" - And store / load R0-R30 I believe in one cycle ( 5ns) ! Still not sure what all is possible with that, but the canotation is awesome . . . Anyway, these are called scratchpad or something ? There are actually 3-4 of these . . .
     
    Anyway still reading and attempting to absorb all this, but I'm seeing huge potential with the PRU's already. Mostly related to determinism of course . . .
  10. Like
    tripwire reacted to solipso in TI will no longer accept .edu addresses for samples   
    Well, of course it had to be thought out, but as for the unreliability of sourcing - we ordered a boatload of MSP430 and TM4C launchpads from the TI e-store during years and invested into building courses around these boards .
    We had to re-think the term "reliability of sourcing" as soon as the prohibitive shipping of $21 came into account: Launchpads are made exclusively by TI. On the other side, STM32 boards are being made by many producers in China.
    As for the development/production costs, it is not the subject of these classes. For instance we use the free Keil MDK as our IDE. I doubt that any of our students will work with a code size limited IDE at their work. Moreover, I do not know any major hardware developer company here in the CZ using TI's Cortex M. As far as I am aware of, the vast majority uses ST, Freescale and NXP parts in their designs, therefore I see no point to stick with TI when teaching students some ARM programming basics.
    Also the experience of breadboarding with bare target board and stand-alone debugger will probably more resemble the real life of an EE.
  11. Like
    tripwire reacted to terjeio in TM4C1294 reading in sin wave help   
    @@allbeengone It depends on what you define as "smooth" - 50 data points per period, 20 or how many? The Wikipedia page for Nyquist sampling theorem has some information you might find useful - when sampling a signal to be reproduced later you will need to sample at least twice as often as the (highest) frequency of the signal. Sampling and then plotting it (not reproducing it via a DAC and a low-pass filter) in a faithful way will require a higher sampling rate to achieve a "smooth" representation where "smooth" is whatever you decide it to be. Consider sampling a 100KHz sine at 200 Ksps - you may end end up with nothing at all if you happen to sample exactly when the signal crosses zero.
  12. Like
    tripwire reacted to spirilis in assembler listing   
    From cli, cd into the tmp build dir where it compiled the sketch then use arm-none-eabi-objdump -dS on the .elf file. Kudos to @@Rickta59 for teaching me that trick.
  13. Like
    tripwire reacted to terjeio in Newbie question on MSP432 FPU   
    CCS did not optimize the sqrtf call away:
    ||$C$L14||: .dwpsn file "../main.c",line 117,column 3,is_stmt,isa 1 LDR A1, [SP, #0] ; [DPU_3_PIPE] |117| VMOV S0, A1 ; [DPU_LIN_PIPE] |117| VCVT.F32.S32 S0, S0 ; [DPU_LIN_PIPE] |117| $C$DW$76 .dwtag DW_TAG_TI_branch .dwattr $C$DW$76, DW_AT_low_pc(0x00) .dwattr $C$DW$76, DW_AT_name("sqrtf") .dwattr $C$DW$76, DW_AT_TI_call BL sqrtf ; [DPU_3_PIPE] |117| ; CALL OCCURS {sqrtf } ; [] |117| VSTR.32 S0, [SP, #4] ; [DPU_LIN_PIPE] |117| .dwpsn file "../main.c",line 116,column 27,is_stmt,isa 1 LDR A1, [SP, #0] ; [DPU_3_PIPE] |116| ADDS A1, A1, #1 ; [DPU_3_PIPE] |116| STR A1, [SP, #0] ; [DPU_3_PIPE] |116| .dwpsn file "../main.c",line 116,column 13,is_stmt,isa 1 LDR A2, $C$CON10 ; [DPU_3_PIPE] |116| LDR A1, [SP, #0] ; [DPU_3_PIPE] |116| CMP A2, A1 ; [DPU_3_PIPE] |116| BGT ||$C$L14|| ; [DPU_3_PIPE] |116| ; BRANCHCC OCCURS {||$C$L14||} ; [] |116| Disassembly:
    $C$L14: 0000023e: 9800 ldr r0, [sp] 00000240: EE000A10 vmov s0, r0 00000244: EEB80AC0 vcvt.f32.s32 s0, s0 00000248: F000FAFE bl #0x848 0000024c: ED8D0A01 vstr s0, [sp, #4] Edit, added sqrtf disassembly:
    sqrtf(): 00000848: EEB50AC0 vcmpe.f32 s0, #0 0000084c: B508 push {r3, lr} 0000084e: EEF1FA10 vmrs apsr_nzcv, fpscr 00000852: D206 bhs $C$L1 46 _Feraise(_FE_INVALID); 00000854: 2001 movs r0, #1 00000856: F7FFFFA3 bl #0x7a0 47 return NAN; 0000085a: 4803 ldr r0, [pc, #0xc] 0000085c: EE000A10 vmov s0, r0 00000860: BD08 pop {r3, pc} 51 return TYPED_SQRT(x); $C$L1: 00000862: EEB10AC0 vsqrt.f32 s0, s0 00000866: BD08 pop {r3, pc} Compiler switches:
    -mv7M4 --code_state=16 --float_support=FPv4SPD16 --abi=eabi -me --advice:power="all" -g --float_operations_allowed=all --gcc --define=__MSP432P401R__ --define=TARGET_IS_MSP432P4XX --define=ccs --diag_warning=225 --display_error_number --diag_wrap=off -k
  14. Like
    tripwire reacted to igor in Newbie question on MSP432 FPU   
    Have you tried generating an assembler listing of the code produced by Energia, and looked through that to see what instructions are being generated?  It is a little convoluted to do (wish there was a switch/button for it in Energia).
     
    e.g.
    http://forum.43oh.com/topic/7485-assembler-listing/
  15. Like
    tripwire reacted to L.R.A in TI will no longer accept .edu addresses for samples   
    Yay... 

    Like getting directly from TI helps... 30$ shipping, why not.

     
  16. Like
    tripwire reacted to USWaterRockets in BMP180   
    1.1 Bar is 15.95PSI, which there are very few tires in the world that use this small pressure. That sensor is more suitable for altitude measurement. I used the BMP180 in early versions of my rocket altimeter and parachute deploy system.
     
    The  MPX5500D has a 0 to 72PSI range, which might be more suitable.
  17. Like
    tripwire reacted to Fmilburn in [POTM] Blue Angels F-18 Costume   
    Completed project at the local fall festival parade for children...
     

     
    EDIT: People loved the rotating / blinking / changing lights in the exhaust as well as the fact that it was hand made. If I do something like this again I will probably make the front light flash and add better sound. Strangers were taking pictures of him and asking how it was made.
  18. Like
    tripwire reacted to Lgbeno in This Weeks Amp Hour   
    I was lucky enough to be a guest on the Amp Hour this week.  We talked mostly about analog.io but I made a special point to give a shout our to everyone here on 43oh!  @@bluehash, I hope it helps grow the user base!
     
    http://www.theamphour.com/272-an-interview-with-luke-beno-of-analog-io/
  19. Like
    tripwire reacted to spirilis in Interrupt and Counter   
    Yeah, digitalRead (and digitalWrite, pinMode, analogWrite, etc) is kind've a beast.  It's the cost of having an elaborate abstraction layer that takes a simple integer identifier and distills it into platform-native operations.
  20. Like
    tripwire reacted to Fred in MSP-FET MSP430 Flash Emulation Tool 60% Off with coupon   
    Also, I hear the MSP-FET is 60% off. ;-)
  21. Like
    tripwire reacted to chicken in MSP-FET MSP430 Flash Emulation Tool 60% Off with coupon   
    I was developing professionally with Borland C, Visual Studio, and another C++ IDE I can't remember the name of. I found it pretty trivial to get started with CCS with that background. All those IDE's are organized in a very similar way. Certainly seems less painful than manually messing with linker options and make files.
     
    That being said, shelling out a few hundred dollars for each platform is definitely not something I'd want to do either. So far I'm within the 16k for MSP430, but getting close :-/
  22. Like
    tripwire reacted to yyrkoon in MSP-FET MSP430 Flash Emulation Tool 60% Off with coupon   
    For many of their boards though CCS is already free for non commercial use. I think I can even use it for the Beaglebone black, for free, for non commercial use, but . . . I kind of feel like when I used visual studio, on Windows. Sure, it works to get Windows application development done. But aside from that, how useful is it - Really ?
     
    Which is why now days I'm starting to lean heavily on platforms that use gcc, or at least a port of. I mean, learning how to use Visual Studio is ok, and CCS too. But using gcc, and related toolchains is knowledge I can take other places other than just for MS products, or TI only products. Does that sound evangelistic ? I'd like to think not, because for me, it's more about learning something useful that can be applied with other hardware, using a "unified system". Or at minimum at least something vaguely familiar.
     
    EDIT:
     
     Just as an example: Right now I am learning about PRU development on the Beaglebone black. I'm really rusty with ASM as a language, and despite the instruction set for the BBB's PRU being fairly minimal. I'm having a hard time understanding a lot that I really should know to be competent in using it. So, I decided to use the TI cgt-pru tool chain. It is, at least in my experience, no way standard. It's a TI specific toolchain for the PRU's, which is great, because it is free ( as in beer ), but it also comes with a proprietary set of libraries. Using CCS would make things easier in some regards, but I also feel like I would not learn much about the hardware using CCS with this hardware.
     
    So perhaps this toolchain is more geared towards people with a hardware background, in that using it with CCS would make things much easier on them. But I'm a software person with a high level software background by hobby. This means, either a) I use CCS and be another person who simply copies other peoples work, and modify it for my purposes. *Or* -b: I take the CLI ( non CCS ) approach, struggle through the whole learning process, until I arrive at some point where much of what I'm doing becomes clear . . .
     
    Both of these options in my opinion are simply unacceptable, but unfortunately for now, at least as far as I can tell there are no other options. With that said, if TI instead decided to use a port of gcc for the PRUs . . . Well, I would not have to relearn a new toolchain, but instead I could focus on the software specifics . . . making my life much easier.
     
    With all of that said, it is not TI's responsibility to make my life easier. But perhaps if is TI's responsibility to make monies - In which case, if making it possible for their user base(us) to use familiar tools, instead of having to learn proprietary tools. Perhaps that makes them more monies in the long run. Through additional sales.
     
    In addition, the reason why I like so many TI products is that there are OSS toolchains that work with the hardware I use from them. Take  that away from me, and well, I'll probably move to something else.
  23. Like
    tripwire reacted to aseely in TI has two new Hercules LaunchPads   
    Hi,
     
    Full disclosure - I work on Hercules at TI and worked on the new launchpads - thrilled to see the first post not from a TI press release.
     
    On VIM - you can actually map the interrupt requests to channels arbitrarily through the CHANMAP fields.  This is even avaiable through HalCoGen.
     
    Doesn't give you automatic priority based masking of lower priority interrupts for nesting purposes, but it does let you group as you like and by doing this it should be easier to implement the nesting code as the bit masks can be straight-forward.     VIM is used instead of GIC because we try hard to keep compatibility all the way back to the TMS470 family which was introduced in the late 1990s although it was really not a catalog product.   
     
    Would love to hear about why Energia would be good for these launchpads....  The libraries available for it are starting to make me think it could be interesting as they provide a lot more than GIO and ADC capability. 
     
    The new launchpads introduce the XDS110 emulator.   There is actually a GDB Server available http://processors.wiki.ti.com/index.php/XDS_GDB_Agent .
    And HalCoGen supports several toolchains, including GCC.    Not that I've had time to play with these myself but hope to get some time over the holiday.
     
    Anyway - Thanks for noticing the new launchpads! 
     
    Best Regards,
    Anthony
  24. Like
    tripwire reacted to spirilis in TI has two new Hercules LaunchPads   
    Looks like they're using dual 40-pin BoosterPack pinouts, and substantially improved CPU specs - 180MHz for TMS570, 220MHz for RM46.  This is now the fastest LaunchPad out there, eclipsing the TM4C129 by far (Cortex-R4 is more efficient than Cortex-M4 anyhow) and it's R4F, not R4 like the older Hercules LP's.
     
    But still locked into the Hercules dev tools (HALCoGen + CCS) of course, so it's only worth it if you need that kind of horsepower for something specific where you're willing to use that HALCoGen+CCS toolchain.  i.e. Energia won't ever run on these :-P
  25. Like
    tripwire reacted to abecedarian in TI has two new Hercules LaunchPads   
    http://www.ti.com/tool/LAUNCHXL2-TMS57012
    - automotive qualified
     
    http://www.ti.com/tool/LAUNCHXL2-RM46
    - industrial / medical oriented
×
×
  • Create New...