Jump to content


Global Moderators
  • Content count

  • Joined

  • Last visited

  • Days Won


Everything posted by Rickta59

  1. Anyone interested in grouping PCB fab orders?

    This is a 5 year old thread. PCB prices have dropped significantly in that time and you can get free DHL from some of the China companies. @NicloePatt are you a bot placed here to promote your PCB board company? I haven't seen you ask or respond to any question here in all your posts.
  2. Porting Arduino Library

    Energia does some static analysis of the flash and ram size. The Energia/Arduino feature only warns you when you use > 70% of resources. If you actually use too much flash or static ram the linker will spew an error. However, this won't give you any indication at runtime that you have run out of ram.
  3. Porting Arduino Library

    Using the msp430g2553 is just an exercise in frustration if you want to do arduino stuff. It has a lot less memory than an atmega328p (2k) vs msp430g2553 (512b). It also has less flash (32k) vs (16k). You would be better off getting one of the newer FRAM launchpads that aren't resource and peripheral deficient. In addition, the Energia support for the launchpad g2 has been put on autopilot and never gets any fixes.
  4. simple asm code example in energia?

    Also it really depends on which msp430 chip you want to use .. Have you looked in dev.ti.com for asm examples .. plenty there
  5. simple asm code example in energia?

    https://gist.github.com/RickKimball/ead0b3b0f28f0dbf426c51f46ced59ab Not exactly energia compatible but the blink code in asm is there. It is written to work with msp430-elf-gcc (the compiler used by energia) If you dig back in the history you can find a previous version that worked with msp430-gcc
  6. Promotion of MSP430FR2433 MCU LaunchPad™ kit

    Sorry to confuse. When I see a new msp430 chip I grep the header file for '_HAS_' which tells me what features are in the chip. I guess it would make more sense to read the datasheet
  7. MSP432E4

    They look like relabeled/renamed tm4c129x chips to me
  8. MSPDebug can't connect to MSP-EXP430G2 under Linux

    Might be related to the fact that you have USB 3.0. Do you have a USB 2.0 hub?
  9. Promotion of MSP430FR2433 MCU LaunchPad™ kit

    They should have saved that for 4/30 16k of fram, 512bytes of info fram, 4k of real ram and a 32x32 hw multiplier. Not too shabby for $4.30. That is certainly a lot more flexible than the original G2 launchpad and it has the new FET so you can use it on linux. If nothing else you can use it as a programmer for your off chip msp430g2553. #define __MSP430_HAS_MSP430XV2_CPU__ /* Definition to show that it has MSP430XV2 CPU */ #define __MSP430_HAS_ADC__ /* Definition to show that Module is available */ #define __MSP430_HAS_ADC_CHANNELS_8__ #define __MSP430_HAS_BKMEM__ /* Definition to show that Module is available */ #define __MSP430_HAS_BACKUP_RAM__ /* Legacy module name */ #define __MSP430_HAS_CRC__ /* Definition to show that Module is available */ #define __MSP430_HAS_CS__ /* Definition to show that Module is available */ #define __MSP430_HAS_FRAM__ /* Definition to show that Module is available */ #define __MSP430_HAS_GC__ /* Definition to show that Module is available */ #define __MSP430_HAS_MPY32__ /* Definition to show that Module is available */ #define __MSP430_HAS_PMM_FRAM__ /* Definition to show that Module is available */ #define __MSP430_HAS_PORT1_R__ /* Definition to show that Module is available */ #define __MSP430_HAS_PORT2_R__ /* Definition to show that Module is available */ #define __MSP430_HAS_PORTA_R__ /* Definition to show that Module is available */ #define __MSP430_HAS_P1SEL0__ /* Define for DriverLib */ #define __MSP430_HAS_P2SEL0__ /* Define for DriverLib */ #define __MSP430_HAS_PASEL0__ /* Define for DriverLib */ #define __MSP430_HAS_P1SEL1__ /* Define for DriverLib */ #define __MSP430_HAS_P2SEL1__ /* Define for DriverLib */ #define __MSP430_HAS_PASEL1__ /* Define for DriverLib */ #define __MSP430_HAS_PORT3_R__ /* Definition to show that Module is available */ #define __MSP430_HAS_PORTB_R__ /* Definition to show that Module is available */ #define __MSP430_HAS_P3SEL0__ /* Define for DriverLib */ #define __MSP430_HAS_PBSEL0__ /* Define for DriverLib */ #define __MSP430_HAS_P3SEL1__ /* Define for DriverLib */ #define __MSP430_HAS_PBSEL1__ /* Define for DriverLib */ #define __MSP430_HAS_RTC__ /* Definition to show that Module is available */ #define __MSP430_HAS_SFR__ /* Definition to show that Module is available */ #define __MSP430_HAS_SYS__ /* Definition to show that Module is available */ #define __MSP430_HAS_FRWPPW__ /* Definition to show that Function is available */ #define __MSP430_HAS_DATA_FRWP__ /* Definition to show that Function is available */ #define __MSP430_HAS_ADC_PCTLSEL__ /* Definition to show that Function is available */ #define __MSP430_HAS_T0A3__ /* Definition to show that Module is available */ #define __MSP430_HAS_T1A3__ /* Definition to show that Module is available */ #define __MSP430_HAS_T2A2__ /* Definition to show that Module is available */ #define __MSP430_HAS_T3A2__ /* Definition to show that Module is available */ #define __MSP430_HAS_EUSCI_A0__ /* Definition to show that Module is available */ #define __MSP430_HAS_EUSCI_A1__ /* Definition to show that Module is available */ #define __MSP430_HAS_EUSCI_B0__ /* Definition to show that Module is available */ #define __MSP430_HAS_WDT_A__ /* Definition to show that Module is available */ #define __MSP430_HAS_TLV__ /* Definition to show that Module is available */
  10. Suggestions on MCU/Chip Selection

    nothing like a timely response
  11. I've been trying out the new msp430-elf-gcc compiler. I like that we have a supported platform from TI that is part of the standard gcc distribution. However, it seems to have a few nits. If you try to compile a simple c++ program with msp430-elf-g++, it fails because of problems with iomacros.h. I've reported this on the e2e.ti.com forums. In the meantime I put together a fix that seems to work for me. I threw together a gist so you can see how I addressed it: gist.github.com/RickKimball/1303030#file-include-iomacros-h As a bonus you get some assembler code that uses interrupts with the new msp430-elf-gcc to blink an led. You will have to copy my iomacros.h and in430.h into the directory where you downloaded the headers from TI. I've tested this with .c, .cpp and .S files. [Links to e2e.ti.com discussions] e2e.ti.com/support/development_tools/compiler/f/343/t/356902.aspx -rick
  12. I went to modify the code at the gist above, however github wouldn't allow me to update. The error message was complaining because I had directories in my gist. It seems directories are no longer allowed on gist.github.com. I fixed the code for the latest msp430-elf-gcc and created a new repo: https://gist.github.com/RickKimball/ead0b3b0f28f0dbf426c51f46ced59 BTW: iomacros.h is fixed now so I removed the custom version I had created.
  13. For a long time, I have had an interest in FPGA development. You can find boards that come with a JTAG programmer on ebay for less than $20. The following ebay link shows a board similar to the one I had purchased http://www.ebay.com/itm/361568712810 I experimented with it a lot for a while and then I probably got distracted by some new TI toy Occasionally, I would pick it up and try different things with it. However, the cost and form factor of the chips discourages me from doing anything real with it. For me these things are more of an educational plaything. Yesterday, I noticed the neo430 project on opencores.org. It is an msp430 compatible processor implemented in VHDL. It didn't take me long to get it installed and it actually seems to work pretty well. There are some difference between the neo430 and the msp430. ( see list below for the details ) Using the Altera Cyclone II EP2C5 board I linked above I was able to use the example code to create an msp430 like device with 4K of ROM and 4K of RAM. It runs a serial bootloader over its UART peripheral and allows you to toggle the pins using its parallel port peripheral. It has a simple timer peripheral. It has its own custom peripherals and 'C' header files setup to access those. It comes all setup to use msp430-gcc as a development tool with the device you create. The instructions are pretty complete neo430 instructions , I just followed them to get started. For my Altera chip, I used the free web edition of quartus II 13.0.1 sp1 to convert the VHDL code into a loadable bitstream. Once you load that on to the FPGA chip using the USB-Blaster, a serial terminal is used to interact with the bootloader and upload msp430-gcc compiled files. The provided makefiles automate the msp430 code creation process. I'm using this on linux and I had to make a few changes to point at the directory where my msp430-gcc is installed. If you are windows user it will probably just work out of the box for you. I'll try and post more on my experiments. In the meantime, I thought others might find it interesting. Functional Diagram: Memory Layout:
  14. neo430 - msp430 compatible FPGA processor

    I had put neo430 down for almost a year and I'm coming back to it with renewed vigor. I came across this wiki that provides some useful information about getting started with the $15 altera ep2c5 board you find on ebay/aliexpress. http://land-boards.com/blwiki/index.php?title=Cyclone_II_EP2C5_Mini_Dev_Board The most useful info information there might be the tip about setting the default pin state to input with a weak pull up so you don't heat overload the 3.3 regulator. I had noticed the regulator getting hot and didn't realize it was because of some zero ohm resistors on the board that are only used if you are using an ep2c8 model. I cloned the neo430 github project and plan on adding a branch that has changes that are specific to the ep2c5 mini dev board. I plan to upload a Quartus II preconfigured project for neo430. I'll also add a minor change I made to the gpio peripheral which allows you to toggle a pin with a single set statement. No more XORin the existing GPIO value, just set it. This is something I always wished I had on real msp430 chips. Now I can add that stuff myself. Yay me! See my comments on the issue https://github.com/stnolting/neo430/issues/1 BTW: I can now toggle one or more pins with a single asm statement this yield a ~4MHz frequency when used in the tight toggle code below when running the ep2c5 at 100MHz. ... this code ... while (1) { GPIO_TOGGLE = 0b111; } ... becomes this ... <.L10>: be: 6c 4d mov.b @r13, r12 ; c0: 0c 93 cmp #0, r12 ;r3 As==00 c2: 1e 20 jnz $+62 ;abs 0x100 c4: b2 40 05 00 mov #5, &0xffb2 ; c8: b2 ff ca: 7c 40 07 00 mov.b #7, r12 ; initial value of the GPIO port 000000ce <.L15>: ce: 82 4c b4 ff mov r12, &0xffb4 ; this is the GPIO_TOGGLE=0b111; statement d2: 30 40 ce 00 br #0x00ce ; 000000d6 <.L3>: ... -rick
  15. CCS7 Requirements

    I thought CCS 7 was 64 bit only on linux, no? http://processors.wiki.ti.com/index.php/Download_CCS You have to go back to CCS 6.1.3 to get a 32 version.
  16. CCS7 Requirements

    If you have 64bit virtualbox installed maybe you could use a linux guest install and just run the linux version of CCS.
  17. USCI patch for parity

    I was trying to port a sketch that used the Serial port with non standard UART parity and character length to Energia. I noticed that the UART port isn't setup to handle anything except 8-N-1. While the code below can't do all the combinations that are available to the atmega, it can do 7/8 bit, even/odd parity and 1/2 stop bits. I created a patch that will at least fix it for the chip I am using (msp430g2553). It will need some work for other chips. Apply the attached patch to the source of the latest Energia source tree. (as of 11/11/2015) -rick (See new optional second parameter https://www.arduino.cc/en/Serial/Begin ) parity.patch
  18. Howdie

    You should try http://dev.ti.com before you write off web apps. This one lets you develop and debug for the msp430s.
  19. REALLY? main() not found ? MSP432 Launchpad

    Something is certainly wrong with your setup. In the picture you posted, I see it trying to compile using the -mcpu=cortex-m3 flag. That is wrong it would be -mcpu=cortex-m4. Looking at the stuff that is checked into github.com (those seem to be right) However, you can't really trust what is out on github. So who knows. You might look in the Energia15\package directory and find the platform.txt file and verify it has cortex-m4. Never mind ignore this post I read the topic title and it was msp432 .. I didn't look closely at your post. You are using a cc1350 which is a cortex-m3. I'm not sure what is wrong.
  20. SD card not writing any data from microcontroller.

    Did you read the limitations of the Petit FS? ... Petit FatFs Limitations: Petitfs specifically uses as little flash and stack as possible. This, however, comes at the expense of some functionality. Files are not able be created or increased in size, and only one file can be accessed at a time. ... So if you create a zero length file (open a file in a text editor and save it without adding anything to it), it isn't going to do what you want. If you search the forum or google this is expressed in thousands of posts. The comment above comes from this document: http://www.atmel.com/Images/Atmel-42776-Using-the-Petit-FAT-File-System-Module-with-AVR_ApplicationNote_AVR42776.pdf http://elm-chan.org/fsw/ff/pf/write.html ... Description The write function has some restrictions listed below: Cannot create file. Only existing file can be written. Cannot expand file size. Cannot update time stamp of the file. Write operation can start/stop on the sector boundary only. Read-only attribute of the file cannot block write operation. File write operation must be done in following sequence. pf_lseek(ofs); read/write pointer must be moved to sector bundary prior to initiate the write operation, or it will be rounded-down to the sector boundary at first write operation. pf_write(buff, btw, &bw); Initiate write operation. Write first data to the file. pf_write(buff, btw, &bw); Write next data. Any other file function cannot be used while a write operation is in progress. pf_write(0, 0, &bw); Finalize the current write operation. If read/write pointer is not on the sector boundary, left bytes in the sector will be filled with zero. The read/write pointer in the file system object advances in number of bytes written. After the function succeeded, *bw should be checked to detect end of file. In case of *bw is less than btw, it means the read/write pointer reached end of file during the write operation. Once a write operation is initiated, it must be finalized properly, or the written data can be lost.
  21. "It's a poor craftsman that blames his tools" What are you trying to accomplish? Why are you using a severely under powered msp430g2553? With all the other options available to you why would you flog yourself with this approach?
  22. What is your Backup Process?

    I had taken a quick glance at the feature list and had noticed that it is supposed to support that feature. I thought I read a further comment stating at some point it starts throwing away old versions to make room. I didn't dig deeper. I thought you might have. While it is all well and good to backup files as they change, it seems like it would make sense for some scenarios to only create a backup if the contents change. However, I can imagine other situations where it would be important to note file timestamp changes. I've noticed that simplistic approaches to backup schemes lead to data loss, while giving the user a false sense of safety that really isn't there. They only find out about an unrecoverable data loss after the fact. Write open source software, share it with all your friends. If you ever lose a file you just reach out for a little help from your friends.
  23. What is your Backup Process?

    In the 37 years I've been writing code, I've only asked an admin to recover a file for me once. Turns out that file was on a disk that was being backed up by a SCSI tape drive that had been having problems and of course all the tapes were bad. However, it is always easier to write code the second time : )
  24. What is your Backup Process?

    What happens when you do: $ for rev in $(seq 1000); do cat /dev/null >reallyimportant.c; echo $rev; sleep 1; done How many revisions does it save before it starts throwing out old copies and you end up with an empty c file?
  25. CCS v7 and Energia, Cannot Debug or Run Code

    You can hack your gel script: $ diff tm4c1294ncpdt.gel rk1294ncpdt.gel 127a128,132 > OnRestart() > { > GEL_AdvancedReset("System Reset", 1); > } > $ pwd /home/kimballr/ti/ccsv7/ccs_base/emulation/gel