Shop OBEX P1 Docs P2 Docs Learn Events
Mangled Video output & loss of hair!! — Parallax Forums

Mangled Video output & loss of hair!!

RinksCustomsRinksCustoms Posts: 531
edited 2006-08-14 22:00 in Propeller 1
I have a DIP40 pkg on a breadboard, 10MHz xtal @ PLL8x w/a MAX232 converter (V divider on serin pin on prop for 3.3V logic). I have the values very close to spec (measured w multimeter) for the Video DAC on pins 12..14. Trying to use a 4" LCD color video monitor for a tv but all i get is mangled garbage,confused.gif might there be a specific reason why i can get VGA to work perfectly on it's DAC but not the video DAC?
1) Is the 4"LCD TV (which works fine with all other equipt) a bad choice?
2) Do the values of the video DAC need to be within 1%?
3) must i modify any clkmode or pll settings within the tv driver for my setup (_xinfreq = 10_000_000 & PLL8x)?
4) Any reason why the VGA output works with this crystal and PLL seting and not the Video output? confused.gif

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Definetly a E3 (Electronics Engineer Extrodinare!)
"I laugh in the face of imposible,... not because i know it all, ... but because I don't know well enough!"

Comments

  • Beau SchwabeBeau Schwabe Posts: 6,568
    edited 2006-08-12 08:27
    I find that the LCD that I am using is pretty forgiving... Even if the crystal is way off, I can still see the display in B&W.

    I think the resistor tolerance needs to be at least 5%


    _clkmode = xtal1 + pll8x
    _xinfreq = 10_000_000
    
    



    Can you post your code?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Beau Schwabe

    IC Layout Engineer
    Parallax, Inc.
  • SawmillerSawmiller Posts: 276
    edited 2006-08-12 12:08
    are you on pins 12-14 or are you on p 12 - 14 ( pins 17 - 19 )
    dan
  • RinksCustomsRinksCustoms Posts: 531
    edited 2006-08-12 15:28
    DAC is on pins 12..14, should the DAC be connected on pins 17..19? resistors are 5% (picked w/a DMM to be within 1% tol), here's the code:
    {{Display.spin
    Hand prog'd by me}}
    CON
      _CLKMODE = XTAL1 + PLL8X
      _XINFREQ = 10_000_000
    OBJ
      Num   :       "Numbers"
      TV    :       "TV_Terminal"
    PUB Main | Temp
      Num.init                                              'Initialize Numbers
      TV.start(12)                                          'Start TV Terminal
      Temp := 900 * 45 + 401                                'Evaluate expression                   
      TV.Str(string("900 * 45 + 401 = "))                   'then display it and      
      TV.Str(Num.ToStr(Temp, Num#DDEC))                     'its result in decimal      
      TV.Out(13)                                                    
      TV.Str(string("In hexadecimal it's = "))              'and in hexadecimal  
      TV.Str(Num.ToStr(Temp, Num#IHEX))                             
      TV.Out(13)                                                    
      TV.Out(13)                                                    
      TV.Str(string("Counting by fives:"))                  'Now count by fives      
      TV.Out(13)                                                    
      repeat Temp from 5 to 30 step 5                               
      TV.Str(Num.ToStr(Temp, Num#DEC))                              
      if Temp < 30                                                  
      TV.Out(",")                                                   
    

    Again VGA demo's work fine, sharp as a razor with, of course the little mod to the _xinfreq & PLL8x settings...

    any idea's? Maybe this Low end LCD can't make out the signal? It was only $40 and the resolution is Smile!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Definetly a E3 (Electronics Engineer Extrodinare!)
    "I laugh in the face of imposible,... not because i know it all, ... but because I don't know well enough!"
  • RinksCustomsRinksCustoms Posts: 531
    edited 2006-08-12 17:27
    It's not the lcd, just tried it on a tv some 20ft away, same results. It looks like the horizontal and vertical scaling is off! LOL looks like the milky way on the top/bottom of the screen, even tried saving display.spin in the same folder as the tv and tv terminal as the manual suggests, same result. Is it because there is a 10MHz crystal @ PLL8x and not a 5MHz crystal @ PLL16x? I'm using the .spin drivers that came with v.98.1, is there any settings within the driver(s) i can check for PAL/NSTC or clock changing settings, or are the driver settings independent of the freq/pll settings? ie. they don't have _xinfreq or _PLLnX settings internal to change the sys clk once loaded after the main object.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Definetly a E3 (Electronics Engineer Extrodinare!)
    "I laugh in the face of imposible,... not because i know it all, ... but because I don't know well enough!"
  • Beau SchwabeBeau Schwabe Posts: 6,568
    edited 2006-08-12 18:10
    RinksCustoms,

    I didn't see any issues with your code, except for a few indents near the 'repeat' and 'if' commands.
    I was however running 5MHz @ PLL16X
    You said...

    It's not the lcd, just tried it on a tv some 20ft away...
    Are you trying to broadcast? If so there are a few bits that need to be set in the 'TV_Terminal' object.

    The current or default setting is....
    tvparams_pins           long    %001_0101       'pins
    
    


    ...which is just baseband. Setting this to...
    tvparams_pins           long    %001_0110       'pins
    
    


    ...sets this to broadcast + aural

    You also need to adjust...
                            long    55_250_000      'broadcast
    
    


    ...so that the frequency matches the correct TV channel.



    {{Display.spin
    
    Hand prog'd by me}}
    
    [b]CON[/b]
    
      [b]_CLKMODE[/b] = [b]XTAL[/b]1 + [b]PLL[/b]8X
      [b]_XINFREQ[/b] = 10_000_000
    
    [b]OBJ[/b]
      Num   :       "Numbers"
      TV    :       "TV_Terminal"
    [b]PUB[/b] Main | Temp
      Num.init                                              'Initialize Numbers
      TV.start(12)                                          'Start TV Terminal
    
      Temp := 900 * 45 + 401 'Evaluate expression                   
      TV.[b]Str[/b]([b]string[/b]("900 * 45 + 401 = ")) 'then display it and      
      TV.[b]Str[/b](Num.ToStr(Temp, Num#DDEC)) 'its result in decimal      
      TV.Out(13)                                                    
    
      TV.[b]Str[/b]([b]string[/b]("In hexadecimal it's = ")) 'and in hexadecimal  
      TV.[b]Str[/b](Num.ToStr(Temp, Num#IHEX))                             
      TV.Out(13)                                                    
      TV.Out(13)                                                    
    
      TV.[b]Str[/b]([b]string[/b]("Counting by fives:")) 'Now count by fives      
      TV.Out(13)                                                    
      [b]repeat[/b] Temp [b]from[/b] 5 to 30 step 5                               
        TV.[b]Str[/b](Num.ToStr(Temp, Num#DEC))                              
        [b]if[/b] Temp < 30                                                  
           TV.Out(",")
    
    
    

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Beau Schwabe

    IC Layout Engineer
    Parallax, Inc.
  • RinksCustomsRinksCustoms Posts: 531
    edited 2006-08-12 18:53
    so i wouldn't pass parameters to the tv object (like in blinkerled.spin) they would have to be changed within the object manually, hmm, . . . and baseband uses the video inputs, broadcast uses the antenna w/a channel (2,3,4)... Since i don't have a 5MHz crystal in front of me and you have had plenty of expierience with the prop, is there any reason why the tv driver wouldn't work with compensated settings, i ask this because i'm not fammiliar with assembly at all, juat a vague understanding of it. However i will try our suggestions and see if it works, is there any "fiddling" i can do to the Vscale/Hscale longs to maybe adjust the diagonal mess "milky way effect"?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Definetly a E3 (Electronics Engineer Extrodinare!)
    "I laugh in the face of imposible,... not because i know it all, ... but because I don't know well enough!"
  • SawmillerSawmiller Posts: 276
    edited 2006-08-12 19:15
    as a default setting use physical pins 17,18,19 they corespond to A12,A13,A14
    dan
    using this setup with tv_text_demo, works fine
  • Beau SchwabeBeau Schwabe Posts: 6,568
    edited 2006-08-12 19:17
    10MHz should work with compensated settings, unless the PLL is having difficulty at 160MHz.
    Remember, even though you are specifying 8X for the PLL, internally it will always be X16

    Something else to consider is the fact that some frequencies do not synthesize cleanly...

    See the thread below...
    http://forums.parallax.com/showthread.php?p=593861

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Beau Schwabe

    IC Layout Engineer
    Parallax, Inc.

    Post Edited (Beau Schwabe (Parallax)) : 8/13/2006 4:21:05 AM GMT
  • RinksCustomsRinksCustoms Posts: 531
    edited 2006-08-12 22:06
    mmmm.... food for thought, thanks for your time and effort guys

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Definetly a E3 (Electronics Engineer Extrodinare!)
    "I laugh in the face of imposible,... not because i know it all, ... but because I don't know well enough!"
  • RinksCustomsRinksCustoms Posts: 531
    edited 2006-08-13 01:56
    Awesome! I'ma jacka$$! lol, put an ACTUAL 10MHz crystal in, PLL8x'd it and vualla! displays perfect, on my test circuit and 100MHz scope (i love ebay!) i measured the crystal i had in the prop and it was a 40.320MHz crystal. Thanks guys for all the troubleshooting info and especially Beau who showed some informative examples on what to mod for baseband/broadcast. Thanks guys, your the greatest!

    ~post edit~

    Beau,
    I had a 40.32Mhz crystal PLL'd to 8x, @ 3.3V this doesn't seem likely that the prop would run @160MHz and not be glowing, i'm guessing the chip defaulted to the internal RCFAST mode. Or might a 40MHz crystal be set @ _xinfreq = 10_000_000 (oscillating the crystal @ 10MHz) and the pll8x for a "dirty" clock freq of 80MHz, this would explain why the VGA demos worked and blinker2.spin, but maybe when it came to something like generating a Composite video signal the clock wasn't clean enough to do so. Does any of this make sense here? Crystals, harmonics, and the internall workings of the oscillator circuit(s) on the prop are a mystery to me @ this point in time. I don't know why some things work, i just know they do. But sometimes somethigns act in a way that make me have to find out the answer or the "what makes this tick" explanation.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Definetly a E3 (Electronics Engineer Extrodinare!)
    "I laugh in the face of imposible,... not because i know it all, ... but because I don't know well enough!"


    Post Edited (RinksCustoms) : 8/13/2006 5:03:58 AM GMT
  • LawsonLawson Posts: 870
    edited 2006-08-14 06:02
    um... you may have had a "mostly" working prop at somthing colse to the max speed the clock PLL can go. From reading the forums a lot it seems that the current 80MHz speed limit on the Propeller is rather conservative and an average Propeller can run a good bit faster if you're gutsy. Also, I doubt overclocking a Propeller would cause it to melt-down, Just stop working 'cause the internals can't keep up with the clock. (the Propeller being a rather low power chip and all)

    Um, from what i've read so far @_xinfreq is an internal variable that has no effect on the Propeller hardware. It's sole purpose is to tell the software how fast the clock should be running. (correct me if i'm wrong)

    Laterz,
    Marty
  • RinksCustomsRinksCustoms Posts: 531
    edited 2006-08-14 22:00
    yes you are correct in your assumptions exept that over clocking is possible if you drive the chip near 5V and heat sink it substantially! otherwise you end up with a $25 marshmellow toaster, lol

    I was informed that one daring individual took a prop to 160MHz @ 5V with a constant stream of CO2 spray alcohol cleaner to prevent inevitable vaporization of the chip, this was of course only an intermitten test....

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Definetly a E3 (Electronics Engineer Extrodinare!)
    "I laugh in the face of imposible,... not because i know it all, ... but because I don't know well enough!"
Sign In or Register to comment.