??? 10/16/06 17:26 Read: times |
#126521 - I'm not from Missouri, but "SHOW ME" Responding to: ???'s previous message |
Erik Malund said:
... The 8255 can NOT be "be made to work" with many (most?) newer derivatives without slowing them down. I challenge you, Erik, to show me even ONE of the current-generation 805x's that has at least the old-standard 40 pins and the usual four I/O ports but is unable to interface to an 8255 of the oldest, slowest variety using the second approach I illustrated on my user page. The only difference between a 1979 i8051 implementation and a 2006 <you pick it> with the same port pins, is the firmware timing parameters used for controlling the duration of the reset, address, and control bits. That will not slow down any operation of the MCU that's not associated directly with the operation of the 8255's. Now, perhaps you mean you want it to work without any time consumed for the driver firmware ... Erik Malund said:
You keep suggesting that a novice get a hold of a steam-driven variant of the '51, attach all kind of external memory and peripherals and see this ancient setup do something. That, in my opinion, is not a 101 item. If you want to include it in 103 from a historical perspective, that may be OK, but to start out with a very complex setup, when a simple one is availabe, is not the way to get someone going. I don't believe I've ever said that a novice should obtain an antique, not that it shouldn't work, but, rather, I've suggested that a novice should use what's readily available to him, particularly if he's already got it. I've never advocated he attach "all kinds" of anything, though, with the trouble people seem to be having with programming internal memory, I'd say it's probably easier to hook up an address latch and a couple of external memory IC's, which ALWAYS works, rather than trying to figure out how to solve the problems with programming cables that are a perennial issue. BTW, I disagree, in that I think it IS a '101' type of problem generating a working development environment. Hardware and firmware are BOTH important to the process. I understand that you are mostly focused on the firmware, since your favorite parts don't allow the use of external memory, but that's really not the general case. Erik Malund said:
the issue is that 'I/O expansion' is RARELY necessary when you do not live in the past and thus do not have internal memory and, for that reason, if you have a need for I/O expansion, the right answer is "forget it, ues a chip with sufficient internal resources and get all the pins for I/O". If a novice need more than 32 I/O pins, 8K of RAM and 64k of code memory, he is, most likely, way beyond what a novice should attempt. If a seasoned developer meed more than 32 pins, I doubt he would even consider the 8255. If I/O expansion didn't come up frequently, would we be having this discussion semster after semester? It certainly comes up in the context of new learners' school projects. You're right, of course, in that a seasoned developer would not have an 8255 come under consideration right away if he had to expand the I/O on an 805x. However, that's the question that keeps coming up. How to do it is the question, and not whether to do it, or why not. Erik Malund said:
There is no reason whatsoever for a novice to use external memory, it is not needed for any novice project. With all the trouble people have indicated they have with programming internal FLASH memory, I'd say it is a BIG problem, and a ready solution is the use of external memory, since that's only a wiring issue. Erik Malund said:
There has been a plethora of posts (DO NOT ask me to find them, you, yourself state the inabilities of the search), "why does the 8255 not work with my '51?" which have been related to speed. This, typically has bee from downloading some code from the net, not realizing that what works at 8MHz/12 may not work at 20MHz/6. That's because, previously, no one has been willing to address the question of how to attach the problem and make it work. It's a trivial thing to do, but some decisions have to be made along the way. Once again, you mention that 8 MHz 12-clocker. Where did you get that notion? The very first 805x I ever saw, not to mention the first datasheet, was for a 12 MHz part. Erik Malund said:
Sure, you can put a mule in front of a Porsche, and, indeed, the Porsche will move, - if you can make the mule move :) - but is that taking advantage of the Porsches abilities? Yes, and, mule or no mule, the Porsche isn't suitable for taking your family on a road trip. Keep in mind, too, that you've long advocated using parts, the full capability of which you don't need or intend to exploit. Erik Malund said:
Now, for the argument "internal memory chips are difficult to obtain where I live" GET WITH IT "difficult" does not mean "impossible" and if you can not handle things being "difficult" sometimes, stay away from microcontrollers. Erik Erik, you don't get that complaint from me, but you do get it from people throughout Africa, South America, and Asia, and you get it often. Not only are they a problem to get, but they're a problem to program. So, you're advocating that new learners be encouraged to solve their problems by buying rather than by thinking, is that it? Remember, many of them will never be called upon to design a production circuit. They may only be called upon, time after time, to solve a problem placed before them with a one-of-a-kind circuit, by Friday using parts already in stock or available locally. Our role is to answer the question, not to tell the asker how foolish a question it is. RE |