I wonder if anyone can help. Im running an ARM dev board (Teensy4.1) to effectively become another MCU programmer. Being ARM, the GPIO are 3.3v, the target MCU PCB is 5v, so far ive been converting the logic level which has worked all good (for logic).
However I have found a requirement where I need to pulse a line, but it appears the target is taking more current than I can output. So in this instance a direct connection will result (via inspection on scope) with a voltage drop of nearly 2v when I try to send the signal with the target powered ON. it requires logic but behaves more like an analog line.
I have tried various things such as PNP transistors, P channel MOSFET and even a infineon smart controller. With the transistors i am getting distorted line high/low signals on the rising and falling edges, and the trickiest part is that I need to change the state High/Low within a maximum 40ms time period. So far the infineon smart controller has worked closest to optimum, but the on/off time is around 250ms so I cant use that.
Does anyone know of the best circuit to create this high side switch (fyi it must be high side as the ground connections are shared), requirements:
gate/ control signal can be either 3.3v or 5v
output clean 5v high, 0v low (or very close)
pulsing with clean rising and falling edges (this is the one where I cant seem to sort using FETs / transistors)
-pulse high/low duration of 40ms max
any guidance is much appreciated, ive attempted most references from similar questions online, in those cases people are turning on dc motors or similar, and I would have that solved - but a more accurate and fast high side switch required.
What sort of current does this target require. Would need to know that to comment or suggest a solution.
40msec or 40µsec. 40msec is about twice the rise time of 240VAC mains sine wave (??) supply and in rise time terms about a week. Even 40µsec is pretty slow for a decent square signal.
Sorry please forgive me, im more of a software guy and just starting with this hardware requirement.
Im not sure where the AC ref came from, but this high side switch is intended to just drive just another 5v dc device input. The motive to look down this avenue, in summary, is that the ARM dev board output GPIO which im programming is not able to sufficiently power another input on the DUT (device under test). IE: if the target MCU is powered up, then the direct digital logic line is losing voltage after going high to input. this is not meant to happen or reflected with other tools which im trying to replicate. I would have assumed this input I talk of was purely digital like RESET, GPIO etc, but it appears to not be quite so simple. the input changes the state / mode of the target MCU so there is more going on inside.
Im not sure what current it actually requires (that info is not disclosed to public), but in layman terms I would expect another 40% or more of what the converted ARM GPIO can output. this prompted me to look down for a switching mechanism.
When I mention 40 us timing before, sorry again, ill clarify, that duration is the timing between high-low-high, the rise time (edge) should be as close as possible to a digital logic signal (preferably nanoseconds).
That came from a comparison to the frequency of 50Hz AC mains. The period of which is 20ms.
You mention 40µs and indicate this is the period (frequency 25kHz). Vastly different to the rise time which could well be ns.
It should be disclosed and probably is. The other way is to power a DUT with 5V and measure it. I am assuming you wish to power a DUT off and on for testing purposes. The best measurement method is non invasive or hall effect devices but if you have to use a DMM DO NOT use the mA ranges. The internal meter resistance will be too high. Use the 10A range, the resolution will be good enough.
Not good enough, you are only guessing. Be sure of what you need and avoid problems and disappointment.
Come up with some numbers and we may be able to help.
Sorry I cant be more specific, the MCU is proprietary and they never release certain specifications regarding their flash programming requirements. The chip is automotive Renesas, and for some devices which are tied up with OEM its not even possible to obtain a data sheet. It would like asking Apple corp to release schematics. I have found some info regarding the programming protocol, however other info (eg debugging protocol) is purposely withheld from the public. I have even registered with renesas as a developer and asked them directly.
Thanks for trying to help anyhow, even though I supply vague questions.
I think now I may have found the solution, not to implement any type of switch afterall, there are always delays whether turn on time or rise time, which in my case which will cause issues (trying to replicate logic).
I think implementing a ‘buffer logic gate’ is the way to go. They are often used in this scenario:
Buffers — A buffer is a non-inverting amplifier that has an output drive capacity that is far greater than its input drive requirement, i.e., it has a high fan-out and gives a logic 1 output for a logic 1 input, etc.
This will allow me to power the 5v directly to the target line, and avoid any voltage or current drop from using the ARM and voltage shift.
If you can receive images in the emails via this core online tech support interface, here is the image of the affected signal below:
You can see when the MCU is reset (yellow), voltage is fine (5v) , but after releasing reset, the input signal comes down (to around 3.5v).
Nice pics but don’t mean a lot without a graticule or oscilloscope settings. I assume the green trace is the one dropping and the pulse on the left represents 5V and I can see that it drops to about 3.5V. I assume that is your problem.
Still don’t know what the current requirement is on that connection. As I suggested if it is not published measure it. You really need a good idea to establish that your 5V source has enough capability as well as any switching device you may use.
Your idea of a buffer amp may be OK if your current requirement is not too great. I think these usually come in multi device packages, 2 or 4, and can be connected in parallel for a bit more grunt. The package may have a maximum total which may be less than one device multiplied by 4.
It would be a bit of a waste of components but for a bit more oomph you could consider on of those H bridge motor drivers. Connect your switching to one input and your DUT to the relevant output and ground. You would only be using one of the high side switches and the rest of the switches would be redundant but any problems with high side switching would be taken care of within the IC. Just a thought.
Don’t use the Arduino 5V output as you will probably get the same result as now. Use a 5V supply that will satisfy the requirements of the DUT which you have not established yet.
Thanks again. Yes sorry I didn’t want to insert a large image on the email.
You are spot on, the yellow line is the reset. When the device is under reset, the green analog line which is the flash programming mode pin is fine at 5v. but after releasing reset (when the target MCU boots) then the voltage goes to around 3.5. The down spike in the image are the pulses I mention (obviously a low res measurement/image).
I just purchased a bunch of various brand, spec, single/multi - channel buffer logic gates from mouser. Hopefully this solves the issue, I don’t want to go to hard on the design since this is for an internal use project only – we are not designing hardware for consumer sale or use or anything like that. I have some other ECUs here with sibling devices from the same MCU family, where I can work this signal correctly and as expected. Its appears (believe it or not) that this additional current requirement is reflected in whether the device is QFP144 or 176. But again, this is meant to be a logic signal, Renesas will never elaborate to the community the actual physical attributes or the actual mechanical operation of the mode pin.
BTW, this pin is floating right now, its usually on a pull down resistor and other programmers can still handle that, so I expect not too much more current is required.
If this doesn’t solve the issue, how would you be able to measure the required current? I have got a programmer which can pull or push the line successfully and correctly…
This would depend on the timing. How long is the 5V there for. Your oscilloscope pics don’t show that. A DMM will take time to settle so if using this (on 10A scale) you will have to send 5V on the line with DMM in series for long enough to get a reading. This could be done with any 5V source of sufficient capability. Failing this if you have to send pulses put a low value resistor in series with the signal and use the oscilloscope to measure the voltage drop across this. You will have remove the power cord earth temporarily. The actual value of the resistor does not matter much as long as you know what it is and is below 1Ω. About 0.5Ω or less should be OK and should not drop too much voltage while you measure.
Don’t forger to replace the earth on the oscilloscope.
Just came across tis high side mosfet switch from CoreElectronics (in another post) that may do your job.
Maybe worth a look. Switching time and repetition rate may be a little slow but you haven’t specified that.
High side switch can be a challenge to get right, a small difference in voltage can cause it operate erratically.
This link talks about high and low side switches. In my experience using two transistors as shown in the works best. It allows for better control of the high side transistor. The driver transistor is off until the input goes +ve. Could be a low voltage as it only needs 0.6V to turn on.
FYI today I got this issue solved, I used a buffer gate / line driver. Effectively this is two transistors anyhow, and it allows the logic signal to have its own vdd rather than rely on the current output from the master mcu (in this case the ARM on Teensy4.1). I ordered various types from Mouser, and one of the simplest works best in this case. Here is the one I used and tested successfully:
Maybe you guys could get something like this, it would be nice to see a row of them on a little PCB which I certainly would have purchased if you had them. They are also good practice for circuit protection.
Note that there is an output enable input required as well as the logic IN. however that adds even more potential for developers or hobbyists to implement. Im going to run my own vdd circuit using one of these too, so from now on only purely digital inputs/outputs are directed directly to the ARM.
Good to see you got it sorted and even better that you let us all know the outcome.
Your current requirements (which you never advised) must have turned out to be quite modest as the device you linked is specified max source/sink as ±50mA. There are probably packages out there with multiple devices in them if we looked hard enough but quite often the total maximum output current is something less than the individual current multiplied by the number of devices but if multiple units are required this can be allowed for.
What you have selected should work well.
And you can get our latest projects and tips straight away by following us on: