分类
本文策略可以实现稳定的盈利

選擇在正確的時間正確的二進制指標

而下面这种写法就是错误的,因为时间单位不能比时间精度小 `timescale100ps/1ns 本题目设置的时间单位是10ns,时间精度是1ns,#3.141是延迟3.141个时间单位,也就是31.41ns,但是由于时间精度的控制,最终OUT的延迟为31ns, 所以C选项正确。END

与或非逻辑符号_求职攻略| 有符号的4位二进制数运算0101+1000,还会计算吗

今天解析的内容是紫光展锐数字IC岗不定项选择题的最后一部分。 16、如下哪种工作条件下,功耗最大( ) A 电压1.0V,温度85℃ B 电压0.9V,温度0℃ C 电压1.0V,温度0℃ D 电压0.9V,温度85℃ 解析: 本题目主要考察了对功耗的了解 电压主要是对动态功耗的影响较大,从动态功耗的公式也可以看出供电电压越高功耗越大。温度主要影响静态功耗,静态功耗主要有两种漏电流,一种是亚阈值电流,一种是pn结反向漏电电流。温度升高静态功耗主要受到亚阈值电流增大,高温让亚阈值电流大幅度提高,几乎是指数级别的,从而导致功耗的增加, 所以A选项正确17、用以下哪个指令可以实现设置文件“test”以及其下面的所有文件权限为User自己可读可写可执行,Group和Other设定为仅仅可读( ) A chmod 選擇在正確的時間正確的二進制指標 選擇在正確的時間正確的二進制指標 755 test B chmod -R 755 test C chomd 選擇在正確的時間正確的二進制指標 744 test D chmod -R 744 test 解析: 本题目主要考察了Linux系统中文件权限与归属 在IC设计中很多EDA工具都是在Linux上运行的,有些EDA工具甚至都没有对应的Windows版本,这对用惯了Windows的同学来说很不友好。但公司做开发时常常在服务器上运行管理我们的工具和文件,这会大大提高开发的效率,所以对于未来想从事IC行业的同学来说一定要学会一些必要的Linux操作才行。 在Linux系统中,每个文件都有所属的所有者和所有组,并且规定了文件的所有者、所有组以及其他人对文件所拥有的可读(r)、可写(w)、可执行(x)等权限。对于一般文件来说,权限比较容易理解:“可读”表示能够读取文件的实际内容;“可写”表示能够编辑、新增、修改、删除文件的实际内容;“可执行”则表示能够运行一个脚本程序。但是,对于目录文件来说,理解其权限设置来就不那么容易了。文件的读、写、执行权限可以简写为rwx,亦可分别用数字4、2、1来表示,文件所有者,所属组及其他用户权限之间无关联。文件权限的数字法表示基于字符表示(rwx)的权限计算而来,其目的是简化权限的表示。例如,若某个文件的权限为7则代表可读、可写、可执行(4+2+1);若权限为6则代表可读、可写(4+2)。从下图可以找到本题所对应的值为:744,另外,在Linux中修改权限的命令用“chmod”,有这两个关键要素就可以知道 D选项正确18、以下说法错误的是:( ) 選擇在正確的時間正確的二進制指標 A 4’b1111&&4’b00x0的结果为1 B 设计中不要使用“===”运算 C &4’b1011的运算结果为1-bit D 選擇在正確的時間正確的二進制指標 選擇在正確的時間正確的二進制指標 |运算的优先级别高于& 解析: 本题目主要考察了对Verilog语言基本运算符的了解 A选项是判断4’b1111和4’b00x0是否都为真,如果都为真则输出1bit的1,如果不都为真输出1bit的0。4’b1111显然为真,而4’b00x0中有x,所以不能准确判断是否为真, 所以A选项错误 。 B选项的三个等号的运算符我们很少见,没见过的以为是“==”多写了一个“=”号,其实“===”是合法的全等操作符,m === n是判断m和n全等吗,比较的结果为1bit,如果全等则为1,如果不全等则为0。另一个与之对应的全等操作符为“!==”,m !== n是判断m和n不全等吗,比较的结果为1bit,如果不全等则为1,如果全等则为0,“===”可以使用,所以B选项错误。 C选项的区别我们在秋招“笔试经”第三弹:华为硬件逻辑岗中重点讲解过,当“&”作为一元操作符时表示归约与。&m是将m中所有比特相与,最后的结果为1bit,&4’b1011 = 1 & 0 &1 & 1 = 1’b0。所以C选项正确。 D选项考察了Verilog运算符优先级的问题,如下图所示一目了然,可以轻易判断出D选项错误。 19、对于一个芯片而言,如下哪些参数的值越高越好:( ) A MTBF B ATE pattern count C Fault coverage D Yield 解析: 本题主要考察了IC设计中DFT相关的内容 MTBF(Mean Time Between Failure)为平均故障发生间隔时间,是衡量一个产品的可靠性指标,它反映了产品的时间质量,是体现产品在规定时间内保持功能的一种能力。具体来说,是指相邻两次故障之间的平均工作时间,也称为平均故障间隔,这个平均故障时间越久说明产品故障少的就是可靠性高, 所以A选项正确 。 ATE(Auto Test 選擇在正確的時間正確的二進制指標 選擇在正確的時間正確的二進制指標 選擇在正確的時間正確的二進制指標 Equipment)pattern count为测试机台的测试pattern数量,pattern多意味着测试全面, 所以B选项正确 。 Fault coverage为故障覆盖率定义为在所有故障中检测到的故障的百分比,这个指标越高越好,100%是最好的效果, 所以C选项正确 。 Yield在IC中表示芯片的良率,即达到标称性能规格的器件或电路的百分比,这个指标是越高越好, 所以D选项正确。 20、在Verilog中,关于task和function描述正确的是( ) A task可以有时间延迟,function不可以 B function可以有时间延迟,task不可以 C task和function都不可以有时间延迟 D task和function都可以有时间延迟 解析: 本题主要考察了对Verilog任务和函数的理解 关于Verilog中的任务(task)和函数(function)選擇在正確的時間正確的二進制指標 的共同点和不同点在求职“笔试经”第十五弹:FPGA设计中复位用法(华为硬件逻辑岗)中做过详细的解释,其中不同点中的第三条就是本题的答案,描述为:函数一定不能包含任何延迟,事件或者时序控制声明语句;任务可以包含延迟,事件或者时序控制声明语句。 所以只有A选项正确21、如下电路的逻辑功能为:( ) 選擇在正確的時間正確的二進制指標

9e77846e8684c35ee7f5d0fb2a9b712c.png

A F=A+B B F=(A+B)’ C F=(A+B)’ D F=(A·B)’ 解析: 本题主要考察了门级电路与逻辑表达式的转换 上图是CMOS构成的门电路,电路由两部分组成,左边的是一个反相器结构(上面的是PMOS,下面的是NMOS),右边的是一个传输门结构(上面的是NMOS,下面的是PMOS),我们要求得的F刚好在两部分电路的中间。我们可以列出输出为A、B,输出为F的真值表,如下所示:

e878b69c11e6c0400fe56e0d22cd2ea8.png

`timescale1ns/10ps 精度0.01,#10.11表示延时10110ps

