datasheet

Tiny210驱动之LED测试

2018-10-12来源: eefocus 关键字:Tiny210驱动  LED测试

first_drv.c驱动源码:

#include "linux/device.h"

#include "linux/module.h"

#include "linux/kernel.h"

#include "linux/fs.h"

#include "linux/init.h"

#include "linux/delay.h"

#include "asm/uaccess.h"

#include "asm/irq.h"

#include "asm/io.h"

static struct class *firstdrv_class;

volatile unsigned long *gpj2con = NULL;

volatile unsigned long *gpj2dat = NULL;

static int first_drv_open(struct inode *inode, struct file *file)

{

    // 配置GPJ2_0,GPJ2_1,GPJ2_2,GPJ2_3为输出 

    *gpj2con &= ~((0xf<<(0*4)) | (0xf<<(1*4)) | (0xf<<(2*4)) | (0xf<<(3*4)));

    *gpj2con |= ((0x1<<(0*4)) | (0x1<<(1*4)) | (0x1<<(2*4)) | (0x1<<(3*4)));

    return 0;

}

static ssize_t first_drv_write(struct file *file, const char __user *buf, size_t count, loff_t * ppos)

{

    int val;

    copy_from_user(&val, buf, count); //    copy_to_user();

    if (val == 1)

    {

        // 点灯

        *gpj2dat &= ~((1<<0) | (1<<1) | (1<<2) | (1<<3));

    }

    else

    {

        // 灭灯

        *gpj2dat |= (1<<0) | (1<<1) | (1<<2) | (1<<3);

    }

    

    return 0;

}

static struct file_operations first_drv_fops = {

    .owner  = THIS_MODULE,    // 这是一个宏,推向编译模块时自动创建的__this_module变量 

    .open   = first_drv_open,     

    .write  = first_drv_write,       

};

int major;

static int first_drv_init(void)

{

    major = register_chrdev(0, "first_drv", &first_drv_fops); // 注册, 告诉内核

    firstdrv_class = class_create(THIS_MODULE, "firstdrv");

    device_create(firstdrv_class, NULL, MKDEV(major, 0), NULL, "xyz"); // /dev/xyz 

    gpj2con = (volatile unsigned long *)ioremap(0xE0200280, 16);

    gpj2dat = gpj2con + 1;

    return 0;

}

static void first_drv_exit(void)

{

    unregister_chrdev(major, "first_drv"); // 卸载

    device_destroy(firstdrv_class, MKDEV(major, 0));

    class_destroy(firstdrv_class);

    iounmap(gpj2con);

}

module_init(first_drv_init);

module_exit(first_drv_exit);

MODULE_LICENSE("GPL");

====================================================================

firstdrvtest.c测试程序:

#include "sys/types.h"

#include "sys/stat.h"

#include "fcntl.h"

#include "stdio.h"

// firstdrvtest on

// firstdrvtest off

int main(int argc, char **argv)

{

    int fd;

    int val = 1;

    fd = open("/dev/xyz", O_RDWR);

    if (fd < 0)

    {

        printf("can't open!\n");

    }

    if (argc != 2)

    {

        printf("Usage :\n");

        printf("%s 《on|off》\n", argv[0]); //实际为"<"

        return 0;

    }

    if (strcmp(argv[1], "on") == 0)

    {

        val  = 1;

    }

    else

    {

        val = 0;

    }

    

    write(fd, &val, 4);

    return 0;

}


关键字:Tiny210驱动  LED测试

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/mcu/2018/ic-news101241708.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:Tiny210驱动之KEY测试
下一篇:最后一页

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

Tiny210字符设备驱动的另外一种写法

//字符设备驱动的另外一种写法:#include "linux/device.h"#include "linux/module.h"#include "linux/kernel.h"#include "linux/fs.h"#include "linux/init.h"#include "linux/delay.h"#include "linux/irq.h"#include "asm/uaccess.h"#include "asm/irq.h"
发表于 2018-10-12

高亮度LED的高精度高性价比测试

可见光发光二极管(LED)兼具高效率和长寿命的特点。目前,它们的应用十分广泛。制造商们通过对LED器件的深入研究已经研制出了具有更高光通量、更长寿命、更多色彩和更高每瓦流明数的新器件。精确而高性价比的测试对于确保器件的可靠性和质量至关重要。LED测试在生产的不同阶段具有不同类型的测试序列,例如设计研发阶段的测试、生产过程中的晶圆级测试、以及封装后的最终测试。尽管LED的测试一般包含电气和光学测量,本文着重探讨电气特征分析,只在适当的位置介绍部分光学测量技术。图1给出了典型二极管的电气I-V曲线。完整的测试应该包含大量 的电压值与对应的电流工作点,但是一般情况下有限的采样点就足以测试出器件的品质因数。图1. 典型LED的直流I-V
发表于 2017-08-28
高亮度LED的高精度高性价比测试

关于高亮度LED测试基础知识加油站 I

正向电压测试 要理解新的结构单元材料,如石墨烯、碳纳米管[1]、硅纳米线[2]或者量子点,在未来的电子器件中是如何发挥其功效的,就必须采用那些能在很宽范围上测量电阻、电阻率、迁移率和电导率的计测手段。这常常需要对极低的电流[3]和电压进行测量。对于那些力图开发这些下一代材料并使之商业化的工程师而言,在纳米尺度上进行精确的、可重复的测量的能力显得极为重要。   光学测试 光学测量中也需要使用正向电流偏置[4],因为电流与HBLED的发光量密切相关。可以用光电二极管或者积分球来捕捉发射的光子,从而可以测量光功率。可以将发光变换为一个电流,并用电流计或者一个信号源-测量单元的单个通道来测量该电流。  
发表于 2016-08-21

关于高亮度LED测试基础知识加油站 II

漏电流测试 当施加一个低于击穿电压的反向电压时,对HBLED两端的漏电流[1](IL)的测量一般使用中等的电压值。在生产测试中,常见的做法是仅确保漏电流不不至于超过一个特定的阈值。   提升HBLED的生产测试的吞吐率 过去,HBLED的生产测试的所有环节都由单台PC来控制。换而言之,在测试程序的每个要素中,必须针对每次测试配置信号源和测量装置,并在执行预期的行动后,将书记返回给PC。控制PC根据通过/不通过的标准进行评估,并决定DUT应归入哪一类。PC发送指令和结果返回PC的过程将耗费大量的时间。   最新一代的智能仪器,包括吉时利公司最新的大功率2651A[2]系统信号源/测量仪
发表于 2016-08-21
关于高亮度LED测试基础知识加油站 II

单器件的LED测试系统

  元器件操控器将单个HBLED(或者一组HBLED)运送到一个测试夹具上,夹具可以屏蔽环境光,且内带一个用于光测量的光电探测器(PD)[1]。需要使用两个SMU:SMU#1向HBLED提供测试信号,并测量其电响应;SMU#2则在光学测量过程中检测光电探测器。     测试程序可以被编程设定为,在一根来自于元器件操控器的数字信号线[作为“测试启动”(SOT)[2]]控制下启动。当仪器探测到该信号时,测试程序启动。一旦执行完毕,则让元器件操纵器的一条数字信号线发出“测试完毕”的标志。此外,仪器的内建智能可以执行所有的通过/不通过操纵并通
发表于 2016-08-21
单器件的LED测试系统

如何提高LED测试的效率并减少产品寿命损耗

: 可以看出,当测试电流更加微小时,如果不使用Low current mode(即相当于普通的电源),则经过很长一段时间的等待以后,电压仍然无法上升到设定值,也就是说待测LED一直未被点亮,无法开始测试。而当使用了IT6200系列电源的low current mode以后,电压快速上升到设定值,继而点亮待测LED,开始进行测试。 结论 面对LED产业的巨大商机和美好前景,艾德克斯IT6200系列直流电源供应器以其保护LED寿命、提高LED测试效率的显著优势,双范围、高压测试等为LED测试所专门打造的功能特点,成为LED产业以及LED测试系统生产、集成厂商首屈一指的选择。
发表于 2014-12-03
如何提高LED测试的效率并减少产品寿命损耗

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved