Semi-universal Picaxe programmer with ZIF and auto power on

wapo54001

Senior Member
Finally getting around to making a proper Picaxe programming board after years of kludging things together.

I would like to include a capability to sense when a connected computer is trying to program a chip, and automatically turn on 5V to power the chip, and then turn the power off when the chip is programmed. I'm hoping to use a 5V 20ma relay driven by a mosfet for the switch, but I don't understand the programming cable and protocols well enough to know if this is possible and what voltage levels I should be trying to sense. I'd prefer to drive the mosfet directly from the AXE cable, but I could use an 08M2 for sensing and logic for the power control if needed.

The attached is a preliminary layout for the PCB that will carry the ZIF socket, plus power and data plugs but minus the sensing circuit.

Advice on how to make the power control sensor work would be appreciated.
 

wapo54001

Senior Member
Put a scope on it, Serial In goes high for a few seconds at the beginning of a program cycle then goes back and forth between logic high and logic low as the program is loaded. Will use an 08M2 to monitor the signal to turn on power immediately when Serial In goes high, and turn off power after a brief delay when the Serial In pin stays low for a few seconds. I think that'll do it. With this in place, I don't have to worry about damaging a chip by forgetting to cut power before inserting/removing it, and it's less fuss and bother in the process.

Am considering switching power ON and OFF for programming using the 08M2 itself -- combining three output pins for maximum current (theoretically 75 milliamps) during programming only.

I don't know what a Picaxe draws during programming, but surely it's nowhere close to 75ma??

Updated drawing attached.
 

Jeremy Harris

Senior Member
You can drive a small latching relay directly from Picaxe pins without a driver very effectively. I bought some cheap'ish latching relays and tried some experiments, starting with this post here:http://www.picaxeforum.co.uk/showthread.php?29157-Can-the-14m2-directly-control-a-latching-relay-with-a-5V-20ma-coil&p=300900&viewfull=1#post300900

This post describes my first testing of direct-drive 5V latching relays: http://www.picaxeforum.co.uk/showthread.php?29157-Can-the-14m2-directly-control-a-latching-relay-with-a-5V-20ma-coil&p=301003&viewfull=1#post301003 and further on from that post there are more details.

I've now had a simple circuit with two Picaxe pins driving one of these relays directly working for some weeks, switching regularly with no problems at all. The advantage is that there is no current drawn by the relay when on or off, just a short duration current for a few ms as the relay changes state.

I think you should be able to decode the data from the serial out lead (serial in to the Picaxe being programmed) to reliably detect an attempt to programme a Picaxe in your board and turn the power on. IIRC, you have a few seconds between a programme download starting and the Picaxe needing to be powered up, so you should have plenty of time to detect a programming request on the lead and turn the power on. Turning the power off again could be just a simple timer, or you could try and detect the "programming completed" signal and decode that to turn the power off.

It's an interesting project, as although I usually fit a three pin programming header to most boards I make, I'm about to do a small "production" run of units where I'd rather just socket the board and have pre-programmed Picaxes to install for one of three "product" options.
 
Last edited:

wapo54001

Senior Member
I agree with you about driving latching relays directly from a Picaxe. I built a 4-way Input Selector board with latching telecom relays driven directly by an 08M2 (see attached) and it works perfectly as long as I leave adequate time -- about 100ms -- between turning one input relay off and turning another input relay on. The relay switches in 3ms, but it takes about 65ms for the capacitor to charge or discharge fully.
 

Jeremy Harris

Senior Member
I ended up using the "two pin method", with the latching relay coil between two Picaxe pins, so no capacitor and faster switching times. I added back EMF diodes from each pin to ground, just in case, but have a feeling the the internal protection diodes on most Picaxe pins would probably do this job OK.
 

Goeytex

Senior Member
As a personal choice I would use a solid state switch instead of a relay.

Attached is a solid state switch circuit that I use on some of my boards. This same basic circuit is used on several
commercial Dev boards from Microchip and others.

