Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
02/13/07 05:49
Read: times


 
Msg Score: +1
 +1 Good Answer/Helpful
#132713 - The CrazyROM
Responding to: ???'s previous message
Mike:

Your idea to implement a hardware solution for a 64 instruction "program" to implement the programming algorithm in your microcontroller is a kind of a zany idea at best as you have read from all the responses that have come to this thread. That said however do know that this is technically possible but not really particularly practical in the way that you have indicated that you wish to implement it.

I cannot comment much on the legitimacy of the small program that you presented as a valid scheme to program an EEPROM. The code seems to be based upon the fact that you could write into the EEPROM from address zero, byte by byte, with no other type of handshaking or timing constraint. But be that as it may this does create a program that is a little shorter than the 64 bytes that you have been talking about. I put the actual program together as a "source file" and fed it through the Keil Assembler/Linker process to produce a normal HEX file of the program data.

You can view this source code by clicking here: Source Code

The resulting HEX file of data somewhat re-formatted can be seen here: Object Data

I got interested to see just how much minimized logic it would take to produce the logic equivalent of a 64-byte ROM. So I installed the Xilinx CPLD/FPGA device compiler and drew up a schematic that uses a brute force batch of MUXes to select 1's and 0's for each of the eight data outputs based upon the address inputs. I limited the address inputs to A0 to A5 since six bits can select 64 of the locations in the CrazyROM. I based the 1's and 0's for the "program" based upon the compiler output that is linked above. You may see a PDF of the schematic here: CrazyROM Schematic File

Placing this into the Xilinx tool set in this manner allows me to take full advantage of the logic mimimization capabilities of the program and be reasonably assured that the minimized equations do indeed correspond to the data input via the schematic. (Do note that other forms of input to the tool set may have been a better choice but I chose schematic since it parallels your desire to build this with logic gates). The Xilinx tool set produced the set of equations that you may see at this link: set of equations Notice that these equations do show a tristate buffer output enable on the CrazyROM outputs. This may be needed to permit the "ROM" hardware to be managed on the bus of the microcontroller to avoid contention with the normal EEPROM and RAM chips that you indicated that you intend to also have on the circuit board.

My estimate in looking at these equations is that it would take maybe 35 to 45 logic chips of the 14 and 16-pin variety to implement these equations. That is quite a few. And would be a major pain if you find that the "original" program needs to be changed just after you get this thing all built. On the other hand if you look at the equations closely it can be seen that these would fit with ease into a PAL or GAL 22V10 type part. The Xilinx tool set suggested a fit into a small 44-pin CPLD part in their 9500 family.

I think this shows that there are several considerations that need to be made here. Foremost is that the CrazyROM can be implemented in one chip (i.e PAL, GAL, CPLD) or even a small 64-byte PROM as others here have suggested. That consideration itself should be enough to show you that the handfuls of logic chips is not a good way to go with this. The other consideration is that good engineering judgement, practice and tradeoffs should be applied when looking at this problem.

I have gathered all the materials for the program and the Xilinx project files together into a single ZIP file should you want to try to use the Xilinx tool set to minimize your logic. ZIP File (858K)

