Home Your Account FAQ Topics Content Submit News Top 10
  Login/Create an Account    

Menu

Amiga600_FPGA.gif Amiga FPGA Accelerator
· Introduction
· Pictures
· Voltage Level Translation
· Sharing ideas
· Who helped?
· Apollo-team chat

Amiga600_FPGA.gif Vampire 600
tree-L2.gif About
tree-T.gif Schematics
tree-T.gif Core
tree-T.gif Soldering
tree-L.gif Soldering V2
· Terms of service
· Ordering
· Core upload
· Vampire 600 map
· All News

Amiga600_FPGA.gif Vampire 500
· All News

Amiga600_FPGA.gif Vampire 1200
· All News

Amiga_Ball.gif Amiga Talk Talk
· Amiga 1200 Coldfire
· Talk regarding A608
· Amiga PPC

icon_members.gif Amiga Repair
· Amiga 600 restoration
· Mouse repair
· Cold solder joint
· Amiga 600 repair
· Keyboard repair

favoritos.gif Amiga Tutorials
· Install WB from WinUAE
· Play HAM Video

som_themes.gif Amiga Testings
· Amiga 600 plays video
icon_community.gif Forum
nuke.gif Downloads

som_downloads.gif Web links
· Apollo-accelerators
· Register your Vampire cardNew content !
· Apollo-core

Info

Only registered users can shout. Please login or create an account.

Info: Voltage Level Translation
Posted on Saturday, March 17 2012 @ 16:59:26 CDT by majsta

Main problem in development of Amiga FPGA Accelerator was solving Voltage Level Translation. As we know MC68000 operates at 5V CMOS and most of the signals are in that range of voltage levels. Problem occurs when you want to use or replace that signals with newer devices like FPGA ones who are unable to use anything higher than 3.3V or in LVCMOS range. In this case I decided to use Altera Cyclone II device for MC68000 emulation but like I said it is very hard to find 5V tolerant FPGA device so only solution was Voltage Level Translation between MC68000 and Altera Cyclone device. On the market we can find lot of devices for Voltage Level Translation like QuickSwitch devices, Level Shifters, Transceivers, Buffers/Drivers or Voltage Level Translators with or without Auto Direction Sensing, but not all of them are suitable for this job because we don't have just unidirectional signals here, we must provide Voltage Level translation for some bidirectional signals also. Simplest solution is to use Schottky diodes with series of resistors but I decided to use different approach because I wanted to simplify design as much is possible. There are number of parameters that we need to consider and for better understanding check two pictures below.



Using Schottky diodes

After some investigation I found that some Dev boards have some kind of protection for 5V signals. This protection is needed to keep FPGA device protected for high voltages. For example Altera DE2 board have over voltage protection using Schottky diodes with series of resistors. Unlike the DE1 (which has no protection), the DE2/DE2_70/DE2_115 boards have 47ohm series resistors on all the GPIO lines, plus a BAT54 diode pair clamping to +3.3 and GND respectively on the FPGA side of the resistor. So it is perfectly safe to apply 5V signals on the GPIO pins on these boards even during configuration.



Further reading:

Altera:
Altera DE2 Schematics

Datasheets:

Diodes Incorporated: BAT54

QuickSwitch devices

Using QuickSwitch devices provided by Pericom or IDT can solve lot of problems. They are NMOS transistors based. You just need to add diode at the VCC to drop down Voltage Level by 0.8V, for this often is used 1N4148 diode.

All of this should work fine with unidirectional signals, but in situation where we need to solve problems with bidirectional signals in CMOS to LVCMOS translation and vice verse it could drive to number of problems, because sometimes 5V CMOS device in some cases can't detect LVCMOS signals. Those problems can be solved by using external pull-up resistor with a typical resistor value of 1K or 10K connected to a higher power source. This technique works but it can drive to increasing power dissipation on the circuit. Also this technique is problematic with high speed signals. You need to remember that this need to be done with every bidirectional signal and that could drive to design complications because we increase number of components on the board.

Using this devices you don't need to think which way are signals going as the QuickSwitch devices don't have direction control pin. For this operations you can use basic PI3C3384 from Pericom or equivalent from IDT QS3384 if you don't have large number of signals needed for Voltage Level Translation, but if you have it is better to use something like PI5C34X245 32 bit or 16 bit QS32X245 device.

Further reading:

Pericom:
Level Shifters - Why we can't shift away
Voltage Translation using PI5Cxx Switches

IDT:
QuickSwitch basics
Bus Switches

Datasheets:

Pericom: PI3C3384, PI5C3384, PI5C34X245

IDT: QS3384, QS32X245

NXP: 1N4148

Level Shifters, Transceivers, Buffers/Drivers, Voltage Level Translators with or without Auto Direction Sensing

There are lot of devices that can be used for Voltage Level Translation produced by TI, NXP, Maxim and others. First you need to select correct Logic Family that is suitable for your design for example LVC, LVT, and each family represent some Logic Type. For selecting right Logic family you need to check electrical characteristics of the devices like VIH, VIL, VOH, VOL. In my case using MC68000 and Altera Cyclone II device I had to provide minimum and maximum ratings to establish safe connection with those two components.

Many of those devices have direction control pins, even if they are dual voltage devices or 5V tolerant devices you need to pay attention to those pins because with those pins you will decide which side of logic device is input side and which one is output. Also you may pay your attention to "244" or "245" number in component name as "244" stands for unidirectional device and "245" for bidirectional but that doesn't mean that they can change direction of input and output signals on their own, devices don't have Auto Direction Sensing and that could be a large problem if you need truly bidirectional device . In my situation I needed cheap devices but in the same time I needed device that can change direction depending on signals so when A side needed to become input that B side become output and when B side needed to become input A side automatically goes to output state. To accomplish this you need to program direction control and output enable pins on selected Logic device, and I solve that just driving those pins to Cyclone II I/O pins and then programmed them. So now I have truly bidirectional Level Shifters and his A and B side, or input and output one depends from Cyclone.

There are few devices on the market like TXB0108 from TI who have Auto Direction Sensing so if you don't know what to do and don't understand any of this just use them and you will be fine in most cases but remember those devices have dual voltage VCCs and this could drive to PCB complications as you need to drive two power sources to the device. For better understanding Logic Families and Voltage Level Translation you need to read lot of documents. Some of them you can find here in Further reading section.

Further reading:

TI - Texas instruments:
Voltage Translation, Switching Standards, and Bus Contention
Translation Guide
Benefits and Issues on Logic Migration
Digital Logic - Pocket Data Book

NXP:
Voltage Translators/Level Shifters

Analog Devices:
Low Voltage Logic Interfacing

Others:
Logic Family Signal Integrity Comparisons by Roy Leventhal

Datasheets:

Texas Instruments: TXB0108

NXP: 74ALVT162245


Sponsored links

Related Links
· More about Amiga FPGA accelerator
· News by majsta


Most read story about Amiga FPGA accelerator:
HDMI test 1


Article Rating
Average Score: 2
Votes: 1


Please take a second and vote for this article:

Excellent
Very Good
Good
Regular
Bad



Options

 Printer Friendly Page  Printer Friendly Page

 Send to a Friend  Send to a Friend


Sorry, Comments are not available for this article.
Web site powered by PHP-Nuke

All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest
You can syndicate our news using the file backend.php or ultramode.txt
Web site engine's code is Copyright © 2003 by PHP-Nuke. All Rights Reserved. PHP-Nuke is Free Software released under the GNU/GPL license.
Page Generation: 0.161 Seconds