The 2N7000 FET can be replaced with a General Purpose NPN if desired. ( 2N3904 or similar)

Goey
 

Attachments

wapo54001

Senior Member
I watched the coil leads on a scope as the relays switched and could see absolutely no sign of any spike of any kind. It seems to me if you use the capacitor method the magnetic field gradually dissipates as the capacitor charges or discharges rather than suddenly collapsing as it would when current is flowing in a non-latching coil and power is suddenly removed. I think with latching relays with capacitors there is no need for diodes at all. I hope I'm not mistaken; my board seems to be working just fine.
 

wapo54001

Senior Member
Since the signal that will keep the power "ON" is a serial data stream that has to be tested with ADC, I figure I need a capacitor on the ADC pin to help hold the voltage above, say 1 volt or 1.5 volts as a threshold as long as the data stream is active, so I figure a resistor to isolate the capacitor from the data stream is needed. This resistor would be in parallel with the 10K resistor to ground and before the 22K resistor to the program "IN" pin.

Wondering what resistor value would suffice to isolate the capacitor adequately, and what value considering it will be in parallel with the 10K. Also, maybe change the value of the 10K to compensate? Any thoughts?
 

Goeytex

Senior Member
My thoughts are that using the serial data stream to charge a capacitor to keep an ADC at a certain level is an over-complication and may be difficult to implement.

Consider using the front end Picaxe as a kind of "one-shot". If it sees a positive edge on the serial line it turns the power on. Then waits up to 20 ms for another positive edge. As long as it sees pulses the power remains on. If 20 ms pass with no pulse then that indicates that programming is complete and the power is then turned off. The code would be quite simple.

"20 ms" is used as an example. It may need to be more or less.
 

wapo54001

Senior Member
Consider using the front end Picaxe as a kind of "one-shot". If it sees a positive edge on the serial line it turns the power on. Then waits up to 20 ms for another positive edge. As long as it sees pulses the power remains on. If 20 ms pass with no pulse then that indicates that programming is complete and the power is then turned off. The code would be quite simple.

"20 ms" is used as an example. It may need to be more or less.
You're right, dead simple when your thinking points you in the right direction! Thank you.
 

wapo54001

Senior Member
I should have asked confirmation on this before I started, but at least I haven't put anything in hardware yet.

Question is this: Can I assume that, while initiating programming and actually programming, the other pins are either inactive or set to input? The reason I ask is that during programming larger chips the power and programming pins touch other pins that intended to program other chips, and this won't work if the arrangement causes power to be applied to output pins or the programming data flow is affected by other Picaxe pins connected to the programming pins. I hope I am kept safe by the fact that power is applied only when the programming signal is detected so that the chip is not active prior to the programming commencing, and the control 08m2 needs to cut off power before the chip has a chance to run the loaded program after the download, I think.

Attached is my "final" design minus the 3.5mm programming jack.
 

hippy

Technical Support
Staff member
Question is this: Can I assume that, while initiating programming and actually programming, the other pins are either inactive or set to input?
Not entirely. You would really need to design the circuit to ensure that no matter what could go wrong it has no adverse effects.

That is why we don't recommend single socket programmers which are intended to cover a range of chips with different power and programming pin arrangements.
 

Technical

Technical Support
Staff member
Agreed, not a great design - what happens if you enter a chip already programmed with 'disconnect' or similar?...
It would be far better to make 3 separate pcbs 18 , 28 and 08-14-20. Put a turned pin socket on each and swap the ZIF between them.
 

wapo54001

Senior Member
Agreed, not a great design - what happens if you enter a chip already programmed with 'disconnect' or similar?...
It would be far better to make 3 separate pcbs 18 , 28 and 08-14-20. Put a turned pin socket on each and swap the ZIF between them.
Well, I thought I could beat that by using an outboard 08m2 to sense when a program download starts, and ONLY THEN power up the chip as the download is attempting. This would certainly solve the DISCONNECT problem. Also, my understanding is that at power up the the IN/OUT pins are all set to input before the programming kicks in? And if the power automatically shuts off a second or two after programming completes, doesn't that solve the post-programming issues as well?

If the power is always applied and removed in that way, doesn't that solve the problems that could arise from a previously programmed chip?

A look at the pin locations that are affected does not, to me, appear to put any chips in danger if I have it right about the state of the pins at power up. Am I mistaken in my understanding? It seems to me that my design is different from conventional programmers in that I use that 08M2 sensing chip to control power -- doesn't that my design intrinsically safe?

I don't mean to be argumentative -- you folks know far more about this than I do -- I just want to be sure that the difference in the design is considered in case it makes the difference.

Is there a specific issue I should be looking at?
 

Technical

Technical Support
Staff member
With the current design, at some point, things will get out of sync (e.g. someone nudges the board or ZIF socket handle and you get a partial download or partial disconnect of power in the ZIF socket). At some point that will happen.

When that occurs the program in the PICAXE may start running its internal program. That downloaded program may even be a partial corrupt download.

If the program in memory happens to set any of the i/o pins that are shorted to ground or V+ into an output, you will permanently damage that chip.

If everything is working normally, it should be ok. But life is not normal and a good design will take that into account.
 

wapo54001

Senior Member
With the current design, at some point, things will get out of sync (e.g. someone nudges the board or ZIF socket handle and you get a partial download or partial disconnect of power in the ZIF socket). At some point that will happen.

When that occurs the program in the PICAXE may start running its internal program. That downloaded program may even be a partial corrupt download.

If the program in memory happens to set any of the i/o pins that are shorted to ground or V+ into an output, you will permanently damage that chip.

If everything is working normally, it should be ok. But life is not normal and a good design will take that into account.
Ah! OK, I totally get that. So, my understanding is not wrong, only it assumes that no errors occur in the process, and making that assumption is not always a safe thing because eventually something is going to go wrong. Can't argue with that!

My opinion is that there are more than two possible conditions here, there is a multitude. The first condition is, everything goes as planned. Let's give that a 97% probability. Then, there is the possibility that something -- what, is unknown -- could go wrong, and that's a 3% probability. Then, from that 3%, what's the probability that it will go wrong with a chip that happens to be in contact with other "hot" connections in odd places, and then what's the probability that the program in the chip will kick off and then what's the probability that the program happens to call for an output at just that chip that causes a short with a hot wire? All in all, not very high.

In other words, 3% divided by a small percent divided by another small percent etc. The likelihood of frying a chip becomes very very small. And so, does one give up on a really needed piece of equipment because of a very small likelihood of destroying a single Picaxe chip? Not me. I have fried one or two chips in my time, it's part of the game. I have also cursed my ad hoc programming setups on many, many occasions.

To paraphrase an old advertisement: "The value of an 08M2 = $3, the value of a 14M2 = $4, the value of a 20X2 = $6. The value of a super convenient single socket universal Picaxe programmer that automatically controls power to the chip = PRICELESS!" ;)

So, I accept your concerns as entirely valid, and I'm willing to take the risk and also accept the very occasionally fried chip in exchange for a programmer that I can leave permanently plugged into power and a USB port and conveniently available to me at a moment's notice and already set up to take programming directly from PE6 regardless of the chip involved. Also very useful for small runs of programming multiple Picaxes consecutively.

But I really appreciate the very specific and accurate description of the hazards so that I could decide given my own specific circumstances. The risk is worth it to me.
 

BeanieBots

Moderator
To paraphrase an old advertisement: "The value of an 08M2 = $3, the value of a 14M2 = $4, the value of a 20X2 = $6. The value of a super convenient single socket universal Picaxe programmer that automatically controls power to the chip = PRICELESS!" ;)
.
What am I missing here?
I've made countless PICAXE projects and NEVER felt the need for such a device. The closest I've ever come to something along those lines is using the PICAXE developers board to program a few 08M2's when I couldn't be bothered to add a programming socket to the project.
Most of my projects use a 28X2 so adding a programming socket is as simple as adding a three pin header adjacent to the chip. Total cost = < 1p plus 5 extra seconds build time.
Perhaps it has purpose when programming a few hundred PICAXE chips but Rev-Ed offer a service for doing that for large quantities and if I was doing thousands of chips I'd want a 100% fool proof dedicated device.
 

hippy

Technical Support
Staff member
In other words, 3% divided by a small percent divided by another small percent etc. The likelihood of frying a chip becomes very very small.
And then there's Sod's Law. You are perhaps right that in most cases there won't be a problem but it's not that easy to calculate or predict.

I can't even say what the full range of hazards would be because I have never looked deeply and long enough, only know that there are some which leads towards not recommending the idea of a single socket programmer.

At the moment there is some guessing on how soon the power should or needs to be turned off. Too soon and the programming may be incomplete leading to odd behaviour when powered-up, too long and there's a chance of it starting to run while in the programming socket with the possibility of shorts. I can't say what the timing should be as I have no idea and that may vary depending on what PC is doing the programming, what download cable is used.

The worst case is if damage does occur which is not observable until used in the target system and then only perhaps if the damaged pin doesn't work as expected to. That could be very frustrating to track down.

But, as you say, if you are prepared to take the risk, then you are entitled to. We just would not recommend it. I personally don't see a great advantage in using a single ZIF socket with all the possibilities of insertion misalignment over the three individual sockets which would otherwise need to be used.

One thing I would suggest, regardless of how it is done, is to add power and status LED's to the board to help verify it is working as expected and to avoid removing chips when the socket(s) may be powered.
 

AllyCat

Senior Member
Hi,

I've made countless PICAXE projects and NEVER felt the need for such a device. ..... adding a programming socket is as simple as adding a three pin header adjacent to the chip. Total cost = < 1p plus 5 extra seconds build time.
+1. I would always include a "programming/debug capability" on every board, which makes a programming adapter almost redundant. Discussed at length recently here and I think the responses were almost unanimous.

As hippy says, if you really want to make a programming adapter, then certainly include "diagnostics" LEDs, and I suggest at least two ZIF sockets. You currently have +Vdd applied directly to Leg 12 of a 20M/X2: If the loaded program happens to (try to) pull that pin Low then the PICaxe chip might well be damaged - but how/when would you know?

Cheers, Alan.
 

wapo54001

Senior Member
One thing I would suggest, regardless of how it is done, is to add power and status LED's to the board to help verify it is working as expected and to avoid removing chips when the socket(s) may be powered.
@hippy, entirely agree -- recently started planning one "power on" LED and a second "power applied to socket" LED. Thinking about putting another LED on the Serial Out line which would flicker as long as the chip was sending data to the computer terminal. I would want that to be silent for at least a second (TBD) before turning power off to the chip.
 

wapo54001

Senior Member
Hi,



+1. I would always include a "programming/debug capability" on every board, which makes a programming adapter almost redundant. Discussed at length recently here and I think the responses were almost unanimous.

Cheers, Alan.
I do do that, and I've seen that thread -- in fact the last post in the thread is mine, showing how I set up my boards with a small pad next to every input/output location and three pads under the chip for programming. I solder strips of pogo pins on a spare board and run i/o wire from the pogo board so that all I have to do to get full access to the working board is to put it on top of the pogo board and put the finger nuts on the posts at each corner. Works great for certain purposes.
 

wapo54001

Senior Member
With the current design, at some point, things will get out of sync (e.g. someone nudges the board or ZIF socket handle and you get a partial download or partial disconnect of power in the ZIF socket). At some point that will happen.

When that occurs the program in the PICAXE may start running its internal program. That downloaded program may even be a partial corrupt download.

If the program in memory happens to set any of the i/o pins that are shorted to ground or V+ into an output, you will permanently damage that chip.

If everything is working normally, it should be ok. But life is not normal and a good design will take that into account.

My belief is, without some amazing set of circumstances, the outboard 08M2 will cut power to the chip when the serial exchange stops -- which it will if something goes wrong with the programming process -- and the chip will not be able to reboot and start up -- that is the beauty of having the 08M2 controlling power to the chip based upon the serial stream. Hmm, I wonder if I should set it up so that power is cut if EITHER the serial in OR serial out stream is interrupted? Easy to accomplish, but is it necessary?
 

wapo54001

Senior Member
I've followed the advice of the experts on the forum and modified my programmer to activate only the power and program pins appropriate for the specific Picaxe chip being programmed using a 4-circuit jumper system as seen in the attachment.

It occurs to me, however, to wonder if I've overdone the solution. Would it be perfectly safe and effective if only the +5 is switched rather than switching all four circuits? Or maybe +5 and ground? But if I have to switch two circuits I may as well switch all four because that would make the jumper assembly more stable and also make it impossible to cross-connect +5 and ground by inserting the jumper 90 degrees out of line.

I still want the 08M2 controlling power to the socket -- turn on when programming starts, turn off as soon as programming is complete so that dealing with power on/off to insert or remove the chip is not an issue.

Ideas?
 

Technical

Technical Support
Staff member
One good idea may be to not have the 08M2 serin floating.... or not to short together C.0, C.1 and C.2?
 

wapo54001

Senior Member
One good idea may be to not have the 08M2 serin floating.... or not to short together C.0, C.1 and C.2?
Thank you, all very helpful!

OMG! Leaving serin floating, I was not attuned to that -- thinking too much about the circuitry around the ZIF. Thank you . . .

Regarding C.0, C.1, and C.2, I am removing C.0 from the bank and adding C.4. In software, I will always switch all of the outputs to inputs before I switch the output level between high and low and I think that will take care of high pins shorted to low pins during switching. I've used this technique with driving relays and it seems to work very well.

Moving the serin level sensor from C.4 to C.3.
 
Last edited:

wapo54001

Senior Member
&quot;Semi-Universal&quot; Programmer now &quot;Truly Universal&quot;

I've finished my Picaxe programming board. This board is intended to simplify small-run repetitive programming; switching to a different chip is a simple matter of moving a jumper. One LED shows board is hot, a second LED indicates programming activity -- turns on when programming starts and turns off immediately after programming is completed. When programming is initiated, power is immediately and automatically applied to the chip, and power is shut down about two seconds after programming completes.

It programs 8,14,18,20,28, and 40-pin Picaxe chips.

Power and programming data is applied ONLY to the pins required to power and program a specific chip, all other pins are inactive. (For 40X and 28X, the RESET pin is held high through a 10K resistor).

I have tested the board on 08M2s, 18M2s, 20X2s, and 28X2s and all program flawlessly. Next step is to acquire a 40X2 and verify that the trivial current required to program the chip can be supplied through the single set of +5V and Gnd power pins that are connected during 40X2 programming.
 

Attachments

wapo54001

Senior Member
If anyone is curious, here is the very simple program. I'm trying to upload the schematic and again having no luck, I have terrible trouble with attachments on this site; will keep trying.

Code:
'This routine causes an 08M3 to sense programming and applies power to the chip to be programmed. 

#picaxe 08M2
#no_data
'#terminal 9600
setfreq M4	
 
'PIN ASSIGNMENTS
SYMBOL Pwr1 = C.1 'Power Output Pins 1,2,4
SYMBOL Pwr2 = C.2
SYMBOL Pwr3 = C.4
'PinC.3 = programming sense pin

PAUSE 2000 'wait 2 seconds

'operating routine
'wait for sense pin to go high
'when 'High' is sensed, power on the chip to be programmed
'when programming ceases, wait 2 seconds and remove programming power
'loop until DC power to board is removed

main:

'always start with programming power turned off
GOSUB PowerOff

'wait for programming sense pin to go high, turn on power 
DO
	IF pinC.3 = 1 THEN
		GOSUB PowerOn
		TIME = 0
		EXIT
	ENDIF
LOOP

'keep power on while programming is high, wait 2 seconds at end before turning off
DO
	IF pinC.3 = 1 THEN
		Time = 0
	ELSEIF pinC.3 = 0 AND Time > 1 THEN 'kill power when programming stops plus 2 seconds
		GOTO Main
	ENDIF
LOOP

'Switch Power Off
PowerOff:
INPUT Pwr1
INPUT Pwr2
INPUT Pwr3
PAUSE 50
LOW Pwr1
LOW Pwr2
LOW Pwr3
RETURN

'Switch Power On
PowerOn:
INPUT Pwr1
INPUT Pwr2
INPUT Pwr3
PAUSE 50
HIGH Pwr1
HIGH Pwr2
HIGH Pwr3
RETURN
 

techElder

Well-known member
R3 and R4: Assuming R4 is the 10K, R4 should go to GND or COMMON on the "other" side of R3. R3 is in series with the programming pin and J1-3, but R4 goes to GND or COMMON from J1-3 also.

You have created a voltage divider, but that is not its intended purpose.

EDIT: Ok, I see the correction. Schematic easy to change; board not so much. :D
 

rq3

Senior Member
You are absolutely correct -- I created the schematic after-the-fact, the circuit card was done correctly. See below.
Excellent! Nice job! My only other concerns are:
1) potential lack of by-pass capacitors for the entire circuit, and particularly for the device being programmed.
2) The ability of the 08 picaxe to be able to provide the current required during programming. The PIC datasheets are pretty shaky in this regard, and there are two programming methods for most of their devices. One parameter mentions a current of 5 mA required during "high voltage" programming.

I don't know how Rev-Ed implements their version of serial programming. It's obviously the "low voltage" method, but PIC doesn't have a lot to say about that, other than how to set up the device to do it. They don't mention (at least in my quick perusal of the 16F1829 datasheet for the 20M2) what current is required by the device while being programmed in low-voltage mode. Sometimes you have to "back into" numbers like these from other data they hint at, or measure it yourself, which is how I determined that the impedance of a pin sourcing current (P channel) is about 90 ohms, and the impedance of the same pin sinking current (N channel) is about 30 ohms.

By the same token, the value of the "weak pull-up" available in these devices is any where between 16,000 ohm and 200,000 ohm. They don't say that explicitly, but it is easily derived from the data sheet.

I guess what I'm saying is that your circuit should work, but it may not on occasion, depending on whether tolerances aid or hinder each other. A MOSFET between the 08 and the device being programmed as a hard Vdd switch would fix that in Rev. 2 if that should be necessary.
 

Buzby

Senior Member
...By the same token, the value of the "weak pull-up" available in these devices is any where between 16,000 ohm and 200,000 ohm. They don't say that explicitly, but it is easily derived from the data sheet.

I guess what I'm saying is that your circuit should work, but it may not on occasion, depending on whether tolerances aid or hinder each other.
Slightly OT, but true.

Many years ago I was tangentially involved in the development of a high volume commercial product by a big-name multi-national company.

All the development units, and the final prototypes, worked perfectly.

The device went into production, and then all hell let loose.

A significant number of the production units failed to work.

Part of the function depended on interface between an ASIC and the pullup of the microcontroller, and all the development/prototype pullups were around 20K.

In the first batch of production ( 1000's of sets of components ), the micro's pullups were nearer to 100K, and so they failed to perform.

It's obvious that the designers had not taken into account that the pullup value could vary by production batch.

So wapo, if your circuit fails due to not reading the datasheet don't fret, you're in good company.

Cheers,

Buzby
 

wapo54001

Senior Member
Excellent! Nice job! My only other concerns are:
1) potential lack of by-pass capacitors for the entire circuit, and particularly for the device being programmed.
2) The ability of the 08 picaxe to be able to provide the current required during programming. The PIC datasheets are pretty shaky in this regard, and there are two programming methods for most of their devices. One parameter mentions a current of 5 mA required during "high voltage" programming.

I don't know how Rev-Ed implements their version of serial programming. It's obviously the "low voltage" method, but PIC doesn't have a lot to say about that, other than how to set up the device to do it. They don't mention (at least in my quick perusal of the 16F1829 datasheet for the 20M2) what current is required by the device while being programmed in low-voltage mode. Sometimes you have to "back into" numbers like these from other data they hint at, or measure it yourself, which is how I determined that the impedance of a pin sourcing current (P channel) is about 90 ohms, and the impedance of the same pin sinking current (N channel) is about 30 ohms.

By the same token, the value of the "weak pull-up" available in these devices is any where between 16,000 ohm and 200,000 ohm. They don't say that explicitly, but it is easily derived from the data sheet.

I guess what I'm saying is that your circuit should work, but it may not on occasion, depending on whether tolerances aid or hinder each other. A MOSFET between the 08 and the device being programmed as a hard Vdd switch would fix that in Rev. 2 if that should be necessary.
The regulator is followed by a 120uF electrolytic, and there is a .1uF ceramic at each of the three +5V pins on the ZIF socket. Three 08M2 output pins are ganged together so that available programming current is triple the published current per pin, but I didn't use load balancing resistors. So far, zero problems. I have yet to try a 40X2 because my first board was populated with parts I had lying around, and that was a 28-pin ZIF, not a 40-pin. It would be very easy to put a mosfet into the circuit, and it certainly would make the question moot, but is it really necessary? I will put a 40 pin socket into my next board and see how that goes, and I'll measure the current draw before and during programming to see what the draw really is like.

I really like the automatic power switching -- so convenient and prevents inserting or removing a chip from a hot socket.
 

AllyCat

Senior Member
Hi,

... measure it yourself, which is how I determined that the impedance of a pin sourcing current (P channel) is about 90 ohms, and the impedance of the same pin sinking current (N channel) is about 30 ohms.
Actually, typical values are now available, buried deep in the latest 16F1825/9 data sheet, Figures 31-40 to 31-45. Certainly the output pullup current is not great, even at 5 voilts, and frighteningly low with a 1.8 Volt supply. :(

It's quite important to check the generic data at least for the appropriate X2 or M2 family. The M2s appear to have rather "poor" output current capabilities, compared with the X2s (and earlier PICaxe chips).

Incidentally, the "Weak Pullups" in many microcontollers are actually low "current sources", so it's not realistic to specify a resistance value as such. But those in the PICs do appear to be remarkably "resistive" (i.e. they obey Ohms Law) and all that I've measured have been close to 30k. But a "problem" with Microchip is that some of their data specifications are extremely pessimistic; I do wonder if we would ever see a weak pullup of 200k ?

Cheers, Alan.
 

Jeremy Harris

Senior Member
You are absolutely correct -- I created the schematic after-the-fact, the circuit card was done correctly. See below.
I bet we've all done that at one time or another, I know I have! I often end up drawing the schematic in a hurry, after I've designed the PCB and got something working, and I know I've posted a schematic here with exactly that same error, at least once.
 

cpedw

Senior Member
R3 and R4 are not correct!
This is from post no. 31 which includes a claim by wapo54001 that the schematic is attahced. I can't find that post by wapo. Can anyone advise where it is please?

Incidentally, the page seems to be partly in French.

Derek
 

MartinM57

Moderator
The post with the alleged schematic attached was post #30 and the post has been subsequently deleted by wapo54001. As a moderator I can see post #30 but it now has no schematic in it, but that may be the way the forum works - when a post is deleted, the words remain but any attachments really are deleted.

I see no French - where can you see it?
 
Top