[i.mx6solo Dev] Part 1. Checklist of hardware

This is the first part of all my words on the development on freescale‘s imx6 family SOC.

As one knows,  whatever embedded products you are designing or developping, the hardware is the one which should be stable before the software, at least the AP(Application Processor itself).

During the development process, some aspects are encountered:

1. Voltage supply to the AP

Nowadays, especially in android based products, PMIC is used very vastly for power-saving.

According to the hardware design, PMIC‘s voltage output will be used accordingly.

For MMPF0100 family, by default, SW3A/B are in the single-phase mode, accordingly, which means there is only one output from SW3A/B.

For our requirement, SW3A/B should be programmed to independent-phase mode.

In single-phase mode,  the max driving current from SW3A/B is 2500mA, that is 2.5A

While in the independent-phase mode, the max driving current for SW3A or SW3B is the same, 1.25A, that is 1250mA, half of 2500mA.

For that, MMPF0100NP is used to be reprogramemd before soldering it on the board.

Point: note the voltage for AP.

2. Review the schematic diagram

On our board, MCP is used, which integrates eMMC and LPDDR2 together.

During the development in U-boot, it‘s found that eMMC in MCP could not work as expected.

By analyzing the signal captured with Oscilloscope, it seems the eMMC cmds are sent from the AP correctly without doubts, but the MCP could not act accordingly.

After reviewing the schematic diagram, well, one wire from AP is connected to the wrong pin in MCP.

Point: DO NOT just listen to what the hardware engineer said.

One should investigate by oneself right starting from the simplest code which is in your charge to accumulate the evidence to make it clear that sth. must be wrong in the hardware aspects, like schematic diagram, layout, etc. Nothing is impossible. DON‘T just listen but one should verify that with one‘s own test.

3. GPIO settings for booting

  Whatever values you want AP to sample on those GPIO pins while booting, high or low(1,or 0), one should make sure that the input GPIO pins for booting are really pulled-up or pulled-down in reality accordingly. This is because, during booting, those GPIO pins are open-drain,which means they are high(1) even without pulling them up on the board. That is fake and lead you in a wrong way, making you so confused and wasting your time.

If one does not pull the EIM_EB3 pin down to GND, the USB controller in AP may not work, and the power supply current will be in a lower level, of course, the USB serial downloader mode will not work well as one expects.

Point:  watch out the GPIO pins usd during booting.

To be continued.

[i.mx6solo Dev] Part 1. Checklist of hardware,布布扣,bubuko.com

时间: 2024-08-11 09:51:48

[i.mx6solo Dev] Part 1. Checklist of hardware的相关文章

virtio network驱动分析

本文以virtio网络驱动为例,分析virtio驱动是如何处理网络IO的,驱动的定义如下 static struct virtio_device_id id_table[] = { { VIRTIO_ID_NET, VIRTIO_DEV_ANY_ID }, { 0 }, }; static unsigned int features[] = { VIRTIO_NET_F_CSUM, VIRTIO_NET_F_GUEST_CSUM, VIRTIO_NET_F_GSO, VIRTIO_NET_F_M

20150517 Linux文件系统与设备文件系统

20150517 Linux文件系统与设备文件系统 2015-05-17 Lover雪儿 注:本文参考书籍:华清远见-<Linux 设备驱动开发详解>第五章,大概内容如下,具体内容还请观看原书. 一.devfs(设备文件系统) devfs(设备文件系统)是由linux2.4内核引入的,具有如下优点: ①可以通过程序在设备初始化时在/dev目录下创建设备文件,卸载时把它删除. ②设备驱动程序可以指定设备名.所有者和权限位,用户空间中人可以修改. ③不需要为设备驱动程序分配主设备号以及处理次设备号

NTP配置实践

前言 NTP(Network Time Protocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议.无论是平时使用的私人计算机还是在工作中搭建的服务器集群,时间的统一性和准确性是十分重要的.本文以自己公司的NTP配置实践过程为例,过程本身并不复杂,原理部分请参考扩展阅读. 时间同步真的很重要 更新历史 2015年06月26日 - 初稿 阅读原文 - http://wsgzao.github.io/post/ntp/ 扩展阅读 NTP - http://www.ntp.org/

基于AutoYaST自动化安装SuSE实践

前言 在金融行业中我所接触的操作系统主要是AIX和SLES(SuSE Linux Enterprise Server),也许大家平时用得更多是CentOS,虽然有部分差异但原理都是相通的,SMIT和YaST也是灰常实用的功能,推荐大家有机会尝试体验下.因为网上关于SuSE自动化部署的参考文章较少,这套自动化部署方案已经被验证并在生产系统使用了1年半,配置相对成熟和稳定.遵循Don't Repeat Yourself原则,本文主要介绍基于AutoYaST实现半自动化SuSE定制光盘和PXE网络全自

Suse 基于AutoYaST自动化安装

前言 在金融行业中我所接触的操作系统主要是AIX和SLES(SuSE Linux Enterprise Server),也许大家平时用得更多是CentOS,虽然有部分差异但原理都是相通的,SMIT和YaST也是灰常实用的功能,推荐大家有机会尝试体验下.因为网上关于SuSE自动化部署的参考文章较少,这套自动化部署方案已经被验证并在生产系统使用了1年半,配置相对成熟和稳定.遵循Don't Repeat Yourself原则,本文主要介绍基于AutoYaST实现半自动化SuSE定制光盘和PXE网络全自

Android7.1 移植 GPS Ublox HAL

找到 Ublox 的 驱动包. 网上找了很久没有找到,后面随便在网上搜索了一个 3.1版本的. 放入 Android 源码的 hardware 目录下 在 Android 板级文件里面添加文件添加GPS 的驱动. 主要是如下两个文件 device/rockchip/common/BoardConfig.mk 310 BOARD_HAS_GPS ?= true 311 BOARD_GPS_TYPE ?= ublox device/rockchip/rk3288/system.prop persis

Security Checklist (路由器安全checklist)

Security Checklist Website by     Michael Horowitz  Home | Introduction | Router Bugs | Security Checklist | Tests | Resources | About | The most expert person in the world can only make a router as secure as the firmware (router OS) allows. The foll

hardware information

常用命令整理如下:查看主板的序列号: dmidecode | grep -i 'serial number'用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart)查看CPU信息:cat /proc/cpuinfo [dmesg | grep -i 'cpu'][dmidecode -t processor]查看内存信息:cat /proc/meminfo [free -m][vmstat]查看板卡信息:cat /proc/pci查看显卡/声卡信息:

What is special about /dev/tty?

ls -la /dev/tty shows the output: crw-rw-rw- 1 root tty 5, 0 Dec 14 22:21 /dev/tty The 'c' means it's a character device. tty is a special file representing the 'controlling terminal' for the current process. Character Devices Unix supports 'device f