Shop OBEX P1 Docs P2 Docs Learn Events
PropCade: Propeller computer for emulation, gaming, RS485 networking, more (Joysticks, IR, see p5) - Page 2 — Parallax Forums

PropCade: Propeller computer for emulation, gaming, RS485 networking, more (Joysticks, IR, see p5)

245

Comments

  • Bill HenningBill Henning Posts: 6,445
    edited 2010-04-01 03:38
    Hi Peter,

    Your serial object sounds like exactly what the doctor (and I don't mean Dr_Acula) ordered!

    Now to answer your questions...

    (I stand corrected, I mis-identified the socket - it is actually a four pin, unshielded RJ45, so cat5 cables - not phone cables - will be needed)

    1) I use two I/O pins. One to select direction, the other as either input or output, depending on the direction of RS485 traffic.

    2) There is not enough room for a 3 screw terminal under the RJ11 (which as you note is actually a 4 pin RJ45, unshielded), however if I change the design for two side by side jacks, there would be room for such an alternate footprint. Another board I have in the works does exactly that. I will stick with this connector as I have almost 1000 pieces in stock.

    3) see note above, you are right, however my vendor identified them to me as RJ11, and I used his terminology. I will correct the first post to say RJ45

    4) soic 8, and Sapieha also added the via which may be for supporting a ground pad (qfn?); Sapieha suggested the dual dip8/soic8 footprints as he really likes the FRAM devices. I like FRAM too - just not its price!

    5) I used db9f for the programming / serial port so cheap USB-serial adapters would plug in, and db9m because that is what Atari/Sega joysticks plug into

    6) no, I intend to have an optional clear plexi cover with mounting holes matching the PCB on standoffs - I thought people would like to show off the "guts" of the system; the original design goal was for 6"x2.5" in order to minimize PCB costs, however it had to be increased to 6"x2.75" to accommodate all the electronics. I suspect that the production run will go to 6.5"x2.75" in order to accommodate a second RJ45

    7) I will look into adding an RC filter - the problem is that I have a tube of 50 IR receivers SOMEWHERE (I just don't know where) in my lab. I will order a few more tomorrow, until I find my stock. The reason I did not have an RC filter already is that Ybox2 (and most other samples I've seen) did not use one.

    8) I will ask Sapieha to look into moving the uSD connector, but if it does not work due to via's & traces on the bottom, the board will just have to be made wider

    9) I have a 4 pin header on the board that will also appear on my other boards (GND, SCK, SDA, Vcc)

    10) I wanted a nice standard triple RCA connector (which can be replaced with three RCA singles) for easy connection to TV's and home theatres with existing cables - no muss no fuss

    One of my major design goals was to avoid special cables and connectors - anyone who has cables for hooking up a VCR will have cables they can use to hook up PropCade to their TV or home theatre system.

    I added S-Video in order to have sharper text and graphics on monitors that support it, and I chose to support Atari/Sega joysticks because they also use standard, easy to get connectors.

    Frankly, I am less than thrilled with putting a uSD connector on the board - less experienced builders will have a heck of a time soldering it on and getting it working correctly. I am still somewhat tempted to go back to my "ghetto" 9 pin right angle Molex full-size SD card interface hack like I used on my Mem+ board.

    I very much appreciate your detailed feedback, questions, and especially, serial object! Keep it coming!
    Peter Jakacki said...
    Bill,

    I have a newer multi-purpose serial communications object (UNICOM) that is designed for inclusion in the obex for April but without any pressure that might be 2011.
    http://forums.parallax.com/showthread.php?p=867266

    There would be no reason then to use the various modified serial communications objects that are currently in the obex. The goal is simple, let the object default to an FDX like state but with a superset of modes and methods available for more advanced communications. RS485 is one of them but not only the physical layer but also the networking layer as well which can work just like FDX to the application if need be. The number of data bits sent or received in each character can be up to 32 and I use 9-bits for networking addresses and commands. One method I use for collision detection is simply by issuing a single address character to establish a connection to the target. If the target responds with it's own address and no other garbage on the line within the connection establishment period I then assume that the connection is now point-to-point and data traffic can just flow normally between the connected units. If a proper response is not received then the initiator does a random timeout before trying again, as long as the bus is still free. There is a maximum timeout for the connection though but in the meantime all other nodes just mark the bus as being busy and continue to monitor the bus for a DISCONNECTED command (address zero). Group and global addresses are also allowed but without feedback until queried individually.

    The object also includes XON/XOFF or RTS/CTS handshaking built-in for full duplex modes.

    So, a couple of quick questions and observations then Bill.

    1) Does your RS485 use 2 or 3 I/O pins? (BTW standard load 485 chip is ok, let all the external stuff be lighter loading if need be.)

    2) You could still put screw terminal footprints under the "RJ11" jack.

    3) When I saw your "RJ11" was the same as an "RJ45" I realized why it took up so much room, I thought you might of had a 4P4C RJ11 which is smaller. In regards to semantics these days too I think if you say RJ11 in the industry it usually means the 4/6 way modular jacks whereas RJ45 refers to the 8P8C jack such as Ethernet. I know that is not 100% historically correct but it's the de facto terminology for these jacks.

    4) What is the strange footprint you have under the SPI devices? I'm referring to the large via and case pad.

    5) I personally avoid any DB9 connectors due to their bulk plus the fact that you normally use only 4 pins. External adaptors are easy and cart the bulky cables away from the pcb.

    6) Did you design the pcb to fit an enclosure? This should always be taken into account when designing any pcb. I usually build a meticulous mechanical footprint for enclosures as part of my pcb library.

    7) The IR receiver really needs an RC filter in it's supply line as they are very sensitive to supply noise but what is the problem with getting hold of a receiver?

    8) You can make room for your extra RS485 connector by putting the microSD connector under the pcb and connectors in a suitable and accessible position (or scrub the DB9s).

    9) I like to bring out the I2C pins on the unused pins of the PS/2 connector. This proves useful for many special devices that I can plug in and with 4 pins I can even interface an SD/SDIO card (SCL=card CLK, SDA=card SDI).

    10) Double digit remark, last one! RCA connections do take up a lot of room and it seems a shame when there are so many 3.5mm jack to RCA cables and connections in use that it is almost common.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com 5.0" VGA LCD in stock!
    Morpheus dual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory/IO kit $89.95, both kits $189.95 SerPlug $9.95
    Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
    Las - Large model assembler Largos - upcoming nano operating system

    Post Edited (Bill Henning) : 4/1/2010 4:20:51 AM GMT
  • SapiehaSapieha Posts: 2,964
    edited 2010-04-01 05:59
    Hi Peter Jakacki

    You Said "4) What is the strange footprint you have under the SPI devices? I'm referring to the large via and case pad."

    That Large via is fo posibility to solder by hand TQFN-type IC's centrum GND pad.

    Regards

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Nothing is impossible, there are only different degrees of difficulty.
    For every stupid question there is at least one intelligent answer.
    Don't guess - ask instead.
    If you don't ask you won't know.
    If your gonna construct something, make it·as simple as·possible yet as versatile as posible.


    Sapieha
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2010-04-01 07:31
    Sapieha,

    I thought that might have been the case but I wondered why as it would seem a bit strange to have any QFN packages when SOIC are so prevalent in these devices plus your lead spacing is set for standard 8-pin SOIC. What QFN device are you using?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    *Peter*
  • SapiehaSapieha Posts: 2,964
    edited 2010-04-01 10:17
    Hi Peter Jakacki

    It is FRAM's 2Mbit from RAMTRON that use that pakage.
    It has same pin spacing as SOIC only with centrum GND pad.

    Regards

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Nothing is impossible, there are only different degrees of difficulty.
    For every stupid question there is at least one intelligent answer.
    Don't guess - ask instead.
    If you don't ask you won't know.
    If your gonna construct something, make it·as simple as·possible yet as versatile as posible.


    Sapieha
  • heaterheater Posts: 3,370
    edited 2010-04-01 13:31
    Pullmoll: You can get the GCC for the ZPU architecture here opensource.zylin.com/zpudownload.html
    I built GCC from the sources there.

    Currently Zog is executing ZPU byte codes from HUB RAM. Limited to 16K if I remember correctly. It should not be too much work to get it to use TriBlade/DracBlade external RAM.

    I was planning to skip all that and use Bill's virtual memory interface instead.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2010-04-01 13:35
    Ahhh, I have just checked the RAMTRON website and see the package is actually TDFN rather than TQFN which is why I was puzzled. The Q packs have pins on all four sides hence quad vs the D for dual. According to the datasheet that central pad should be left floating so you don't actually need a corresponding pad on the pcb either, it certainly couldn't be for thermal considerations.

    While browsing the RAMTRON website I chanced upon this link concerning problems with counterfeit chips. It's interesting to see even chips like these being faked or is it these "suppliers" do not know the meaning of NO, we don't have them.
    www.ramtron.com/support/counterfeit-fram.aspx

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    *Peter*
  • Bill HenningBill Henning Posts: 6,445
    edited 2010-04-01 16:24
    I just added two photo's to the first post - front and rear views showing the connectors.

    Sorry, the IR area is not populated.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com 5.0" VGA LCD in stock!
    Morpheus dual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory/IO kit $89.95, both kits $189.95 SerPlug $9.95
    Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
    Las - Large model assembler Largos - upcoming nano operating system
  • Bill HenningBill Henning Posts: 6,445
    edited 2010-04-02 01:33
    Well, a fair bit of progress today - most of the board is now verified as working. I had a bit of a scare with the uSD connector, but it works fine after going over the pins with a hot iron, one of the pins must not have soldered well enough the first time.

    Here is the list of what is left to test:

    1) SPI RAM

    This is next on my hit list. I've installed two 23K256 chips, so now its time to test it.

    2) Joystick ports

    Before I can test the joystick ports, I have to write a quick MCP23S17 driver - difficult as it may seem, I could not find an object for this VERY common and useful I/O expander!

    3) RS485 networking

    I need to build a second PropCade prototype before I can begin testing this.

    4) IR Receive

    I am ordering a few IR receivers, I have a tube of 50 hiding somewhere in my lab - the only question is where...

    5) IR Transmit

    At least I found my IR LED's!

    So far, building and testing the first PropCade pcb has been pretty easy, and everything tested works. Once I get the SPI RAM's going, PropCade will be my "standard" VMCOG development board - it will be cool to see CP/M, ZOG, etc run on it.

    If you saw the latest photo you may have noticed I am using a 74HCT138 when I should be using a 74HC138. That will change as soon as my HC parts arrive; it works well enough for initial testing.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com 5.0" VGA LCD in stock!
    Morpheus dual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory/IO kit $89.95, both kits $189.95 SerPlug $9.95
    Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
    Las - Large model assembler Largos - upcoming nano operating system
  • heaterheater Posts: 3,370
    edited 2010-04-02 08:44
    Any chance of a photo or two of the Henning Lab?
    If it is so vast and full that nothing can be found in it I'm getting quite jealous[noparse]:)[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • Bill HenningBill Henning Posts: 6,445
    edited 2010-04-02 16:02
    LOL!

    After the re-organization, I will be happy to post a pic or two!

    The problem is... I am in the middle of the reorganization.

    My main lab is about 10'x16', and has four desks arranged in a large "U" shape. On my left are 7 large parts cabinets, a hot air rework station, a scope, a regular soldering iron, and two small spot lamps. The top of the two desks is my electronics workbench.

    In front of me is my main desk, with hutch, with two monitors, two computers, two parts cabinets, speakers, one morpheus test rig, PropCade, and assorted cables, boards etc.\

    On my right is the printer, more speakers, more small parts boxes, another two monitors, and another computer - and various Propeller boards.

    Ofcourse, under all these desks are boxes of parts.

    Behind me is a small rolling desk, with my softbox for photography, and ofcourse, more parts underneath.

    The closet is full of parts.

    The other half of the room is filled with shelves (with parts bins), and about 30 bankers boxes of parts.

    Scattered throughout the basement are around 60 more bankers boxes of electronics, related books, and about 20 longer boxes holding (conservatively) at least 1000 tubes of chips. Add an old HP-Agilent logic analyzer, old HP protocol analyzer.

    Knowing this, you may now appreciate why it is at times difficult for me to locate parts I know I have!

    (ie I have a lot of what my family refers to as "junk" and I call "stock")
    heater said...
    Any chance of a photo or two of the Henning Lab?
    If it is so vast and full that nothing can be found in it I'm getting quite jealous[noparse]:)[/noparse]
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com 5.0" VGA LCD in stock!
    Morpheus dual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory/IO kit $89.95, both kits $189.95 SerPlug $9.95
    Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
    Las - Large model assembler Largos - upcoming nano operating system
  • heaterheater Posts: 3,370
    edited 2010-04-02 16:12
    >> "After the re-organization"

    No, no. Before sounds much more interesting.

    I thought you might say "Yes, but I can't find the camera"[noparse]:)[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • Bill HenningBill Henning Posts: 6,445
    edited 2010-04-02 22:54
    AHA!

    Persistence pays off! I spent a few hours re-organizing, and I FOUND THE TSOP34138's!!!! Now I can populate the IR section.

    Tomorrow I will build a second prototype, that way I can start testing IR and RS485. Today I will be playing with the SPI SRAM's.

    Now where did I put those Sega joysticks... (just kidding, I know where they are)

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com 5.0" VGA LCD in stock!
    Morpheus dual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory/IO kit $89.95, both kits $189.95 SerPlug $9.95
    Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
    Las - Large model assembler Largos - upcoming nano operating system
  • simonlsimonl Posts: 866
    edited 2010-04-03 10:10
    @Bill: Now I'm really jealous - not only do you turn-out great products, but you have a lab bigger than my house - LOL (My lab is a laptop and the kitchen table).

    @Peter: UNICOM - nudge! (Any chance of a beta release?)

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Cheers,
    Simon

    www.norfolkhelicopterclub.com

    Announcement: To cut costs in the current economic climate, we have switched-off the light at the end of the tunnel.
  • Cluso99Cluso99 Posts: 18,069
    edited 2010-04-03 13:00
    @Bill: Well my normal home is approx 4x your lab size... 21ft wide x 35ft long... it's a catamaran (see my avatar) smile.gif

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
    · Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2010-04-03 13:12
    Cluso99 said...
    @Bill: Well my normal home is approx 4x your lab size... 21ft wide x 35ft long... it's a catamaran (see my avatar) smile.gif

    Yes Ray, and when you don't have a "pull-down" then there you are floating and drifting about! I also believe you have to take it easy these days too, you know what happens when you go overboard. roll.gif

    @Simon: probably not for a few days, but I'll see what I can do.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    *Peter*
  • Bill HenningBill Henning Posts: 6,445
    edited 2010-04-05 18:33
    IMPORTANT UPDATE:

    PropCade's serial programming port, when used with Parallax's USB to Serial converter (FTDI based), WORKS AT 1MBPS WITH VIEWPORT!

    This suggests that it should run at 1Mbps with any USB to serial converter that supports that data rate with ViewPort.

    I tried this experiment because I figured it might work due to the extremely short distance the RS232 signal has to travel [noparse]:)[/noparse]

    NOTE: MAX3232's won't work at 1Mbps, but the SP3232's I've tested work fine at 1Mbps

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com 5.0" VGA LCD in stock!
    Morpheus dual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory/IO kit $89.95, both kits $189.95 SerPlug $9.95
    Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
    Las - Large model assembler Largos - upcoming nano operating system
  • pullmollpullmoll Posts: 817
    edited 2010-04-05 18:48
    Do you have the pieces of code to a) read a byte and b) write a byte to the external RAM? I'd like to integrate the PropCade as a target in my emulators and would need the info how to directly access the RAM.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    He died at the console of hunger and thirst.
    Next day he was buried. Face down, nine edge first.
  • Bill HenningBill Henning Posts: 6,445
    edited 2010-04-05 18:57
    Hi pullmoll,

    Thanks!

    The interface to the SPI RAM will be via VMCOG, as that will cache access and give (average) MUCH faster access. I estimate in 95%+ cases you will be able to read a byte in about 1us. I plan to use a single cog to do all the low-level SPI and VM on PropCade.

    http://forums.parallax.com/showthread.php?p=878382

    Here is the spin code to read a virtual byte:

    PUB rdvbyte(addr)
      repeat while long[noparse][[/noparse]cmdptr]
      long[noparse][[/noparse]cmdptr] := (addr<<9)|READVMB
      repeat while long[noparse][[/noparse]cmdptr]
      return long[noparse][[/noparse]dataptr]
    
    



    Here is the spin code to write a virtual byte:

    PUB wrvbyte(addr,data)
      repeat while long[noparse][[/noparse]cmdptr]
      long[noparse][[/noparse]dataptr]  := data
      long[noparse][[/noparse]cmdptr] := (addr<<9)|WRITEVMB
      repeat while long[noparse][[/noparse]cmdptr]
    
    



    pullmoll said...
    Do you have the pieces of code to a) read a byte and b) write a byte to the external RAM? I'd like to integrate the PropCade as a target in my emulators and would need the info how to directly access the RAM.
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com 5.0" VGA LCD in stock!
    Morpheus dual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory/IO kit $89.95, both kits $189.95 SerPlug $9.95
    Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
    Las - Large model assembler Largos - upcoming nano operating system

    Post Edited (Bill Henning) : 4/5/2010 7:07:18 PM GMT
  • pullmollpullmoll Posts: 817
    edited 2010-04-05 19:03
    Bill Henning said...
    Hi pullmoll,

    Thanks!

    The interface to the SPI RAM will be via VMCOG, as that will cache access and give (average) MUCH faster access. I estimate in 95%+ cases you will be able to read a byte in about 1us. I plan to use a single cog to do all the low-level SPI and VM on PropCade.

    Yes, I read about your VMCOG project. I asked for direct access, though [noparse]:)[/noparse] I think that page caching may not necessarily speed up the z80 or 8085 emulations, because program flow and data access is rarely sequential. Code tends to jump and call around a lot and would probably ruin every try to keep a LRU improving the access times. I'll just wait until you publish your code then.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    He died at the console of hunger and thirst.
    Next day he was buried. Face down, nine edge first.
  • Bill HenningBill Henning Posts: 6,445
    edited 2010-04-05 19:10
    Ah... there will be read byte and write byte routines, as a matter of fact, I am working on them today [noparse]:)[/noparse] I will post them to this thread when they work (they don't, yet)

    It will be interesting to see which will be faster... it will depend on the number of pages the code frequently accesses, and the number of pages assigned to the working set.

    If say 16KB of the Prop's memory was used to make a 32 page working set, I suspect that most programs would run faster through VMCOG.

    If only 4 pages were used as a working set, I suspect direct interfacing would work.

    FlexMem will also provide an interesting challenge, as it does not provide byte read/write, the smallest unit it can read/write is a long - it is also meant to be used (usually) through VMCOG. Of course, a "read byte" could pick the correct byte from a long, however a "write byte" would have to first read the long, modify the correct byte, and then write the long back.
    pullmoll said...
    Bill Henning said...
    Hi pullmoll,

    Thanks!

    The interface to the SPI RAM will be via VMCOG, as that will cache access and give (average) MUCH faster access. I estimate in 95%+ cases you will be able to read a byte in about 1us. I plan to use a single cog to do all the low-level SPI and VM on PropCade.

    Yes, I read about your VMCOG project. I asked for direct access, though [noparse]:)[/noparse] I think that page caching may not necessarily speed up the z80 or 8085 emulations, because program flow and data access is rarely sequential. Code tends to jump and call around a lot and would probably ruin every try to keep a LRU improving the access times. I'll just wait until you publish your code then.
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com 5.0" VGA LCD in stock!
    Morpheus dual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory/IO kit $89.95, both kits $189.95 SerPlug $9.95
    Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
    Las - Large model assembler Largos - upcoming nano operating system
  • Bill HenningBill Henning Posts: 6,445
    edited 2010-04-05 19:43
    Hi again,

    The SPI RAM read/write routines I am working on are similar to the 10mbps sd card spi code, with the counter providing a 10mbps clock.

    In all cases, the external address is decomposed into a 15 bit byte offset, and a 3 bit device number. Devices 0..5 select SPI socket 1..6, 7 and 8 are not legal values as they are assigned to the uSD socket and MCP23S17 I/O expander, thus limiting SPI ram on PropCade to 192KB.

    For byte read, a 24 bit packet is sent (command byte, 15 bit address as two bytes), and an 8 bit packet is received.

    In case of write byte, a 32 bit packet is sent (command byte, 15 bit address as two bytes, and the data byte).

    Both cases will take approximately 3.3us.

    There will also be "read n bytes" and "write n bytes" routines, that will require (on average) 1us per byte + approx. 2.2us overhead for the start of the packet.

    The reason I have not posted the code yet is that it is being written and debugged today [noparse]:)[/noparse]

    Potentially, if the 23K256's can handle it, the initial command/address packet could be sent at 20mbps, cutting the overhead to 1.1us.
    pullmoll said...
    Bill Henning said...
    Hi pullmoll,

    Thanks!

    The interface to the SPI RAM will be via VMCOG, as that will cache access and give (average) MUCH faster access. I estimate in 95%+ cases you will be able to read a byte in about 1us. I plan to use a single cog to do all the low-level SPI and VM on PropCade.

    Yes, I read about your VMCOG project. I asked for direct access, though [noparse]:)[/noparse] I think that page caching may not necessarily speed up the z80 or 8085 emulations, because program flow and data access is rarely sequential. Code tends to jump and call around a lot and would probably ruin every try to keep a LRU improving the access times. I'll just wait until you publish your code then.
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com 5.0" VGA LCD in stock!
    Morpheus dual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory/IO kit $89.95, both kits $189.95 SerPlug $9.95
    Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
    Las - Large model assembler Largos - upcoming nano operating system
  • Bill HenningBill Henning Posts: 6,445
    edited 2010-04-05 23:28
    I am not having much luck with the code I've gotten and modified, so I am going back to basics.

    I am now testing a simple ~4mbps spi driver I just wrote from scratch to get the 23K256's running. I will worry about making it run as fast as possible after I get that running smile.gif

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com 5.0" VGA LCD in stock!
    Morpheus dual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory/IO kit $89.95, both kits $189.95 SerPlug $9.95
    Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
    Las - Large model assembler Largos - upcoming nano operating system
  • Bill HenningBill Henning Posts: 6,445
    edited 2010-04-13 00:07
    UPDATE:

    Low level bitbanging SPI 23K256 driver now works on PropCade!

    I had problems with the nice 10mbps counter based code, so I wrote some crappy bit-banging SPI code that runs at approx. 4mbps, and I used ViewPort to debug it.

    Today I finally had enough time to get three of the four 23K256 commands working: RDSR, WRSR, and READ. Next I will get WRITE working...

    Once WRITE also works, I can finally release a fully functional VMCOG! (for PropCade, and also for any other Propeller that you hook two 23K256's up to)

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com 5.0" VGA LCD in stock!
    Morpheus dual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory/IO kit $89.95, both kits $189.95 SerPlug $9.95
    Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
    Las - Large model assembler Largos - upcoming nano operating system
  • Bill HenningBill Henning Posts: 6,445
    edited 2010-04-15 22:48
    UPDATE:

    Not only does WRITE work, so does READPAGE and WRITEPAGE!

    It currently takes approx. 1.2ms to read or write a page of 512 bytes, which will be reduced to about 400us when using a 10mbps counter based driver.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com
    My products: Morpheus / Mem+ / PropCade / FlexMem / VMCOG / Propteus / Proteus SerPlug
    and 6.250MHz Crystals to run Propellers at 100MHz & 5.0" OEM TFT VGA LCD modules
    Las - Large model assembler Largos - upcoming nano operating system
  • Bill HenningBill Henning Posts: 6,445
    edited 2010-04-18 17:45
    UPDATE:

    PropCade has now been tested with SPI ram's in all six memory sockets! Works great [noparse]:)[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com
    My products: Morpheus / Mem+ / PropCade / FlexMem / VMCOG / Propteus / Proteus / SerPlug
    and 6.250MHz Crystals to run Propellers at 100MHz & 5.0" OEM TFT VGA LCD modules
    Las - Large model assembler Largos - upcoming nano operating system
  • jazzedjazzed Posts: 11,803
    edited 2010-04-18 18:01
    Bill, what are you running on it?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    May the road rise to meet you; may the sun shine on your back.
    May you create something useful, even if it's just a hack.
  • Bill HenningBill Henning Posts: 6,445
    edited 2010-04-18 18:08
    At the moment?

    PropCadeDiag - the diagnostic I have been writing for the board, based on my MorphDiag
    VMDEBUG - I have switched to PropCade to further develop VMCOG
    FemtoBasic works out of the box (ok, I had to adjust the pins for uSD)
    Parallax TV/VGA objects (ie Graphics demo, hires text etc)

    Very soon?

    ZOG, with C code compiled by GCC for it
    SphinxOS
    Largos prototype
    ZiCog or one of pullmol's equivalent running CP/M, later MPM
    JVM, ideally supporting VMCOG
    as many games as I can get running on it [noparse]:)[/noparse]
    jazzed said...
    Bill, what are you running on it?
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com
    My products: Morpheus / Mem+ / PropCade / FlexMem / VMCOG / Propteus / Proteus / SerPlug
    and 6.250MHz Crystals to run Propellers at 100MHz & 5.0" OEM TFT VGA LCD modules
    Las - Large model assembler Largos - upcoming nano operating system

    Post Edited (Bill Henning) : 4/18/2010 6:13:13 PM GMT
  • Bill HenningBill Henning Posts: 6,445
    edited 2010-05-11 01:03
    PropCade #2 assembled, and mostly tested - I can start testing IR and RS485 very soon!

    Joystick testing starts tonight [noparse]:)[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com
    My products: Morpheus / Mem+ / PropCade / FlexMem / VMCOG / Propteus / Proteus / SerPlug
    and 6.250MHz Crystals to run Propellers at 100MHz & 5.0" OEM TFT VGA LCD modules
    Las - Large model assembler Largos - upcoming nano operating system
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-05-11 01:37
    Sounds good. Keep us posted. RS485 and infrared sounds nifty.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller
  • Bill HenningBill Henning Posts: 6,445
    edited 2010-05-11 22:27
    UPDATE:

    Joystick port inputs are verified!!!

    I will write a nice easy to use MCP23S17.spin object for Obex (I was surprised one did not exist yet) later; for now this lets me move on with verifying the two remaining aspects of PropCade that have not been tested:

    1) IR input/output
    2) RS485

    There have been a few changes to the design:

    1) RS485 is now independent of RS232 and H-COMM - I made this change so that it will be possible to be on the RS485 network while still using the serial port

    2) The MCP23S17 now runs at 5V by default, however by cutting a trace and installing a jumper it can run at 3.3V

    3) A second RJ45 connector was added for easy daisy chaining with standard Cat-5 cables

    I will be sending in for the second prototype run this week, and should have new prototype boards next week.

    I expect to have production boards by mid-June, in plenty of time for UPEW!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com
    My products: Morpheus / Mem+ / PropCade / FlexMem / VMCOG / Propteus / Proteus / SerPlug
    and 6.250MHz Crystals to run Propellers at 100MHz & 5.0" OEM TFT VGA LCD modules
    Las - Large model assembler Largos - upcoming nano operating system
Sign In or Register to comment.