Hi Folks, A few comments back... From: "Sean Alcorn (SYD)" > Do we need programming software, or can we easily get the programmer to > be MPLAB compatible? We will need programming software. Unfortunately, Microchip hasn't been very forthcoming with coming up with defining a set of APIs/loader specification that would allow other programmers/ICD devices to interface with MPLAB. From: "Alexandre Souza" > I Agree in many points with Mike, and add: I still think the easier > way to a newbie come to the PIC world is 16F84, in a "module" with > the programmer. Or a complete lab, with buttons, leds, etc. The > hassle of knowing "is the oscilator working?" is annoying for the > ones without a frequency counter or scope. While the PIC16F84 is simpler (and thus easier to program), I would push back against the PIC16F84 for a number of reasons: 1. The PIC16F627 is cheaper 2. The PIC16F62x can be programmed via LVP 3. The PIC16F62x has more hardware which can be used as the student learns about the PICmicro and doesn't have to go off and buy a new part. 4. The PIC16F62x has a built in oscillator (not very accurate, but good enough to start off) 5 I'm wondering if there are plans to "obsolete the PIC16F84. I have not heard of anything definite on this but I am very sensitive of this after Microchip announced that the PIC16C84 was being obsoleted just as my first book went to press and I had to go back and change everything to the PIC16F84. Just looking at Digi-Key's costs for parts: PIC16F84A-20/P - $6.00 for one PIC16F627-20/P - $3.43 for one PIC16F876-20/SP - $8.43 for one PIC16F877-20/P - $8.98 for one > I'd do what I did to myself: A small module, with a NoPPP and a PIC > 16F84. A 6 pole x 2 positions push button, keying the programming > pins and xtal. Push the button, program. Push the button, run. Be > happy with it. We are talking about N E W B I E S, and although the > higher end PICs would have more "bang for the buck" I still think the > NoPPP is the easiest/cheapest/more bang for the buck programmer > avaiable around. Period. Easy assembly, cheap parts, easy testing (it > gives you the state of each pin, easing the test) and works in EVERY > parallel port I've tested (and I tested it a lot, you can be sure). I would like the PCB to be pluggable into a breadboard so that there is no pulling of the MCU and putting it into circuit. It could also have buttons/pots/LEDs/LCD interface as well. > Also, a good "begginers' manual" would be nice. Something like the > "projects.PDF" you can find in Tony's page. these are nice projects, > simple as it could be, aimed for the begginners. Step by step, it > will bring fun and insight on the architeture of the PIC. > > The best books are that ones that FIRST gives you something to play, > and AFTER teaches you how does it works. If you see a LED flashing, > the first time of your life, you will be in a deer joy. After that, > you can learn how you can play it faster or slower, or else light up > at your control. I've gotten that comment a lot (I find I work best in the opposite direction, read/learn as much as possible and then start working with the part). I'm actually working on a proposal for McGraw-Hill to come up with a book that starts off with projects and works back to the theory. Suggestions, as always are welcome. From: "Alan B. Pearce" > As you are suggesting having a CD in the box, is it worth getting permission > from appropriate places to redistribute the MPLAB environment, and maybe the > HT-Lite C compiler on it? You would need to include the necessary web links > to the original sites on some form of documentation page, but this could be > an html page on the CD anyway. This is not trivial. Microchip is very difficult to work with in getting permissions for placing their tools and datasheets on third party works. Depending on the situation, it would save a lot of hassle just by pointing to http://www.microchip.com. From: "Byron A Jeff" > Actually I'd take an entirely different tack. I'd like to see: > > * A 16F876 or 16F877 with a bootloader in it. > * A MAX232 serial interface. > * Onboard single LEDs, a couple of 7 segments, and an LCD, each with jumpers > so they can be disabled. > * A couple of buttons, a pot, and an opamp for A/D experiments. > * Jacks for ICSP and external I/O > * A breadboard prototyping area > > The key thing here is that there's really no need to bother with a programmer. > That's traditional thinking. the 16F87X and 18FXXX (eventually) don't need > traditional programmers on an ongoing basis. Once a bootloader has been > installed into them, programming becomes as simple as plugging into a serial > port. I agree the bootloader would be a nice idea... The problem is programming the chips in the first place (which is why I didn't suggest it). Ben Wirz and I have gone through some major headaches getting PIC16C505s and PIC16C57s programmed for the "TAB Electronics Build Your Own Robot Kit". Microchip will do it, if you have quantities over 10K and you can wait 10 weeks (they will treat the parts as separate part number and you can repeat order without having to resend the object files). The best vendor we've found is Future-Active (Digi-Key was surprisingly bad). We've also worked through a ton of small, crappy ones. What I have been toying around with is an RS-232 programmer circuit that can also be used as an RS-232 interface. The problem is coming up with something very simple that will work for LVP. > What I'd really like to see is a combination of Wouter's Wloader and WISP > in a single package. Both are chip programmers. Wloader is a self programming > bootloader and WISP is a PIC based ICSP programmer which can program other > parts. It falls into the same philosophy that I'm trying to get across: make > it trivial to get started but have enough headroom that when you want to do > something else, the facilities are there. I see 3 phases: > > NEWBIE: Plug in serial. program the onbard 16F87X part using the onboard boot- > loader. So the board is the target. > Intermediate: > Plug in serial. Use ICSP to program external target. Retain this > mode for chips that cannot bootload, like the 16F628. > Advanced: > Use the programmer to clone the bootloader. Then the user can build > a target that exists completely independantly of the original board and > is self programmable. > > Again you don't need to show them all at first, simply make the facilities > available and then explain their usage at a later time. Sounds good to me. > I really like bootloaders. They cut the tether of a programmer. They are > largely platform independant. They offer a really good independant debugging > channel. They are simple to clone. And they only cost as little as 1 I/O pin > (which can be user choosen) whereas ICSP will cost a minimum of 2, and those > are fixed. ?? Please explain. I would expect two lines (transmit and receive) for the boot loader unless you will allow the PICmicro MCU to use a single line for send and receive. This will work, but the software to control it is pretty complex. As for 2 lines for ICSP, please explain how this is done. I am looking at a minimum of three (possible 4 for LVP unless a couple of single-shots are used to sequence the PGM and _MCLR pins). > Somehow the arguments have been presented that if a chip has a USART, MSSP, > PSP, multiple timers, A/D, and CCP that either a new user will be overwhelmed > by the complexity at the beginning, or that it's irrelevant because they will > never need those features. The latter is definitely untrue as some subset of > those periperals will be used in any non toy project. The former is easily > mitigated because the tutorial doesn't have to present everything at once. I agree. A PIC16F87x can be used just as efficiently running initial programs (ie flashing an LED) using PORTB as a PIC16F84. > > The best books are that ones that FIRST gives you something to play, > > and AFTER teaches you how does it works. If you see a LED flashing, > > the first time of your life, you will be in a deer joy. After that, > > you can learn how you can play it faster or slower, or else light up > > at your control. > > I'd only like to add that any such manual should do two more things: > > * Extend into intermediate projects. > * Show both the hardware and software only mechanisms for solving problems. > > Think along the lines of the midrange manual with a real project associated > with each of the peripheral chapters. > > Note that these are in addition to all of the beginner projects. It can > be separated into to major sections even. But they should both be there. How many pages are you thinking of? In "Programming and Customizing PICmicro(R) Microcontrollers", I do just that (although not in the order that is being discussed). With the "Introduction to Programming" and "Introduction to Electronics" sections printed out, this comes out to OVER 1,500 pages. With this project, I believe that it is _very_ important to keep it well bounded. The programmer software, Bootloader code itself, sample projects, explanatory text can involve literally person-years of effort even for a fairly small project. Let's work at keeping it small at the start and then going bigger from there... From: "Ollie Wallock" > My solution is to use a module that has a power supply (over powered with a 7805) that is both diode protected and fuse protected(thermal fuse) and will run on the programmers wallwart. The Pic also has its own xtal and caps. The module has a ribbon cable that is pin for pin conformal with the Pic. When programming this ribbon is plugged into the programmer as is the wallwart. The plug is then put into the application and the wallwart is plugged into the module which then powers the chip that runs the circuit. > The advantages of this system are. > 1. The power supply is supplied by the wallwart > 2. You cannot burn anything up > 3. The timing circuit is all taken care of > 4. You never have to touch the Pic (A source of expense with beginners pending pins and wrong insertion modes) > 5. Your development boards need no power supply or timing circuits relieving the beginner of those types of uncertainties. > My favorite saying is that you can make something foolproof but never student proof. The above system does both as I have used this system for three or four years in a course that I teach and nobody has ruined a piece of hardware other than the machined sockets protecting the male ribbon socket. No ozone or burned odors either. > This system is pictorially demonstrated on the hardware page found at > http://faculty.stcc.mass.edu/wallock/me482/index.html > Also you should check out the boards of education. > This system has lots of easy tweaks. Thanx for the link and the comments. I've learned a lot about what students can do with the 2nd edition PICmicro MCU book. This is very close to what I am proposing except I would put on a single row of pins on the Programmer that could be plugged into a breadboard from the programmer and are connected to the PICmicro MCU's I/O pins. This would eliminate the need for removing the ribbon cable from the programmer and allow new software to be tested without pulling anything. Berg/3M pins are also a lot more robust than ribbon connector I/O pins. From: "Dale Botkin" > > >but if I did it all over again, I would probably > > >just buy a WARP-13 > > Ditto. I like my EPIC+, but still ditto. This comment has been made quite a bit over the past two days and I honestly have to agree with it. There are a number of different low cost programmers out there that will do similar things, but what makes this one different/better? I'm including it because I am a very firm believer in the need for strongly defining and bounding a project before it is started. Reading over the comments below, I feel like there is some consensus on what needs to be done but still a bit of work on how to accomplish it. To summarize what I think is being discussed (and, quite honestly, what _I_ think should be done), I would define the project as: 1. Consisting of a programmer design that can be used to program a device in socket. 1.1. The device in socket is a PIC16F87x (to allow for bootloader/ICD). A PIC16F627 may be used, but this will eliminate the bootloader/ICD capability and just allow serial communications. 1.2. The device will be programmed by LVP (to simplify the programmer circuit). 1.3. The programmer will be controlled by an RS-232 port to allow application/bootloader/ICD communications with the host controller. 1.4. The programmer will be able to reset the PICmicro MCU. 1.5. The programmer will be built from commonly available parts (no PLDs). 1.6. The programmer will have a series of pins that will allow it to be programmed into a breadboard. 2. Programming software will run under Windows. 2.1. There doesn't seem to be any calls for Linux or Mac versions. 2.2. Software to be written in C++ with dialog box control. 2.3. The software can communicate with the PICmicro MCU in the programmer via RS-232. 2.4. The software can detect the presence of the programmer PCB. 2.5. The software will work with an arbitrary COM port (say up to COM16). 3. A series of beginner's projects will be created. 3.1. Will consist of interfacing to LEDs, buttons, other devices 3.2. Serial communications will be presented. 3.3. The projects will start with high level examples and then migrate to assembly language. 4. Text will be written explaining the projects and the theory behind them. Questions: 1. Will the programmer be made available as a kit or as a built/tested product? 2. Who will supply the programmer? 3. What if multiple companies want to supply the programmer/PCB? Will this be truly "open source"? 4. How do we go about making up the list of projects? 5. How will questions be logged/answered? I am more than happy to donate space on my web site for this project and I will be happy to set up a page on it to help out. myke -- http://www.piclist.com hint: PICList Posts must start with ONE topic: [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads