Jump to content
IGNORED

Create ICSP Programmer for Embedded Micro Controller Chips


mytek

Recommended Posts

Michael and Daniel:

Please dont rush of with my request to support the PICs Ive mentioned.....I did a little bit more googling and found this project:http://mate-labs.de

This works with an Arduino and looks to be a bit more polished than the Danish project I found earlier. The main reason for searching a bit further is that the Danish project didnt have any feedback from the turntable about its actual running speed. This German project does and also has some other better features.

So Im probably going with this project.....hope you guys didnt invest any time in supporting those PIcs I mentioned yet....

No I was holding off on doing that until such time that Daniel was able to tweak the underlying C code. So no extra work on our parts occurred because of your request. I'm glad that you found a better solution to suit your needs :)

 

- Michael

  • Like 1
Link to comment
Share on other sites

Out of curiosity, I tried that, since I have 4 of these pogo-pins laying around (there are different kinds as well), they don't just insert. They do however fit into regular protoboard holes, so you can use the half insert method, with a pinheader, to make your own. I am shocked you can't just buy these readily and when you can, they cost a shit ton.

 

Perhaps picking the right ones that Osgeld mentions below might match up diameter-wise with a standard 0.1" pitch female header. Be nice if this were the case, since the PICkit2 and 3 have this as their default female ICSP header.

 

 

I use a metric shit ton of pogo pins for work related activities since I shifted from "secondary test engineer and pcb layout designer" to "lead test engineer and pcb layout designer", I pay about 2.35$ a pin from a supplier

 

I dunno if they have a minimum cause I usually get a minimum of 100 but they come in a about a million different configurations, down from 0.025 to 0.187 inch centers, 4 different stroke lengths, about 50 different tip geometries and 3 different spring pressures

 

just in standard pogo pins, without getting into bga configurations, flying lead stuff, sockets that have pogo pin ends on them (which I use a TON effectively making a double ended pogo pin), or even pneumatically actuated ones (which SUCK btw)

 

admittedly I never have tried using them in a female socket, its always on male pin headers or testpoints on board, which is a simple thing that most hobbiest neglect ...DFM (design for manufacture, it so easy to spend 30 seconds in cad to save your self hours of faffing about)

 

Do you have a datasheet on what's available? And a supplier reference would also be great.

 

This method of making a quick temporary ICSP connection is very intriguing ;) .

 

- Michael

Link to comment
Share on other sites

Thx Michael. I've ordered my boards and components.

 

post-16380-0-82536900-1511995628_thumb.jpg

Ok, boards and components are here. Now I need my ZIF sockets from China!!!!!!!! At least the supplier had them, thanks again Michael. My soldering tips should arrive here from Australia soon. Things are coming together slowly. My CFO is seeing things arrive but nothing being produced. :sad: :sad: :sad:

 

Mike

  • Like 2
Link to comment
Share on other sites

Looking good Mike :thumbsup:

 

I just discovered the other day that the 14 pin PIC16F636 will also work in this programmer's ZIF socket. Just need to place it with it's pin 1 all the way to the lever side of the socket (same as what's done for the 8 pin and 18 pin PIC's). Pretty cool that this works without having to reconfigure any connections.

  • Like 2
Link to comment
Share on other sites

Hi!

 

Hey Daniel....

 

Would it be a lot of work/possible to add the PIC16F870P or 16F883 to the supported PICs ?

 

Asking because of this:

 

http://www.norre.dk/TTPSU/TTPSU.html

 

One of my other passions apart from A8's is music and I have a pretty decent audio set-up including a Pro-Ject turntable with very nice Ortofon cartridge but one of the drawbacks of this turntable is that you have to lift up the platter to change the belt for 33 or 45 rpm speeds.....

There are costly "speed boxes" available which solve this problem and also produce a much more stable frequency for the motor but I wondered if there weren't any DIY projects around so I googled a bit and here is this great project (including design in.....Eagle) to make one yourself :)

 

Would be very cool to be able to program the required PIC for it with the A8 :D

Sorry for not replying earlier, I have been busy with work this last month, so I haven't followed the forum.

 

Adding new PICs is easy, you simply edit the "readpic.c" adding the necessary parameters for the new PICs, usually from the datasheet. For the two PICs that you asked, this should do the trick:

 

    { " 1: PIC16F870",  0x0D00, 0x0800, 0x2000, 0x2008 },
    { " 2: PIC16F883",  0x2020, 0x1000, 0x2000, 0x2008 },
Parameters are: device-id, memory-size, user-id memory location, maximum configuration memory address.

 

As Micheal said, I'm currently modifying the program to better support some PICs (especially PIC12F629 and PIC12F675), because those have factory-written calibration values in the configuration memory that should not be overwritten, but for your PICs this is not needed, so the old code should work ok.

 

Hope it helps!

  • Like 1
Link to comment
Share on other sites

Hi!

 

Perhaps picking the right ones that Osgeld mentions below might match up diameter-wise with a standard 0.1" pitch female header. Be nice if this were the case, since the PICkit2 and 3 have this as their default female ICSP header.

 

Do you have a datasheet on what's available? And a supplier reference would also be great.

 

This method of making a quick temporary ICSP connection is very intriguing ;) .

 

- Michael

I have used pogo-pins, they are great for quick prototyping with small boards that don't have a lot of space.

 

For a very small form-factor, you can see this: http://blog.spitzenpfeil.org/wordpress/2013/11/12/the-pogo-key-1-27mm-avr-isp-adapter-take-ii/

 

But, for a more reliable connection, you can use laser-cut acrylic plates to support the pogo-pins and the board, so you simply place your board, program and test. Something like this: http://smdprutser.nl/blog/build-your-own-testingprogramming-jig/

Link to comment
Share on other sites

Updated JOY2PIC-STIK silkscreen after discovering that at least one 14-pin PIC would also program directly from the ZIF socket. This would be the PIC16F636 which is currently included in the READHEX application for creating stand-alone flashing executables. If and when more 14-pin devices are to be added to the READHEX app, I will verify if they too work in the JOY2PIC-STIK's ZIF socket. Although doing a quick scan through the Microchip datasheets reveals that at least 3 more 14-pin devices are compatible.

 

post-42561-0-49727200-1512717559_thumb.png

Only the silkscreen was changed, so all pre-existing versions that were already ordered are perfectly ok, and they too will flash 14-pin PIC's.

 

Also after discovering that one of the Jameco spec'ed parts has been discontinued, I went back into the schematic and added Digi-Key equivalents in the parts list, which includes a substitute for that discontinued part. And thanks to Level42 that Digi-Key list is complete, thus allowing you to get everything from a single source. I know this parts source doesn't work that well for our European users, but at least the Digi-Key listings provide you with very good information that can be used for cross referencing to other more local sources.

 

post-42561-0-39873600-1512750619_thumb.png

JOY2PIC-STIK_V1.2_schema.pdf

 

All other related files at: ataribits.weebly.com/joy2pic.html have been updated, including the OSH Park BUY link.

 

- Michael

Edited by mytekcontrols
  • Like 3
Link to comment
Share on other sites

Does it have to Be exactly 4.7nF ? Maybe they do have a value close to it that will also work ?

See next posting...

 

 

And if you're patient, you can get 100 of those babies for the price of about 5 of them at Jameco:

 

https://nl.aliexpress.com/item/New-100PCS-1000PCS-Ceramic-capacitor-50V-47NF-473-Z/32831183310.html?spm=a2g0z.search0104.3.10.Wf3diF&ws_ab_test=searchweb0_0,searchweb201602_3_10152_10065_10151_10344_10068_10345_10342_10325_10343_10546_10340_10341_10548_10541_10084_10083_10304_10307_5060020_10539_5130020_10312_10059_10313_10314_10534_5000020_100031_10604_10603_10103_10605_10594_10596_10142_10107_5080020,searchweb201603_25,ppcSwitch_5&algo_expid=a85a15c7-842d-4f35-8f69-74d5b577e627-1&algo_pvid=a85a15c7-842d-4f35-8f69-74d5b577e627&rmStoreLevelAB=0

 

Ceramic caps aren't actually hi-tech today so I feel safe enough to buy them there.

 

I bought 50 pcs of 100nF through Ali and measured about 15 of them with my ESR meter, all of them were well within spec.

Edited by Level42
  • Like 1
Link to comment
Share on other sites

Oh and ahem.......

 

 

Digikey has about 75 PAGES of ceramic through-hole 4.7nF caps:

 

https://www.digikey.com/products/en/capacitors/ceramic-capacitors/60?k=Ceramic+cap&k=&pkeyword=Ceramic+cap&pv69=80&FV=ffe0003c%2Cmu4700pF%7C2049&mnonly=0&ColumnSort=0&page=1&quantity=0&ptm=0&fid=0&pageSize=25

 

They just list them in the filter box as 4700pF :)

 

I'd go with the cheapest one available at one piece which is on stock:

https://www.digikey.com/product-detail/en/vishay-bc-components/K472K10X7RF5UH5/BC2683CT-ND/2356897

 

 

Here's a handy table for cap value conversion:

http://www.justradios.com/uFnFpF.html

Edited by Level42
  • Like 2
Link to comment
Share on other sites

Thanks Andre :)

 

They need to improve their search engine, and give it enough smarts to know the equivalence. The funny part is that if you enter 4.7NF it'll give you about 3 pages of parts that match, but that all are shown as non-stock requiring minimum orders of 500.

 

I'll add that last Digi-Key match you showed to the schematic and then repost it with today's date.

 

- Michael

  • Like 1
Link to comment
Share on other sites

Yeah I agree......there's also two small boxes where you can enter a minimum and maximum value and then the right caps _will_ show up....

But there are way, waaaaaaayyyyy more worse electronics web stores. I used this (Polish ?) company because they had a serious black friday rebate to get the caps for my Korg repair:

 

https://www.tme.eu/gb/

 

It was a complete nightmare, I'll spare all the details but it sucked so much that I'll never order from them again. Too bad as their prices and esp. shipping costs are OK.

Stores like Digikey, Jameco and Mouser charge crazy shipping prices for Europe. RSonline, Reichelt are a lot cheaper for shipping. Conrad has insane prices.

Sidenote: if you need any Texas Instruments stuff (like I did :) they have free shipping if you agree with receiving promotional mails until the end of the year, it's world wide, and their prices are better or the same as the other large online stores. But TI stuff only I'm sure :)

Edited by Level42
  • Like 1
Link to comment
Share on other sites

Yeah I agree......there's also two small boxes where you can enter a minimum and maximum value and then the right caps _will_ show up....

 

But there are way, waaaaaaayyyyy more worse electronics web stores. I used this (Polish ?) company because they had a serious black friday rebate to get the caps for my Korg repair:

 

https://www.tme.eu/gb/

 

It was a complete nightmare, I'll spare all the details but it sucked so much that I'll never order from them again. Too bad as their prices and esp. shipping costs are OK.

Stores like Digikey, Jameco and Mouser charge crazy shipping prices for Europe. RSonline, Reichelt are a lot cheaper for shipping. Conrad has insane prices.

 

Sidenote: if you need any Texas Instruments stuff (like I did :) they have free shipping if you agree with receiving promotional mails until the end of the year, it's world wide, and their prices are better or the same as the other large online stores. But TI stuff only I'm sure :)

 

Yes I have found Digi-Key to be one the best when it comes to parametric searches for electronic components, allowing you to drill down in order to get specifically what you require.

 

Anyway thanks so much for coming up with the part that I could not find. If you scroll back you will see that I updated the parts list on that previously posted schematic, and I have also carried the changes over to my website as well.

 

- Michael

Link to comment
Share on other sites

  • 7 months later...

Hello, first.

 

I am a bloody beginner as far as Pic Programming is concerned and I have compiled from AtariBits the Joy2Pic stick. I got all the parts I needed and I soldered them properly. No bridges and no wrong polarity. The following parts were recommended there. Joy1 1x D-Sub 9f female, 1x ICSP flat sleeve Connector Angled, 2x 2, 2k for R1 and R3, 1x 1k for R2, 5x 0.1 uf for C1-C5, 1x 4.7 nf for C6, 4x 1N4148 for D1-D4, 2x PN2907A for Q1-Q2 1x PN2222A for Q3 and 1x led red for D5.

 

On my Atari joystick port 1 output are 9, 93V on pin 7 and 8 measured. This should actually be enough. I'm afraid I don't have an oscilloscope. The Joy2Pic stick is connected to the Atari 800XL modified. PicProg v 1.0 downloaded from GitHub as ATR and loaded with ASPEQT into the Atari.

 

SetVPP started and measured with Multimeter to VPP and VSS of the Joy2Pic stick. There are only 10.93 V without PIC chip and only 7.93 V with pic chip out. According to recommended parts list, that shouldn't be. So the tension is not enough. Joy2Pic stick does not work. I would like to flash the PIC chip 16F1847. But the tension is not enough.

 

What I do not understand is, that, PicREAD reads out a chip which is not even in the base, even not even the Joy2Pic stick on the Atari joystick Port 1. Everybody reads it data. User ID words 3FFF, device ID 3FFF, config cllibr 3FFF, program memory from 0000-0084.

 

Can't be, right? How can i solve the low voltage problem on the Joy2Pic stick without having to have an oscilloscope. Also tried an unmodified Atari. Same problem. Power supply of my Atari is sufficient 5v 2 ampere. Very much. Thank you.

Edited by Pmetzen
Link to comment
Share on other sites

Hi!

 

Hello, first.

 

I am a bloody beginner as far as Pic Programming is concerned and I have compiled from AtariBits the Joy2Pic stick. I got all the parts I needed and I soldered them properly. No bridges and no wrong polarity. The following parts were recommended there. Joy1 1x D-Sub 9f female, 1x ICSP flat sleeve Connector Angled, 2x 2, 2k for R1 and R3, 1x 1k for R2, 5x 0.1 uf for C1-C5, 1x 4.7 nf for C6, 4x 1N4148 for D1-D4, 2x PN2907A for Q1-Q2 1x PN2222A for Q3 and 1x led red for D5.

 

On my Atari joystick port 1 output are 9, 93V on pin 7 and 8 measured. This should actually be enough. I'm afraid I don't have an oscilloscope. The Joy2Pic stick is connected to the Atari 800XL modified. PicProg v 1.0 downloaded from GitHub as ATR and loaded with ASPEQT into the Atari.

 

SetVPP started and measured with Multimeter to VPP and VSS of the Joy2Pic stick. There are only 10.93 V without PIC chip and only 7.93 V with pic chip out. According to recommended parts list, that shouldn't be. So the tension is not enough. Joy2Pic stick does not work. I would like to flash the PIC chip 16F1847. But the tension is not enough.

 

What I do not understand is, that, PicREAD reads out a chip which is not even in the base, even not even the Joy2Pic stick on the Atari joystick Port 1. Everybody reads it data. User ID words 3FFF, device ID 3FFF, config cllibr 3FFF, program memory from 0000-0084.

 

Can't be, right? How can i solve the low voltage problem on the Joy2Pic stick without having to have an oscilloscope. Also tried an unmodified Atari. Same problem. Power supply of my Atari is sufficient 5v 2 ampere. Very much. Thank you.

I assume you measured 4.93V between pins 7 and 8, and that should be enough, but certainly a little on the low side. Without any load, you should measure more than 12.7V, if you see less voltage you probably have a problem with one of the capacitors or diodes. Verify the soldering on those components, looking for short-circuits.

 

Also, see this post: http://atariage.com/forums/topic/247065-create-icsp-programmer-for-embedded-micro-controller-chips/?p=3573210for a possible problem with some PCB.

  • Like 2
Link to comment
Share on other sites

Thanks for the info.

After short circuit I searched, but could not see anything. On my Atari Joyport 1 I only measured 3, 61V. Sorry for the typo before. 3, 61V is too little, isn't it? Pumps does the part JoyPIC2. Got there without Load 10, 91V measured and under Load 7.91.

Edited by Pmetzen
Link to comment
Share on other sites

Thanks for the info.

After short circuit I searched, but could not see anything. On my Atari Joyport 1 I only measured 3, 61V. Sorry for the typo before. 3, 61V is too little, isn't it? Pumps does the part JoyPIC2. Got there without Load 10, 91V measured and under Load 7.91.

Sorry to see you having problems with this, and yes 3.6 volts is too low at that point in the circuit. Did you investigate the link that dmsc provided? That could be a possibility. The other thing I would suggest is to do a diode check which most DVMs have this function built-in. See if you can find a bad one, as in shorted.

 

BTW, where are you located? If you are in the US, and all else fails with your troubleshooting efforts, I could send you a working assembled board to swap for yours. But before doing so, it would be best if you can get yours working instead.

 

Good luck :)

Link to comment
Share on other sites

Hello

 

Thank you for your help. No thanks I come from Germany. I got the error.

One of the transistors of the designation N2222 was soldered to Q1 of the board, instead of Q3.

Now I mess without last 12, 82V and with last 7, 82V. Now I just have to figure out how I can program the pic with which program on Windows 10 x64.

 

What I cannot understand is that with the supplied disk PicProgramm the file sample. Hex is not specified, with which PIC building block the hex file was created.

When trying to prepare the sample. hex file on a pic chip in 1847 before as executable file Sample.com I only get the error out of memory range.

 

And if I have a suitable file for the pic 1847 and then try to flash it I get the wrong ID error. So what I'm trying to do is not working.

Am still very new to program pic. Does this also go with WUDSN IDE to add the source codes there in Mads?

A compiler has yes WUDSN IDE as well.

 

Thank you very much.

Link to comment
Share on other sites

Hello

 

Thank you for your help. No thanks I come from Germany. I got the error.

One of the transistors of the designation N2222 was soldered to Q1 of the board, instead of Q3.

Now I mess without last 12, 82V and with last 7, 82V. Now I just have to figure out how I can program the pic with which program on Windows 10 x64.

 

What I cannot understand is that with the supplied disk PicProgramm the file sample. Hex is not specified, with which PIC building block the hex file was created.

When trying to prepare the sample. hex file on a pic chip in 1847 before as executable file Sample.com I only get the error out of memory range.

 

And if I have a suitable file for the pic 1847 and then try to flash it I get the wrong ID error. So what I'm trying to do is not working.

Am still very new to program pic. Does this also go with WUDSN IDE to add the source codes there in Mads?

A compiler has yes WUDSN IDE as well.

 

Thank you very much.

 

If you are trying to flash a PIC chip with a unique program (one that isn't already supplied on my site), then you first need to use dmsc's PicProg program to build an Atari executable 'flashing' file (details of which can be found towards the bottom of this page: ataribits.weebly.com/joy2pic. Just to be clear, there is currently no program available for use with the JOY2PIC that allows PIC hex files to be loaded and flashed on the fly. However the beauty of dmsc's program was that a simple COM file can be created that will flash a unique firmware file for a given PIC chip, only requiring that the program be run and then pressing START to begin the process. This allowed for an easy way to distribute PIC firmware flashing files without the nuisance of having to install a program or read a manual as to it's use.

  • Like 1
Link to comment
Share on other sites

  • 8 months later...

Michael,

Thanks for creating the JOY2PIC-STIK and the SIO2MIDI interface. I'm planning on building both.

 

I have some of the components for the JOY2PIC-STIK in my parts drawer, with the exception of the PCB and 18 Pin ZIF socket. Considering I'll use the JOY2PIC programmer infrequently, is it possible to substitute a 18 pin DIP socket for the 18 pin ZIF socket?

 

Forrest

Link to comment
Share on other sites

Michael,

Thanks for creating the JOY2PIC-STIK and the SIO2MIDI interface. I'm planning on building both.

 

I have some of the components for the JOY2PIC-STIK in my parts drawer, with the exception of the PCB and 18 Pin ZIF socket. Considering I'll use the JOY2PIC programmer infrequently, is it possible to substitute a 18 pin DIP socket for the 18 pin ZIF socket?

 

Forrest

 

I don't see any reason why that wouldn't work :) .

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...