Jump to content
43oh

larsie

Members
  • Content Count

    297
  • Joined

  • Last visited

  • Days Won

    7

Reputation Activity

  1. Like
    larsie reacted to CorB in Boosterpack LCD (Lars) on StellarisTI   
    After changing the HW (see previous) to an electret microphone it was time to see if the electret setup can hear high frequencies properly.
    For this I have programmed an MSP430G2553 (launchpad) to simply toggle an IO pin with a delay in between the hi and lo stages. Connected a small 8ohm speaker to that and started testing. I wasnt sure if the speaker would go high enough for my project but it seems it does ... I cant hear anything coming from the speaker but I did see the electret picking up a signal at a constant frequency. Next question was ... how high is the frequency I am producing actually. Ive first turned on my old bat-detector that allows my to tune the receiver to a signal. Turns out there was something like 45Khz coming from the speaker and that 45Khz also was in line with my observations on the spectrumgraphs. Using the spectrum software with a maximum detectable frequency of 60Khz the peak was just over halfway the graph. My batdetector wasnt calibrated recently so it might be slightly off.
     
    Unfortunately there are no real bats around yet but I will probably program the MSP430 to generate a frequency sweeper so I can move to the next stage ... showing an incoming ultrasonic beep as a spectrumgraph captured in time. 
     
    Onwards again !
     
    CorB
     
    EDIT: some pictures
     
    ultrasonic peak (graph shows frequencies 0 -60000Khz)

    ultrasonic peak (graph shows frequencies 0 -80000Khz)

     
    In both graphs you can see some dynamic/static noise on the rightside of the graph. That probably hsa to do with the fact that the whole setup of the microphone/opamp is currently setup on a breadboard.
     
     
  2. Like
    larsie reacted to hvontres in How fast is the IO?   
    To get the CPU to 80 Mhz, you need to set the divisor to 2.5:
    SysCtlClockSet(SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |SYSCTL_XTAL_16MHZ);  
    It looks like the default is 12.5 Mhz (see Table 5-4 in the datasheet)
  3. Like
    larsie reacted to bluehash in Stellaris Launchpad Reprap   
    Found this over at youtube. Invited the designer to post here.
     

  4. Like
    larsie reacted to energia in New Energia release 0101E0009 - 12/06/2012 with Stellaris support   
    After 4 months (to the day) of hard work by the Energia team, Energia release 0101E0009 - 12/06/2012 it is ready to go! A full list of new features and bug fixes will be posted on the github wiki page later this week.
     
    Highlights for this release are:
     
    - StellarPad aka EK-LM4F120XL support (http://www.ti.com/tool/EK-LM4F120XL).
    - FraunchPad aka MSP-EXP430FR5739 FRAM support (http://www.ti.com/tool/MSP-EXP430FR5739).
    - Lots of bug fixes.
     
    The release is available for download @ http://energia.nu/download/
    Pin mapping for the new boards is posted here: https://github.com/energia/Energia/wiki/Hardware courtesy of @rei-vilo.
     
    Thanks to all Energia users for your continued support and providing us with invaluable feedback!
     
    Thanks to Energia team members @StefanS, @ReaganR, @rei-vilo, @Rickta59, @pbrier, @clyvb for making this release possible.
     
    Special thanks to @bluehash for his continued support with 43oh.com.
     
    Enjoy the new release!
     
    Robert
  5. Like
    larsie reacted to gatesphere in LaunchPad library-TLV5620, w/ example waveform generator   
    Hi all. I've written a quick library to support the TLV5620 8-bit, quad-channel DAC from TI. This is a relatively powerful chip, and available in TI's magnificent sample program, in quantities of up to five in two temperature ranges (C and I).
     
    Anyways, as I'm lazy and don't want to rewrite my blog post here, and as I'd also like to attract more traffic to my blog, I'll just post the link here.
     
    If you have any questions or comments, feel free to leave them here or on my blog. I'll try to answer everything to the best of my knowledge
     
    Blog post:
    http://blog.suspended-chord.info/?c=9
  6. Like
    larsie reacted to dellwoodbu in How fast is the IO?   
    The Stellaris GPIOS connect to the core through both the APB and the AHB busses.  The AHB is faster.
     
    Use SysCtlGPIOAHBEnable to enable the port you want.  Then for absolute fastest toggle use HWREG(AHB BASE ADDRESS + (pin mask << 2)) = GPIO_PIN_x; // or zero.
     
    The pin mask is a feature of stellaris that allows you to add an offset to the base address which becomes a pin mask.  You can then write a single pin of a GPIO port without doing a read modify write.  The hardware only twiddles the pins that set in the mask value.  The right shift by 2 makes each pin mask a unique 32 bit address to write to.
     
    I believe with this method you can get a GPIO state change every 2 system clock cycles.  20 Mhz square wave from an 80 Mhz part.
     
    Using the Timers in PWM mode is often a better way to make these high speed signals.
     
    Also be aware that Stellaris has selectable GPIO drive strength.  Default is 2 milliamps.  Max is 8mA.  To go this fast you may need to up the drive strength.  I know high drive strength is need when doing very high speed SPI signals on the chip.
  7. Like
    larsie reacted to CorB in Boosterpack LCD (Lars) on StellarisTI   
    Hi,
     
    Ive started to port the code Lars and I have made for the MSP430 and C2K now also to the StellarisTI Launchpad. Based on a test using the code from Euphonistichack's frequency analyzer I created a simple new project. You can see the code below, however when I tried compiling this I got a load of errors (see the 2nd section). Its unclear to me why this happens as the necessary libraries are linked and the linkpaths are also working as planned. 
     
    I allready saw the initial problems when I was using the original code: GPIOPinConfigure(GPIO_PB4_SSI2CLK);
    This refers to a function in gpio.h and a define in pin_map.h. Without declaring GPIO_PB4_SSI2CLK as a define in the program itself the compiler did not work.
     
    Well here's the full list of issues reported,anybody with a clue ??
     
    cheers
    Cor
    P.S I am sure this is a user problem. Never made a project for the stellaris.
     
    Errors reported:
    undefined first referenced symbol in file --------- ---------------- GPIOPinConfigure ./hello.obj GPIOPinTypeGPIOOutput ./hello.obj >> Compilation failure GPIOPinTypeSSI ./hello.obj GPIOPinWrite ./hello.obj SSIBusy ./hello.obj SSIConfigSetExpClk ./hello.obj SSIDataPut ./hello.obj SSIEnable ./hello.obj SysCtlClockGet ./hello.obj SysCtlClockSet ./hello.obj SysCtlPeripheralEnable ./hello.obj error #10234-D: unresolved symbols remain  
     
     
    Code
    #include "inc/hw_memmap.h" #include "inc/hw_types.h" #include "driverlib/gpio.h" #include "driverlib/pin_map.h" #include "driverlib/ssi.h" #include "driverlib/sysctl.h" #include "inc/glcd_hwSPI.c" #define SSI_CLK GPIO_PIN_4 #define SSI_TX GPIO_PIN_7 #define GPIO_PB4_SSI2CLK 0x00011002 #define GPIO_PB7_SSI2TX 0x00011C02 int main(void) { SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_XTAL_16MHZ | SYSCTL_OSC_MAIN); SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI2); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE); // CS ENABLE GPIOPinTypeGPIOOutput(GPIO_PORTE_BASE, GPIO_PIN_5); // CS LOW GPIOPinWrite(GPIO_PORTE_BASE, GPIO_PIN_5, 0); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); GPIOPinConfigure(GPIO_PB4_SSI2CLK); GPIOPinConfigure(GPIO_PB7_SSI2TX); GPIOPinTypeSSI(GPIO_PORTB_BASE, SSI_CLK | SSI_TX); // // Configure SSI2 SSIConfigSetExpClk(SSI2_BASE, SysCtlClockGet(), SSI_FRF_MOTO_MODE_0, SSI_MODE_MASTER, SysCtlClockGet()/2, 16); // // Enable the SSI module. SSIEnable(SSI2_BASE); // initialize the LCD and write a few strings LCD_Init(); writeString(0,0,"LARS LCD"); writeString(0,1,"Test"); }  
     
     
  8. Like
    larsie reacted to EuphonistiHack in Frequency analyzer built from the new Stellaris Launchpad   
    Hey everybody,
    I don't know if I should make this a new post or just update here, but I just released a pretty heavy duty update to my project.  Let me know what you think!
     
    http://euphonistihack.blogspot.com/2012/12/the-writeup-2-electric-boogaloo.html
     

  9. Like
    larsie reacted to cubeberg in MSP430 Sewable - any interest?   
    I was able to put together a board last night.  Took about 45 minutes - my SMD skills are still pretty bad  
     
    Here's a demo video of the board with one of the RGB LEDs with integrated WS2811 and some pictures.  
     




  10. Like
    larsie reacted to M-atthias in Bit-Bang USB on MSP430G2452   
    Good morning !

    This has been directly from my bench, but I wanted to share this immediately with you before going to sleep. Of course, the next days I will provide a translation and more documentation, as most of you are not speaking German.

    - Yes, this is similar to the efforts of V-USB for AVR, but in a very early stage. I am in contact with Christian Starkjohann who wrote V-USB, and he helped me with valuable comments. Thank you !

    - For now, Mecrimus-B implements a "vendor specific" do-nothing low speed USB 1.1 device, which essentially only connects and gives back its descriptors, which are quite small. But as this is a test for receiver, transmitter, checksum generation and protocol handling, I am very happy with that yet.

    - I feed in clock with an external 18 MHz crystal oscillator; I choosed this so that I can hook up an oscilloscope probe without detuning.

    - Memory footprint is 2,5kb now, as there are debug message routines included and an halt-disconnect-and-dump-packet point for unknown requests. USB alone should fit in 2kb code.

    Connections are:

    (P1.0 LED Anode for Bit-Banged RS232 sinal for outputting debug messages)

    P2.0 Sync-LED Anode
    P2.1 Sync-LED Cathode (unimportant, only soldered it in this way to be able to measure brightness later)

    P2.2 D- over about 50 Ohms (two 100 Ohms resistors in parallel in my case)
    P2.3 D+ over about 50 Ohms

    P2.5 Resistor 1.5kOhms to D- as switchable connect/disconnect simulator

    XIN feeded with digital external 18 MHz clock. Note that the XO runs with same voltage as MSP430, altough rated for 5V, it works.

    D- has to be on a pin that for clock cycle reasons is accessible with the constant generator (the lower four pins) and D+ only has to be on the same port as D-.

    Included is a picture of the current hardware setup, you will see:

    -The test platform with msp430g2452 and external XO, connected with usb and spy-bi-wire
    -Two 1N4148 diodes as voltage droppers for roughly 3.6V Vcc
    -Optical coupled Lego-based-rs232 ;-)
    -Screw terminals for whole Port 1 and power
    -My own variant of a spy-bi-wire adapter

    Tested with Linux 2.6.26-2-686 and UHCI Host Controller.

    Questions are welcome !

    Matthias Koch
     
  11. Like
    larsie reacted to colgs3b in LCD and Touch booster pack   
    Thanks for putting this together Lars. Got my v4 board today, soldered the buttons and headers, ran the demo LarsLCS-CCS code, and was presented with a friendly "Hello". I look forward to having some fun with this.
  12. Like
    larsie got a reaction from colgs3b in LCD and Touch booster pack   
    EDIT: I've entered some summary information about the board here, so you don't have to browse through the whole thread.


    Button board:
    4 standard tactile buttons, that can be soldered on below the display area (not included). There is also room for a 20-pin MSP430 MCU. The standard software library supports the MSP430G2553 as the MCU, but the display can be used with other versions using bitbanging. The board can either be used by attaching it to an MSP430 Launchpad, with the MSP430 on the Launchpad, or by placing the MCU on the LCD-board. The back of the board has room for a SOT-89 LDO voltage regulator such as this (Upper right corner on the bottom, marked IC1). If you choose to attach a voltage regulator, you should also add a decoupling capacitor at C4 and C5. The power connection for the regulator is on the top left (seen from the front), above the BAT-text. Ground is on the outer pins, and the positive voltage is in the middle. For v4 of the board (blue, currently in store), the P2.0 pin is attached to the backlight through a pre-soldered resistor. Touch board:
    The board is a standard size Boosterpack for the MSP430 Launchpad which can snap onto the Launchpad. The board comes with female headers soldered on. There are 4 capacitative touch button areas below the display, marked A, B, C and D. These are connected to pins P2.2, P2.1, P2.4 and P2.3 respectively. CCS Touch Code is here. (A forum post later in this thread).  General info:
    Example code for IAR is available on https://github.com/mobilars/LarsLCD . If you have requests for new features or input, please use the 43oh Forum topic for the display to give input. CCS code is available here (touch-support isn't in the example, but I've got it running myself so ask if you need it.) The boards are based on the Powertip PE9665WRF display with the ST7579 controller. The screen is small (28x19mm viewable area) and requires little power (0.2mA). It is SPI-based, has backlight and has 96
  13. Like
    larsie reacted to cubeberg in MSP430 Sewable - any interest?   
    Ok - here's the main board. It's not routed yet, but the parts are all there. All LEDs have solder jumpers (even the power LED) that are off by default in case you're looking for really low-power, or need to use the pins for something else. I'm going to try to squeeze in some LED boards on the corners and make sure to beef up the traces for the power connections.
    I included a JST connector, but it's going to take a separate board to support a LiPo. It would need to be a buck-boost - there's a LilyPad board that would probably work. The power switch would allow a threaded connection to the + and - from a sewn-in supply like a coin cell or LiPo board, or a a direct JST connection.
     
    I've attached the Eagle schematic and board for anyone who's interested.

    MainBrd.sch
    MainBrd.brd
  14. Like
    larsie reacted to cde in MSP430 Sewable - any interest?   
    Instead of a flower/circle, how about a atom geometric shape? Anything without hard pointy edges.

    Though, I don't know what an odd shape like that would cost in routing
  15. Like
    larsie got a reaction from CorB in Garage door opener   
    I have the lockup problem yes. Both on cc1101 and cc2500 actually. More often in low signal strength cases. I have a feeling I have to bring it to idle a bit more often. Your problem sounds like it could be the fifo overflowing. I have had issues with not emptying the fifo fast enough. Might be your (thantran) problem. Then you need to flush the fifo.
     
    But I am using the same library on on both cc1101 and cc2500 chips. Same gdo signals, but havent explored all of them so thanks for the headsup. Works fine. Have tested cc1101 up to 500 metres, which is a bit far for a garage opener I think I use the sync gdo signal if I remember correctly. CC1101 is really a brilliant chip, but CC2500 is a nice workhorse also. Presumably very different inside though, so surprising they re able to make them so similar on the interface.
     
    I also revisited the TI library when I started using 2500, since I had taken out too much code for my github rf boosterpack github project.
  16. Like
    larsie got a reaction from SirPatrick in Garage door opener   
    I'm trying to make a garage door opener using some cheap CC2500 boards bought through a group-buy at 43oh.com (2 USD each) and a really nice board designed by RobG. I've made a prototype first, and it seems to work, but is not very pretty. I need to maybe make it more compact and make a case for it. Here's a picture:



    The code is definitely not finished, but you can download it here if you want to look at it. It's based on the TI CC2500 library (not SimpliciTI, which would probably have been a natural choice). I'm using the bitbanging version, as I didn't have any surface mount MSP430G2553.

    I guess maybe I should put the battery beneath.
  17. Like
    larsie got a reaction from jsolarski in Garage door opener   
    On the garage-end of my garage-door-opener, I need a relay that
  18. Like
    larsie got a reaction from thanhtran in Garage door opener   
    I'm trying to make a garage door opener using some cheap CC2500 boards bought through a group-buy at 43oh.com (2 USD each) and a really nice board designed by RobG. I've made a prototype first, and it seems to work, but is not very pretty. I need to maybe make it more compact and make a case for it. Here's a picture:



    The code is definitely not finished, but you can download it here if you want to look at it. It's based on the TI CC2500 library (not SimpliciTI, which would probably have been a natural choice). I'm using the bitbanging version, as I didn't have any surface mount MSP430G2553.

    I guess maybe I should put the battery beneath.
  19. Like
    larsie got a reaction from cde in Garage door opener   
    On the garage-end of my garage-door-opener, I need a relay that
  20. Like
    larsie reacted to garyamort in Turning a Launchpad into a poor mans IOIO   
    I've been working on turning a Launchpad into a poor mans IOIO. The latest version of the IOIO adds support for connecting from the computer to the board using a bluetooth serial connection. This means if I copy the underlying protocol[or at least as much as I need] - I can then emulate the IOIO for my real goal[see below].
     
    I'm just in the beginning phase right now, my initial goal is to get it working so I can use the IOIO protocol to turn on and off the 2 LED's on board. IE just cloning the Digital Output functionality and only on 2 pins.
     
    I'm hoping to finish that this weekend. Right now I just have the initial skeleton of combining the TI example code for 9600 baud uart and some basic IOIO headers.
    https://github.com/garyamort/IOIOExtension
     
    Once I get the 2 pins working, the next step is to allow for access to all 10 available pins on the MSP430G2553 [there is 1 and a half ports available, but 2 pins have to be used form the serial connection].
     
    This is where I figured I'd ask if there is a standard way of doing things as I'm re-learning C as I go along.
    A command will consist of a few bytes of data:
    The command byte, such as I beleive 6 and 7 for digital output. 6 to turn a pin into a digital output, 7 to change the value being sent out. Following the command is the "pin number" - where pin number is defined by where they come out on the board, not where they are on the launchpad.
     
    For my purposes:
    Pin 1: Port 1.0
    Pin 2: Port 1.3
    Pin 3: Port 1.4
    Pin 4: Port 1.5
    Pin 5: Port 1.6
    Pin 6: Port 1.7
    Pin 7: Port 1.0
    Pin 8: Port 2.1
    Pin 9: Port 2.2
    Pin 10: Port 2.3
    Pin 11: Port 2.4
     
    For the simple case of:
    Pins 1 and 5[1.0 and 1.6] I can use a simple switch/case to send the correct BIT to P1SEL
     
    However, to expand it to all 10 pins, I would rather not have a humungous SWITCH/CASE. It would be better to have a mapping of pins to their appropriate bit, port address, and value. Something like:
     
    PINDEF selectedPin = pinmap[1];
    selectedPin->port |= selectedPin->digitalOutBit;
    selectedPin->iovalue |= selectedPin->digitalOn;
     
    While I understand easily how to do the digitalOutBit and digitalOn - they are just values. The question is how to I assign a variable[selectedPin->port] so that it can be used in the same manner as P1SEL ?
     
     
    Thanks for any feedback.
     
    Sidenote: my /goal/ is yet another oscilliscope. However, since my strongest skillset is website engineering[php/HTML/CSS/Javascript] - my preference is to make the scope as a Javascript application run from the web browser. I can hack enough Python to use the Python serial and websocket library to provide access to the com port from the web browser - so with that in place it makes it a lot faster for me to write IOIO apps which will also be usable with a Launchpad by using Javascript.
     
    For added fun, I want to setup a PHP library so that I can have the launchpad display the number of users on a website via an LED bargraph and maybe have it play a sound when different "goals" are met.
     
     
    NOTE: I found I had to hunt through the project settings in CCS to find and enable the "relaxed-ansi" option in order to get the "packed" structures to work.
  21. Like
    larsie got a reaction from SirPatrick in Garage door opener   
    On the garage-end of my garage-door-opener, I need a relay that
  22. Like
    larsie reacted to traxman in Launchpad DC MotorPack.   
    Pack include TI DRV8833 chip for easy drive one stepper or two DC brushed motors (2 Amps max per winding, see datasheet for other info). Pack also contains small auxaliary 3,3V power supply for independent battery operation (without PC connection).


    MSP430LP_MotorPack.zip
  23. Like
    larsie reacted to RobG in Font collection   
    Let's start one.
    Here are some fonts I have:
     
    font_5x7.h
    font_8x12.h
    font_9x16.h
    font_11x16.h
  24. Like
    larsie reacted to bluehash in LCD and Touch booster pack   
    Lars.. I have a small suggestion.. Any code you attach here, could you duplicate in the first post. This will help you point people to code quickly, rather than moving 10 pages of forum posts.
  25. Like
    larsie reacted to jpnorair in MSP430 with USB support?   
    To close the loop on this, some time ago I managed to get a generally stable & workable CDC-only implementation of the MSP430 USB firmware working. I've tested mostly on Mac & Linux. It's also trimmed-down to under 3.5KB, and I expect I could get it down to maybe 2.7KB if I really tried. The team that coded the MSP USB library has __atrocious__ coding style. The code is on GitHub as part of my OpenTag project. The platform is a 5509-based stick.
×
×
  • Create New...