当前位置:  技术问答>linux和unix

S3C6410的ADC驱动问题

    来源: 互联网  发布时间:2016-10-28

    本文导语:  在华恒的S3C6410开发板上写查询式ADC驱动,我发现启动AD转换后ADCCON的最高位ECFLG始终为0,按手册中的说,转换结束后应该为1不是吗?我运行这个程序接收的值一直是固定的0x1ff,也不对 貌似AD没有工作 设置如下: ts...

在华恒的S3C6410开发板上写查询式ADC驱动,我发现启动AD转换后ADCCON的最高位ECFLG始终为0,按手册中的说,转换结束后应该为1不是吗?我运行这个程序接收的值一直是固定的0x1ff,也不对 貌似AD没有工作 设置如下:
ts_base= ioremap(S3C2410_PA_ADC,0x20);
writel(0x00, ts_base+S3C2410_ADCTSC);
writel( 0x3FC4,ts_base+S3C2410_ADCCON);
 struct ADC_DEV adcdev;
 copy_from_user(&adcdev, (struct ADC_DEV *)buf, count);
tmp = S3C2410_ADCCON_PRSCEN | PRSCVL(adcdev.prescale) | ADC_INPUT(adcdev.channel);

tmp = readl(ts_base+S3C2410_ADCCON) | 0x01; //start AD converdo  
writel( tmp, ts_base+S3C2410_ADCCON);

//do{
  //tmp = readl(ts_base+S3C2410_ADCCON);
//}while(!(tmp&S3C2410_ADCCON_ECFLG));

 data = (readl(ts_base+S3C2410_ADCDAT0) & 0x3ff);
我没有卸载板子本身自带的触摸屏驱动,我不确定编译内核的哪些选项,就一直没动,不知道是不是这个冲突?
tmp的值设置后一直为0x7f01

|
既然AD都不工作,就应该先查查硬件电路对不呀

|



ADC驱动要处理好ADC电路和触屏冲突问题。
你的代码我没怎么看。

但是以前的驱动是要卸载的。

其中ADC和触屏的冲突问题尤为重要。

很多板子是ADC和触屏使用的同一个转换电路。

导致ADC转换的时候,触屏无法使用。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • S3C6410如何编写ADC程序
  • 如何使用S3C6410开发板上的串口3和4
  • 求教:如何控制S3C6410的LCD背光灯的打开与关闭?
  • s3c6410 framebuffer 调整LCD显示物理分辨率
  • s3c6410的patform中, PA與VA的問題..


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3