Doping Semiconductors at Home

In my last video, I built a tube furnace. That was one of the required tools that I needed to produce semiconductor devices. The next important process that we need to be able to complete is doping silicon. This will allow us to create both P and N junctions, which as you may know are the basis for all semiconductor devices.

Let me give you a quick overview in case you aren’t completely familiar with P and N junctions. The simplest semiconductor device, a diode, is made of just an N and a P junction next to each other. The N junction has a surplus of electrons because it has a phosphorus impurity. Phosphorus has an additional electron compared to silicon so that is where the surplus comes from. The P junction has a lack of electrons. This is because P-type silicon is doped with Boron which has one fewer electron than silicon.

At the connecting point between the P and N junction, the extra electrons from the N side will still flowing to balance out the lack of electrons in the P side. Eventually, enough will flow and a sort of barrier will be created, stopping further electron flow. If you apply a reverse voltage to the diode, this barrier only gets stronger and no current will flow. If you apply a forward voltage though, the barrier breaks down and current flow through. This creates a one way device, our diode. This explanation was a bit simplified, but hopefully it helps you understand why we are doing this doping process.

The first thing that I needed to do was actually get my hands on some wafers to dope. I was able to buy a set of these 100mm silicon wafers on ebay. Luckily for us, they already came doped p-type, which means I only need to make an N-type dopant to start making devices. You may be confused since the wafer is already P-type, so how could we make it N-type. Well, if we just put more phosphorus in than boron, we can change the type of doping.

Now let’s talk about doping processes. There are several different methods. The most popular are diffusion and ion implantation. Of the two, diffusion is easier. You are probably familiar with diffusion already, just imagine salt diffusing into water. The same process occurs in silicon at high temperatures. Our 1000C furnace is more than capable of diffusing phosphorus into silicon in a process called thermal diffusion.

The next step is deciding how we can evenly diffuse phosphorus into our silicon. A more popular step is to use a gas containing phosphorus and filling the tube with it. This works, but these gases are also known to be extremely dangerous. Another popular method is using something called spin-on-glass. Spin-on-glass is made with a specific chemistry where a liquid is placed onto a wafer. It is then spun at a high rpm. This will fling excess material off of the water and leave a uniform thin layer on top.

After baking, this layer becomes a layer of solid glass, hence the name spin on glass. If you embed some dopant into this material, you will have glass with the dopant diffused throughout. The dopant inside changes the name to spin-on-dopant. After the layer has become glass with the dopant inside, you can then thermally diffuse the dopant from the glass into the silicon beneath. The top layer of glass can then be removed afterwards, leaving our bare doped silicon.

So, to make this a reality we need two things: a spin coater and spin on dopant. Let’s start with the spin coater. If you want something quick and easy, just go ahead and use a PC fan with tape. I wanted a more fleshed out solution though.

The basis of this spin coater is a BLDC motor. These are very easy to come by on any online store and there are a multitude of options. Likewise, these motors have controllers that are easily purchased, called ESCs. I picked a BLDC and an ESC for this project and designed around them. You can control the output speed of the motor by adjusting a specific type of PWM on the signal pin of the ESC.

Basically, the ESC requires that you have a signal that oscillates at 50Hz. The duty cycle does not cover the entire period though. Instead, the first millisecond of the signal is always high. The next millisecond contains your duty cycle. The final 18 milliseconds are always low.

To drive this specific waveform I simply used a microcontroller, the ATmega8A. In fact, much of the circuitry is the same as the tube furnace from last time. In addition to the microcontroller we have a rotary encoder to allow for user control. There is a 16x2 character LCD to allow for output and an FTDI chip to allow for USB to UART. The ESC is connected through its three pin header. I think it’s also worth noting that the ESC will supply 5V power, so keep that in mind if you are designing a circuit of your own.

One interesting addition to the circuit is this IR tachometer. Basically it’s an IR LED that always shines and an IR photodiode. I will later attach some reflective tape to the motor. When the motor rotates, it will briefly activate the photodiode. The analog comparator on the microcontroller will detect this and calculate the current rotational speed of the motor.

The PCB was designed mainly with the mechanical requirements of the motor in mind, hence the large size. To get it manufactured, I used the services of the sponsor of this video: JLCPCB. JLCPCB is an easy way to get fast and afforable PCBs for any electronics project. After designing your PCB, simply drag and drop your gerber files into their website to get a quote. From here you are able to customize your order as much as you need, including layers, colors, stencils, and more. After ordering my PCB, I was satisfied with the quality and reliability of it, both mechanically and electrically. Aside from PCB manufacturing, JLCPCB also offers PCB assembly, SMT stencils, 3D printing, CNC machining and mechatronic parts. Currently, you can visit JLCPCB and recieve a $30 coupon for your 6-layer PCBs, which means you can get a 6 layer PCB starting at just $5. Visit the link in the description to get a quote from JLCPCB.

To solder the PCB, I simply used a stencil in combination with solder paste for all of the surface mount components. The components were then placed on top and then soldered on top of a hot plate. Testing was done incrementally. The LCD was working along with the UART. The microcontroller was able to output a 50Hz signal. The code was tweaked a bit to allow for the duty cycle to affect only the specific 1ms window.

This code was a bit tricky to write since it is important to maintain a clean signal for the motor. However, the tachometer which I will show in a minute was also taking up a few CPU cycles. In the end, I settled on using timer2 interrupts to setup the timing for the motor. When there was a compare match the timer would cause an interrupt and my code would generate the correct output signal at that time.

Next up is the tachometer. Code wise it is rather simple since it just involves the analog comparator. Basically, I simply set a constant voltage with a voltage divider. This voltage sets the threshold of the tachometer so we can detect when the side with the reflective tape has come around and therefore have reached a new rotation. The length of time for the tachometer is measured with timer1. A bit of math is done to convert the timer1 value to the equivalent value in RPM. This setup could allow for closed loop operation, but I have yet to do that since I am still working on the design. It is suitable for making sure that we have reached the correct RPM value.

There is a bit more construction involved for the spin coater. First, the motor comes with this mounting assembly which I mirrored on my PCB. The motor has some reflective tape applied as mentioned earlier. The ESC is held in place with some standoffs. In each of the four corners I placed some standoffs. These serve as the support for this piece of wood which I cut to size. In the middle of the board, I used a hole saw to allow a gap for the motor shaft to fit through. It’s a bit off center but that’s ok. On top of the board, I placed a plastic bucket.

To mount the bucket, I drilled another large hole with the hole saw and a few small mounting holes as well. The purpose of the bucket and board are to protect, well, everything from the splatter that will come off of the spinning wafer. I also had these aluminum pieces machined to act as a sort of mounting plate for the wafer. They fit well, but they also cause some rattling issues which I have yet to sort out. Anyway, as a final test, I probed the tachometer with my oscilloscope to see that the measured RPM value is correct. It is the bottom value in case you are confused, the code is not yet finalized. This spin coater isn’t the greatest, but I am still working on it. I plan on adding vacuum capability at some point and also hopefully removing some of the rattling.

Now we can turn our attention to the spin-on-dopant. You can buy this stuff, but is extremely expensive. Luckily, it is quite possible to make your own. I was able to find this paper titled “Spin-On Glass Materials and Applications in Advanced IC Technologies”. I will host a link to it in the description in case you’d like to have a read yourself. In chapter two, the authors describe a recipe and process for creating a spin-on dopant for phosphorus, which is exactly what we need.

Let me describe the basic reaction that we will undergo. Basically, we need two different materials, water and tetraethyl-orthosilicate or TEOS for short. The chemical reaction of these two creates an end product containing Silicon dioxide. As you may or may not know, silicon dioxide is just glass. TEOS can be purchased from places like ebay in case you are wondering. It’s also not too toxic, so if you wear gloves you should be fine. Just don’t drink it or anything. Going forward, just consult the safety datasheet of any materials we will use.

Anyway, there is more to our dopant than just TEOS and water, especially considering that the two don’t mix. To make them mix we add some sort of solvent, in this case it will be isopropanol. Once they come together, the reaction has already started, but it will happen really slowly. To speed it up, some sort of acid is added. For plain undoped spin-on-glass it might be hydrochloric acid. However, since we are making doped glass, we can use phosphoric acid. This acid has the dual purpose of providing the acidic catalyst and also the dopant to the mixture. Finally, acetone is added at the end to improve shelf life. The final mixture will also be refrigerated to keep it fresh for as long as possible.

The paper also gives us a few recipes that we can follow for exact volumes for each material. I used a 5N recipe, similar to the ones found in section 2.2.4.2. I’m not a chemist so please forgive me if the volumes aren’t completely correct, but here are my volumes. 10mL TEOS, 23.5mL isopropanol, 3.55mL water, 0.45mL phosphoric acid at 85% concentration, and 37.5mL acetone.

The paper also describes the reaction process. We will need to perform a reflux reaction. A reflux is basically a reaction where we heat the solution to boiling. At this point there will be vapors, however the reflux has a water-cooled condenser meaning that the vapors will return to liquid form and come back to the main body of the reaction, thus allowing us to boil the mixture without losing anything to vapors.

I was able to water-cool the glassware by using this water pump and submergining it into a large tub of water. Anyway, let’s go over the exact steps. Pour your TEOS into a round bottom flask and start stirring it. The stirring comes from the magnetic heating mantle beneath. Then add 1/2 of the isopropanol to the TEOS. In a second beaker, add your acid, water, and the remaining isopropanol. Combine them both into the round bottom flask. After letting them stir for a bit, begin heating.

Let the reflux operate for an hour at 82C. You shouldn’t worry about the temperature too much since 82C is the boiling point of isopropanol, and the temperature can’t rise above that as long as the isopropanol exists, which is forever considering that this is a reflux. After and hour has passed, remove the heat source and let it cool to room temperature. Pour your acetone into the mixture to complete the process. You may now either go ahead and use your dopant or put it into a fridge to prevent it from turning into glass. If you put it into the fridge, make sure to let it heat up to room temperature when you do use it at a later point.

Let’s now turn our attention to the wafer itself. If you have large wafers like me, you should cleave them up into smaller pieces. You can do this with a scribe, simply press down at one of the edges and the wafer should break down in a straight line. I broke it up into several pieces which will be useful for testing later.

Pick a piece and begin the cleaning process. You will need six mini stations for the cleaning process. You will need HF, water, water, acetone, isopropanol, and water. All water should be distilled or deionized and you can get HF from whink rust remover. You may be afraid of HF, so here is what I will say about it. Make sure to store it in a plastic container since it will etch anything made of glass. Make sure to wear gloves when working with it. If you get a spill, make sure to rinse your skin with water. You might buy some of that calcium gluconate gel if you’d like as well.

Either way, here is how I processed my wafer. I first placed it into the HF for a couple of minutes to remove any of the native oxide layer. It was followed by two water baths to remove any remaining HF on the surface. Make sure to use plastic tweezers in the HF. Next it was followed by acetone for 10 minutes, isopropanol to remove the acetone, and water as a final rinse. Be careful with the type of plastic your tweezers are since they might dissolve a bit in the acetone. Finally, do a quick pass through the HF and double water dips. Your wafer should be hydrophobic at this point, meaning the water doesn’t stick and is instead collecting as tiny little droplets on the surface. A hydrophilic surface would be coated in water.

Now let’s apply our dopant. First place and secure your wafer onto your spin coater. I used a whole bunch of tape for this. Drop a few drops onto the wafer and start spinning. I did a 3000rpm spin for 30 seconds. This process is actually really interesting since you will see the colors change on the wafer as it spins. Immediately after spinning, put it onto a hot plate that had been preheated to 150C for 30 minutes.

After that we can observe our wafer. As you can see, there is a bunch of thin film interference across the surface, hence the different colors. Mine came out a bit uneven, and I have a few ideas as to why. First, my spin coater was vibrating quite a bit, which could have caused some issues. Second, it might help to do a more professional wafer cleaning with something such as piranha etch or the RCA cleans. There might be something else that would help making everything more even, but for now let’s continue on to the next step.

Put the wafers into the furnace at 1000C for 1 hour. I was originally using my first furnace, but I kept having problems with the wires coming loose and disconnecting. I just decided to make version two of the furnace to solve all of these problems. First, I designed some sheet metal parts in CAD and sent them off to be cut and bent. These are made of stainless steel, so I no longer have to worry about heating galvanized steel and the furnace is also more sturdy. Second, I took a suggestion from the comment section of the last video and used one of these ceramic terminal blocks. They are perfect for securing the wire in place. The kanthal wire was tripled on the connecting ends to lower the resistance and prevent too much heating on the terminal block.

Everything else was more or less the same as the first furnace. The glass rods are still held in place by steel squares and the inner tube is easily removable. There is room for double the insulation as well. However, since getting the sheet metal was a fair bit more expensive, I opted to skip the outer shell. This was a bit of a mistake since there was a lot more heat loss. If you can I really recommend keeping the outer shell with an air gap since it helps a lot with efficiency.

Either way, the furnace is far more reliable. I even added a couple of these ceramic tube plugs that I found on aliexpress to make the inside of the tube have a more even temperature. After leaving the silicon in the furnace for an hour I took it out and let it cool for a while. After it was cool, I brought it over to the HF and removed the glass layer. The HF was followed by two water dips as well. Disappointingly, the wafer was not hydrophobic after this step and had water all across it. There was also a bunch of this film that no amount of HF could remove it seemed.

I decided that I would solve that issue later and determine whether the doping actually worked. The first thing that I did was a simple resistivity test. After measuring the chip, it came out to be something around 60 ohms. This is actually a big step, since it proves that we did indeed dope the chip, as higher doping amounts lead to lower resistances. For reference, the original p-type wafer comes in the kilohm range. Now let’s verify that we doped it n-type and not p-type.

To do this, we can use the hotprobe test. In this case, our hotprobe will be a soldering iron clipped over to my multimeter. The idea behind this is that the hot probe will generate a bunch of electrons and electron holes. In an n-type wafer the electrons will combine with the holes, but there will still be a bunch of left over electrons. They will drift over to the cold probe, making it more negative. This will give us a positive voltage reading on the meter. The opposite will happen for a p-type wafer, where electron holes will drift over to the cold probe, giving us a negative reading.

I first tested a piece of the original wafer, and got a negative reading as expected, since it is p-type. I then testing one of the doped wafers. To my delight, the voltage was positive, meaning that I did indeed dope the wafer and turned it into an n-type wafer. At this point, all I need to do is improve the process so that we can get a more even layer.

I will spend some time tweaking the process so that we can get a better doping process that is more even and doesn’t leave behind any residues. If you’ve enjoyed this video, please consider subscribing so that you can see my future videos. Also visit my buymeacoffee page, because with your support I can keep making these videos. Anyway thanks for watching. Have a good one!

 Share!