第一篇:DM8148 McASP接口调试总结
DM8148 McASP接口调试总结
基础知识:
I2S协议——(Inter-IC Sound或Intergrated Interchip Sound)是飞利浦公司设计的一种用于IC间传输数字音频信号的接口标准。标准的I2S协议由3条线构成:帧时钟、位时钟和数据线。帧时钟用于切换左右声道的数据。位时钟对应每一位数据。有时为了使系统间能够更好的同步还需要另外传输一个信号MCLK,称为主时钟,也叫系统时钟。
图1 I2S协议时序
I2S采样率、采样位数和时钟的关系:
位时钟(串行时钟)= 2*采样频率*采样位数 帧时钟 = 采样频率
主时钟 = 采样频率的256倍或384倍(依据codec的配置)
McASP接口——复通道音频接入接口,是TI公司的DSP的一种接入接口,是一种通用的音频接入接口。采用的是时分复用的数据流形式。Mcasp使用I2S协议,也支持DIT协议。mcasp包括发射和接收两部分,他们可以使用不同时钟,不同的传输模式,工作完全独立。发射和接收也能够工作在同步状态。mcasp的管脚都可以配置为通用I/O。
图2 mcasp引脚介绍
DM8148共有6个Mcasp接口,其中mcasp0、1既有接收口(ACLKR、AFSR)也有发送口(ACLKX、AFSX),且可以设置为不同时钟,即接收时钟可以与发送时钟同步,也可以选择异步。而Mcasp2、3、4、5只有发送口(ACLKX、AFSX),因此接收时钟必须与发送时钟同步。
硬件连接: 方式一:
ACLKX——连接I2S的位时钟输入/输出 AFSX——连接I2S的帧时钟输入/输出 AXR——连接I2S的数据输入/输出
方式二:
ACLKR——连接I2S的位时钟输入/输出 AFSR——连接I2S的帧时钟输入/输出 AXR——连接I2S的数据输入/输出
两种情况由于连接方式不同,在McASP时钟配置时也有区别。在TI的DVRRDK_04.00.00.03提供的内核中默认采用的是方式一(DM8148只有mcasp0和mcasp1同时具有发送口与接收口,mcasp2、3、4、5都只有发送口,因此所有mcasp口均可如此连接),时钟设置为了同步模式,不需要再改动。当选择方式二时(DM8148只有mcasp0和mcasp1可以这样连接),需要修改sound/soc/davinci/davinci-mcasp.c,将时钟设置为异步模式。本设备中sii9135连接采用了方式一(mcasp0),tlv320aic3106与tvp5158采用了方式二(mcasp4)。static void davinci_hw_param(struct davinci_audio_dev *dev, int stream, char *name){ ……
if(!strcmp(name, “SII9135AUDIO”))//+14-10-15
mcasp_set_bits(dev->base + DAVINCI_MCASP_ACLKXCTL_REG, TX_ASYNC);//设置时钟为异步
else
mcasp_clr_bits(dev->base + DAVINCI_MCASP_ACLKXCTL_REG, TX_ASYNC);//设置时钟为同步
…… }
图3接收与发送时钟配置 mcasp配置:
以tvp5158(连接至mcasp4)为例:
在archarmmach-omap2devices.c中添加mcasp资源: static struct resource ti81xx_mcasp4_resource[] = { {
.name = “mcasp”,.start = TI81XX_ASP4_BASE,.end = TI81XX_ASP4_BASE +(SZ_1K * 12)-1,.flags = IORESOURCE_MEM, }, /* TX event */ {
.start = TI81XX_DMA_MCASP4_AXEVT,.end = TI81XX_DMA_MCASP4_AXEVT,.flags = IORESOURCE_DMA, }, /* RX event */ {
.start = TI81XX_DMA_MCASP4_AREVT,.end = TI81XX_DMA_MCASP4_AREVT,.flags = IORESOURCE_DMA, }, };以上结构体添加了mcasp4的基地址以及EDMA通道,这些值如果没有定义,需要在archarmplat-omapincludeplatasp.h中添加,查阅数据手册。此外还要修改EDMA配置,否者会出现错误信息:
davinci_pcm: Failed to get dma channels asoc: can't open platform davinci-pcm-audio arecord: main:666: audio open error: Device or resource busy 修改如下:
static const s16 ti814x_dma_rsv_chans[][2] = { /*(offset, number)*/ {0, 2}, {14, 2}, {26, 6}, {48, 4}, {56, 6},// change {56,8} to {56,6} on 14-08-29 {-1,-1} };static const s16 ti814x_dma_rsv_slots[][2] = { /*(offset, number)*/ {0, 2}, {14, 2}, {26, 6}, {48, 4}, {56, 6},//change {56,8} to {56,6} on 14-08-29 {64, 127},{248, 264}, {-1,-1} };
同样在archarmmach-omap2devices.c中需要添加: static struct platform_device tvp5158_audio_device = {.name = “tvp5158-audio”,.id =-1, };
static u8 tvp5158_iis_serializer_direction[] = { RX_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, };tvp5158_iis_serializer_direction里的元素对应着mcasp接口的每个数据接收发送端口AXR的工作模式:RX_MODE(接收), TX_MODE(发送)和INACTIVE_MODE(无效)。本数组表示AXR [0]工作在接收模式,AXR [1]—AXR [15]不工作。static struct snd_platform_data tvp5158_snd_data = {.tx_dma_offset = 0x4A1AB000,.rx_dma_offset = 0x4A1AB000,.asp_chan_q = EVENTQ_0,.tdm_slots = 2, /* number of channels.I2S模式时必须设置为2*/.op_mode = DAVINCI_MCASP_IIS_MODE,.num_serializer = ARRAY_SIZE(tvp5158_iis_serializer_direction),.serial_dir = tvp5158_iis_serializer_direction,.version = MCASP_VERSION_2,.txnumevt = 32,.rxnumevt = 32, };
static struct platform_device ti81xx_mcasp_tvp5158_device = {.name = “davinci-mcasp”, /* driver name */.id = 4,//mcasp端口号
.dev = {
.platform_data = &tvp5158_snd_data,},.num_resources = ARRAY_SIZE(ti81xx_mcasp4_resource),.resource = ti81xx_mcasp4_resource, };
void __init ti81xx_register_mcasp(void)//注册mcasp { ……
#ifdefCONFIG_SND_SOC_TVP5158_AUDIO
printk(KERN_DEBUG “n**** Registering TVP5158 & MCASP4n”);
platform_device_register(&tvp5158_audio_device);
platform_device_register(&ti81xx_mcasp_tvp5158_device);#endif
#ifdef CONFIG_SND_SOC_SII9135_AUDIO
printk(KERN_DEBUG “n**** Registering SiI9135 & MCASP0n”);
platform_device_register(&sii9135_audio_device);
platform_device_register(&ti81xx_mcasp_sii9135_device);#endif }
在soundsocdavinciti81xx-evm.c中:snd_soc_dai_link结构体连接起codec驱动与平台驱动,内核根据名字建立连接,要保证codec_name和codec驱动中的platform_driver中的名字相同;codec_dai_name和codec驱动中的snd_soc_dai_driver中的名字相同。此结构体中成员的顺序决定了ALSA 声卡的设备序号,本程序中: staticstruct snd_soc_dai_link ti81xx_mcasp_dai[] = { {
.name = “TVP5158AUDIO”,.stream_name = “TVP-PCM”,.cpu_dai_name= “davinci-mcasp.4”,.codec_dai_name = “tvp5158-hifi”,.platform_name =“davinci-pcm-audio”,.codec_name = “tvp5158-audio”,.ops = &ti81xx_evm_ops, }, {
.name = “TLV320AIC3X”,.stream_name = “AIC3X”, #if defined(CONFIG_MACH_TI810XEVM)|| defined(CONFIG_MACH_TI810XDVR)|| defined(CONFIG_MACH_UD8107_DVR)
.cpu_dai_name= “davinci-mcasp.1”, #else
.cpu_dai_name= “davinci-mcasp.2”, #endif
.codec_dai_name = “tlv320aic3x-hifi”,.codec_name = “tlv320aic3x-codec.1-0018”,.platform_name = “davinci-pcm-audio”,.init = ti81xx_evm_aic3x_init,};.ops = &ti81xx_evm_ops, }, /*+ljk sii9135 14-9-17*/ {.name = “SII9135AUDIO”,.stream_name = “HDMI-PCM”,.cpu_dai_name= “davinci-mcasp.0”,.codec_dai_name = “sii9135-hifi”,.platform_name =“davinci-pcm-audio”,.codec_name = “sii9135-audio”,.ops = &ti81xx_evm_ops, }, /*end*/ sound/soc/davinci/ti81xx-evm.c中的ti81xx_evm_hw_params函数设定音频为I2S或者DSP模式,以及位时钟与帧时钟的主从模式。(DSP_A模式与I2S模式没有区别)。static int ti81xx_evm_hw_params(struct snd_pcm_substream *substream,struct snd_pcm_hw_params *params){ struct snd_soc_pcm_runtime *rtd = substream->private_data;struct snd_soc_dai *codec_dai = rtd->codec_dai;struct snd_soc_dai *cpu_dai = rtd->cpu_dai;unsigned sysclk, fmt = 0;/* default */ sysclk = 24576000;if(!strcmp(rtd->dai_link->name, “TVP5158AUDIO”)){
/* AFSR-> falling edge, ACLKX-> rising edge, 1 bitclock delay
DSP_A Mode(codec clk & FRM master)*/
fmt = SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_CBM_CFM |
SND_SOC_DAIFMT_NB_IF;//选择DSP_A模式,主模式
AUDIOPRINT(“TVP5158:DSP_A#codec clk and FRM as master.n”);/*+ljk 14-9-1*/ }
else if(!strcmp(rtd->dai_link->name, “SII9135AUDIO”))//ljk 14-9-29 {
fmt = SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_CBM_CFM |
SND_SOC_DAIFMT_NB_IF;
AUDIOPRINT(“SII9135:DSP_A#codec clk and FRM as master.n”);//+ljk 14-9-1 } else {
/* DSP_B Mode*/
fmt = SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_CBM_CFM |
}
SND_SOC_DAIFMT_IB_NF;}
/* set codec DAI configuration */ snd_soc_dai_set_fmt(codec_dai, fmt);/* set cpu DAI configuration */ snd_soc_dai_set_fmt(cpu_dai, fmt);/* set the codec system clock */ snd_soc_dai_set_sysclk(codec_dai, 0, sysclk, SND_SOC_CLOCK_OUT);return 0;tvp5158已经提供了部分驱动和代码,当一个codec需要从零开始添加时,可以仿照tvp5158,如sii9135(连接至mcasp0的接收端口)的添加: 1.添加sii9135-audio.c文件到sound/soc/codecs/目录。2.修改sound/soc/codecs/Kconfig和Makefile 3.修改sound/soc/davinci/Kconfig 4.其他修改部分与tvp5158修改位置相同
5.不需要修改static const s16 ti814x_dma_rsv_chans[][2] 与static const s16 ti814x_dma_rsv_slots[][2]中与mcasp0对应的值。
6.需要在sound/soc/davinci/davinci-mcasp.c中将接收与发送时钟设置为异步: static void davinci_hw_param(struct davinci_audio_dev *dev, int stream, char *name){ ……
if(!strcmp(name, “SII9135AUDIO”))//+14-10-15
mcasp_set_bits(dev->base + DAVINCI_MCASP_ACLKXCTL_REG, TX_ASYNC);//设置时钟为异步
else
mcasp_clr_bits(dev->base + DAVINCI_MCASP_ACLKXCTL_REG, TX_ASYNC);//设置时钟为同步
…… }
codec驱动配置:
需要注意codec驱动所支持的采样率与格式要与codec芯片配置的相同,而且不能超过mcasp所支持的范围。
static struct snd_soc_dai_driver tvp5158_dai = {.name = “tvp5158-hifi”,.capture = {
.stream_name = “Capture”,.channels_min = 2,.channels_max = 16,.rates =(SNDRV_PCM_RATE_16000|SNDRV_PCM_RATE_48000),};.formats = SNDRV_PCM_FMTBIT_S16_LE|SNDRV_PCM_FMTBIT_S32_LE,},.ops = &tvp5158_dai_ops, 测试方法:
首先需要配置音频芯片的寄存器使它们可以正常输出I2S格式音频。这些芯片采用I2C总线通信,所以可以使用i2cset和i2cget工具配置和查询。例如,配置tvp5158地址为0xc3的寄存器为0x68:
i2cset-y 1 0x5b 0xc3 0x68 tvp5158的配置脚本内容:
#!/bin/sh echo “*******TVP5158 set**********” i2cset-y 1 0x5b 0xfe 0x01 echo “0xfe:” i2cget-y 1 0x5b 0xfe #16kHz i2cset-y 1 0x5b 0xc0 0x00 echo “0xc0:” i2cget-y 1 0x5b 0xc0 #mix output i2cset-y 1 0x5b 0xc4 0x01 echo “0xc4:” i2cget-y 1 0x5b 0xc4 i2cset-y 1 0x5b 0xc8 0x00 echo “0xc8:” i2cget-y 1 0x5b 0xc8 #SD_R master i2s 64fs 16bit PCM i2cset-y 1 0x5b 0xc3 0x68 echo “0xc3:” i2cget-y 1 0x5b 0xc3 #-1.5db i2cset-y 1 0x5b 0xc1 0x77 echo “0xc3:” i2cget-y 1 0x5b 0xc3 i2cset-y 1 0x5b 0xc2 0x77 echo “0xc3:” i2cget-y 1 0x5b 0xc3 #mute disable i2cset-y 1 0x5b 0xc5 0x00 echo “0xc5:”
i2cget-y 1 0x5b 0xc5 echo “*******finish*********” 使用ALSA提供的录音工具arecord录取声音。录音的参数需要与芯片对应的配置相同。tvp5158通过I2C配置为了16bit,16KHz。sii9135为32bit,48KHz。使用arecord-l 命令查看录音设备:
tvp5158录音:
arecord-Dplughw:0,0-r16000-fS16_LE test.wav sii9135录音:
arecord-Dplughw:0,2-r48000-fS32_LE test.wav
常见问题:
1、使用arecord 录制的wav格式视频只有44bit。
如果I2S信号正常,则是由于I2S时钟没有匹配mcasp时钟,44bit其实是wav格式的头的大小。检查sound/soc/davinci/davinci-mcasp.c中的时钟同步寄存器配置。
第二篇:调试总结
调试总结
来到海南昌江项目部电气队已经有50多天了,我有幸加入到调试队。听师傅们说:“调试现在改新模式了,我们是第一批加入进来的,机会真是千载难逢,要我们务必抓住这次机会!”听后我激动异常,暗暗下决心机会是留给有准备的人的,现在机会就放在我面前,我若不抓住,岂不是白白浪费?所以,努力与学习以及实践与理论都将为此而进行。
调试是一门技术活,彭师傅说过:“干调试要多问,多看,少动手。”说实话,刚听到这我就想“不是应该多动手吗?这样才能更加的熟练技能。”后来,我明白了“少动手”的意思是不要乱动、乱摸,调试不仅危险高压电,而且一旦产生事故十分严重,那些仪器仪表十分昂贵。一定要熟悉弄懂后才按规定操作,这也就要坐到前面说的“多问、多看。”
最近我们干的活主要是环吊、门吊、半门吊,具体就是一些接线,打磨,放电缆、装网架等等。在此过程中我深深明白四个字:眼高手低。这也是在学校时,实习老师常常教导我们的“干活最容易犯的是眼高手低,一个很简单的活看起来很容易,一旦动手,你就发现不是那么回事。”现在回想起来,才明白老师的淳淳教导。就在前几天,郭师傅跟牛师傅交给我一个任务,让我协助焊工把角钢焊上,再把网架固定在上面,结果我没把角钢扶正,导致角钢向两边偏了整整5cm。事后,牛师傅严厉的批评了我,我无言以对,默默的思索自己错在了什么地方。最后,我用磨光机把角钢切下来,重新再安装上去。就是这一次,我真正懂得了“眼高手低。”当然了,这段时间,我也发生了许多别的失误。例如:常常忘记一些该办的要紧事、有些方面操作不当以及把螺丝弄丢等等。这些都不一一列举了。总之,干这些活,我明白了许多,也成熟了许多,我会尽自己的努力做好自己的工作。
这两个星期也感觉挺忙的,周一周三延点、周二周四培训、周六加班。彭师傅曾问我:“晚上培训精力上没问题吧?对这个培训有什么看法?”我说:“精力上当然没问题,就是培训的有点快,有很多不是太懂,希望能讲的慢一些,细一些。”彭师傅对此跟我详细的说:“培训其实并不是都全部教懂,因为有些东西是需要接触,进行具体的操作时才能真正的懂,培训的主要目的是把调试的主要内容,具体方向,大多方面讲一些,让我们在业余有个学习的方向,这个主要靠的就是自己本身的努力。”听后,我豁然开朗,明白了自己的努力方向。对调试的其他建议,说实话,还真不知道说什么,因为我们才接触这个调试,还处于懵懵懂懂之中,只有在遇到实际的问题时,我们才会具体的提出来,所以建议问题还是留到现学现问吧。
最后,想起了李师傅给我们的寄语:书山有路勤为径、学海无涯苦作舟。是啊,学习如逆水推舟,不进则退,获得成功的途径只有努力与付出。在此,在调试队我要践行我的誓言:人生难得一回闯,且看失败与成长。
赵直2012年08月26日
第三篇:清大调试总结
清大调试工作汇报
一、调试时间:2009-6-2~2009-7-17。
二、调试背景:
现场水质严重恶化,水解酸化COD在750~950之间,一体池出水COD400以上;
设备损坏严重,八台管道泵有三台不能使用,另有四台是带病运行; 甲方存在严重的不信任情绪,合作态度也比较消极。
三、工作内容: 1、6.2~~6.13:
(1)检查确定已坏设备的病因,维修不需更换配件的抽泥泵。
(2)配合创精售后人员修好六台1.5Kw的管道泵,更换五个机封及十二个轴承;其中电机烧坏的一台现场无法修理,请示宋总后定由我方外运修理,由创精发一件机械密封,重缠线圈,换轴承两个。
(3)水质调试。数据上报之后根据李工指示:排掉部分污泥,加大两个回流,加大曝气量,A池、活性污泥池和曝气生物滤池适当添加营养物面粉,原李建调试时使用的磷酸二氢铵不再使用。
闷曝回流一周后,效果较以前好,但一体池出水COD仍在300多。2、6.13~6.26:
(1)经6.13日李工现场诊断,按照李工所定方案调整培养,闷曝一周后加大进水量,出水水质加快好转,后宋总与李工现场视察,强调要继续稳定水质情况,同时尽力促使甲方取样验收。至6月26日,一体池出水COD基本稳定在180~220之间。
(2)6月18日请查经理夫妇吃饭;
(3)6.20~6.23两次报清大乳业高总已经具备取样验收条件,高不认为具备条件,要求稳定下来再说。3、6.27~7.10(1)已经收处全部生产污水,水量在70~120m3之间。一体池出水COD继续稳定在175~195之间,滤池及清水池COD稳定在50~80之间。
(2)7.3日清大污水处理协调会:
参与者:清大高、查、污水班组4人、机电班组5人,我方梁崇刚、辛雪梅。
清大高经理提出要求: 1)污水完全收集不外排;(我方言明当时已做到)2)力争7月份验收; 3)做好人员培训;
4)清大内部加强人员管理,调机电组班长临时负责污水。我方承诺:
1)调试过程真实透明;
2)加班加点,尽快往前赶,早日使水质稳定; 3)加强人员培训和指导。4、7.11~7.16
(1)连降暴雨引发山洪,进入污水集水装置水量加大,在我方多次提醒与要求要坚持“逐步增水,禁止骤升”原则时,甲方操作人员仍连续两天短时加大以雨水为主的进水量,引起水质波动,7月12号下午检测结果显示,整个系统已经出现了比较明显的水质倒退,我方急言制止继续大量进水,并提出“缓进水,大风量,大回流,多排泥”的应对措施,操作人员仍我行我素于12日夜间或凌晨大量进水;我方于6.13日提请清大乳业高总开会解决协调和配合问题,之后每天催促,清大乳业因故拖至7月16号才开会讨论。
(2)7.16开会: 我方坚持观点:
1)我方调试,则有权根据水质调整操作;除非对方自己调试,则我们可以撤人;
2)问题既然已经出现,应尽快解决与恢复,不应继续错上加错,人为地恶意加大事故;
3)现场问题报请领导后,清大乳业一直拖后至第四天才开会解决,此时水质已经恶化比较严重。
对方观点:
1)工期拖到现在,清大方虽有责任,我方也有责任; 2)水量应该达到设计200m3,或者尽可能多;
3)要求污水班组一切操作按照我方要求,希望双方继续紧密合作,但是污水操作人员期间曾表示拒绝使用清水。
(3)将会议情况上报李工,确定重新调整的方案:使用清水反冲、稀释,重新培养。清大,高总言现场情况不熟,须与现场机电班长等人商定,现场自查副经理一下所有相关人员均不赞成使用清水。此情况上报。
(4)7月16日夜间接到指示:我方撤人,撤人时必须向清大高总言明: 1)我方春节前就已经调试合格,因为甲方原因未验收,有高总所出的证明信为证;(实际表述为:我方春节前就已经达到稳定、正常的水质,因种种原因未验收);
2)现在经一个半月的努力,我方已经全负荷稳定、正常的运行近两周,技术上不存在任何问题;
3)暴雨期间操作人员存在野蛮操作和恶意操作的问题,才导致现在水质严重倒退的情况;
4)山上冲下的雨水低营养、多泥,多红页岩矿物成分,又是短时间超量进水,造成生物膜脱落严重,已有明显上浮生物膜,重新调整恢复至原来水平即使最快捷的方法也要两三周以上,已经超出了我现场二人向宋总承诺的承包期,承包期以外无工资,所以我们需要回公司。
四、个人总结:
清大工作我个人参与前后总计08年5个月,09年1个半月,期间学到不少东西,也付出了个人努力。如宋总所言,造成现在糟糕的结果,说明我在现场的工作不到位,工作方式上存在着处事太理想化、不灵活等问题。
三达环保技术部:梁崇刚
2009-7-18
第四篇:DSP调试总结
6416是定点型芯片,在项目中主要用来做下变频后数据的谱计算。FPGA中对所采数据进行下变频后通过DSP的EMIF口(64bit)传输到DSP中进行FFT运算,算完的谱数据再通过EMIF口回传至FPGA,再传至上位机进行频谱图的显示。
在这个过程中,并没有用DSP做多少事情,只是有一个FFT计算和EMIF口以及MCBSP口的数据与控制命令的传输,总体来说功能还是蛮简单的。
1、首先,FFT运算直接调用TI的C64XX的库函数就可以完成。在这个调试过程中,首先使用的是simulater环境进行软件仿真计算,根据计算出来的谱图发现结果是正确的,只是模拟数据和旋转因子在软仿真的时候耗费的时间太长(32K点)。可由MATLAB产生数据,然后导入数组,直接进行FFT验证之。
FFT消耗时间分析:在软件中可以设置观测FFT函数所消耗的时间,最后由两种结果,Total cycle 和Cpu cycle,其根据600M主频计算下来,做32K点时其耗时相差有100倍,即百毫秒与毫秒的差别,由于不确定时间应采取哪种,所以进而进行了板级实验。
在板级实验过程中,发现程序“经常偶尔”跑飞,一直也没有找到原因。最后经过多次试验用示波器检测出来的时间与用Cpu cycle计算出来的相近。此时,我们假设Cpu cycle是正确的,那换算出来的主频就只为400M。用示波器对分频时钟进行测试,发现现在CPU确实只工作在400M的主频,而不是最大600M的主频。
由此说明,芯片的配置可能有问题,并且还可以证明可以用Cpu cycle来计算程序的运行时间(当然DSP主频要确定)。
经databook查询,发现晶振的频率与其设置的主频选择有误,及用此晶振的频率,要改变外围电路配置才能达到最高频率。当然,也许maybe可能这个问题与DSP经常跑飞有关联。
改了之后发现其运行在666M的状态,超了66M,不晓得对芯片有没有影响,知道的大神可告知小弟,不胜感激...2、EMIF 与 MCBSP 的可按照自己的需要进行配置初始化。
EMIF用到了64位,在传输64位数据上纠结了很久,C语言上long即为64位,可在此只为40位。经一位大神提醒,使用long long类型搞定之,木有技术含量,发现自己基本功相当之不扎实。
第五篇:冻干机调试总结
冻干机调试总结
2008年10月11日到2008年10月12日对2号和1号GLZY-15B型冷冻干燥机进行了空载板层热均匀性验证,此过程是将冻干机从30℃到0℃再到-30℃,干箱制品温度探头和验证系统温度探头均匀分布在每层搁板之上,2008年10月11日1号机的温度的探头可能没有放好,导致有的探头的温度相差较大。2008年10月12日2号机的热分布相对比较均匀。
2008年10月12日冻干机调试:
1.1号冻干机的2号制冷系统压力普遍偏低。其原因是2号制冷系统的水冷凝器上的一个螺丝没转紧,导致氟利昂泄漏,现已对2号制冷系统全面氮气保压检漏,漏氟问题基本解决。
2.1号冻干机干箱真空泄漏率>0.025Pa·㎡·m/s 真空保压不成功,1号机的干箱密闭性不达标。
3.2号冻干机水环泵与干箱排水的一节螺纹没绑生料带有漏水,影响水环泵抽真空。
4.1号冻干机的真空油变的混浊,其原因可能是真空泵进水。可换真空油或开镇流来解决。
5.2号机的3号温度探头温度显示不正常,时好时坏。原因:里面的两根细丝前端的接头处或中间有裂痕导致接触不良。解决方法:可将两根细丝重新接牢。