b4bd1b7b15133581c9402a2536364577.png

而下面这种写法就是错误的,因为时间单位不能比时间精度小 `timescale100ps/1ns 本题目设置的时间单位是10ns,时间精度是1ns,#3.選擇在正確的時間正確的二進制指標 141是延迟3.141个时间单位,也就是31.41ns,但是由于时间精度的控制,最终OUT的延迟为31ns, 所以C选项正确。END

目前,我们正在通过大疆硬件岗和FPGA逻辑岗的题目,为大家带来笔试题的解析,以及知识的补充。如果有想要解析的题目,可以发给达尔闻安排。同时,欢迎加入达尔闻求职技术交流群,进群方式:添加妮姐微信(459888529),并备注求职,即可邀请进群

binlog的正确打开方式

binlog二进制日志的格式有 statement , row 以及 mixed 。 其中 statement 格式只会记录增删改以及对表结构变动的SQL语句, 即 update xx set xxx , 不会保存数据改动前的信息, 磁盘占用空间少。 row 格式将会记录完整的数据改动前后信息, 对数据的修改更加直观, 但占用磁盘空间更多。 mixed 为 statement 模式和 row 模式的混合, 当出现了对表结构的修改(修改, 删除字段), 为了避免日志中记录海量的信息, 此时MySQL会采用 statement 模式记录 alter table , 对于对数据的增删改记录每一行的信息变动。 具体的日志格式参考博文MySQL主从复制。

通常来讲二进制日志的打开比较的简单, ubuntu 18.04下:

2. 选择哪一种日志格式

前面已经描述了3种日志格式, 在MySQL 5.7 版本中默认为 Row 格式。 statement 格式在日志恢复以及主从复制中会出现较多的问题, 所以该格式不予考虑。 Row 格式和 Mixed 格式基本能够满足我们的要求, 可以选择其中的一个。 此外, 在 Row 模式下还有3个可选的日志格式: FULL , MINIMAL , NOBLOB 。 其中 FULL 格式将会记录所有的数据上下文, MINIMAL 只会记录被修改的字段, NOBLOB 在 text 字段下记录部分上下文, 其余为完整上下文。 当我们有足够的带宽以及磁盘空间, 并且能够保证主从复制之间的网络连接是稳定的情况下, 尽量使用 FULL 模式, 更多的信息会带来更好的恢复以及查看。 当主库的更新频率以及数量较大时, 选择 MINIMAL 以保证主从复制的低延迟性。

3. 常用的查看相关配置的命令

4. 错误的binlog数据恢复

binlog并没有我们想象中的那么复杂, 但是也没有那么容易。 如果在某个时间点数据遭到损坏, 然后使用:

这种方式进行恢复的话, 99%的情况下都会失败。 binlog恢复的原理与主从复制完全相同, 将一定时间区间内的SQL语句重新执行(statement)或者直接进行数据库修改(row), 假如我们的binlog如下方所示:

有一些长, 但是其实内部的结构是很简单的, 基本上就是:

其中 new_table删除数据 就是一个误操作, 我们需要进行挽回。 然后我们在此基础上执行:

因为 DELETE 操作的偏移量为3602, 所以我们恢复上一个偏移量的数据, 也就是3325, 那么这条语句无情的抛出了异常:

因为在此时此刻, new_table 中id为3的数据是存在的, 并没有被删除, 那么我再重新执行这条 insert 语句, 报错是必然的。 那么这个时候怎么恢复? 非常遗憾, 这个时候这样的条件, 只能手动的一条数据一条数据的重新插入, 没有其它的办法。 那么到底该如何的使用binlog来进行自动的恢复呢?

5. 正确的binlog数据恢复

binlog其实是一种增量恢复的模式, 那么既然是增量, 就必然需要有基量以及增量。 基量从哪儿来? 来自数据库的完整备份, 即 mysqldump 。 增量从哪儿来? 来自于上次完整备份时的binlog到现在的binlog。 可以看下面的示意图:

Alt text

当我们为机器安装MySQL并且开启了binlog之后, 就有了mysql-bin文件的产生, 如果我们不去维护binlog的话, 選擇在正確的時間正確的二進制指標 那么当到达了最大容量限制或者MySQL重启时会进行自动切割。 当某一天数据出现了问题,需要使用binlog进行恢复时发现, mysql-bin因为过期时间的配置前面的binlog已经不见了, 并且数据库的备份是11天以前的, 完全无法进行恢复, 欢声笑语打出GG。 通常的做法是在执行数据库备份计划的同时, flush logs 将日志进行主动的切割, 并在本地保留所有binlog日志。 假设我们的备份是每天的凌晨3点进行整体的数据库备份, 然后切割binlog。 在当天的下午2点数据需要进行恢复, 流程如下:

这里面就有了一些很重要的步骤: 必须要知道当前的备份所对应的binlog偏移量, 必须要知道误删除语句的binlog偏移量。 只有知道了这些信息才能够进行无损的数据恢复。

6. 实践binlog数据恢复

首先我们需要一个更加复杂的数据库结构以应对生产环境的复杂情况, 選擇在正確的時間正確的二進制指標 这里的话就使用 Django 框架来自动的生成表结构以及填充数据。

在填充数据之后进行 mysqldump 进行备份, 需要注意的是一定要记录当前dump的binlog偏移量, 即添加 --master-data 参数, 并且在备份时仍有数据进行插入

打开 test.sql , 可以看到当前备份的偏移量:

因为在测试的过程中突然断电了(刚好遇到了一个特殊情况), 所以binlog日志又被切割出去了, 一个很奇怪的现象, 起始位置不是0, 而是154, 我们再切割一个:

mysql-bin.000008 多了47个偏移, 新切割的binlog起始偏移仍然是154。 回到数据恢复, 在备份时我们知道了日志的偏移量为99082, 并且当时的binlog为 mysql-bin.000007 , 首先我们先删除一部分数据, 然后再写入一些数据。 时序图:

那么我们只需要做两件事:找到删除数据的binlog文件位置以及偏移量, 删库(这回不用跑路)后恢复数据。 那就找呗, 在0007 99082至009 38924之间查找 DELETE FROM , 通过使用 grep :

最终在009 451至009 943发现了 DELETE FROM 语句, 那么我们就可以开始恢复数据了。

上面就是使用binlog进行数据恢复的整个过程, 没有什么特别复杂的地方, 選擇在正確的時間正確的二進制指標 只不过步骤比较繁琐, 偏移量必须准确才能够成功。 对一些比较重要的操作进行整理:

  1. 备份时必须添加 --master-data 参数; -F 切割二进制日志可选, 添加之后会更加的方便
  2. 必须找到误删数据的偏移量, 备份时绕过这些数据修改。
  3. 因流程较为复杂, 确认无误后进行操作。

另外使用 mysqlbinlog 对binlog进行解析的话查看起来并不是很方便, 可以在 client 中使用

来更加直观的查看相关内容以及偏移量, 選擇在正確的時間正確的二進制指標 不过这种方式查看的话没有具体数据信息, 可以结合 mysqlbinlog 命令共同使用。

smartkeyerror

Share this post

MySQL慢查询日志分析工具

慢查询日志使我们对MySQL进行性能优化的关键指标, 只有在确定了哪些查询的确是慢查询之后才能对症下药, 进行性能优化, 而不是凭自身的感觉去判断, 结果有事往往出乎意料。 直接打开慢查询日志进行查看效率比较低效, 所以需要借助pt-query-digest工具来进行分析。

Django处理数据并发问题

在Web开发中, 请求的并发处理通常会直接反映到数据库中数据的并发处理。 如果需要在并发的条件下保证数据的准确性, 则必须借助锁的力量来完成。 锁又分乐观锁和悲观锁, 表示了世界的两极。 選擇在正確的時間正確的二進制指標 本篇文章只是以Django作为载体, 来描述数据的并发处理。

選擇在正確的時間正確的二進制指標

实时向量(Instant vector ):一组时间序列,每个时间序列包含一个样本,所有样本共享相同的时间戳

范围向量(Range vector):一组时间序列,其中包含每个时间序列随时间的一系列数据点

标量(Scalar):一个简单的浮点值

String:一个简单的字符串值;目前未使用

时间序列选择器

即时向量选择器

本示例选择所有具有 http_requests_total 度量标准名称的时间序列:

本示例仅选择那些具有 http_requests_total 度量标准名称的时间序列,同时将其 job 标签设置为, prometheus 并将其 group 标签设置为 canary :

  • = 選擇在正確的時間正確的二進制指標 :选择与提供的字符串完全相同的标签。
  • != :选择不等于提供的字符串的标签。
  • =~ :选择与提供的字符串进行正则表达式匹配的标签。
  • !~ :选择不与提供的字符串进行正则表达式匹配的标签。

例如,此选择所有 http_requests_total 的时间序列 staging , testing 以及 development 环境和HTTP比其他方法 GET 選擇在正確的時間正確的二進制指標

通过与内部 __name__ 标签匹配,标签匹配器也可以应用于度量标准名称 。例如,该表达式 http_requests_total 等效于 。比其他的匹配器 = ( != , =~ , !~ )也可以使用。以下表达式选择名称以开头的所有度量 job: :

范围向量选择器

在此示例中,我们选择所有时间序列在过去5分钟内记录的所有值,这些时间序列的指标名称 選擇在正確的時間正確的二進制指標 http_requests_total 和 job 标签设置为 prometheus :

image-20200301153316475

所述 offset 改性剂可以改变时间为查询中的个别时刻和范围矢量偏移。

例如,以下表达式返回 http_requests_total 相对于当前查询评估时间的过去5分钟的值 :

请注意, offset 修饰符始终需要立即跟随选择器,即以下内容将是正确的:

范围向量的工作原理相同。这将返回 http_requests_total 一周前的5分钟费率 :

算术二进制运算符

在两个标量之间,其行为显而易见:它们求值另一个标量,这是将运算符应用于两个标量操作数的结果。

在即时向量和标量之间,将运算符应用于向量中每个数据样本的值。例如,如果时间序列瞬时向量乘以2,则结果是另一个向量,其中原始向量的每个样本值都乘以2。

在两个即时向量之间,将二进制算术运算符应用于左侧向量中的每个条目,并将其 应用于右侧向量中的匹配元素。结果被传播到结果向量中,并且分组标签成为输出标签集。指标名称已删除。在右侧向量中找不到匹配条目的条目不属于结果。

比较二进制运算符

逻辑/集合二元运算符

  • and (路口)
  • or (联盟)
  • unless (补充)

vector1 and vector2 会产生一个向量,该向量 vector1 由其元素组成, 其中的元素 vector2 具有完全匹配的标签集。其他元素被删除。度量标准名称和值从左侧矢量继承。

vector1 or vector2 会产生一个向量,其中包含的所有原始元素(标签集+值), vector1 并且 vector2 其中所有元素在中都没有匹配的标签集 vector1 。

vector1 unless vector2 会产生一个向量,该向量由 vector1 没有 vector2 完全匹配的标签集的元素组成。两个向量中的所有匹配元素都将被删除。

集合运算符

  • sum (计算尺寸总和)
  • min (选择最小尺寸)
  • max (选择最大尺寸)
  • avg (计算尺寸的平均值)
  • stddev (计算总体尺寸的标准偏差)
  • stdvar (计算总体标准方差)
  • count (计算向量中元素的数量)
  • count_values 選擇在正確的時間正確的二進制指標 (计数具有相同值的元素数)
  • bottomk (按样本值最小的k个元素)
  • topk (按样本值最大k个元素)
  • quantile (计算整个尺寸的φ分位数(0≤φ≤1))

一对一向量匹配

一对一地从操作的每一侧找到一对唯一的条目。在默认情况下,这是遵循format的操作 vector1 vector2 。如果两个条目具有完全相同的一组标签和相应的值,则它们匹配。的 ignoring 关键字允许忽略匹配时某些标签,而 on 关键字允许减少该组被认为标签来提供的列表中:

这将返回一个结果向量,其中包含最近5分钟内对每种方法的状态请求为500的HTTP请求的比例。没有 ignoring(code) 这些指标,就不会有匹配项,因为指标不会共享同一组标签。用方法的条目 put ,并 del 没有匹配,并且在结果不会显示出来:

多对一和一对多向量匹配

多对一一对多匹配是指“一个”侧上的每个矢量元素都可以与“许多”侧上的多个元素匹配的情况。必须使用 group_left 或 group_right 修饰符明确要求此操作,其中左/右确定哪个向量具有更高的基数。

组修饰符随附的标签列表包含“一”侧的其他标签,这些标签将包含在结果指标中。对于 on 标签只能出现在列表之一中。结果向量的每个时间序列都必须是唯一可识别的。

分组修饰符只能用于 比较和 算术。默认情况下 and ,as unless 和 or 操作与正确向量中的所有可能条目匹配。

在这种情况下,左向量每个 method 标签值包含一个以上的条目。因此,我们使用来指示这一点 group_left 。现在,右侧的元素与 method 左侧带有相同标签的多个元素匹配:

多对一和一对多匹配是应仔细考虑的高级用例。通常,正确使用会产生 ignoring() 所需的结果。

二进制运算符优先级

优先级相同的运算符是左关联的。例如, 2 * 3 % 2 等效于 (2 * 3) % 2 。但是 ^ 選擇在正確的時間正確的二進制指標 是正确的关联,所以 2 ^ 3 ^ 2 等效于 2 ^ (3 ^ 2) 。

選擇在正確的時間正確的二進制指標

1 )分辩率 (Resolution) 指 数字量变化一个最小量时模拟信号的变化量 ,定义为满刻度与 2n 的比值。分辩率又称精度,通常以数字信号的位数来表示。
2 ) 转换速率 (Conversion Rate) 是指完成一次从模拟转换到数字的 AD 转换所需的时间的倒数 。积分型 AD 的转换时间是毫秒级属低速 AD ,逐次比较型 AD 是微秒级属中速 AD 選擇在正確的時間正確的二進制指標 ,全并行 / 串并行型 AD 可达到纳秒级。 采样时间则是另外一个概念,是指两次转换的间隔。 为了保证转换的正确完成, 采样速率 (Sample Rate) 必须小于或等于转换速率。 因此有人习惯上将转换速率在数值上等同于采样速率也是可以接受的。常用单位是 ksps 和 Msps ,表示每秒采样千 / 百万次( kilo / Million Samples per Second )。
3 選擇在正確的時間正確的二進制指標 )量化误差 (Quantizing Error) 由于 AD 的有限分辩率而引起的误差 ,即有限分辩率 AD 的阶梯状转移特性曲线与无限分辩率 AD (理想 AD )的转移特性曲线(直线)之间的最大偏差。通常是 1 个或半个最小数字量的模拟变化量,表示为 1LSB 、 1/2LSB 。
4 )偏移误差 (Offset Error) 输入信号为零时输出信号不为零的值,可外接电位器调至最小。
5 )满刻度误差 (Full Scale Error) 满度输出时对应的输入信号与理想输入信号值之差。
6 )线性度 (Linearity) 实际转换器的转移函数与理想直线的最大偏移,不包括以上三种误差。
其他指标还有:绝对精度 (Absolute Accuracy) ,相对精度 (Relative Accuracy) ,微分非线性,单调性和无错码,总谐波失真( Total Harmonic Distotortion 缩写 THD )和积分非线性。
AD 的选择,首先看精度和速度,然后看是几路的 , 什么输出的比如 SPI 或者并行的,差分还是单端输入的,输入范围是多少 ,这些都是选 AD 需要考虑的。 DA 呢,主要是精度和输出,比如是电压输出啊, 4-20mA 电流输出啊,等等。 DSP 呢,用来计算嘛,所以主要是看运算能力了,当然,外围的接口也是需要考虑的。个人看法, TI 的单 DSP 处理能力还可以, ADI 的多 DSP 联合使用的优点特别突出,当然了,不同档次的 DSP 的运算能力和速度都是有很大差别的。

工程师在进行电路设计时,面对林林总总的AD/DA芯片,如何选择你所需要的器件呢?这要综合设计的诸项因素,系统技术指标、成本、功耗、安装等,最主要的依据还是速度和精度。
精度 与系统中所测量控制的信号范围有关 ,但估算时要考虑到其他因素, 转换器位数应该比总精度要求的最低分辩率高一位 。常见的AD/DA器件有8位,10位,12位,14位,16位等。
速度应根据输入信号的最高频率来确定,保证转换器的转换速率要高于系统要求的采样频率。
通道有的单芯片内部含有多个AD/DA模块,可同时实现多路信号的转换;常见的多路AD器件只有一个公共的AD模块,由一个多路转换开关实现分时转换。
数字接口方式接口有并行/串行之分,串行又有SPI、I 2C、SM等多种不同标准。数值编码通常是二进制,也有BCD(二~十进制)、双极性的补码、偏移码等。
模拟信号类型 通常AD器件的模拟输入信号都是电压信号 ,而DA器件输出的模拟信号有电压和电流两种。
同时根据信号是否过零,还分成单极性(Unipolar)和双极性(Bipolar)。
电源电压有单电源,双电源和不同电压范围之分,早期的AD/DA器件要有+15V/-15V, 如果选用单+5V电源的芯片则可以使用单片机系统电源 。
基准电压有内、外基准和单、双基准之分。
功耗 一般CMOS工艺的芯片功耗较低,对于电池供电的手持系统对功耗要求比较高的场合一定要注意功耗指标。
封装常见的封装是DIP,现在表面安装工艺的发展使得表贴型SO封装的应用越来越多。
跟踪/保持(Track/Hold缩写T/H) 原则上直流和变化非常缓慢的信号可不用采样保持 ,其他情况都应加采样保持。
满幅度输出(Rail-to Rail) 新近业界出现的新概念,最先应用于运算放大器领域,指输出电压的幅度可达输入电压范围。在DA中一般是指输出信号范围可达到电源电压范围。(国内的翻译并不统一,如“轨-轨”、“满摆幅”)

1: 参考电压需要足够精确 , 推荐使用外部高精准参考电压。
2: 如果 PGA 可调 , 增益系数一般是越小噪声越低。
3: 一般最好用到满量程 , 此时 AD 精度不浪费。
4: 如果有偏置 , 需要进行自校。
5: 请注意在使用 DEMO 板调试时 , 会由调试口导入 PC 噪声 , 由信号连接线导入外部噪声 , 因此建议使用屏蔽电缆传输信号。
6: 板上注意模拟电源和数字电源 , 以及模拟地和数字地要分开 , 减少耦合噪声路径。
7: 使用差分输入可以减少共模噪声 , 但是差模噪声会增大。
8: 如果是片内集成 AD 的 MCU, 支持高速时钟 , 如果不影响性能 , 内部工作时钟越低 , 对您的 AD 采样引起的干扰越小 , 如果是板上就需要注意走线和分区。
9: 信号输入前级接滤波电路 , 一般一阶 RC 电路较多 , 注意 Fc=1/1000~1/100 采样频率 , 电阻和电容的参数注意选取 . 信号接入后级接滤波电路最好采用 sinc 滤波方式 . 注意输入偏置电流会限制您外部的滤波电阻阻值的大小。
R 選擇在正確的時間正確的二進制指標 選擇在正確的時間正確的二進制指標 x Ib < 1LSB 。
有的片内 AD 还有集成输入 Buffer, 有助与抑制您的噪声 , 一般是分两当 , 看输入信号范围和满量程之间的关系。
AD 分为很多中 ,SAR,FLASH, 并行比较型 , 逐次逼近型 ,Delta sigma 型 , 一般是速度越高 , 精度越高越贵 , 所以 ADI 之类的公司一直那么富裕 , 赚黑钱 .
针对不同场合不同成本不同要求分别选用。
还得注意是您的 Layout 。