Shop OBEX P1 Docs P2 Docs Learn Events
P1V? Come on in, the water is fine!!! — Parallax Forums

P1V? Come on in, the water is fine!!!

I'm a hobbyist.  A hacker.  I am used to getting my way no matter how many wires it takes/no matter how many times I have to re-solder.
With the Propeller, I am always confident that within the technical limits... which are easy to conjure... I can do anything I want.
The Propeller is easy.  It is fun.  And it is practically indestructible.  All very important to me.

But there are practical limitations and that is where the P1V comes in... for some engineering purposes, I'm sure that the P1v would not
be viewed the same, but for my purposes and experience, being the hacker that I am, the P1V offers nearly unlimited potential.

... but the P1V is verilog... and that is impossible for a hacker to use without a major investment of time and money ... right?
Used to be that way... less and less every day.   I think the P1v and the P1v community could be very important in making the answer
a complete "NO."  But not without you!!!  Unless you ask the question, nobody is going to answer it... and without answers to a lot of questions in
one place... there is just a technical maze of information that is mind boggling.

I've been working on memory and camera interfaces... they both end up being incredibly simple...once you get there.  The problem is getting there:)
More on this later.  For right now... peruse the following code... it is a camera interface.  I have left out the initialization code, module definitions how you hook it all up to get it working.  I am just listing the code...I have no idea how to do this in the new forum setup... so I'll just copy the text below:

always@(posedge clk)
begin
  oldpixclk<=pixclk;
  oldhref<=href;
  oldvsync<=vsync;
  st2<=st1;
  camstate<= {vsync,oldvsync,href,oldhref,pixclk,oldpixclk};
  if (st2==1)begin pixelready<=0;st1<=0;  end
  casex(camstate)
  // {vsync,oldvsync,href,oldhref,pixclk,oldpixclk}
     6'b01xxxx :      //vsync
            begin
                pixelready<=0;
                    vcount<=0;
                    hcount<=0;
                    even<=eveninit;
                    st1<=0;
                   
                    pixloc<=0;
                    lineloc<=0;
                    end
   
     6'b0x1x01 : //if linevalid(href) and negative edge of pixel clock
                 begin
                       if ((vcount<400)&&(hcount<640))
                         begin
                              even<= !even;
                                pixelout<=datain;
                                pixelready<=even;
                                st1<=1;
                                hcount<=hcount+ even;
                                pixloc<=lineloc+hcount;
                             end
                 end
      // {vsync,oldvsync,href,oldhref,pixclk,oldpixclk}

    6'bxx01xx  :     //at negative edge of href
                   begin
                    hcount<=0;
                         vcount<=vcount+1;
                         lineloc<=lineloc+640;
                   end
               
     default    : other<=1;
     endcase

This code watches the camera lines... and depending upon what is going on ... feeds the data to memory... which is being concurrently displayed on a VGA monitor...

The idea here isn't to explain the code... Just to show how dog simple it is.  Imagine the Pasm code you would have to write... VGA and memory interfaces are equally as simple. 

What stops a hacker isn't really the verilog... it is knowing where to start.

Start with the P1V.

Regards,

Rich








Comments

  • rjo__rjo__ Posts: 2,114
    normally, I would edit this... but I think all the broken lines and extra spaces... give it a vintage look:)
  • roglohrogloh Posts: 5,790
    edited 2015-07-05 14:30
    Cool. I'm currently doing something similar - right now minus the camera part, though I was thinking of putting one in eventually and streaming it into my external memory for VGA display too.  I've just done a framebuffer for 800x600x15bpp and it works so nicely - no need to have COGs themselves doing video, save the LEs and write your own.

    As you've also concluded P1V is a whole lot of fun to muck about with and opens up lots of possibilities to customize the prop design to your needs.
Sign In or Register to comment.