![](templates/subSilver/images/CCSLogo.jpg) |
![CCS C Software and Maintenance Offers](templates/subSilver/images/forumAd6.jpg) |
View previous topic :: View next topic |
Author |
Message |
MCUprogrammer
Joined: 08 Sep 2020 Posts: 221
|
CMOS & TTL |
Posted: Fri Dec 11, 2020 10:53 am |
|
|
Hello everbody
What are TTL and CMOS? What does it do to use it as input or output in processors. How to use. Is there a site where I can make choices such as CMOS or TTL when choosing a processor? Thank you. _________________ Best Regards...
MCUprogrammer
_______________________________
Work Hard |
|
![](templates/subSilver/images/spacer.gif) |
temtronic
Joined: 01 Jul 2010 Posts: 9170 Location: Greensville,Ontario
|
|
Posted: Fri Dec 11, 2020 11:21 am |
|
|
Best to google a 'general electronics' website....
TTL is based on +5 volt device, CMOS ,up to +15 volt.
CMOS only consumes power when switching 0 > 1, 1>0.
TTL device were/are '7400 series', CMOS '4000 series'.
Sadly I have 1/2 basement full of those..all can be replaced by a PIC. |
|
![](templates/subSilver/images/spacer.gif) |
Ttelmah
Joined: 11 Mar 2010 Posts: 19361
|
|
Posted: Fri Dec 11, 2020 11:36 am |
|
|
Transistor Transistor Logic & Complementary Metal Oxide Semiconductor.
These were two 'logic' families that came out a long time ago. TTL was first
(there was DTL before this). It has inputs that accept a signal just over 2v
as logic '1' and a signal below 0.8v as '0'. The outputs use standard
transistors so pull up to about 4.4v.
CMOS came latter as a lower power technology. It's outputs pull closer
to the supply rails, and it's '0' level is below about 1v, and the high above
about 3.3v (When running from 5v).
Now the PIC inputs default to using TTL levels, and the outputs are CMOS
types. However some of the PIC inputs use Schmitt inputs. These were
a special type of input designed to reduce the likelyhood of noise causing
problems on inputs. Insteas of the standard input thresholds, the '0'
level is anything below 0.2*supply (so 1v for a 5v PIC). and the high
level is anthing above 0.8*supply (so 4v for the 5v PIC).
Now problems appear, if (for example) you have a device giving TTL
outputs, and try to connect it to a PIC input with Schmitt inputs. Unless
you are very lucky, you may not see a 'high' when required. In this case
a pull up resistor should solve the problem.
The same then applies with 3.3v peripherals and a 5v PIC. The TTL
compatible inputs will work, but Schmitt ones will not see a high
(output voltage 3.3v max, required input 4v....).
The PIC is a CMOS device, it is the built in 'threshold' levels that have
these levels. Look in the data sheet for Vih for the pin concerned. |
|
![](templates/subSilver/images/spacer.gif) |
MCUprogrammer
Joined: 08 Sep 2020 Posts: 221
|
|
Posted: Fri Dec 11, 2020 1:02 pm |
|
|
So as I understand pins with TTL input:
A little above 2 volts is considered logic '1' and a signal below 0.8 volts as logic '0'.
No processor with CMOS inputs? So there are processors with ST inputs. How to use those with ST inputs. Do they work like CMOS? So when the voltage applied to the input is 4 volts, logic is '1', if it is below 1 volt, logic is '0'. So, when choosing a processor, I should prefer processors with ST input / output. There are millions of integrations. Will I look at all of them one by one? Or is there a way to filter the processor with cmos, ttl, st, etc. input and output?
Also, what should be the reason I prefer these inputs and outputs. This input or output (CMOS, TTL, ST) is chosen according to what. So how should I decide this? _________________ Best Regards...
MCUprogrammer
_______________________________
Work Hard |
|
![](templates/subSilver/images/spacer.gif) |
temtronic
Joined: 01 Jul 2010 Posts: 9170 Location: Greensville,Ontario
|
|
Posted: Fri Dec 11, 2020 2:38 pm |
|
|
Essentially, you're asking about the 'design' aspects of a 'computer' As such only YOU know what peripherals or input/output sources there will be. I can't tell you that 'A' is better than 'B', or that 'C' is the best choice.
I would like to think most (well, a lot) of programmers here got started with TTL based processors and peripherals. Heck, when I began the UART wasn't a chip, let alone something INSIDE of a microprocessor. It was common to have 5 volt power supplies with 20-30 AMPS....I had one that needed 35 amps...
Today CMOS is used for 'low power' products. It seems most peripherals are now '3 volt' devices so choosing a PIC is important. Either you use a 3 volt PIC or use 'logic level translators' between a 5 volt PIC and 3 volt peripherals.
You also have to consider the 'speed' of the data. The faster the signalling, the faster the PIC has to be AND the better designed PCB, layout, component choices, wiring, etc. |
|
![](templates/subSilver/images/spacer.gif) |
Ttelmah
Joined: 11 Mar 2010 Posts: 19361
|
|
Posted: Sat Dec 12, 2020 3:03 am |
|
|
The PIC's inputs are CMOS gates. They just use a slightly lower 'logic 1'
voltage than the default for the original 4000 CMOS series gates. This was
done to ensure compatibility, since a lot of devices offer TTL outputs. When
the first PIC launched, probably something like 90% of the available
peripherals used the TTL levels. If you were designing CMOS circuits and
wanted to connect TTL devices, there were specific gates with lower input
thresholds to allow compatibility. Similar to the PIC inputs.
The levels of each family were purely down to how the circuits were built internally.
No magic 'this is better'.
If you look at the PIC data sheets, _all_ the PIC's have some inputs that
are ST types. Some switch according to what they are doing (so in most
PIC's the logic input to the UART, is Schmitt, even if the same pin uses
TTL levels when not used for the UART).
ST, is 'better' if you have long wires, so a high risk of RF pickup. Otherwise
no advantage, and when interfacing with external devices, possibly these
may have disadvantages. |
|
![](templates/subSilver/images/spacer.gif) |
jaka
Joined: 04 May 2014 Posts: 35 Location: Finland
|
|
Posted: Sat Dec 12, 2020 9:17 am |
|
|
Also, on newer PIC devices you can select the input levels of each pin separately to ST or TTL. CCS has function set_input_level_x() for this. |
|
![](templates/subSilver/images/spacer.gif) |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|