Microchip thru their direct sale website buy.microchip.com is offering their PICkit 1 for $19.80 USD instead of the regular $36 to get interest in their website. You DO need a code number to get the discount buy you should be able to call the 800 number and requext that. Sale ends April 1.

The PICkit has a USB interface so it can program the 8 and 14 pin Flash devices. Comes with some parts on the board, some demo code and a decent set of tutorials to micro controller process control.

It is possible the programmer could also serve to program other ICSP devices, but I have not tried this. The USB API is documnented, and the controlling program is done in VB6 with source, so you have a great running start. The programmer (based on their own PIC16C745) could serve as a starting point for USB applications.

Very worth it. Two gotchas. One is a $25 min order (I ordered 3 extra PICs to use on the PICkit board for a total of $25.14, total $33.34 with shipping). Other gotcha is the PICs ship seperate from the kit, and they hit my charge card as if they were a seperate order (double billing the ICs and the shipping); I expect they will clear this up soon.

Otherwise everything came in 3 days (2 for the kit, 3 for the ICs but since they came from Thailand...)

Something to concider owning.
Posted on 2004-03-13 06:57:23 by Ernie
Posted on 2004-03-13 11:27:28 by Ernie
Quite interesting. However i dont see what your getting at. Choosing the "Getting Started Programmer" option from the list takes me to the $36.00 option with no indication of this promotion, or where a code number would help?

At 36$ its still a good buy tho if you get all the sources as your indicating. Perhaps this is a US only offer?

Posted on 2004-03-13 23:24:16 by NaN
Yes, the regular price is 36 bucks. I got a promotional letter in the mail giving me a code number to enter when checking out. The posted link was to let you see the product for sale

SO... if you want the same bargan, you have to email or 1-800 call them and ask for it.

(Not sure if or how, but I believe this unit could program any serial PIC with the proper config settings. Definately a project for someone.) (Not me, if I worked out how to do this I'd probably try to market the dang thing.)
Posted on 2004-03-14 07:50:04 by Ernie
The microchip support staff asked me why I didnt use my 'friends' coupon number as well....

LOL... I pointed out that he may also want to use it which seemed to stump them. They said they will call me back on monday if they can at all issue me a coupon number.

Posted on 2004-03-19 17:25:51 by NaN
Who hoo! Got my electronic coupon!

Time to rack up some exhange rated dollars on my credit card! ;)
Posted on 2004-03-22 16:49:32 by NaN
You are trying to tell others about a greate sale. "To him that is given much is expected"
Posted on 2004-03-22 22:32:51 by mrgone
Don't even thick credit card. Think of yourself as what you are. A great pervayer of electronic and software knowledge. Tell them in a humble sort of way. You aint no slouch and deserve to be treated as such!
Posted on 2004-03-22 22:39:00 by mrgone
Too late :P

I'm paying more for the shipping and handling than I am for the device itself... and in USD! (ack! thats like a zillion dollars Canadian) :grin:

All in all I expect to pay about 70$ canadian for a listed 20$ USD device. (I guess im paying for the TLC they put in their packaging wrappers ;) )

Posted on 2004-03-22 22:44:02 by NaN
Wow, 70 bucks sounds like a lot.

As far as mine goes, I think I just blew it up. And I was just starting to love it too. lol

I added a cable to use it as an ICSP In Circuit Serial Programmer and it just stoped working... ouch. I hope they let me order another one.

BTW, I just tried out something called PIC Simulator a replacement IDE for the PIC, with a built in simulator. Why buy one when you can download one for free? Cause it has a built in Basic compiler (that generated asm you can edit) that makes PICwork as simple as programming a Basic Stamp. Plus you can do direct asm when and where needed.

And it only costs 19 USD bucks. The guy who wrote it lives in Serbia and Montenegro and deserves some support for the cheapest package by far to do RAD PIC work.
Posted on 2004-03-24 21:13:38 by Ernie
It's free. Of course you have to program in hex but with the few instructions belonging to the PIC I don't find this to be a problem at all. I downloaded a program called BIN2HEX.exe to convert the file from Debug. I had written a converter but apparently has some bugs if size of file was to large. No need to hash it over, like re-inventing the wheel but if anyone is interested.... The hex file format was invented by Intel and is an ASCII representation of the actual hex codes with checksum.
Posted on 2004-03-24 21:28:26 by mrgone
Well I got my kit today.

Im have to say its a nice product. I personally dont have much use for it beyond learning the USB interface design (which im already gettin my money's worth out of it), but i was impressed with the layout as a 'beginers' evaluation board.

It has a diecent set of tutorials with source code to learn the simple beginning of programming a pic. And the Evaluation board comes with the ability to self program over USB and test with via lights and its button.

If I didnt already know how to do this stuff I would find this package VERY sweet! I had to learn the hard way of painful trial and error, swapping chips from a home made parallel port programmer to my bread board. And as for resources, all i had was the chip spec sheets. This package is an all-in-one learning platform.

Again, I highly recomend for anyone seriously wanting to learn PIC's and its assembly, buy this...

Posted on 2004-03-25 19:33:02 by NaN
Hey Ernie, how are you making out with your in circuit serial programming conversion on the PicKit?

Do you know if the same type of serial EEPROM programming protocol is used for all the Microchip products? I have a home made programmer that was designed around some freeware software that worked with alot of the 16F8xx and alike chips.

It doesnt state compatibility with the 16C745, but this is mainly due to programming pin arrangments. If this is all that is in my way, it will be easy to reorder the programming pins...

I read up on the ISP app notes etc, and was always viewing this as something else, but today i got wondering if its the same protocol, only that some chips are OTP (16C745) and others not (16F84A).

Posted on 2004-03-28 20:05:14 by NaN
So the kit teaches all about USB too? Does it describe the device driver with source code? I bet it's in C.
Posted on 2004-03-28 21:40:41 by mrgone
Yes and no. These is a side package that Ernie linked to above that has the design considerations for the USB pic that is used in the PicKit1. The kit itself is a USB programmer for other Pic's. The kit is focused more on learning the basics by programming simple flash chips. However, a higher level tutorial is around the PIC chip software.

The drivers for a USB are typically not an issue. This is a benifit to using USB. If you are making a device that is compliant to the HID class of devices (human interface device) the OS will automatically generate and assign a driver based on the data your provided in your USB device. This specification allows for low speed transfer apprx 0.8kB to 1.6kB/s and interupts, which is prefect for alot of applications. Devices demanding higher data rates and other allowances require you to generate your own driver.

Posted on 2004-03-29 17:10:38 by NaN
Yeah really I hate when your learning something new and they go right into the gory details anyway. I think I might get that kit.
Posted on 2004-03-30 01:40:57 by mrgone
My ICSP interface is pretty simple. I'm using a PIC16F630 in my project, so all I did was add a socket to both my app board and to my PICkit and then connect the 5 ICSP lines (Vcc, GND, VPP, Data, Clock) together.

Has the advantage that after the device is programmed the code runs, with my app powered off the PICkit. Sweeet.

BTW, the PICkit contains the full source code for both the USB client (PIC16C745) and the windows programmer code. The client is in Microchip assembler, the programmer is in VB6. The client runs as a HID device, controling it is simple WIN32 API commands (well, as simple as anything is in WIN32).
Posted on 2004-03-30 02:34:08 by Ernie
Well, a major milestone is now proven. I managed to bread board my own USB device and effectively communicate from a VB program to it and back! Quite happy really ;)

Now all i have to do is figure out how Interrupts work. The usb communications i have working are all driven by user events and software API's. In other words one way communications, and polling for a return event...

I've been dreading this part, but then again, i thought it would be harder to get to where i am at the moment. If anyone has any knowledge of how interrupt control packets work, im all ears ;) . Im not sure if i have to redefine my descriptor type for this or not, and its hard to get info specifically on this topic. As well, im not sure how VB will generate interupt events...

Oh well, one step at a time i guess..

Posted on 2004-04-08 23:20:44 by NaN
Not exactly sure what you mean by interrupts.

If you mean the x86 hardware interrupts, that's ring0 kernel mode stuff. I haven't delved very far into that. So far, I haven't seen any acknowledgement of interrupts in normal ring3 application mode. Hardware events are signalled indirectly via messages such as the mouse, keyboard, and timer messages. Or else a callback method, as in overlapped I/O, is used.

USB also defines something called an Interrupt transfer type. It has nothing to do with hardware interrupts. If you are using HID, you are already using this transfer type on all your data endpoints. The device does not (and should not!) really care if the host (PC) internally uses interrupts or not.
Posted on 2004-04-09 20:29:02 by tenkey
HID USB communications work with the especially overloaded OpenFile, ReadFile, and WriteFile APIs. When a USB device sends data back to the CPU, a ReadFile best be waiting for it or it gets lost. ReadFile can either wait for any data, or a semaphore event can be set to keep the thread from completely dying.

When I did a VB USB comm object (in VB6), I used a .exe object to get it running in its own thread. This way it could breifly stall waiting on a ReadFile and not stall the program using it.

USB Complete describes this process pretty clearly, I ripped off most of my code from it to drop into the object (hence making it really ugly code).
Posted on 2004-04-10 02:06:36 by Ernie