当前位置: 首页 > wzjs >正文

wordpress 输出时间谷歌广告优化

wordpress 输出时间,谷歌广告优化,网页设计与制作教程第5版,网站建设平台计划书一、背景 近期项目中,有一个需求,要使用RK3566 Android12平台适配一款HG24C02MM/TR EEPROM芯片,通过i2c实现主板与EEPROM芯片的数据通讯。废话不多说,来看资料。 二、芯片资料 HG24C02 / HG24C04 / HG24C08 / HG24C16是提供2048…

一、背景

近期项目中,有一个需求,要使用RK3566 Android12平台适配一款HG24C02MM/TR EEPROM芯片,通过i2c实现主板与EEPROM芯片的数据通讯。废话不多说,来看资料。

二、芯片资料

HG24C02 / HG24C04 / HG24C08 / HG24C16是提供2048/4096/8192/16384位串行电可擦除和可编程只读存储器(EEPROM),组织为256/512/1024/2048个8位字。该设备经过优化,适用于许多工业和商业应用,其中低功耗和低电压操作是必不可少的。HG24C02 / HG24C04 / HG24C08 / HG24C16有节省空间的8引脚DIP, 8引脚SOP, 8引脚MSOP, 5引脚SOT23封装,通过两线串行接口接入。翻译不太准确,直接看原文:

简单讲,在下使用的这款芯片为2Kbit(256x8)的串行EEPROM,采用I2C接口通信。要通过I2C做通讯,该芯片采用SDA引脚实现双向的数据传输,SCK作为I2C的时钟输入。。。表格如下:

引脚号引脚名称功能描述
1A0设备地址输入位 0(可硬件配置,用于多设备区分)
2A1设备地址输入位 1(可硬件配置,用于多设备区分)
3

A2

设备地址输入位 2(可硬件配置,用于多设备区分)
4GND地(GND)(电源负极,0V参考)
5SDA串行数据线(双向数据传输,开漏输出,需上拉电阻)
6SCL串行时钟线(I²C 时钟输入,上升沿采样数据)
7WP写保护(高电平禁止写入,低电平允许写入)
8VCC电源正极(典型电压:1.7V~5.5V)

这里值得留意的是A0、A1、A2这三个引脚,通过查看硬件的配置,设定其电平高低为0还是1,以便于区分多个设备,比如在下的项目就采用两个HG24C02芯片,那么就得做区分处理,让软件能够识别到不同的芯片,这点下文细谈。

在下在开发过程中真正采用到的信息资料也就上述内容,其余的有兴趣可从datasheet规格书中了解。

三、硬件接线

鉴于保密需求,该方面不作展示。

四、软件调试

1、DTS配置

首先得先搞懂EEPROM的IIC设备地址是哪个,如同前面提到过的,这里我们要去看硬件上A0、A1、A2引脚的接线。在下的电平配置分别是:

第一个HG24C02芯片为A0=0,A1=0,A2=1

第二个HG24C02芯片为A0=0,A1=1,A2=1

这里呢我们看到芯片规格书中的下图所示

可以得知在下使用的芯片设备地址常规配列为:

1 0 1 0 A2 A1 A0 R/W

通常R/W位值默认是0,那么,

第一个芯片的地址的二进制序列为

10101000

右移一位,得到

01010100

化为16进制,得到的值即为该芯片的I2C设备地址:

0x54

同理,第二个芯片的地址的二进制序列为

10101100

右移一位,得到

01010110

转换16进制,得到第二个芯片的I2C设备地址:

0x56

那么dts中配置如下:

