用16M的SD卡启动树莓派,在U盘上安装和运行Linux
树莓派官方的操作系统Raspbian最少需要4G的SDCard,如果你恰好有比较小的SD卡怎么办呢?设计上树莓派只能从SD卡引导启动,但我们可以在SD卡上装一个最小的引导系统,然后把树莓派引导到U盘上启动。SD卡连续运行,读写比较频繁也容易损坏(我已经坏掉3张了。。。),相比之下U盘价格便宜些,读写速度可以比SD卡还高。
制作引导SD卡
这个引导系统只需要16M容量的SD卡,先把SD卡格式化成FAT(windows),然后拷贝下面的文件到根目录。
git clone https://github.com/hugozhu/mini_raspbian_boot
修改 cmdline.txt
中的 root=/dev/mmcblk0p2
为 root=/dev/sda2
以指定用U盘启动
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait cgroup_enable=memory
安装操作系统Raspbian到U盘
方法和安装到SD卡一样,在Mac上使用 dd
命令安装,在Windows上可以用win32diskimager:
sudo dd bs=1m if=2015-01-31-raspbian.img of=/dev/disk4 #/dev/disk4
扩展分区
如果你的U盘容量大于4G,那么上一步安装完后,你的U盘只能看到4G空间,大容量的SD卡的这个问题可以通过自带的raspi-config
命令来解决。
Linux下可以用fdisk
来解决,我的方法是把该U盘插到已经正常启动的树莓派的USB口上,正常识别后,执行sudo fdisk /dev/sda
- 按
p
后打印出分区表:
/dev/sda1 8192 122879 57344 c W95 FAT32 (LBA)
/dev/sda2 122880 6399999 3138560 83 Linux
记住/dev/sda2的起始点
122880',然后按
d,删除掉二个分区,接着按
n重新创建一个分区,起始点就设置为
122880`,结束点可以设置为最大最后按
w
保存新的分区表
插上引导SD卡和系统U盘后树莓派就可以愉快的运行起来了,如果U盘的速度足够快,你会发现系统还变快了。
参考文章
用Telegram和树莓派交互
用树莓派2代打造智能家庭路由
树莓派的GPIO接口输出电流限制
树莓派提供了一个连接头让我们访问CPU的17个GPIO接口,如下图
这些接口可配置成输入或输出。本文主要讨论GPIO引脚作为输出时电流的限制。
阻抗 (impendance)
阻抗和和电阻的区别(resistance)在于电阻的阻值是固定的,不会随着电流变化,阻抗则不然,可能随着外部变化,如电流或频率变化。从另一个角度来说,电阻是线性的,但阻抗不是。比如放大器的阻抗会随着输出的信号频率变化。
树莓派的的每个GPIO引脚都有一个寄存器可以设置引脚的驱动强度,也就是在保持输出电压为逻辑0和1的情况下,可以改变阻抗的大小从而改变GPIO引脚的输出电流大小。
通过如下电路测量相同电流下不同阻抗对应的GPIO电压输出(其中用到了一个电位器调节电流保持恒定):
通过计算后,下表是当输出电流为2,4 … 16mA时,对应的阻抗大小以及如果发生短路时的短路电流大小。
可以看出短路电流都是超过16mA的。
一个发光二极管压降约为1.52.0v,工作电流为310v
GPIO引脚的电流是通过板上的3.3V电压调整器输出的,树莓派是按平均每个引脚3mA来设计的,所以总的电流不能超过17 * 3 = 51mA。
结论
树莓派引脚电流大小的限制是:每个引脚最大输出电流为16毫安(mA),且同一时刻所有引脚的总输出电流不超过51毫安