一种用醋酸刻蚀氧化铜的新方法

2023-11-03 14:44

本文主要是介绍一种用醋酸刻蚀氧化铜的新方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

引言

由于乙酸不会氧化铜表面,因此乙酸常用于去除氧化铜而不侵蚀铜膜。乙酸还具有低表面张力,易于从表面移除。因此,不需要去离子(DI)水冲洗来移除残留的乙酸,可以防止水冲洗导致的铜再氧化。

英思特研究了在低温下用乙酸去除氧化铜。乙酸去除各种氧化铜,包括氧化亚铜、氧化铜和氢氧化铜,而不会侵蚀下面的铜膜。这些氧化物的去除通过X射线光电子能谱测定。乙酸可以耐受且不妨碍氧化物的去除,同时产生无氧化物的表面。然而,如果在乙酸处理后进行去离子水漂洗,氢氧化铜表面膜立即形成。在35℃下进行乙酸处理,不用水冲洗,可去除自然氧化铜,并产生无氧化物、无条纹的铜表面。

实验与讨论

我们使用以500rpm旋转的搅拌棒进行搅拌,为了确保重现性,在35℃下进行实验,以建立一个可控的、可重现的温度值。为了在实验中获得薄的氧化铜,铜膜在沉积后立即暴露于洁净室空气中,以形成天然的氧化铜表面。将样品浸入35℃的乙酸5至10分钟取出,用氮气流干燥样品,以从表面置换乙酸。

乙酸处理前,英思特用XPS Cu 2p分析显示了典型的天然氧化铜,如图1所示,具有铜化合物的强烈振动峰特征。乙酸处理5秒后,不含氧化物的铜峰[932.6电子伏(2p3/2)和952.4电子伏(2p1/2)]在Cu 2p光谱中占主导地位,见图2我们没有检测到属于Cu(OH)2和CuO的峰,轻微的Cu2O峰占表面的2%原子不到,这可能是由于环境空气转移到XPS。事实上,通过角度分辨深度分析表明,这种Cu2O存在于表面上,而不是在体铜或铜-二氧化硅界面内。

图1:Cu 2p XPS光谱下原始的天然氧化铜

图2:铜表面在35℃下乙酸处理5s后反应

由于水(含溶解氧)在确定铜表面氧化物的存在和类型方面起着至关重要的作用,因此确定溶解氧的影响和用于表面处理的乙酸中可容许的水浓度是很重要的。这种信息将有助于了解在制造条件下进行乙酸处理的控制和再现性。相对于用“未吹扫”乙酸处理的铜表面,用用氮气吹扫30分钟的冰乙酸处理铜表面不会引起XPS光谱的变化。

如果铜被冰醋酸中的氧气氧化,氧化程度较小,醋酸可以去除形成的任何氧化物。此外,用高达4%的去离子水稀释乙酸不会阻碍氧化物的去除。在这些较低的浓度下(< 4%体积),所得的铜XPS光谱与通过以下方法获得的光谱相同用冰醋酸处理。

与用阿迪水漂洗进行的实验相反,当少量的水加入到乙酸浴中时,不会形成氢氧化铜。在35℃和10分钟的空气暴露下,或者加入的少量水不会氧化铜表面,或者更可能的是,形成的任何氧化物都被乙酸除去。随着加入更多的水(高达20%体积),大部分氧化铜仍然被除去。然而,XPS分析表明,暴露于这些混合物时,不同的氧化物仍然存在;未对氧化物残留进行量化。

结论

英思特研究了在低温下使用乙酸从铜表面去除氧化铜的方法。基于XPS结果,在乙酸处理后,所得铜表面在暴露于空气中约1分钟内保持无氧化物。此外,由于氮气干燥产生一个无条纹,有光泽的表面,因此阿迪水冲洗可能不需要。如果使用阿迪水冲洗,氢氧化铜立即在铜表面形成,而醋酸产生一个无氧化物的表面。

这篇关于一种用醋酸刻蚀氧化铜的新方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/338885

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Java判断多个时间段是否重合的方法小结

《Java判断多个时间段是否重合的方法小结》这篇文章主要为大家详细介绍了Java中判断多个时间段是否重合的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录判断多个时间段是否有间隔判断时间段集合是否与某时间段重合判断多个时间段是否有间隔实体类内容public class D

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

Java覆盖第三方jar包中的某一个类的实现方法

《Java覆盖第三方jar包中的某一个类的实现方法》在我们日常的开发中,经常需要使用第三方的jar包,有时候我们会发现第三方的jar包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,那么应该如何... 目录一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理一、需求描述需求描述如下:需要在

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行