&i2c3 {status = "okay";pinctrl-names = "default";pinctrl-0 = <&i2c3m1_xfer>;	eeprom@54{compatible = "atmel,24c02";reg = <0x54>;// pagesize = <8>;status = "okay";};};&i2c5 {status = "okay";pinctrl-names = "default";pinctrl-0 = <&i2c5m0_xfer>;eeprom@56{compatible = "atmel,24c02";reg = <0x56>;// pagesize = <8>;status = "okay";};
};

其中,驱动部分我们使用at24c02的驱动,因为HG24C02和AT24C02在硬件接口、通信协议以及功能逻辑上完全兼容,属于同类型的I2C EEPROM存储设备。该驱动在RK的SDK中已经适配,我们直接调用即可。

通过查看对应驱动的Makefile文件和Kconfig文件可知,我们需同步打开配置如下:

CONFIG_EEPROM_AT24=y

2、调试测试

接下来,编译烧录系统,我们用命令查看i2c3和i2c5上的设备:

rk3566:/ # i2cdetect -y 30  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- UU -- -- -- -- -- -- -- 5c -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --rk3566:/ # i2cdetect -y 50  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- UU -- -- -- -- -- -- -- 5e --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

可以知道,我们在0x54和0x56上的两个i2c设备的内核驱动已经成功加载,当然,这里也可以通过log查看驱动加载的流程。接下来,我们查看生成的EEPROM节点,以I2C5为例,如下

rk3566:/ # cd /sys/bus/i2c/devices/5-0056/
rk3566:/sys/bus/i2c/devices/5-0056 # ls
5-00560  driver  eeprom  modalias  name  of_node  power  subsystem  uevent
rk3566:/sys/bus/i2c/devices/5-0056 # echo "Hello World" > eeprom
rk3566:/sys/bus/i2c/devices/5-0056 # cat eeprom
Hello World
er eeprom modalias name of_node power subsystem uevent
5-26 09:00:44/sys/bus/i2c/devices/5-0056/eeprom����������������������������������������������������������������������������������������������������������������������������������������������
rk3566:/sys/bus/i2c/devices/5-0056 #

成功加载驱动的话,会生成有一个EEPROM节点,通过echo命令往里面写值,可以看到,cat命令后能输出我们先前输入进去的内容"Hallow World"。到这里,我们基本上打通了这个HG24C02芯片的底层配置。为了方便后续Android系统服务(比如hal或vendor进程)访问这些EEPROM设备,我们再把它们的权限组修改,如下配置:

Index: device/rockchip/rk356x/init.rk356x.rc
===================================================================
--- device/rockchip/rk356x/init.rk356x.rc       (revision 6666)
+++ device/rockchip/rk356x/init.rk356x.rc       (revision 6667)
@@ -44,6 +44,12 @@
on boot...... # reduce schedul time to improve io performancewrite /sys/kernel/debug/sched_features NO_ENERGY_AWARE
+
+    chown system system /sys/bus/i2c/devices/3-0054/eeprom
+    chmod 0660 /sys/bus/i2c/devices/3-0054/eeprom
+
+    chown system system /sys/bus/i2c/devices/5-0056/eeprom
+    chmod 0660 /sys/bus/i2c/devices/5-0056/eepromon init# Increased power consumption and CPU in exchange for memory

至此,完成整个开发流程。

五、参考资料

1、RK3568-适配at24c04模块_rk3568 i2c地址范围-CSDN博客https://blog.csdn.net/qq_42952079/article/details/134054118

2、RK3566调试eeprom_内核配置eeprom-CSDN博客https://blog.csdn.net/professionalmcu/article/details/126934556

3、24C02原理图设计+管脚配置+管脚描述_24c02引脚图原理图-CSDN博客https://blog.csdn.net/XL__MAX/article/details/87913634

4、AT24C02 E2PROM芯片详解_24c02地址-CSDN博客https://blog.csdn.net/as480133937/article/details/105472659

5、24C02 EEPROM详解-CSDN博客https://blog.csdn.net/qq_45386946/article/details/108182813

http://www.dtcms.com/wzjs/210446.html

相关文章:

  • 什么行业做网站多广告推广平台
  • 庆阳网络营销江苏seo推广
  • 网站服务器有什么用百度官方客户端
  • 茂名建设局网站软考培训机构排名
  • 南京浦口做网站网站设计框架
  • .net做的网站代码外贸推广平台有哪几个
  • 网站建设费怎么入账软文代写兼职
  • 韩城网站建设引擎优化seo怎么做
  • 昆明的房产网站建设买卖友链
  • 绵阳 网站开发商品推广与营销的方式
  • 网站模板 外贸工厂长沙有实力seo优化公司
  • 响应式布局的缺点银川seo优化
  • 一站式婚庆公司微信推广软件有哪些
  • 东营网站建设电话seo是什么职业
  • 做网站的的步骤怎么写百度客服电话
  • 做网站流量nba中国官方网站
  • 在自己网站上做销售在工商要办什么手续爱站网长尾挖掘工具
  • 好用的网站模板2345纯净版推广包
  • 有什么网站做可以国外的生意网络营销能干什么工作
  • 网页制作与设计考的在哪查房seo怎么快速提高排名
  • 邯郸网站建设代理百度搜索排行榜前十名
  • 女生做网站推广苏州网站建设书生
  • 昆山高新区规划建设局网站电商推广平台
  • 西装定制seo优化流程
  • 建设网站要多少费用烟台网络推广
  • wordpress咋建站排名轻松seo 网站
  • 蜜雪冰城网站建设策划方案seo引擎搜索入口
  • 武汉 网站北京seo教师
  • 网站建设依循的原则免费创建自己的网站
  • 专做会议推广的网站重庆网站搭建