Pulled down, until VCCa comes up - Is this circuit dumb? - Page 1
Forum section: electronics / beginners

author: tifkat
author_rank: Regular Contributor
timestamp: March 19, 2021, 11:57:49 pm
content: Continuing with my previous topic,level shifting using the Texas Instruments TXS0108E, the datasheet discusses the use of the OE pin.It says OE is active high, and it should be connected to VCCa, either by some switching mechanism, or permanently tied. It also says that OE should be held low until VCCa has come up, to allow a proper power on sequence.TXS0108E DatasheetWould it be dumb to wire OE to VCCa AND have a pull-down resistor (of significant value) to handle the "pull-down until high" requirement. I've attached a portion of my schematic. I've chosen 47k, incase it's hard to read in the screenshot.

author: MikeK
author_rank: Super Contributor
timestamp: March 20, 2021, 12:24:29 am
content: Quote from: tifkat on March 19, 2021, 11:57:49 pmNo it doesn't. the datasheet you linked to says that it should be tied to ground through a pulldown resistor. It says that more than once. Why don't you just do that? It's an enable pin, just like the SPI bus has. Your controller should be controlling it. Why are you trying to do otherwise?

author: tifkat
author_rank: Regular Contributor
timestamp: March 20, 2021, 12:47:00 am
content: I want it always enabled. I don't want to control it. This is going to be on a level shifting LCD shield, as linked to.I have seen a lot of break out boards using this chip just tied to Vcca. I could do that, but the datasheet says OE should be held low until Vcca comes up.I ask again, is my circuit dumb? Like electrically, is it bad? Would it achieve this low-until-high situation? Is 47k ohm enough? I know this probably results in a constant trickle of power usage and thus is probably not friendly to battery powered devices, but I'm not aiming at battery powered devices.I'm more asking about electrical theory here, not whether my 'circuit operation' is ideal. Yeah, it is an OE pin. An OE pin I don't want to use, but I must wire it to make the IC operational. I want to make sure I bring it up correctly, and keep it enabled, forever.

author: tifkat
author_rank: Regular Contributor
timestamp: March 20, 2021, 01:01:39 am
content: MikeK, you are correct it doesn't say that. I must be confusing some other datasheet I read for another part here. This is what THIS datasheet does say:Page 1 - When the output-enable(OE)input is low, all outputs are placed in the high-impedance (Hi-Z) state.- To ensure the Hi-Z state during power-up or power-down periods, tie OE to GND through a pull-down resistor.Page 18 - The TXS0108E device has two functional modes, enabled and disabled. To disable the device set the OE pin input low, which places all I/Os in a high impedance state. Setting the OE pin input high enables the device.Page 21 - The output-enable(OE)input circuit is designed so that it is supplied by VCCAEdit: Found it. It's the dang regulator I was looking at:HT57xx Datasheetpp18

author: fourfathom
author_rank: Super Contributor
timestamp: March 20, 2021, 01:23:10 am
content: Quote from: tifkat on March 20, 2021, 12:47:00 amYou *did* ask, so yes, your circuit is dumb. That R3 resistor is connected between VCCA and ground. Pin 10 (OE?) is connected to VCCA. R3 does nothing but consume power, and you might as well eliminate it.Unless VCCA is truly floating before power is applied.

author: MikeK
author_rank: Super Contributor
timestamp: March 20, 2021, 01:49:56 am
content: I guess you could use an RC network. R from Vcc to pin, C from pin to ground.But always enabling the pin creates a set of unknown outputs on startup.

author: tifkat
author_rank: Regular Contributor
timestamp: March 20, 2021, 02:48:48 am
content: Quote from: fourfathom on March 20, 2021, 01:23:10 amVCCA is output from an LDO regulator. 5v comes into the PCB and is the Vin for the LDO. 5v also goes to 5v pin on the Arduino, when then becomes Vin for the regulator there which produces IOREF (for Due at least. I suspect IOREF on the Mega/Mega2560 is tied directly to 5v). I have eliminated R3.

author: WattsThat
author_rank: Frequent Contributor
timestamp: March 20, 2021, 03:19:02 am
content: Pull up the OE pin with a 10K to the VCCa pin. Done.Do you think your bus is stable and active before the power supplies are stable? Ah, right, I didn’t think so.

