-
对不起,我不负责货源,你最好通过你的购买渠道问问。如果一定要问我,我也要去销售部门问。
问一下,这个问题对你很重要吗?
谢谢,已经问到了。09年底以后生产的都有ID。这个问题比较重要,因为只有采购的芯片里面有唯一ID才可以更好的加密
-
LS这个“洗刷刷”很给力
-
好像用AVR的还是要多一些
-
今天用H-JTAG-0.91版在keil-MDK3.23版本下终于成功进行了源码级调试,发觉没法显示源码竟然错在用了ARM7的调试方法。以前用其调试ARM7TDMI,只需下载flash一次,就可以进行无限次复位调试。问题竟然就出在H-flasher 选项中没有使用Auto Flash Download!
下载 (4.29 KB)
2010-12-2 01:41
-
引用 22 楼 mzb881 的回复:
按照HCD框架修改完之后,参考hcd,配置了注册表。系统启动时候,可以加载、并进入我的程序中,执行了寄存器配置程序,这个时候测了一下vbus,发现有电,说明寄存器配置起作用了。但是当运行到HcdMdd_CreateHcdObject函数,程序就死机,不能继续执行了。
那位大侠可以指教一下,也不知道目前的这个思路是否正确。
等otg起来后再配置寄存器试试
-
我也刚学不久,买了块板子,觉得有点上当,建议lz自己在掌握基本汇编指令或者c语言的话,可以参考网上的买一块面包板,自己试着连一下芯片的基本电路,至于需要什么自己可以查资料,这个就是个学习的过程,确定一个基本的小目标,做一个简单的硬件控制单元,需要什么元件买什么元件,切忌什么都一起买全了,我就上当了,买了好多不知道用什么好,希望对你有所帮助。
-
自己直接画板先算了吧
-
基于DS18B20的数字温度计设计
#include "DigThermo.h"
/* 延时t毫秒 */
void delay(uint t)
{
uint i;
while(t--)
{
/* 对于11.0592M时钟,约延时1ms */
for (i=0;i0) i--;
DQ = 1; // 产生上升沿
i = 4;
while (i>0) i--;
}
/* 等待应答脉冲 */
void RxWait(void)
{
uint i;
while(DQ);
while(~DQ); // 检测到应答脉冲
i = 4;
while (i>0) i--;
}
/* 读取数据的一位,满足读时隙要求 */
bit RdBit(void)
{
uint i;
bit b;
DQ = 0;
i++;
DQ = 1;
i++;i++; // 延时15us以上,读时隙下降沿后15us,DS18B20输出数据才有效
b = DQ;
i = 8;
while(i>0) i--;
return (b);
}
/* 读取数据的一个字节 */
uchar RdByte(void)
{
uchar i,j,b;
b = 0;
for (i=1;i1; // 取下一位(由低位向高位)
if (btmp)
{
/* 写1 */
DQ = 0;
i++;i++; // 延时,使得15us以内拉高
DQ = 1;
i = 8;
while(i>0) i--; // 整个写1时隙不低于60us
}
else
{
/* 写0 */
DQ = 0;
i = 8;
while(i>0) i--; // 保持低在60us到120us之间
DQ = 1;
i++;
i++;
}
}
}
/* 启动温度转换 */
void convert(void)
{
TxReset(); // 产生复位脉冲,初始化DS18B20
RxWait(); // 等待DS18B20给出应答脉冲
delay(1); // 延时
WrByte(0xcc); // skip rom 命令
WrByte(0x44); // convert T 命令
}
/* 读取温度值 */
void RdTemp(void)
{
TxReset(); // 产生复位脉冲,初始化DS18B20
RxWait(); // 等待DS18B20给出应答脉冲
delay(1); // 延时
WrByte(0xcc); // skip rom 命令
WrByte(0xbe); // read scratchpad 命令
tplsb = RdByte(); // 温度值低位字节(其中低4位为二进制的“小数”部分)
tpmsb = RdByte(); // 高位值高位字节(其中高5位为符号位)
}
/* 主程序,读取的温度值最终存放在tplsb和tpmsb变量中。
tplsb其中低4位为二进制的“小数”部分;tpmsb其中高
5位为符号位。真正通过数码管输出时,需要进行到十进
制有符号实数(包括小数部分)的转换。 */
void main(void)
{
do
{
delay(1); // 延时1ms
convert(); // 启动温度转换,需要750ms
delay(1000); // 延时1s
RdTemp(); // 读取温度
}
while(1);
}
基于DS12C887的实时日历时钟显示系统设计
#include "CalendarClk.h"
/* 从串行口获取数据函数,数据包括:year1,month1,dayofweek1,
dayofmonth1,hour1,min1。如果获取到正确数据则返回1,否则返回0 */
uchar getdata()
{
// 略去
}
/* 设置日历和时钟函数 */
void settime()
{
REG_B = REG_B|0x80; // SET=1,芯片DS12C887处于设置状态
MIN = min1;
HOUR = hour1;
DAYOFWEEK = dayofweek1;
DAYOFMONTH = dayofmonth1;
MONTH = month1;
YEAR = year1;
REG_B = REG_B&0x7f; // SET=0,芯片DS12C887恢复正常数据更新状态
}
/* 获取日历时钟函数 */
void gettime()
{
while (REG_A&0x80==0x00) // 直到UIP=0时,才能读取日历时钟信息 {
{
min2 = MIN ;
hour2 = HOUR;
dayofweek2 = DAYOFWEEK;
dayofmonth2 = DAYOFMONTH;
month2 = MONTH;
year2 = YEAR;
}
}
/* 13位数码管显示年、月、日、星期、时、分 */
void display()
{
// 略去
}
/* 串口初始化函数 */
void init_serial()
{
TMOD = 0x20; // 定时器T1使用工作方式2
TH1 = 250;
TL1 = 250;
TR1 = 1; // 开始计时
PCON = 0x80; // SMOD = 1
SCON = 0x50; // 工作方式1,波特率9600kbit/s,允许接收
}
void main(void)
{
uchar setflag;
init_serial();
/* 设置DV2、DV1、DV0为010,打开芯片DS12C877内部晶振 */
REG_A = REG_A&0xaf; // DV2=DV0=0
REG_A = REG_A|0x20; // DV1=0
REG_B = REG_B&0x7b; // SET=0,时间数据正常更新;DM=0,二进制数据模式
REG_B = REG_B|0x02; // 寄存器B的24/12位置1,24小时时间模式
while (1)
{
setflag = getdata(); // 通过查询方式获取串口数据
/* 如果获取到正确数据,则设置时间 */
if (setflag==0x01)
settime();
/* 调用获取日历时钟函数 */
gettime();
/* 13位数码管显示日历、星期和时间信息 */
display();
}
}
拿去看看改改差不多了吧···
-
我有意,不知道在上海哪儿?
-
第二代CM3,第二版CM3
1样吗?81样吗?
。。。。。。
-
引用 48 楼 gooogleman 的回复:
引用 14 楼 zhy_yzf 的回复:
上拉电阻下拉电阻的总结-转载
上拉电阻:
1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。
2、OC门电路必须加上拉电阻,才能使用。
3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。
4、在COMS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗,提供泄荷通路。
5、芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限增强抗干扰能力。
6、提高总线的抗电磁干扰能力。管脚悬空就比较容易接受外界的电磁干扰。
7、长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效的抑制反射波干扰。
上拉电阻阻值的选择原则包括:
1、从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小。
2、从确保足够的驱动电流考虑应当足够小;电阻小,电流大。
3、对于高速电路,过大的上拉电阻可能边沿变平缓。综合考虑
以上三点,通常在1k到10k之间选取。对下拉电阻也有类似道理
对上拉电阻和下拉电阻的选择应结合开关管特性和下级电路的输入特性进行设定,主要需要考虑以下几个因素:
1. 驱动能力与功耗的平衡。以上拉电阻为例,一般地说,上拉电阻越小,驱动能力越强,但功耗越大,设计是应注意两者之间的均衡。
2. 下级电路的驱动需求。同样以上拉电阻为例,当输出高电平时,开关管断开,上拉电阻应适当选择以能够向下级电路提供足够的电流。
3. 高低电平的设定。不同电路的高低电平的门槛电平会有不同,电阻应适当设定以确保能输出正确的电平。以上拉电阻为例,当输出低电平时,开关管导通,上拉电阻和开关管导通电阻分压值应确保在零电平门槛之下。
4. 频率特性。以上拉电阻为例,上拉电阻和开关管漏源级之间的电容和下级电路之间的输入电容会形成RC延迟,电阻越大,延迟越大。上拉电阻的设定应考虑电路在这方面的需求。
下拉电阻的设定的原则和上拉电阻是一样的。
OC门输出高电平时是一个高阻态,其上拉电流要由上拉电阻来提供,设输入端每端口不大于100uA,设输出口驱动电流约500uA,标准工作电压是5V,输入口的高低电平门限为0.8V(低于此值为低电平);2V(高电平门限值)。
选上拉电阻时:
500uA x 8.4K= 4.2即选大于8.4K时输出端能下拉至0.8V以下,此为最小阻值,再小就拉不下来了。如果输出口驱动电流较大,则阻值可减小,保证下拉时能低于0.8V即可。
当输出高电平时,忽略管子的漏电流,两输入口需200uA
200uA x15K=3V即上拉电阻压降为3V,输出口可达到2V,此阻值为最大阻值,再大就拉不到2V了。选10K可用。COMS门的可参考74HC系列
设计时管子的漏电流不可忽略,IO口实际电流在不同电平下也是不同的,上述仅仅是原理,一句话概括为:输出高电平时要喂饱后面的输入口,输出低电平不要把输出口喂撑了(否则多余的电流喂给了级联的输入口,高于低电平门限值就不可靠了)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
在数字电路中不用的输入脚都要接固定电平,通过1k电阻接高电平或接地。
1. 电阻作用:
l 接电组就是为了防止输入端悬空
l 减弱外部电流对芯片产生的干扰
l 保护cmos内的保护二极管,一般电流不大于10mA
l 上拉和下拉、限流
l 1. 改变电平的电位,常用在TTL-CMOS匹配
2. 在引脚悬空时有确定的状态
3.增加高电平输出时的驱动能力。
4、为OC门提供电流
l 那要看输出口驱动的是什么器件,如果该器件需要高电压的话,而输出口的输出电压又不够,就需要加上拉电阻。
l 如果有上拉电阻那它的端口在默认值为高电平你要控制它必须用低电平才能控制如三态门电路三极管的集电极,或二极管正极去控制把上拉电阻的电流拉下来成为低电平。反之,
l 尤其用在接口电路中,为了得到确定的电平,一般采用这种方法,以保证正确的电路状态,以免发生意外,比如,在电机控制中,逆变桥上下桥臂不能直通,如果它们都用同一个单片机来驱动,必须设置初始状态.防止直通!
2、定义:
l 上拉就是将不确定的信号通过一个电阻嵌位在高电平!电阻同时起限流作用!下拉同理!
l 上拉是对器件注入电流,下拉是输出电流
l 弱强只是上拉电阻的阻值不同,没有什么严格区分
l 对于非集电极(或漏极)开路输出型电路(如普通门电路)提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路输出电流通道。
3、为什么要使用拉电阻:
l 一般作单键触发使用时,如果IC本身没有内接电阻,为了使单键维持在不被触发的状态或是触发后回到原状态,必须在IC外部另接一电阻。
l 数字电路有三种状态:高电平、低电平、和高阻状态,有些应用场合不希望出现高阻状态,可以通过上拉电阻或下拉电阻的方式使处于稳定状态,具体视设计要求而定!
l 一般说的是I/O端口,有的可以设置,有的不可以设置,有的是内置,有的是需要外接,I/O端口的输出类似与一个三极管的C,当C接通过一个电阻和电源连接在一起的时候,该电阻成为上C拉电阻,也就是说,如果该端口正常时为高电平,C通过一个电阻和地连接在一起的时候,该电阻称为下拉电阻,使该端口平时为低电平,作用吗:
比如:当一个接有上拉电阻的端口设为输如状态时,他的常态就为高电平,用于检测低电平的输入。
l 上拉电阻是用来解决总线驱动能力不足时提供电流的。一般说法是拉电流,下拉电阻是用来吸收电流的,也就是你同学说的灌电流?
学习。
甚好
-
DS18B20的程序非常成熟,记得6年前大家就开始用DA18B20,楼主百度或GOOGLE 下,
下载一些你对应处理器(ARM或者单片机)的程序,然后对应测试 ,多读几次,看是否正确?
这样可以先排除硬件问题?或者最后定位是硬件问题
如果最后你下载的程序,读取温度正常,就好好查下 你自己的软件。
另外还注意有些时候DS18B20容易被烧坏,你换一片新的DS18B20试试
-
谢谢你回复我的问题,你说“有些芯片的UART寄存器的收发BUFFER是同一个地址,写它则是发寄存器,读它则是收寄存器,如果是这样的话你出现的问题也就正常了。”我所使用的 因为写和读都是相同的地址所以就固定了,你写的时候就是发送数据,你读的时候就是读取接收到的数据,所以你不管怎么读都读不到你写进去的值,因为读到的是接收数据,如果你没有设置串口接收或者是串口没接收到数据,不管怎么读都是一个固定值。
-
引用 6 楼 myearth 的回复:
优先级是可以搞定了,但ce dispaly驱动里不知在哪加上。
没有考虑过这个问题,
不考虑os安全性,如果要配置的话应该是可以的,首先通过kernel profiler找到gwes调用display driver建立的线程,有可能不止一个,分别在其调用的函数里(display driver中)去配制优先级
哈哈,随便说
-
12月济南招聘会,济南12月招聘会,济南12月招聘会信息,济南招聘会,山东省12月济南招聘会,济南大型招聘会
2009年12月山东济南大中专毕业生供需见面会
—冬季十七城市大型人才集中招聘月
山东欣荣人才服务有限公司常年在山东济南组织大型招聘会,自07年以来共举办了数十场大型人才招聘会,已成为济南市最具规模、人气最旺的现场招聘会之一,取得了广大用人企业和求职者的一致好评。现正值09年招聘的最佳季节,为满足广大用人企业求才,并促进就业的需求,特推出集中招聘月:
2009年12月济南招聘会
第一场:12月19日(周六8:00—14:00)综合类
地点:山东省科技馆(泉城广场东邻)
2009年12月济南招聘会
第二场:12月26日(周六8:00—14:00)综合类
地点:山东省科技馆(泉城广场东邻)
2009年12月济南招聘会 宣传及规模
每届招聘盛会将在报纸、公交车车载电视、电视台等媒体进行长时间、全方位、多层次的宣传,同时在各大专业人才网站进行广泛推广,并将深入省内各高校进行发动宣传,组织各高校应往届毕业生及社会各类人员参会。拟邀企业200多家,预计到场人数上万人次。本届招聘会将邀请省内各类有人才需求的高新技术、集体、民营股份制企业及其他企事业单位参会,提供就业岗位5000多个。
2009年12月济南招聘会报名须知:
报名材料:企业营业执照及经办人身份证复印件、企业招聘信息(300字以内电子文档)
报名电话:(0531)82906016 传真:(0531) 87907039 Email: xinronghr@126.com
2009年12月济南招聘会咨询顾问:刘洪双 13969139981
2009年12月济南招聘会会务服务
1、 免费提供桌椅,免费制作写真海报一张(规格110cm×80 cm) ,免费为2名工作人员提供午餐和饮用水及招聘文具一套 ,工作人员可上门办理相关手续。
2、 网站服务:可免费在山东人才信息网(www.sdrencai.com)发布一个月。
3、 推荐服务:利用我们庞大的人才库信息,针对您的需求,推荐适合您企业的人才。
2009年12月济南招聘会
泉城广场(科技馆):乘1、3、5、14、19、36、44、49、66、70、80、82、85、55、101、102、106、123、K100、K96、K52路车到泉城广场下车。
2009年12月济南招聘会详情请登陆山东人才信息网(www.sdrencai.com)查询相关信息
-
DSP应该在ARM之前学
至于FPGA,我看招人的时候都把它归入硬件
-
过滤驱动过载在注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}下,
我想知道在SCSI派遣函数里构造IRP能读取U盘扇区吗?
或者是在PNP派遣函数的IRP_MN_START_DEVICE里能读取到吗?
-
我哪儿弄错了么?为什么100分连个帮顶的都没有...
请各位大哥大姐们帮帮忙啊/zk
-
价钱我也不知道应该报多少吧,就私下谈吧.
Q 50580776
EMAIL: gmb_669@163.com
手机: 13418795228
-
需要漫长再漫长的等待。