Shop OBEX P1 Docs P2 Docs Learn Events
Programming an ROM for the Propeller without a board — Parallax Forums

Programming an ROM for the Propeller without a board

nick112147nick112147 Posts: 42
edited 2008-03-18 22:52 in Propeller 1
Hey everyone, one thing I noticed is that in order to program the ROM chips, you have to have build or buy a propeller board just for the purpose of writing programs to a ROM chip. Do I have to build or buy a board for this purpose, or will any EEPROM, FLASH or EPROM writer capable of serial communications and compatible with the footprint? What are some alternatives to the method described in the manual and datasheet for getting propeller programs onto a ROM chip? Any help is greatly appriciated!


Nick

Comments

  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2008-03-14 00:51
    To quote DeSilva, you sure have a funny view of the Propeller world...

    What is the purpose of programming a serial EEPROM chip with Propeller code unless it is connected to the Propeller???????????????

    I2C serial EEPROMs can be programmed with 2 lines from the old PC parallel port if you really want to, but what are you going to do with it then???

    Notice my use of question marks.

    *Peter*
  • dfletchdfletch Posts: 165
    edited 2008-03-14 01:13
    Proto board $19.95, prop clip (I'd get the plug if you can, OOS on parallax.com) $24.95 - total $44.90. Optional $14.95 accessory kit - you're at about $60. I bet you have a barrel-plug power supply laying around that will work. Is this really too much!? Name one dev kit that's cheaper?

    The only problem is the wait for the shipping. Pick UPS smile.gif

    Cheers,

    --fletch

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Join us in the Un-Official Propeller IRC channel: irc.freenode.net #propeller
    Newbies, oldies, programmers, math professors, and everyone in-between welcome!
    Propeller IRC howto
    spinc - open source Spin compiler
  • Timothy D. SwieterTimothy D. Swieter Posts: 1,613
    edited 2008-03-14 01:49
    Hi Nick -

    Are you trying to do a production run or similar for the Propeller Chip? I can understand if you are mass producing something that it is better to program the EEPROM external and then populate the circuit. I am working through this right now, but my quantity is 25 pieces, so it is isn't a problem to connect the device to the PC and upload the latest firmware.

    Any cuircit or device that can program an I2C EEPROM should work for programming the EEPROM. The Prop Tool can save a binary and an EEPROM file that should be able to be upload in an EEPROM programmer.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Timothy D. Swieter

    www.brilldea.com·- check out the uOLED-IOC, an I/O expansion for the uOLED-96-PROP
    www.tdswieter.com
    One little spark of imagination is all it takes for an idea to explode

    Post Edited (Timothy D. Swieter) : 3/14/2008 3:23:13 AM GMT
  • nick112147nick112147 Posts: 42
    edited 2008-03-14 02:58
    @Peter: You misread my question. I asked do I have to use a propeller board to PROGRAM the eeprom. Once I program it I will place it in a cartrige. I am making a game console so I need to be able to use something else besides having to use yet another propeller chip just to get the games and BIOS chips programmed lol. My funny view comes from 5 years of learning about microprocessors only capable of parallel I/O, and now all of a sudden I discover a chip where almost everything in it is controlled by software giving me miles of headroom, rather than being a rigid, set-in-stone architecture. The fact of the matter is I don't know what to do with all of the extra headroom lol.

    @fletch: Oh not that is more than reasonable, that is what I was hoping I could do. It is the devkit prices I was whining about lol. Good programmers that will last a while and can program more than one kind of chip really cost a bundle! However, as you explained, just making one myself wouldnt go above 100 dollars. Couple that with open chip programming software and it would be almost like having a custom made programmer.... because it is.

    @Timothy: Not really a production run, but a single game cartrige will be using probably about four 32k eeproms for graphics and programs. Two chips each probably. As I said to Peter, I just don't want to have to use another propeller just to program the chips via a Propeller demo board. My console will already be using 2 propellers, one for main processing and another as a graphics co-processor.


    My view of the propeller might be strange and different, but you have to admit, so is the propeller! In a very very good way might I add.
  • Timothy D. SwieterTimothy D. Swieter Posts: 1,613
    edited 2008-03-14 03:23
    Have you looked at how the Hydra works for game catridges? In the Hydra system the game cart is still programmed through a Propeller in the system. Maybe you would have to develope an experimental system for loading your game carts the way you would like.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Timothy D. Swieter

    www.brilldea.com·- check out the uOLED-IOC, an I/O expansion for the uOLED-96-PROP
    www.tdswieter.com
    One little spark of imagination is all it takes for an idea to explode
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2008-03-14 04:03
    Nick,
    Absolutely no offense intended, it's more of a "if I've gotta scratch my head that hard then I'm sure gonna make some funny sounds". But nobody does business out of a shoe-box anyway so certainly why would you quibble about a few bucks? I am not 100% sure of what you are trying to do or what the big problem is but I would solder blank eeproms directly to the cartridge and then have a propeller board hanging off the pc with a cartridge connector. That way you could just plug in a cartridge and hit F11. Alternatively you could program the propeller to automatically load a blank cartridge from a copy it has in it's eeprom(s). Or am I missing some vital point?

    BTW, welcome fellow prophead, to the weird and wonderful world of the propeller way of doing things.

    *Peter*
  • Mike GreenMike Green Posts: 23,101
    edited 2008-03-14 04:26
    nick112147,
    If you have some kind of EEPROM programmer already that you'd like to use, you could save your program in EEPROM image form (binary) from the Propeller Tool. This is simply a 32K file containing the contents of the EEPROM byte by byte. If you have a utility program for your EEPROM programmer that downloads an image file like this, then you're set. Otherwise, you'll have to write some kind of conversion program to a format that your EEPROM programmer will accept.
  • nick112147nick112147 Posts: 42
    edited 2008-03-14 04:32
    @Timothy: The one main reason I don't want to have to program it by actually using the console is because it would mean alot more circuitry, and there will be alot already. To name a few, RAM, ROM, secondary propeller interface, BIOS, and all accompanying basic logic systems (alot of tri-state logic will be used for bus regulation). Sadly, they is only the FIRST propeller lol. The second propeller will act as a graphical chip using something similar to the PropGFX to output true-color (15/16-bit) video to a TV DAC, all accompanying logic and signal generation with that, ROM, VRAM and ofcourse its interface back to the main propeller. As you can see I really got my work cut out for me LOL! Making my own EEPROM programmer as fletch discribed plus the binary files you told me about should suffice in this situation.

    @Peter: LOL none taken. One of the main reasons I would quibble about a few bucks is finances. I have just enough to complete this project, I really do have to run a tight ship in order to squees all of the parts in. It can be done, I have bugeted it all out, but it will be within a penny's width of maxing out the budget I have (pun intended, after this is done, I would be suprised if I have any money left). Also another reason is, making a cartrige writer or eeprom writer from another propeller would be 10x more complex and time consuming than some proto-board, a DIP plug, some resistors and caps and a serial port connector. Some people sell them on Ebay for about 10 bucks and write several types of serial eeproms.

    @Mr.Green: Sadly I do not have a good commercial eeprom programmer that comes with software. As I said before $10 serial programmers are widely avaliable off the internet. They usualy recommend something like WinPic or ICProg.


    You all have excellent ideas, especialy making a dedicated cartrige writer! In the future, if it ever becomes commercial (I seriously doubt it, it is a pipe dream lol), that may be possible, but right now finances just do not permit. Having to spring for a new water heater the other day didn't help finances either LMAO. Here is honestly all I need, and want:
    http://www.vk2zay.net/article_attachment.php/96

    That accompanied with the programs I mentioned to Mr.Green should work.
  • Mike GreenMike Green Posts: 23,101
    edited 2008-03-14 04:45
    nick,
    Like I said, the Propeller Tool does make the compiled program available in a form that could be used for your serial programmer
    given the right programming software. It is also pretty cheap and easy to take a Protoboard, cut the traces to the existing EEPROM
    and add an 8-pin socket (maybe even a ZIF socket) for an EEPROM that you wire in place of the existing one. You can then use
    the Propeller Tool directly to program all the EEPROMs you want.
  • nick112147nick112147 Posts: 42
    edited 2008-03-14 05:31
    Actually I found a serial eeprom programmer on Ebay for about 16 dollars, which includes software. It supports the 24C32 32kilobyte memory IC's and it is quite cheap. It also supports a wide range of Dual In-Line type packages. Honestly it is a steal and saves me from having to do alot of wiring with the possibility of a mistake. I may spring for it within the next month or two.
  • Mike GreenMike Green Posts: 23,101
    edited 2008-03-14 05:34
    Be careful. The 24C32 is a 32 kilobit memory. It's cheap because it's only 4K bytes.

    All EEPROMs are given part numbers based on the number of bits, not bytes.

    Be careful of "steals". It's easy to get something that won't really do what you want,
    but sure sounds like it could or takes an inordinate amount of work to really work for you.

    Post Edited (Mike Green) : 3/14/2008 5:39:28 AM GMT
  • nick112147nick112147 Posts: 42
    edited 2008-03-14 05:50
    Woops, thats my own fault, I·should have payed attention! In that case I need to get the 24C256, which it also supports. The dedicated cartrige programmer has caught my intrest though. While a cheap programmer is the most likely course, I will be spending some time devising a cartrige programmer, just to see what can be done smile.gif.
    ·
  • hippyhippy Posts: 1,981
    edited 2008-03-14 12:24
    Mainly a repeat of what others have already said, but here's my take on this ... It seems to me you have three choices for an Eeprom programmer -

    * A commercial programmer
    * IcProg / WinPic etc plus suitable Eeprom interface
    * A DIY programmer, Propeller or otherwise

    As you are on a tight budget a DIY programmer using a Propeller would seem to be the cheapest approach. You can use your actual Game Console hardware as that will already be fitted with the required interface and connectors for the cartridge already.

    You do not need an additional Propeller chip to do the programming. You may be able to 'throw a switch' and have the PropTool download into the cartridge using F11 or you could temporarily remove the game software, load the cartridge programming software, program the cartridge then reload the game software.

    If / when your funds stretch to buying another Propeller ProtoBoard you could quite easily turn that into a dedicated DIY Cartridge programmer and it should be a comparable price to a commercial unit. It would likely be more suited to programming cartridges with banked / multiple Eeprom if that's what you have than a commercial unit. As only a few I/O lines would be used it is also available for other Propeller development and experimenting when not in use as a programmer.

    Before deciding on a commercial programmer ( or IcProg / WinPic etc ) I would recommend you have your cartridge design finalised and determine the process of how it will be programmed. If the cartridge contains a single Eeprom this will be simple but banked or multiple Eeprom may require more complex circuitry, setting switches, following complicated programming sequences, and may ultimately prove frustrating to use.
  • LustInBlackLustInBlack Posts: 22
    edited 2008-03-14 15:57
    I believe the ponyprog does the job..

    You can export the bin from proptool and program the eeprom with ponyprog..


    There was also a fancy circuit just for the eeprom, there was a free programmer with it.. Don't have the link with me..
  • nick112147nick112147 Posts: 42
    edited 2008-03-14 20:55
    @Hippy: I will definately be using more than one chip. The game's firmware will be divided as program ROM and character ROM, each one being made up of two 24C256. This totals to 1MBit. On the motherboard, I will be using a 3-to-8 and a few 2-to-4 decoders for chip-selection and tri-state logic with the controls hooked to the decoded lines to control the bus. Really, I would almost have to make a second mother board with all accomanying logic to write to a whole cartrige. The amount of time, money and frustration just doesn't make that route too appealing at this point in time. In order to do it directly with the game console, I would have to include alot of extra logic with jumper pin switches to get it done properly, not really something I am up for doing.

    @LustInBlack: Yes, PonyProg will probably be used. I will be programming one chip at a time with the binary data.
  • OwenSOwenS Posts: 173
    edited 2008-03-14 21:13
    Out of curiosity, why not just use a 24LC1024/24LC1025? (Same size, the 1025 is a Microchip part (instead of Atmel) which uses slightly different addressing)
  • nick112147nick112147 Posts: 42
    edited 2008-03-14 21:21
    Well mainly because the programmer I am buying doesnt support that particular chip. It supports any 24Cxxx chip. It is an el-cheapo programmer, only 20 dollars, but it is really all I need.
  • stevenmess2004stevenmess2004 Posts: 1,102
    edited 2008-03-14 21:26
    nick, If you can read the eeproms with your console whats the problem with programming them? There are a couple of objects in the object exchange that can program eeproms. Just use them and fullDuplexSerial to get the data. Also if you are going to use more than one for size reasons why not just use a bigger eeprom. This would reduce the number of other chips required as well simplifying the design and using less pins. One other thing, I2C is a bus system so you only need two pins and they can be used for all the different eeproms so why do you need the decoder chips any way?

    You may have good reasons for doing it the way you are bu these are just some suggestions.
  • nick112147nick112147 Posts: 42
    edited 2008-03-14 21:37
    The reason I use 32K at a time is because the propeller can load 32k without any fancyness. Programming with the actual console is just more than I want to take on.
  • James NewmanJames Newman Posts: 133
    edited 2008-03-15 06:11
    I would start programming some stuff with the propeller before doing this. Using the system to do this should be simple, and something that you will understand fully once your capable of writing the software for the console. It's not too much to learn, and you will definately need the knowledge.

    A few notes:
    -If you can read the eeprom, you can write it with the same setup.
    -Although the prop will load 32kb into memory automatically, to use this with multiple eeproms is going to be a pain. If you look into the eeprom writing i2c objects in the object exchange, it would be better to load what you need using it. With it you can address the particular eeprom you want, and what parts of it (even if it's over 32kb). It can write any of that also... which means that you can program it all with this object too.
    -Like someone said above, i2c eeproms are a bus, so you can have up to like 127 on the same 2 lines, and with the i2c object, you can write or read from any of them with the propeller.

    Using that, you can write a small prop program that you load into the system like normal, then from there it communicates to the pc through serial, and programs all the eeproms, including reprogramming the one it was loaded into with the system's -os-.

    It took me an hour to learn to use the i2c object for writing/reading eeproms (to use the upper 32kb in the protoboard for data storage), I suggest you take a look at it.
  • nick112147nick112147 Posts: 42
    edited 2008-03-15 18:48
    I plan on using serial communication to the BIOS, EEPROMs and the second propeller. As I said before, the BIOS will contain a simple boot loader to load the cartrige data. The second propeller will control the graphics and sound. However, I may just use 64K instead of 32K. I am working to make it around the same calibur as an NES or TurboGrafx. The problem with programming the cartrige with the console is·extra logic circuitry for the WR signals. It would also mean·more chips in the actual cartrige·for·chip switching,·demultiplexing the WR signals, etc. I thought about creating a development cartrige that hooks directly up to a serial port. I am in the process of designing the overall architecture. I will begin designing the actual hardware something within the next 2-4 months.
  • hippyhippy Posts: 1,981
    edited 2008-03-15 19:24
    nick112147 said...
    The problem with programming the cartrige with the console is extra logic circuitry for the WR signals.

    I don't really understand this as the circuitry should be no different for reading than for writing. Writing is controlled entirely by software, a bit set in the 'command' one sends to the Eeprom indicating if it is a read or a write.
  • nick112147nick112147 Posts: 42
    edited 2008-03-16 00:38
    Honestly, I need to finish my system architecture design before I really deside how I am going to store my media. There are so many formats avaliable for me to store the data on. I am just exploring. Right now I am going for something simple, however I may become brave and do something like a dedicated cartrige writer. One reason, and probably the biggest reason I dont use the console to write to memory is I am a bit of a purist blush.gif. In my beliefe system, the console is for playing, the development kit is for developing. Im just funny like that. Honestly, I am designing it like the consoles of the mid 80's through the early 90's on purpose, I mean why not lol.
  • stevenmess2004stevenmess2004 Posts: 1,102
    edited 2008-03-16 01:27
    nick112147 said...
    I plan on using serial communication to the BIOS, EEPROMs and the second propeller.
    When you say serial do you mean RS232/uart or just any kind of link that is serial and not parallel(i.e. SPI or TWI)? The eeproms that are used with the propeller use the TWI(I2C) protocol.

    Also, why use eeproms for data at all? Just put propDOS on the one eeprom that the propeller needs and use an SD card for everything else. If you use an SD card than you just need a reader for that which you can get cheaply from just about anywhere.
  • nick112147nick112147 Posts: 42
    edited 2008-03-16 01:46
    An I2C serial connection between all of the EEPROMs and the microprocessors. I would rather not use propDOS because I was planning on making my own very simple loader, specificaly suited for the console. That, and I like doing stuff myself, as it is a good learning process. Right now EEPROMS are· what I have in mind, however, as the design process progresses, I may switch that. SD cards are a strong possibility, because of their reusability. I talked about that in a previous topic. EEPROMs may prove to be impractical, then again they may not.
  • hippyhippy Posts: 1,981
    edited 2008-03-16 01:50
    @ nick112147 : I agree; get your system design sorted out first before worrying about one specific aspect or committing to one way or another or incurring unnecessary cost. SD card is one option to consider; easy to interface, massive sizes, fairly cheap, and able to be programmed from a PC using a standard card read-writer.

    One argument in support of the console also being used as the cartridge programmer is quite simply the saving of time and cost.
  • nick112147nick112147 Posts: 42
    edited 2008-03-16 02:53
    I agree, SD cards are also space saving. I have even thought about using Atari cartridge housings if I use carts. One thing in favor of EEPROM's though is that my laptop doesnt have an SD card reader/writer, so I would have to buy one, and believe it or not, serial eeprom writers on ebay are about 10 bucks. Right now I am working on the basic I/O part of the design.
  • Fred HawkinsFred Hawkins Posts: 997
    edited 2008-03-17 23:29
    Seat of the pants: ed kit and 6 eeproms, green led, red led, push button.

    eeprom 1 = copy program and led blinker and push button sensor.
    eeprom 2 = source eeprom
    eeproms 3,4,5,6 = eeproms to be cloned with the source.

    green led on: put eeproms in place.

    press button

    red led on: don't pull the eeproms, they're getting written

    green led on: pull eeproms, they're cooked.
  • James NewmanJames Newman Posts: 133
    edited 2008-03-18 22:52
    nick112147 said...
    I agree, SD cards are also space saving. I have even thought about using Atari cartridge housings if I use carts. One thing in favor of EEPROM's though is that my laptop doesnt have an SD card reader/writer, so I would have to buy one, and believe it or not, serial eeprom writers on ebay are about 10 bucks. Right now I am working on the basic I/O part of the design.

    Not an arguement for eeprom, as at my local wallmart I can get a 12-in-1 memory card reader via usb for $20. (Which is about the same considering shipping on ebay.) However, if you must ebay, http://cgi.ebay.com/New-Viking-USB-12-in-1-Memory-Card-Reader-Smart-Media_W0QQitemZ320228648291QQihZ011QQcategoryZ18872QQssPageNameZWDVWQQrdZ1QQcmdZViewItem .
    Just my 2 cents, but if your going eeprom, atleast look into, and play with the i2c object. It's quite obvious that you don't understand it completely, and I think if you did, although you might not do it exactly how it's been suggested, you'd atleast be more aware of your options. Now, as far as eeprom vs sd card... sd card is the way to go imo. Not only will you have much, much more space, it'll be cheaper to make some stickers to put on the sd card, then to buy an eeprom, produce a pcb, make a plastic casing, and finally still need a sticker. Finally, an sd card simplifies loading data strait from pc, making it as simple as pie.

    You should wait till your design is finalized before doing anything, however, once again take a look at the i2c object. The more you know about all the options, the easier, and better your design will be.

    Good Luck, keep us informed.
Sign In or Register to comment.