author: tifkat
author_rank: Regular Contributor
timestamp: March 20, 2021, 03:32:47 am
content: Quote from: WattsThat on March 20, 2021, 03:19:02 amHere is where my understanding starts to show its limits. Bear with me please!This would have the desired effect because voltage on OE would rise slower through the resistor, than the Vccapin. Is that correct?And adding on a small cap from OE to GND would lengthen that time, as the cap would soak up (some of) the charge until is was 'full' and then OE would rise to full Vcca.

author: ledtester
author_rank: Super Contributor
timestamp: March 20, 2021, 03:46:46 am
content: QuoteIt might help if you gave us the entire application circuit as it always helps to talk about concrete circuits as opposed to theoretical situations.There are "supervisory" ICs which are used to keep a microcontroller/processor in reset until the power supply has stabilized which may be applicable here. Just search for keywords like supervisory and mcu.

author: WattsThat
author_rank: Frequent Contributor
timestamp: March 20, 2021, 04:03:42 am
content: Sorry for adding confusion. Slower isn’t needed, wanted or necessary. No cap, no resistor.If you’re never going to assert the OE pin, just tie it to VCCa. No need for the resistor.The resister was just future proofing, when you find out you actually need to pull the pin low under program control. The 10K would just be a weak pull-up that would ensure the outputs are low-z and still leave OE assertable to drive the pins hi-z.

author: tifkat
author_rank: Regular Contributor
timestamp: March 21, 2021, 08:03:22 am
content: Quote from: ledtester on March 20, 2021, 03:46:46 amI don't have one. Currently trying to create one.I'll post what I have so far. This is more or less a Due shield for an LCD I purchase which was wired for an STM dev board. D'oh. It also has some extras on it, because this is going to be a way of getting I/O to/from the board (Arduino Due) from the rest of the project.This was going to be aimed at a Due/Mega2560 shield, but I have learned enough that it's not going to work the way I wanted to. Due has SPI on different pins to the Mega/Mega2560.J10 is my header for the ribbon cable running to the other parts of the project, and is the source of 5v for the LCD, the Due and the board itself. I have 27 signal lines I needed to level shift from potentially 5v/3.3v to 3.0v. I may just drop the whole level shifting thing and make this a Due specific board.J1-J8 are the Arduino Header pins, J9 is my LCD connectorThe 2x USB ports is to pass USB from the Due programming port to the other end of this shield board, so I can run USB out to the case for external access.

author: WattsThat
author_rank: Frequent Contributor
timestamp: March 21, 2021, 11:35:46 pm
content: Why? As in why do you think you need to design something?A shield for an LCD. Due and Mega2560 compatibility. One is 3V3 and the other is 5V. So the SPI pins are in different places. That’s not exactly a show stopper. Have you ever seen the make-a-jumper with a solder bridge on pc board pad designs? Or those little, neat header pins on 0.1 inch centers that you plug shorting jumpers on to?I don’t know, maybe you’re completely new to electronics. But, I do know that what you’re trying to design has already been done. Countless times. For next to nothing in cost. If you don’t want to buy somebody else’s product, at least study the schematic and pictures and learn from it. After all, why re-invent the wheel? That’s quite pointless. Of course if this is being done as a pure learning experience and you want to learn KiCad or whatever, then good on ‘ya, carry on.Here’s a shield that works with the Due, the Mega2560 and just about anything else Arduino that has the Uno form factor, interfaces with the dead common ILI9341 controller on the other end of a 40 pin ribbon and costs a whopping $4.23 US plus shipping. It just leaves me saying “why?” when I seeing people struggling to design something that already exists.There are other designs, for other display controllers on this website:https://www.buydisplay.com/arduino-shield-for-tft-lcd-with-ili9341-controller-and-arduino-due-mega-uno

author: tifkat
author_rank: Regular Contributor
timestamp: April 04, 2021, 12:00:41 pm
content: Quote from: WattsThat on March 21, 2021, 11:35:46 pmActually, while the Mega does have SPI pins on digital pins 50 something, those pins are also on the ICSP header. That header is in the same location on the Due. I feel that the ICSP and the D5x pins on the Mega are actually duplicate pins, while the Due doesn't run SPI to those D5x pins, because it has enough other IO lines to fill those spots.QuotePretty much new to it all. Apart from making a variable DC PSU in yr 12 physics (oh so long ago!) and being generally technical. I have two reasons for why:1) I just gotta know how to do it! Use IOREF as a flag for which power level to supply in any particular circuit. This is a pretty straight forward circuit, and I think makes it simple to learn.2) There are heaps of pre-existing shields out there, I agree. I have poured over many circuits to see how it's done. None of them use IOREF to make that decision. Of course, this can be a big, neon-red, flashing sign that reads "there's no need!". Why is there no need? Probably because you use level shifters which are 5v tolerant, and the 5v MCU boards see 3.3 as high, so it just works. But I wanna do it! :-DBut, see below, and you will understand the real, unavoidable reason WHY.QuoteI have seen and looked at the schematic for this one and many others. They don't use IOREF at all.The second failing point of this shield is: it's made for "Arduino LCD Modules" which is a dumb idea, but it's one that exists. By Arduino LCD modules, I mean LCD modules which have a common pinout with every other LCD module aimed at the Arduino market. These pretty much have 32-pin or 40-pin headers and always have the data and command/signal pins in exactly the same place... which you would kind of expect, since they're interested in selling their ware to everyone with an Arduino.On the other hand, I purchase my LCD module based on the capabilities of the display, not what pinout it had... because I was naive about these differences. The board I bought has a 34-pin header, and is marketed to the STM32 crowd, following the common pinout used on the common STM32 boards, possibly even set my ST themselves for their evaluation kits.I did buy an LCD shield for Arduino Due:CTE v1.04 for Arduino Due. It's a really nice shield. Unfortunately, pointless for this particular LCD module.I thought I had read somewhere that the 34-pin modules, could plug into a 32-pin shield and depending on whether you want to use SPI or I2C you simply have one end or the other past the end of the shield header. So I bought this shield, as it had both 32-pin and 40-pin, and I could use other LCD modules with it in the future. Stupid me.I know of ONE TFT LCD shield made for Arduino Mega 2560 and known to work with this LCD module. It's called "TFT LCD Mega Shield v3.0".No one sells them that I can find. Everyone I can find are selling the v2.2 board which is yet another 40-pin shield. There are pages out there listing the v3.0 shield, but they say the product is discontinued. I've nagged about 45 sellers on AliExpress to try to find it. They're no help. Almost invariably they think the v2.2 is the same board.And Oh My Gosh! Trying to find an image for you... I just found this:Aus Electronics Direct - LCD and shield kit.I wonder if they sell the shield separately?

author: tooki
author_rank: Super Contributor
timestamp: April 04, 2021, 05:28:00 pm
content: Quote from: tifkat on April 04, 2021, 12:00:41 pmThat is correct. You can verify this on theofficial pinout diagrams, where you can see that the SPI signals on the ICSP header and D50-D52 are labeled with the same port numbers (PB1-PB3), which are the actual names of the MCU pins and their software registers. That means they’re conclusively connected to the same MCU pins.Quote from: tifkat on April 04, 2021, 12:00:41 pmI’m pretty sure you’re mistaken. The TFT modules it’s made for have options that make no sense with Arduino. (Like provisions for a 16-bit parallel bus, which only a Mega/Due can even drive.) It’s much more likely that they’re totally generic designs, but you’re used to seeing “Arduino” in the eBay/Ali listings because the Chinese vendors like to put “Arduino” in the title of any electronic component they want to market to DIYers, completely independent of whether it’s actually designed specifically for Arduino or not. (Or even, indeed, when outright incompatible.) Bear in mind that BuyDisplay’s TFT modules, out of the box, do not even work with 5V Arduinos, so it’sexceedinglyunlikely they were designed with Arduino in mind. (Nor does BuyDisplay sell them as such. The Arduino TFT category is, other than a handful of very small displays, bundles of a standard TFT module plus this shield board, which performs the necessary level shifting as well fitting into the Arduino footprint.)Also, the pinouts of TFT modulesaren’tstandardized. There are a number of common pinouts, but you absolutely have to check before wiring them up. I just looked at a few 3.2” TFTs with the same ILI9341 driver, and came across various different, incompatible pinouts. And other than the Arduino shields, they require 3.3V logic, so aren’t readily compatible with most Arduinos.Theredoexist TFT modules specifically for Arduino: the TFT shield displays.

author: tifkat
author_rank: Regular Contributor
timestamp: April 09, 2021, 07:47:47 pm
content: Righto dude.