Jump to content

JWoodrell

Members
  • Content Count

    445
  • Joined

  • Last visited

  • Days Won

    17

Reputation Activity

  1. Like
    JWoodrell got a reaction from cde in Interesting development on the USB project   
    Apparently I inspired some other people, (I have gotten emails from 2 different people about it in the last week). one of the guys has run with the idea and says he has it mostly worked out. I am forwarding his work here as it may benefit the community as a whole. I am not good enough with straight assembly to help him out but maybe you guys can take a look.
     
    Here is his original E-mail
     
     
    He doesn't say anything about the circuit hookup he is using between the chip and the host, but I am assuming it is a relative of the one I prototyped,also his code is only partially commented in English, and I don't read German.
     
    I am going to pick my project back up and work towards it as well, but this is interesting for now
     
    good luck guys.
  2. Like
    JWoodrell got a reaction from bluehash in I'm officially going crosseyed / blind soldering this :)   
    I am sure there is professional gear that makes it easier, magnification, pointer tips, heat control, and whatnot.
     
    I have to make due with what I have which is a 15w radioshack soldering iron (64-2051B is the model) it does ok, but its tip is huge compared to the chip and leads
     
    here is my little spider chip all potted up and drying, the same coin is next to it again (quarter)

     
    and on the breadboard

    (the black is magic marker, marking pin 1)
     
    not the cleanest, but they are isolated and solid and with what I have to work with, I'm happy for the night.
  3. Like
    JWoodrell got a reaction from RobG in I'm officially going crosseyed / blind soldering this :)   
    I am sure there is professional gear that makes it easier, magnification, pointer tips, heat control, and whatnot.
     
    I have to make due with what I have which is a 15w radioshack soldering iron (64-2051B is the model) it does ok, but its tip is huge compared to the chip and leads
     
    here is my little spider chip all potted up and drying, the same coin is next to it again (quarter)

     
    and on the breadboard

    (the black is magic marker, marking pin 1)
     
    not the cleanest, but they are isolated and solid and with what I have to work with, I'm happy for the night.
  4. Like
    JWoodrell got a reaction from bluehash in usb project update log   
    updated the circuit and code in the OP. also got a blog(see my signature) put together so far but haven't gotten a way to allow comments on it, but it is a work in progress.
     
    as far as that USB into android question I don't know i will have to look at the USB 2 go spec and see if it is compatible with the low speed transmissions.
     
    I am not quite happy with the circuit yet as driving enough current through the transistor to make it switch quickly i think is gonna be hard on the g2553 (3.6V through a 180ohm resistor is 20ma) it is handling it right now, but that is higher than I want to use, so im gonna order some small logic level mosfet gates and see what i can finagle that way.
     
    Oh as a side note, I will be out for a training event the entire month of march, so work on this will stop until I get back
  5. Like
    JWoodrell got a reaction from larsie in usb project update log   
    updated the circuit and code in the OP. also got a blog(see my signature) put together so far but haven't gotten a way to allow comments on it, but it is a work in progress.
     
    as far as that USB into android question I don't know i will have to look at the USB 2 go spec and see if it is compatible with the low speed transmissions.
     
    I am not quite happy with the circuit yet as driving enough current through the transistor to make it switch quickly i think is gonna be hard on the g2553 (3.6V through a 180ohm resistor is 20ma) it is handling it right now, but that is higher than I want to use, so im gonna order some small logic level mosfet gates and see what i can finagle that way.
     
    Oh as a side note, I will be out for a training event the entire month of march, so work on this will stop until I get back
  6. Like
    JWoodrell got a reaction from larsie in Cheap circuit for powering MSP430 from 230V   
    Most people have junk cell phone chargers lying around, if they are 110V you can take and wire the transformers in series, then take the 5v output and zener it down pretty easy. and with little power as it needs ANYthing will work pretty much
  7. Like
    JWoodrell got a reaction from larsie in usb project update log   
    As an update (I will put together a blog to track my project, but for now...)
    Got my preliminary blog online HERE
     
    I got my transistor signal fixed enough for now, so here is what it looks like so far
     
    I have my G2553 feeding off a clock signal from a 3.3V 12MHZ oscillator (ACHL 1026 I got from mouser) based off of opossums post and code about using the signal from the Launchpad to clock it.
     
    So I have my accurate clock divided down to a 1.5 MHz clock signal
    I have my chip spitting out a JKJKJK signal (byte 0x55) just as a test
    I can make it go Single ended Zero to signal the end of a transmission by turning off the driver output for the transistor, and allow it to be in the "idle input" state by turning on the output through the 1.5K resistor)
     
    I am using the USCI peripheral in SPI mode as the output driver (I wanted the UART mode because it had the double buffer, but it appended arbitrary start and stop bits to each byte so I couldn't use it, however SPI faithfully spits out whatever you tell it, you just have to be quick on the buffer load. 8 bit times is approx. 88 processor cycles to have the next byte processed and ready)
     
    So basically I will work with a byte at a time preformatting my message NRZI and bit stuffing it, and then writing those bytes out.
     
    Right now I have it jabbering the same byte over and over and over.
     
    Overall project steps
    1)USB output signal possible[DONE]
    2) USB input signal possible - My next step is getting it to shadow my USB mouse (that is low speed coms also) and getting it to successfully read, decode in an acceptable time frame.
    3) Structured output messages [50%]
    4) React to input messages with output messages
    5) Other stuff probably
    6) Coherent communications with actual computer?
     
     
    updated code (old version of code on my blog) right now I am just working out how i am going to do timing and precision transistions, so the delay code is kind of arbitrary right now. also I updated the picture with the new circuit design and waveform trace

    //***************************************************************************** // JWoodrell USB Project Code V0.1b (Step 1b) 25 Feb, 2012 //***************************************************************************** #include //#include void main(void) { volatile unsigned n = 0; WDTCTL = WDTPW | WDTHOLD; // Disable Watchdog BCSCTL2 = SELS | SELM_2; // Make MCLK and SMCLK reference LFXT1 P1DIR = BIT4 | BIT5;// SMCLK on pin4, and enable output for "SE0CTL" P1SEL = BIT1 | BIT2 | BIT4; // USCI on pins 1 & 2, SMCLK on pin 4, P1SEL2 = BIT1 | BIT2; // USCI on pins 1 & 2 P1OUT = BIT3 | BIT5;// select pull up option, and output "SE0CTL" on P1REN = BIT3; // set resistor enable for push button 1.3 BCSCTL3 = LFXT1S0 | LFXT1S1; // - Set XT1 clock type as external while(IFG1 & OFIFG) { // - Wait for MSP430 to detect clock is stable IFG1 &= ~OFIFG; // - Clear OFIFG n = 250; while(--n); // - Wait a while }; // - Loop until OFIFG remains cleared UCA0CTL0 |= UCMST + UCSYNC; UCA0CTL1 |= UCSSEL_2; // - Select SMCLK for USCI UCA0BR0 = 8; // - Divide SMCLK by 8 UCA0CTL1 &= ~UCSWRST; // - Start USCI A0 while(1) { // - Program loop if (IFG2 & UCA0TXIFG){ // - If the transmit function is ready for a new byte P1DIR |= BIT5; // - Make the "SE0CTL" an output UCA0TXBUF = 0x2A; // - Move next byte into the Write staging buffer __delay_cycles (44); // - Delay before triggering Single ended Zero P1OUT &= ~BIT5; // - turn off "SE0CTL" UCA0TXBUF = 0x00; // - Move 0 to the TX buffer for correct idle __delay_cycles (8); // - Delay time to allow for SE0 time P1OUT |= BIT5; // - Turn on "SE0CTL" P1DIR &= ~BIT5; // - Switch "SE0CTL" back to a high impedance input __delay_cycles (10000); // - Wait for a while before transmitting next byte } while (!(P1IN & BIT3)){ // - While pushbutton 1.3 is pushed P1DIR &= ~BIT5; // - Set "SE0CTL" to a high impedance input } P1DIR |= BIT5; // - Make the "SE0CTL" an output }; }

  8. Like
    JWoodrell reacted to oPossum in Precision 12 MHz clock for Launchpad MCU   
    The MSP430F1612 on the Launchpad provides a 12 MHz clock to the TUSB3410 chip. This clock can also be used by the MSP430 in the 20 pin socket.
     
    Clock on pin 49 of F1612

     
    Mask off pin 49 with Kapton tape and solder a 1k resistor to the pin.
    Connect the other end of the resistor to the lower pad of C21 using a short wire.
     

     
    This test program will flash the red LED five times with the DCO at ~1 MHz and then switch to the 12 MHz external clock.
     

    #include "msp430g2231.h" void main(void) { unsigned i; volatile unsigned n = 0; WDTCTL = WDTPW | WDTHOLD; P1DIR = 0x01; P1SEL = 0x00; i = 10; do { P1OUT ^= 1; while(--n); } while(--i); BCSCTL3 = LFXT1S0 | LFXT1S1; // - Set XT1 clock type as external do { // - Wait for MSP430 to detect clock is stable IFG1 &= ~OFIFG; // Clear OFIFG n = 250; while(--n); // Wait a while } while(IFG1 & OFIFG); // Loop until OFIFG remains cleared BCSCTL2 = SELM1 | SELM0 | SELS; // - Use LFXT1CLK as clock source do { P1OUT ^= 1; while(--n); } while(1); }
  9. Like
    JWoodrell got a reaction from gordon in usb project update log   
    As an update (I will put together a blog to track my project, but for now...)
    Got my preliminary blog online HERE
     
    I got my transistor signal fixed enough for now, so here is what it looks like so far
     
    I have my G2553 feeding off a clock signal from a 3.3V 12MHZ oscillator (ACHL 1026 I got from mouser) based off of opossums post and code about using the signal from the Launchpad to clock it.
     
    So I have my accurate clock divided down to a 1.5 MHz clock signal
    I have my chip spitting out a JKJKJK signal (byte 0x55) just as a test
    I can make it go Single ended Zero to signal the end of a transmission by turning off the driver output for the transistor, and allow it to be in the "idle input" state by turning on the output through the 1.5K resistor)
     
    I am using the USCI peripheral in SPI mode as the output driver (I wanted the UART mode because it had the double buffer, but it appended arbitrary start and stop bits to each byte so I couldn't use it, however SPI faithfully spits out whatever you tell it, you just have to be quick on the buffer load. 8 bit times is approx. 88 processor cycles to have the next byte processed and ready)
     
    So basically I will work with a byte at a time preformatting my message NRZI and bit stuffing it, and then writing those bytes out.
     
    Right now I have it jabbering the same byte over and over and over.
     
    Overall project steps
    1)USB output signal possible[DONE]
    2) USB input signal possible - My next step is getting it to shadow my USB mouse (that is low speed coms also) and getting it to successfully read, decode in an acceptable time frame.
    3) Structured output messages [50%]
    4) React to input messages with output messages
    5) Other stuff probably
    6) Coherent communications with actual computer?
     
     
    updated code (old version of code on my blog) right now I am just working out how i am going to do timing and precision transistions, so the delay code is kind of arbitrary right now. also I updated the picture with the new circuit design and waveform trace

    //***************************************************************************** // JWoodrell USB Project Code V0.1b (Step 1b) 25 Feb, 2012 //***************************************************************************** #include //#include void main(void) { volatile unsigned n = 0; WDTCTL = WDTPW | WDTHOLD; // Disable Watchdog BCSCTL2 = SELS | SELM_2; // Make MCLK and SMCLK reference LFXT1 P1DIR = BIT4 | BIT5;// SMCLK on pin4, and enable output for "SE0CTL" P1SEL = BIT1 | BIT2 | BIT4; // USCI on pins 1 & 2, SMCLK on pin 4, P1SEL2 = BIT1 | BIT2; // USCI on pins 1 & 2 P1OUT = BIT3 | BIT5;// select pull up option, and output "SE0CTL" on P1REN = BIT3; // set resistor enable for push button 1.3 BCSCTL3 = LFXT1S0 | LFXT1S1; // - Set XT1 clock type as external while(IFG1 & OFIFG) { // - Wait for MSP430 to detect clock is stable IFG1 &= ~OFIFG; // - Clear OFIFG n = 250; while(--n); // - Wait a while }; // - Loop until OFIFG remains cleared UCA0CTL0 |= UCMST + UCSYNC; UCA0CTL1 |= UCSSEL_2; // - Select SMCLK for USCI UCA0BR0 = 8; // - Divide SMCLK by 8 UCA0CTL1 &= ~UCSWRST; // - Start USCI A0 while(1) { // - Program loop if (IFG2 & UCA0TXIFG){ // - If the transmit function is ready for a new byte P1DIR |= BIT5; // - Make the "SE0CTL" an output UCA0TXBUF = 0x2A; // - Move next byte into the Write staging buffer __delay_cycles (44); // - Delay before triggering Single ended Zero P1OUT &= ~BIT5; // - turn off "SE0CTL" UCA0TXBUF = 0x00; // - Move 0 to the TX buffer for correct idle __delay_cycles (8); // - Delay time to allow for SE0 time P1OUT |= BIT5; // - Turn on "SE0CTL" P1DIR &= ~BIT5; // - Switch "SE0CTL" back to a high impedance input __delay_cycles (10000); // - Wait for a while before transmitting next byte } while (!(P1IN & BIT3)){ // - While pushbutton 1.3 is pushed P1DIR &= ~BIT5; // - Set "SE0CTL" to a high impedance input } P1DIR |= BIT5; // - Make the "SE0CTL" an output }; }

  10. Like
    JWoodrell got a reaction from oPossum in usb project update log   
    As an update (I will put together a blog to track my project, but for now...)
    Got my preliminary blog online HERE
     
    I got my transistor signal fixed enough for now, so here is what it looks like so far
     
    I have my G2553 feeding off a clock signal from a 3.3V 12MHZ oscillator (ACHL 1026 I got from mouser) based off of opossums post and code about using the signal from the Launchpad to clock it.
     
    So I have my accurate clock divided down to a 1.5 MHz clock signal
    I have my chip spitting out a JKJKJK signal (byte 0x55) just as a test
    I can make it go Single ended Zero to signal the end of a transmission by turning off the driver output for the transistor, and allow it to be in the "idle input" state by turning on the output through the 1.5K resistor)
     
    I am using the USCI peripheral in SPI mode as the output driver (I wanted the UART mode because it had the double buffer, but it appended arbitrary start and stop bits to each byte so I couldn't use it, however SPI faithfully spits out whatever you tell it, you just have to be quick on the buffer load. 8 bit times is approx. 88 processor cycles to have the next byte processed and ready)
     
    So basically I will work with a byte at a time preformatting my message NRZI and bit stuffing it, and then writing those bytes out.
     
    Right now I have it jabbering the same byte over and over and over.
     
    Overall project steps
    1)USB output signal possible[DONE]
    2) USB input signal possible - My next step is getting it to shadow my USB mouse (that is low speed coms also) and getting it to successfully read, decode in an acceptable time frame.
    3) Structured output messages [50%]
    4) React to input messages with output messages
    5) Other stuff probably
    6) Coherent communications with actual computer?
     
     
    updated code (old version of code on my blog) right now I am just working out how i am going to do timing and precision transistions, so the delay code is kind of arbitrary right now. also I updated the picture with the new circuit design and waveform trace

    //***************************************************************************** // JWoodrell USB Project Code V0.1b (Step 1b) 25 Feb, 2012 //***************************************************************************** #include //#include void main(void) { volatile unsigned n = 0; WDTCTL = WDTPW | WDTHOLD; // Disable Watchdog BCSCTL2 = SELS | SELM_2; // Make MCLK and SMCLK reference LFXT1 P1DIR = BIT4 | BIT5;// SMCLK on pin4, and enable output for "SE0CTL" P1SEL = BIT1 | BIT2 | BIT4; // USCI on pins 1 & 2, SMCLK on pin 4, P1SEL2 = BIT1 | BIT2; // USCI on pins 1 & 2 P1OUT = BIT3 | BIT5;// select pull up option, and output "SE0CTL" on P1REN = BIT3; // set resistor enable for push button 1.3 BCSCTL3 = LFXT1S0 | LFXT1S1; // - Set XT1 clock type as external while(IFG1 & OFIFG) { // - Wait for MSP430 to detect clock is stable IFG1 &= ~OFIFG; // - Clear OFIFG n = 250; while(--n); // - Wait a while }; // - Loop until OFIFG remains cleared UCA0CTL0 |= UCMST + UCSYNC; UCA0CTL1 |= UCSSEL_2; // - Select SMCLK for USCI UCA0BR0 = 8; // - Divide SMCLK by 8 UCA0CTL1 &= ~UCSWRST; // - Start USCI A0 while(1) { // - Program loop if (IFG2 & UCA0TXIFG){ // - If the transmit function is ready for a new byte P1DIR |= BIT5; // - Make the "SE0CTL" an output UCA0TXBUF = 0x2A; // - Move next byte into the Write staging buffer __delay_cycles (44); // - Delay before triggering Single ended Zero P1OUT &= ~BIT5; // - turn off "SE0CTL" UCA0TXBUF = 0x00; // - Move 0 to the TX buffer for correct idle __delay_cycles (8); // - Delay time to allow for SE0 time P1OUT |= BIT5; // - Turn on "SE0CTL" P1DIR &= ~BIT5; // - Switch "SE0CTL" back to a high impedance input __delay_cycles (10000); // - Wait for a while before transmitting next byte } while (!(P1IN & BIT3)){ // - While pushbutton 1.3 is pushed P1DIR &= ~BIT5; // - Set "SE0CTL" to a high impedance input } P1DIR |= BIT5; // - Make the "SE0CTL" an output }; }

  11. Like
    JWoodrell got a reaction from bluehash in usb project update log   
    As an update (I will put together a blog to track my project, but for now...)
    Got my preliminary blog online HERE
     
    I got my transistor signal fixed enough for now, so here is what it looks like so far
     
    I have my G2553 feeding off a clock signal from a 3.3V 12MHZ oscillator (ACHL 1026 I got from mouser) based off of opossums post and code about using the signal from the Launchpad to clock it.
     
    So I have my accurate clock divided down to a 1.5 MHz clock signal
    I have my chip spitting out a JKJKJK signal (byte 0x55) just as a test
    I can make it go Single ended Zero to signal the end of a transmission by turning off the driver output for the transistor, and allow it to be in the "idle input" state by turning on the output through the 1.5K resistor)
     
    I am using the USCI peripheral in SPI mode as the output driver (I wanted the UART mode because it had the double buffer, but it appended arbitrary start and stop bits to each byte so I couldn't use it, however SPI faithfully spits out whatever you tell it, you just have to be quick on the buffer load. 8 bit times is approx. 88 processor cycles to have the next byte processed and ready)
     
    So basically I will work with a byte at a time preformatting my message NRZI and bit stuffing it, and then writing those bytes out.
     
    Right now I have it jabbering the same byte over and over and over.
     
    Overall project steps
    1)USB output signal possible[DONE]
    2) USB input signal possible - My next step is getting it to shadow my USB mouse (that is low speed coms also) and getting it to successfully read, decode in an acceptable time frame.
    3) Structured output messages [50%]
    4) React to input messages with output messages
    5) Other stuff probably
    6) Coherent communications with actual computer?
     
     
    updated code (old version of code on my blog) right now I am just working out how i am going to do timing and precision transistions, so the delay code is kind of arbitrary right now. also I updated the picture with the new circuit design and waveform trace

    //***************************************************************************** // JWoodrell USB Project Code V0.1b (Step 1b) 25 Feb, 2012 //***************************************************************************** #include //#include void main(void) { volatile unsigned n = 0; WDTCTL = WDTPW | WDTHOLD; // Disable Watchdog BCSCTL2 = SELS | SELM_2; // Make MCLK and SMCLK reference LFXT1 P1DIR = BIT4 | BIT5;// SMCLK on pin4, and enable output for "SE0CTL" P1SEL = BIT1 | BIT2 | BIT4; // USCI on pins 1 & 2, SMCLK on pin 4, P1SEL2 = BIT1 | BIT2; // USCI on pins 1 & 2 P1OUT = BIT3 | BIT5;// select pull up option, and output "SE0CTL" on P1REN = BIT3; // set resistor enable for push button 1.3 BCSCTL3 = LFXT1S0 | LFXT1S1; // - Set XT1 clock type as external while(IFG1 & OFIFG) { // - Wait for MSP430 to detect clock is stable IFG1 &= ~OFIFG; // - Clear OFIFG n = 250; while(--n); // - Wait a while }; // - Loop until OFIFG remains cleared UCA0CTL0 |= UCMST + UCSYNC; UCA0CTL1 |= UCSSEL_2; // - Select SMCLK for USCI UCA0BR0 = 8; // - Divide SMCLK by 8 UCA0CTL1 &= ~UCSWRST; // - Start USCI A0 while(1) { // - Program loop if (IFG2 & UCA0TXIFG){ // - If the transmit function is ready for a new byte P1DIR |= BIT5; // - Make the "SE0CTL" an output UCA0TXBUF = 0x2A; // - Move next byte into the Write staging buffer __delay_cycles (44); // - Delay before triggering Single ended Zero P1OUT &= ~BIT5; // - turn off "SE0CTL" UCA0TXBUF = 0x00; // - Move 0 to the TX buffer for correct idle __delay_cycles (8); // - Delay time to allow for SE0 time P1OUT |= BIT5; // - Turn on "SE0CTL" P1DIR &= ~BIT5; // - Switch "SE0CTL" back to a high impedance input __delay_cycles (10000); // - Wait for a while before transmitting next byte } while (!(P1IN & BIT3)){ // - While pushbutton 1.3 is pushed P1DIR &= ~BIT5; // - Set "SE0CTL" to a high impedance input } P1DIR |= BIT5; // - Make the "SE0CTL" an output }; }

  12. Like
    JWoodrell got a reaction from cde in Controlling 4 RGB Leds with minimal components   
    Ok getting slightly more creative you can isolate the colors per pin so you only have a single resister per pin based on the color that pin triggers. This requires a diode on each pin also to jump around that pins resistor when it is used as the common.
     
    This is only quasi-Charlieplexing at this point because full charlieplexing would allow 30 LEDs (10 RGB sets) but since the cathodes are tied together, you are limited to a max of one RGB LED per pin, and isolating the pins by color limits you to sets of 6 pins at a time, but you still maintain 1 pin per RGB LED density.
     
    I enjoy puzzles like this

  13. Like
    JWoodrell got a reaction from gwdeveloper in SPI EEPROM question   
    I have never used one but based on what I can see (based on this parts datasheet http://search.digikey.com/us/en/product ... -ND/665604)
     
    I saw eeproms that spat out a byte at a time, but you mentioned SPI interface.
     
    Once you request a data read, and the address to read from, it will start spitting out bits on the SO line and where you send that bit stream shouldn't matter at that point, but it is still a stream of bits. if your display can take that 8 bit pulse / byte, and reinterpret that i don't see why not.
     
    What part# are you looking at specifically?
  14. Like
    JWoodrell reacted to zeke in transistor not acting right?   
    Do a sanity check and manually tie the base (or gate) to ground or to VCC and see what happens on the scope.
     
    Does that make it work as expected?
     
    Oh, and check to see that circuit Ground is grounded. Know what I mean?
  15. Like
    JWoodrell reacted to oPossum in transistor not acting right?   
    That looks about right for a 2N2222A. The usual way to speed up turn off is a resistor from base to emitter. Try a 330 ohm or 470 ohm.
     
    A diode as you have drawn will not help.
  16. Like
    JWoodrell got a reaction from kylej1050 in Controlling 4 RGB Leds with minimal components   
    you just have to be alittle creative, but common cathode RGB LEDs can be charlieplexed.
     
     

     
    hope I helped
  17. Like
    JWoodrell got a reaction from oPossum in Controlling 4 RGB Leds with minimal components   
    you just have to be alittle creative, but common cathode RGB LEDs can be charlieplexed.
     
     

     
    hope I helped
  18. Like
    JWoodrell got a reaction from DanAndDusty in Controlling 4 RGB Leds with minimal components   
    you just have to be alittle creative, but common cathode RGB LEDs can be charlieplexed.
     
     

     
    hope I helped
  19. Like
    JWoodrell reacted to bluehash in usb oscilliscope   
    It would be better if you invested on a Bench scope like the Rigol DS1052E. You get good memory depth, bandwidth and response. You can even save your images on a usb stick. Look up EEVBlog's rant on USB scopes.
×
×
  • Create New...