Jump to content
43oh

hvontres

Members
  • Content Count

    58
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by hvontres

  1. Is there something like this for the launchpad pins?

     

    Show what functions are on what pin for the various launchpads (MSP340, Stellaris, Tiva, C2K, Hercules).

    Well, for the original launchpad, the mapping from Processor to pins is 1:1 As stated, this could be done for the newer ones as well. I might work on one for the Tiva C later this weekend. I just happened to be working on a MSP design and thought I'd share the concept.

  2. That looks like a nice simple reference, but don't forget there is GRACE which can be helpful planning what pins to use and ensuring you don't have any conflicts. I've only really played around with it a bit, but it does seem to do what it's supposed to (including creating skeleton code).

    http://www.ti.com/tool/grace

    I played with it a little before, but it seems very bloated and I am not sure it handles multiplexed pins very well. This sheet is intended as an early brain-storming tool where you can very quickly move things around or see why that cool widget you were just going to code up is just not going to work with the parts you have around :)

     

    It seems that Grace is designed for a much later stage in the design process, and at that point it might be useful, but I'll have to try it some more first.

  3. I have attached a simple spreadsheet I am using to plan out how to use the resources on a 430g2553 for a project. It is simply all of the functions for each pin in a seprate cell with a symbolic representation of the chip in the center. The color coding is completely up the the user. This way one can try to make decisions on which peripheral can be used and how it might need to be shared by other functions. I hope this helps :smile:

    post-20-0-89390300-1375338770_thumb.png

    The .zip file has both a OpenOffice and an excel version, since I couldn't attache the sheets directly

     

    430G2553_pin_plan.zip

  4. I realize this is kind of an old thread, but I finally got around to re-organizing my space in the garage.

     

    Here is the Before Picture, kind of my Bob Pease Memorial Shrine on a desk:

     

    post-20-0-95793900-1374562628_thumb.jpg

     

    Here is the new improved Setup:

     

    post-20-0-50371400-1374562646_thumb.jpg

     

    Note, I have not moved over all of the parts and tools from the old pile yet. I am hoping to keep most of my stuff in the big black cabinet. Most of the stuff here is surplus stuff from work. We are moving to a smaller building, so I scored the ESD safe bench, the cabinet, the two standard monitors, the chair and the magnifier. The scope I got off of Ebay for ~$400 bucks and the supply is an old AT (not ATX :smile: ) supply in a custom wood box. The 15" Monitor on the left is for the scope and was originaly a custom monitor in a STEEL box for one of our machines. we decided to go with regular displays instead, so it wound up in the boneyard until we cleaned that out about a year ago :smile: Someday it might end up as a display on a mill or somthing more industrial, but I don't know yet. The Computer and the SCSI enclosure were leftovers from IT, as were the tape drive and all of the Hard Drives inside. I am in the middle of upgrading the disk layout since I got a hold of a couple more 18 and 34 GB SCSI drives from the IT pile. The Computer is an old HP workstation with dual PIII 600's inside... I know it's kind of underpowered, but it has two isa slots for my GPIB card and the interface to the universal programmer. And the price was right. I still need to move over my microscope, but I need to figure out exactly where to mount it.

  5. Thanks! That's what I'm looking for, your thoughts and opinons. I too am wondering if feedback is even required; but then if you miss a step, glitch, whatever and the error compounds...

    Also, what if somebody wants to use a servo, then you must have feedback, no?

    A DC motor (either brushed or brushless) will need some kind of feed back to control position. With a stepper, the encoder can be used for servo like control, or it can be used to detect missed steps after the motion is done. This way, the motor is run in open loop and if there were any missing steps during the move, you could command a couple of extra steps at the end. With a stepper, you are more likely to loose steps at higher speeds, since motor torque falls off pretty rapidly.

     

    Having worked around servo systems for the last 18 years, I would not reccomend them for the uninitiated. Proper tuning and hookups can be a real pain without the propper tools. Also, the effects of feedback failures can be very spectacular and dangerous (imagine an axis flying towards you with full torque applied after the encoder fails and then hitting the end stops with a loud bang... that'll wake you up) But for the really adventurous, they do offer the potential for more performance. One of these days I should set up some articles on how a servo system works and can be tuned.... but that would be a bit too much like work :)

  6. What have you guys used for stepper motor position feedback? I'm aware of shaft encoders, hall effect sensors, magnet and reed switches... but haven't used any to actually get feedback/control. 

    Code/Links appreciated (especially Energia sketches)!

     

    It's for use with a little open source 1000PSI hydraulic pump that I'm iterating. The stepper feedback is for accurate hydraulic flow measurement, which will help us zero in on hydraulic positioning (not an easy thing!)

    attachicon.gifarduino hydraulic pump.jpg

     

    curious/interested (blogpost -no BS, no commercials):

    http://www.arduinoforgoodnotevil.blogspot.ca/2013/07/arduino-1000-pounds-per-square-inch.html

     

    THANKS!

    I would suggest a shaft encoder, especially once the new Tiva Launch pads get out. That one will have TWO quadarature counters on board, so interfacing to the encoder should be very simple. As far as controlling the position of a Hydraulic cylinder, you might be better off getting your feedback from the rod itself. One way that I played with years ago while working on the animation system for a Rose Parade Float (http://www.csupomona.edu/~library/specialcollections/rosefloat/floatimages/1993photo.html) is to use a 10 turn pot with a torstion spring, a large wheel and some steel cable. As the rod extends, the pot turns and you get absolute position feedback from the cylinder. I think if you try to just measure the flow, you will integrate up large errors.

    md71EO02a.jpg

  7. Hi there,

     

    my current project is to build a controller for a sensorless BLDC motor using a MSP430G2553. I want to realize trapezoidal control with Back-EMF/zero-crossing detection. I plan to detect zero-crossing with the Comparator(CA2/3/4 vs. CA1) and generate PWM using Timer1. Timer0 will be used for things like 30

  8. UPDATE:

     

    I just posted the hardware docs on Github (https://github.com/hvontres/LCD-Controller/tree/master/Hardware/LCD%20Driver)

    The project was done using the latest snapshot of kicad. One modification that is not shown in the current pdf documents was to remove C6. It seemed to be causing a nasty 20 Hz ripple in the -27 Bias supply that would show up as a 20Hz flicker in the display. I also found a couple of drill holes were a bit small on the first prototype. I will try to get a new version of the gerbers out soon.

  9.  

    Hi Energia experts,

     

    I installed StellarisWare and there are 2 important libraries. One is the Peripheral driver library. Energia did a good job replacing the peripheral driver library with the Arduino API. However, the Stellaris Graphics library has no equivalent in Energia. Is it possible to port this library over in the first place? 

     

    There may be licensing issues. The peripheral driver is licensed under a BSD license, but the Grlib and USBlib fall under the "Ti Clickwrap license". this license includes the following clause:

    g. Restrictions. You shall maintain the source code versions of the Licensed

    Materials under password control protection and shall not disclose such source

    code versions of the Licensed Materials, or any derivative thereof, to any

    person other than your employees and contractors whose job performance requires

    access. You shall not use the Licensed Materials with a processing device

    manufactured by or for an entity other than TI, and you agree that any such

    unauthorized use of the Licensed Materials is a material breach of this

    Agreement. Except as expressly provided in this Agreement, you shall not copy,

    publish, disclose, display, provide, transfer or make available the Licensed

    Materials to any third party and you shall not sublicense, transfer, or assign

    the Licensed Materials or your rights under this Agreement to any third party.

    You shall not mortgage, pledge or encumber the Licensed Materials in any way.

    You shall not (i) incorporate, combine, or distribute the Licensed Materials,

    or any derivative thereof, with any Public Software, or (ii) use Public

    Software in the development of any derivatives of the Licensed Materials, each

    in such a way that would cause the Licensed Materials, or any derivative

    thereof, to be subject to all or part of the license obligations or other

    intellectual property related terms with respect to such Public Software,

    including but not limited to, the obligations that the Licensed Materials, or

    any derivative thereof, incorporated into, combined, or distributed with such

    Public Software (x) be disclosed or distributed in source code form, be

    licensed for the purpose of making derivatives of such software, or be

    redistributed free of charge, contrary to the terms and conditions of this

    Agreement, (y) be used with devices other than TI Devices, or (z) be otherwise

    used or distributed in a manner contrary to the terms and conditions of this

    Agreement. As used in this Section 2(g), "Public Software" means any software

    that contains, or is derived in whole or in part from, any software distributed

    as open source software, including but not limited to software licensed under

    the following or similar models: (A) GNU's General Public License (GPL) or

    Lesser/Library GPL (LGPL), (B) the Artistic License (e.g., PERL), © the

    Mozilla Public License, (D) the Netscape Public License, (E) the Sun Community

    Source License (SCSL), (F) the Sun Industry Standards Source License (SISL),

    (G) the Apache Server license, (H) QT Free Edition License, (I) IBM Public

    License, and (J) BitKeeper.

     

    This might be keeping that library out of Energia.

  10. Well, I think I know what happened here... you need to add the Tiva board to your wishlist and then order it. I think I saw the picture at the bottom of the page and added it to the cart not realizing that that was a link to the old EK120XL... so now what will I do with two more :)

    well, my two xl120G's are here....

    Ship date for my Tiva order is 7/3/2013 so it looks like I'll have fun over the 4th of July weekend :)

  11. Hmm, that would suck... I just placed a pre-order for two in order to get the Encoder and PWM features...

    Well, I think I know what happened here... you need to add the Tiva board to your wishlist and then order it. I think I saw the picture at the bottom of the page and added it to the cart not realizing that that was a link to the old EK120XL... so now what will I do with two more :)

  12. Well my Tiva LaunchPad order is now marked as a Stellaris LaunchPad shipped. So either I'm going to be one of the first people with a Tiva or more likely I'll get another Stellaris just before they're superseded.

     

    I suppose that does confirm that TI considers them to be equivalent, but if you're thinking of preordering a Tiva them I'd suggest you don't.

    Hmm, that would suck... I just placed a pre-order for two in order to get the Encoder and PWM features...

  13. Interesting and nice big display.

     

    Looking at your (great!) documentation, I think you only send updates to the display. So the display has some kind of memory to manage refresh even though you can't read from it. Or did I miss something?

     

    Is there any particular reason why you relay the communication via the MSP430 instead of connecting the Stellaris directly to the 74LS245? (other than "because I can", which is very valid too :-)

     

    Thanks for sharing.

     

    Actually the display is really dumb. The MSP is in charge of doing the refresh and fetching the data. The Stellaris mostly supplies the memory needed to hold the display data. The Driver chips on the display have enough memory to hold one LINE of data at a time. So the max refresh rate is limited by how fast the MSP can process the data. This display was originaly meant to be driven by something like a SED1335 controller chip. But that would have been too easy :)

     

    By having the MSP handle all of the display timing and refresh, the Stellaris only needs to use ~4% CPU time to manage the display, leaving plenty of CPU time for generating the Data to display.

     

    Here is some more info on how to drive this particular display: http://tinyurl.com/8j9jkvv

  14. Very cool!  I like that you included the MSP430 as well.  

     

    Does the LCD itself have memory - or are the small chips RAM?

    Nope, no memory on the LCD, other than the shift registers in the controllers. The chips on the controller are a MSP4302542 to handle the data transfers between the stellaris and the lcd, a 74HCT245 used as a level shifter from 3.3V to 5V, a 4N29 isolator to turn the display on and off and a Max774 to supply the bias voltage. The framebuffer for the lcd is actually in the stellaris.

     

    https://github.com/hvontres/LCD-Controller/blob/master/Docs/Controller%20Design.pdf has a more detailed description on how this thing works :)

  15. This project attempts to control a surplus LCD (http://www.goldmine-elec-products.com/prodinfo.asp?number=G18246) using a MSP430 and the Stellaris Launchpad.

     

    Brief Description:

     

    This project is designed to run a 320x240 monochrome LCD with minimal CPU overhead.

    A seprate controller board supplies the VEE for the display, controls the Backlight and has a MSP430G2542 running as a SPI Master. The MSP also controls the clocks for moving the data to the display.

    The Stellaris side sets up a 1BPP offscreen display for Grlib and also sets up a UDMA job that transfers the display buffer to the SPI port for the MSP to collect.

    The SPI connection is set up to transfer 16 bits at a time, allowing for 4 pixel updates for each transfer. With the SPI clock running at 8Mhz, the display can update at ~51 Hz.

     

    I had the first PCBs made by OSH park and am currently trying to iron out some bugs in the bias voltage section. As soon as that is done, I will be adding schematics and the board layout on github.

     

    Code and documentation can be found here:

     

    https://github.com/hvontres/LCD-Controller

     

     

    Here is a picture of the current project:

     

    post-137-14264605226702_thumb.jpg

     

    Here is the first prototype:

    post-137-14264605227047_thumb.jpg

     

    a picture of just the controller:

    post-137-14264605227374_thumb.jpg

     

    controller mounted below launchpad:

    post-137-14264605227699_thumb.jpg

     

     

    Here is a video demo showing the different modes of the main application:

     

     

    The video starts with the splash screen, inverts the display, animates the splashscreen using grlib, displays text using grlib functions and finally shows some test images downloaded in 8 pixel chunks from the host. The current code allows for 30 chunks per transfer, so that is why the screen updates are a little slow. I'll try to get some better video soon.

     

  16. I've now changed the program. The while loop is taking cycles, so without it (I've just repeated up/down a bit inside the while-loop), I'm getting 40MHz output. I can't call it a square wave :-) but it's definitely a fast signal. 4mA drive on this one. There is a noticable delay for the while-loop. Is there a faster way of looping forever?

     

     

    attachicon.gif4mA-40MHz.png

     

    What is the input capacitance for your scope probes? For fast square waves, I built one of these: http://koti.mbnet.fi/jahonen/Electronics/DIY%201k%20probe/

    For this to work, your scope needs to either have a 50 Ohm input mode or you need to use an inline 50 Ohm terminator. This will give you ~1Ghz response for only a couple of $

  17. I now got my launchpad, which makes me very excited  :) , especially since I also just got a new scope  :)  :)  so I can see the waveforms. 

     

    I've tried setting up the code as you indicated, but I'm not getting more than 4.762MHz. Can you see what I'm doing wrong? 

     

    #include <inc/hw_types.h>
    #include "inc/hw_memmap.h"
    #include "driverlib/sysctl.h"
    #include "driverlib/gpio.h"
    
    int main(void) {
    
    	SysCtlClockSet(SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);
    	//SysCtlClockSet(SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);
    	SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
    
    	SysCtlGPIOAHBEnable(SYSCTL_PERIPH_GPIOF);
    	GPIOPinTypeGPIOOutput(GPIO_PORTF_AHB_BASE, GPIO_PIN_3);
    
    	GPIOPadConfigSet(GPIO_PORTF_AHB_BASE,
    			GPIO_PIN_3,
    			GPIO_STRENGTH_8MA,
    			GPIO_PIN_TYPE_STD);
    
    	while (1) {
    		HWREG(GPIO_PORTF_AHB_BASE + (GPIO_PIN_3 << 2)) = GPIO_PIN_3;
    		HWREG(GPIO_PORTF_AHB_BASE + (GPIO_PIN_3 << 2)) = 0;
    	}
    }

    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)

  18. Just a heads up to people considering using Stellarisware for their Open Projects (like Project of the Month):

     

    While drivelib is now released under a BSD licence, the other libraries and all of the examples fall under the original Stellarisware Licence which includes this rather ominous passage:

     

    g. Restrictions. You shall maintain the source code versions of the Licensed

    Materials under password control protection and shall not disclose such source

    code versions of the Licensed Materials, or any derivative thereof, to any

    person other than your employees and contractors whose job performance requires

    access. You shall not use the Licensed Materials with a processing device

    manufactured by or for an entity other than TI, and you agree that any such

    unauthorized use of the Licensed Materials is a material breach of this

    Agreement. Except as expressly provided in this Agreement, you shall not copy,

    publish, disclose, display, provide, transfer or make available the Licensed

    Materials to any third party and you shall not sublicense, transfer, or assign

    the Licensed Materials or your rights under this Agreement to any third party.

    You shall not mortgage, pledge or encumber the Licensed Materials in any way.

    You shall not (i) incorporate, combine, or distribute the Licensed Materials,

    or any derivative thereof, with any Public Software, or (ii) use Public

    Software in the development of any derivatives of the Licensed Materials, each

    in such a way that would cause the Licensed Materials, or any derivative

    thereof, to be subject to all or part of the license obligations or other

    intellectual property related terms with respect to such Public Software,

    including but not limited to, the obligations that the Licensed Materials, or

    any derivative thereof, incorporated into, combined, or distributed with such

    Public Software (x) be disclosed or distributed in source code form, be

    licensed for the purpose of making derivatives of such software, or be

    redistributed free of charge, contrary to the terms and conditions of this

    Agreement, (y) be used with devices other than TI Devices, or (z) be otherwise

    used or distributed in a manner contrary to the terms and conditions of this

    Agreement. As used in this Section 2(g), "Public Software" means any software

    that contains, or is derived in whole or in part from, any software distributed

    as open source software, including but not limited to software licensed under

    the following or similar models: (A) GNU's General Public License (GPL) or

    Lesser/Library GPL (LGPL), ( B) the Artistic License (e.g., PERL), © the

    Mozilla Public License, (D) the Netscape Public License, (E) the Sun Community

    Source License (SCSL), (F) the Sun Industry Standards Source License (SISL),

    (G) the Apache Server license, (H) QT Free Edition License, (I) IBM Public

    License, and (J) BitKeeper.

     

    This seems to preclude us from posting modified Ti-Example code on this board.

     

    While I can see why TI wants to protect the library code, it would have been nice to use a less restrictive license for the Examples. :(

×
×
  • Create New...