Good Luck. (Oh by the way .... go buy yourself an in-system programmable FLASH based microcontroller. Use it once and you'll wonder why this thread even exists).

Michael Karas


List of 99 messages in thread
TopicAuthorDate
new plan. RE: 8051 SBC/PGMR            01/01/70 00:00      
   Make a front panel            01/01/70 00:00      
      clock needed.            01/01/70 00:00      
         in \"the bible\" there is a discussion of the \"once            01/01/70 00:00      
            think about this            01/01/70 00:00      
               That's how early MCU's were prototyped            01/01/70 00:00      
   FPGA software            01/01/70 00:00      
      Maybe not just yet ...            01/01/70 00:00      
         Logic minimisation            01/01/70 00:00      
      hmm...            01/01/70 00:00      
         Complicate things?            01/01/70 00:00      
            I have guts ;-)            01/01/70 00:00      
               guts?... maybe, but what about brains?            01/01/70 00:00      
         development            01/01/70 00:00      
            what i mean is...            01/01/70 00:00      
               Where's the directory? Where's the FCB, and FAT?            01/01/70 00:00      
         Reality vs perception            01/01/70 00:00      
   Back to basics, ... not BASIC!            01/01/70 00:00      
      .            01/01/70 00:00      
         comments            01/01/70 00:00      
            Erik ... you've struck a nerve ...            01/01/70 00:00      
               if you, just for once, would take the time to read            01/01/70 00:00      
                  So ... where's the help for him in that example?            01/01/70 00:00      
                     right there            01/01/70 00:00      
                        Front panel            01/01/70 00:00      
                     But...            01/01/70 00:00      
               Nerves            01/01/70 00:00      
                  You're right about that ...            01/01/70 00:00      
                     BINGO!            01/01/70 00:00      
                        So why not use a PROM?            01/01/70 00:00      
            did you visit here before?            01/01/70 00:00      
               ISP is not special!            01/01/70 00:00      
         Simple            01/01/70 00:00      
         Why not using an ISP-micro?            01/01/70 00:00      
   Why dismiss rom?            01/01/70 00:00      
      .            01/01/70 00:00      
         Yes, but, still, why dismiss ROM?            01/01/70 00:00      
   Sooooooooooooooooooooooooooooooooooooo complicated            01/01/70 00:00      
      That's an understatement ...            01/01/70 00:00      
         Aren't you doing an Erik now?            01/01/70 00:00      
            It's because I'm confused ...            01/01/70 00:00      
      no            01/01/70 00:00      
         but you said you already have a programmer            01/01/70 00:00      
   KISS, and one step at a time            01/01/70 00:00      
      KISS: alreay been said.            01/01/70 00:00      
   plan vs No_idea            01/01/70 00:00      
   Mike ... It looks as though you want ...            01/01/70 00:00      
      .            01/01/70 00:00      
         It looks as though you have some thinking to do.            01/01/70 00:00      
         Yes, a lot of thinking to do!            01/01/70 00:00      
            why do you worry about that?            01/01/70 00:00      
               Mark this on your calendar! ... Erik and I agree!            01/01/70 00:00      
   Mike - Time to fess up...            01/01/70 00:00      
      I kind of agree            01/01/70 00:00      
   not guts but folly            01/01/70 00:00      
   RE: Free Chips            01/01/70 00:00      
   I give up seeking help here            01/01/70 00:00      
      Because what you plan to do is just idiotic!            01/01/70 00:00      
      good plan!            01/01/70 00:00      
         Bootloader project gone bad            01/01/70 00:00      
            ...            01/01/70 00:00      
               Instead of the mishmash you propose, how about one            01/01/70 00:00      
                  Homework            01/01/70 00:00      
                     if it is, then whoever assigned it is crazier tha            01/01/70 00:00      
                        IT IS NOT HOMEWORK            01/01/70 00:00      
                           really?            01/01/70 00:00      
               16 bytes? Are you sure?            01/01/70 00:00      
      He who laughs last...            01/01/70 00:00      
         let me reword my question one step at a time            01/01/70 00:00      
            Guts            01/01/70 00:00      
            I don't get it Mike            01/01/70 00:00      
               here's the code again            01/01/70 00:00      
                  Mike please read good plan post            01/01/70 00:00      
                  Try to go back to reality, Mike ...            01/01/70 00:00      
                     It looks like he is trying to do minimisation            01/01/70 00:00      
      Sorry know one can help            01/01/70 00:00      
         blatant errors in syntax            01/01/70 00:00      
            Come on, Richard...            01/01/70 00:00      
      The CrazyROM            01/01/70 00:00      
         Agreed            01/01/70 00:00      
         CrazyRom(tm)            01/01/70 00:00      
            It is already taken...            01/01/70 00:00      
               Mike Stegmaier, I found the solution            01/01/70 00:00      
         Blast from the past            01/01/70 00:00      
         welcome back Michael Karas, we missed you            01/01/70 00:00      
            ade7756 interface with 89c51 urgent code needed            01/01/70 00:00      
               Why post that in THIS thread?            01/01/70 00:00      
               Not only is it entirely irrelevant to this thread            01/01/70 00:00      
         Thanks All            01/01/70 00:00      
            Warm welcome, Michael!            01/01/70 00:00      
            Cross-post            01/01/70 00:00      
            Link            01/01/70 00:00      
            Micheal Karas            01/01/70 00:00      
               that ois why there is 'stuff' around the            01/01/70 00:00      
   History lesson            01/01/70 00:00      
      ROM Reliability            01/01/70 00:00      
         high failure rate            01/01/70 00:00      
            Out of Market. Hmmm            01/01/70 00:00      
               Not SLOW, but slower ...            01/01/70 00:00      

Back to Subject List