tag 标签: RK3562

相关博文
  • 热度 1
    2024-8-6 14:42
    309 次阅读|
    0 个评论
    MAX31865是简单易用的热敏电阻至数字输出转换器,优化用于铂电阻温度检测器(RTD)。外部电阻设置RTD灵敏度,高精度Δ-Σ ADC将RTD电阻与基准电阻之比转换为数字输出。MAX31865输入具有高达±45V的过压保护,提供可配置的RTD及电缆开路、短路条件检测。适用于医疗、工业、温度计算、卫星、气象、阻值计算等高精温度设备,应用范围非常之广泛。 飞凌嵌入式最新推出的OK3562J-C开发板上预留出了SPI2接口,位于P8插针引脚上: SPI2_CLK_M0、SPI2_CSN0_M0、SPI2_MOSI_M0、SPI2_MISO_M0。 本篇文章,将为大家介绍在OK3562J-C开发板上使用SPI2挂载MAX31865(数字式RTD温度传感器)芯片的方法。 1. 修改思路 添加一个SPI设备的思路为: 在设备树中添加描述 → 设备树描述中对应设备驱动 → 设备驱动添加到内核 2. 修改方法 (1)MAX31865模块支持2线、3线、4线接线方式,这里我们选用3线方式接线。3线连接是一种折中方案,比4线方案少一条引线。为补偿导线上的压降,从(RTDIN+ RTDIN-)中减去FORCE+和RTDIN+之间的电压,利用FORCE2对输入采样实现。如果电缆电阻具有很好的一致性,即可消除电缆电阻引入的误差。接线之前需要在模块上焊接一下,按照下图焊接成3线模式。 (2)在设备树里添加MAX31865的相关描述,因为我们是3线的接法,所以我们需要添加maxim,3-wire参数。 3. 将驱动编译成模块 (1)在内核源码/drivers创建max31865文件夹,添加max31865.c和Makefile文件。 (2)修改父目录/kernel/drivers/Makefile文件,执行全编译操作,修改如下: /drivers/max31865/Makefile内容如下: obj-m += max31865.o /kernel/drivers/Makefile添加如下代码: obj-y += max31865 再执行 ./build.sh kernel脚本编译内核,即可在 /drivers/max31865目录下生成ko模块。 (3)将max31865.ko 拷到OK3562J-C开发板中,执行insmod max31865.ko加载。 4. 测试 使用22Ω的电阻模拟铂电阻,使用以下命令查看ADC原始值。 cat /sys/bus/iio/devices/iio:device2/in_temp_raw 可以看到22Ω的电阻,ADC的值是1655,对比芯片手册中的值,发现是正常的,对应的温度大概在-190℃左右。 至此一个新的MAX31865(数字式RTD温度传感器)设备添加成功,开发者可以根据读到的adc原始值,开发自己的应用去对应现在测到的温度。 以上就是OK3562J-C开发板上使用SPI2挂载MAX31865(数字式RTD温度传感器)设备的方法,希望能够对大家的项目开发有所帮助。
  • 热度 1
    2024-8-6 14:15
    177 次阅读|
    0 个评论
    MAX31865是简单易用的热敏电阻至数字输出转换器,优化用于铂电阻温度检测器(RTD)。外部电阻设置RTD灵敏度,高精度Δ-Σ ADC将RTD电阻与基准电阻之比转换为数字输出。MAX31865输入具有高达±45V的过压保护,提供可配置的RTD及电缆开路、短路条件检测。适用于医疗、工业、温度计算、卫星、气象、阻值计算等高精温度设备,应用范围非常之广泛。 飞凌嵌入式最新推出的OK3562J-C开发板上预留出了SPI2接口,位于P8插针引脚上: SPI2_CLK_M0、 SPI2_CSN0_M0、 SPI2_MOSI_M0、 SPI2_MISO_M0。 本篇文章,将为大家介绍在OK3562J-C开发板上使用SPI2挂载MAX31865(数字式RTD温度传感器)芯片的方法。 1. 修改思路 添加一个SPI设备的思路为: 在设备树中添加描述 → 设备树描述中对 应设备驱动 → 设备驱动 添加到内核 2. 修改方法 (1)MAX31865模块支持2线、3线、4线接线方式,这里我们选用3线方式接线。3线连接是一种折中方案,比4线方案少一条引线。为补偿导线上的压降,从(RTDIN+ RTDIN-)中减去FORCE+和RTDIN+之间的电压,利用FORCE2对输入采样实现。如果电缆电阻具有很好的一致性,即可消除电缆电阻引入的误差。 接线之前需要在模块上焊接一下,按照下图焊接成3线模式。 (2)在设备树里添加MAX31865的相关描述,因为我们是3线的接法,所以我们需要添加maxim,3-wire参数。 3. 将驱动编译成模块 (1)在内核源码/drivers创建max31865文件夹,添加max31865.c和Makefile文件。 (2)修改父目录/kernel/drivers/Makefile文件,执行全编译操作,修改如下: /drivers/max31865/Makefile内容如下: obj-m += max31865.o /kernel/drivers/Makefile添加如下代码: obj-y += max31865 再执行 ./build.sh kernel脚本编译内核,即可在 /drivers/max31865目录下生成ko模块。 (3)将max31865.ko 拷到OK3562J-C开发板中,执行insmod max31865.ko加载。 4. 测试 使用22Ω的电阻模拟铂电阻,使用以下命令查看ADC原始值。 cat /sys/bus/iio/devices/iio:device2/in_temp_raw 可以看到22Ω的电阻,ADC的值是1655,对比芯片手册中的值,发现是正常的,对应的温度大概在-190℃左右。 至此一个新的MAX31865(数字式RTD温度传感器)设备添加成功,开发者可以根据读到的adc原始值,开发自己的应用去对应现在测到的温度。 以上就是OK3562J-C开发板上使用SPI2挂载MAX31865(数字式RTD温度传感器)设备的方法,希望能够对大家的项目开发有所帮助。
  • 2024-7-31 17:05
    0 个评论
    RK3562小体积金手指系列核心板基于瑞芯微四核Cortex-A53+Cortex-M0处理器设计,工作主频高达2GHz,最高搭载4GB高速LPDDR4、32GBeMMC。该核心板拥有204Pin脚,尺寸仅为67.6mm*45mm,支持千兆网、USB3.0、串口、PCIE、HDMI等丰富外设资源,非常适合于高性能、高性价比的工业应用场景。 图1RK3562核心板 RK3562J/RK3562是一款专为消费电子及工业设备设计的高性能、低功耗四核应用处理器。以下是它的一些主要特点: 采用22nm工艺,四核ArmCortex-A53+Cortex-M0,主频最高可达2.0GHz; 神经网络处理单元具有高达1TOPS的处理性能,与TensorFlow、PyTorch、Caffe、ONNX、MXNet、Keras、Darknet等深度学习框架兼容; 集成MaliG52GPU,支持OpenGLES1.1/2.0/3.2、OpenCL2.0和Vulkan1.1; 支持H.2641080p@60fps解码、H.2654K@30fps解码和H.2641080p@60fps编码; 图2RK3562处理器框图 核心板搭配功能丰富的开发板,主要资源包括网口、串口、USB、4G、WiFi、显示等接口,满足功能开发及性能评测需求。开发板驱动资源包括: 操作系统Linux或Andriod eMMC驱动 显示驱动 触摸屏驱动 以太网驱动 USB驱动 SPI驱动 IIC驱动 PWM驱动 IO驱动 音频输入、输出驱动 TF/SD卡驱动 图3RK3562开发板 小体积RK3562核心板是统一金手指家族中的一员,旨在实现一块底板兼容多个处理器系列,目前支持的型号有:RK3576、RK3568、RK3562、芯驰D9、全志T5、NXPi.MX8MP,该系列适用于以下ARM+Linux项目场景: 1.需要统一硬件,但主控平台要形成高低搭配; 2.保障产品生命周期,防止未来因主处理器停产导致的改版; 3.平台选择待定,在开发前进行多品类的性能评估; 图4统一金手指系列
  • 热度 1
    2024-7-29 10:23
    501 次阅读|
    0 个评论
    多核异构系统是⼀种使同⼀颗SoC芯片中不同核心分别独立运行不同平台的计算系统。通过合理的处理器核心及外设资源划分,使⼀颗SoC芯片能够独立运行Linux系统和实时性系统,在满足系统软件功能和硬件外设丰富性要求的同时,也满足系统的实时性要求,具有突出的性价比优势和产品体积优势。 1. 瑞芯微多核异构系统 “瑞芯微多核异构系统”是瑞芯微提供的⼀套通用多核异构系统解决方案。 在运行平台方面: Linux提供标准的Linux Kernel,RTOS提供开源的RT-Thread ,Bare-metal提供基于RK HAL硬件抽象层的裸机开发库。同时,瑞芯微多核异构系统支持客户自行适配更多的运行平台,例如可以基于RK HAL硬件抽象层适配指定的RTOS等。 在处理器核心方面 : 瑞芯微多核异构系统支持SoC中同构的ARM Cortex-A核心独立运行。也支持SoC中异构的ARM Cortex-M或RISC-V核心独立运行。瑞芯微多核异构系统通过合理的处理器核心资源划分,将适当的任务分配到最适合的核心进行处理,从而使SoC发挥出更优秀的性能和能效表现。 目前,瑞芯微多核异构系统采用无监督的AMP方案。不使用虚拟化管理,从而在运行实时性系统时获得更快的中断响应,以满足电力、工控等行业应用中严苛的硬实时性要求。 2. RK3562J处理器核心及AMP支持情况 处理器核心 AMP支持情况 3. 中断嵌套机制 中断嵌套是一种有效的中断处理机制,它允许系统根据中断的优先级来响应和处理中断,从而确保关键任务能够及时得到处理,具有实时性高、灵活性好、响应快速等特点,但传统的Linux系统为了简化设计、提高系统的稳定性和可预测性、减少资源竞争和死锁等风险、以及提高兼容性和可维护性,不支持中断嵌套。这种设计选择使得Linux内核在许多应用场景中表现出色,但对于高实时性场景下的应用就显得力不从心了。 4. 案例实践分享 开发板型号:OK3562J-C 资料版本:OK3562-C_Linux 5.10.198_用户资料_R1 测试思路: 使用两个GPIO,分别为GPIO4B1和GPIO0B0,其中GPIO4B1设置为输出,GPIO设置为输入并且中断配置为下降沿触发。硬件上短接GPIO4B1和GPIO0B0。使用Timer4定时器每秒产生一个定时器中断,在中断处理函数中控制GPIO4B1产生一个下降沿并延时,如果出现了GPIO0B0中断处理函数中的打印信息则证明成功发生了中断抢占。 测试步骤: (1)编写测试程序fltest_irq_preempt.c开启TIEMR4和GPIO0B0的中断并且将GPIO0B0配置为下降沿触发,在定时器中断处理函数中将GPIO4B1拉高拉低,使之触发GPIO0B0的中断,在GPIO0B0的中断处理函数中打印一句话来表明当前进入了GPIO0B0的中断; (2)修改中断路由,添加TIMER4和GPIO0的中断并使之绑定给CPU3,并设置TIMER4的中断优先级高于GPIO0; (3)重新编译镜像并烧写; (4)在uboot菜单中打开AMP并重启OK3562J-C开发板,此时RTOS调试串口打印如下: 按tab键可以打印出当前的所有命令: 可以看到我们的命令已经注册成功了。 现在执行我们刚刚编写的fl_irq_test这条命令,即可看到效果: 可以看到GPIO0B0的中断抢占了当前的TIMER4中断。 我们将二者的优先级调换一下再重新编译烧写,然后再次执行该程序,可以看到GPIO0B0的中断在TIMER4中断结束之后才被处理,未发生抢占。