Filed under 电子制作

BegleBone使用感受

刚到手时,发现这货居然有个RJ45的接口,太老土了吧!现在谁用有线网络,而且这么小的印刷这么精美设备上搞这么大个头,难看,鸡肋如鲠在喉。原来这个网络功能是Ti ARM自己带的,想来设计者觉得不能浪费了…

于是taobao上买了个二手Belkin F5D7050,20¥,据说这个USB无线网卡比较好弄,结果死活连不上AP,Google了无数页面…  换了Angstrom的其他版本也不行。后来换成Ubuntu,120.4的哦,不需多少配置,直接就起来了!还是这个版本好,代码新,也没有用busybox,busybox是啥?android都用这个,真正的Linux才不屑用,而且有可以用apt-get了,也可以装node.js, rails,跟一般linux pc没啥区别,ARM强啊,x86能干的我都能干。有点废话,话说iPad都火成那样了你才后知后觉,虽说android跟这个bone没啥本质区别,但是自己亲自装了个ubuntu上去才能感到设备的强悍啊。刚拿到Goolge G1 android手机,火速写了个java hello world,渣神奇啊,这小东西能跑jvm?有何神奇呢?搞软件的门外汉。看过《喧哗与骚动》没?手法高超啊。

已知问题:

1)cpu运行才270MHZ,太小了,即使我用外接5V电源亦是如此。Angstrom USB连结都有500MHZ啊亲。大一那会儿,第一台电脑,intel mmx 113,麻麻叉113MHZ?(现在发现ubuntu会自动调整cpu频率,运行cpufreq-info可以查看,运行cpufreq-set可以设置电源管理策略。所以用cat /proc/cpuinfo得到的是不完整的信息。)

2)无线不稳定。长时间运行或者下载量大点就挂了。

3)刚才嫌apt-get到的Rails版本太低,gem install rails又太慢,试了下,proxychains + ssh tunnel居然也可以一样用。就是Installing ri documentation的时候慢的不行。如果装sqlite3出现ERROR: Failed to build gem native extension.的问题,安装libsqlite3-dev包。

4)Ubuntu默认用户名/密码是ubuntu/temppwd,这个密码太麻烦,想要修改成简单的,passwd说”new password is too simple”。改正的方法是修改/etc/pam.d/common-password,去掉其中的obscure字符即可。

为BeagleBone配个显示器吧

原装的LCD CAPE要900¥,日,抢钱啊,taobao上搜“tft 液晶屏”几十块的一大堆。可这东西没有显示器不能显示其强大啊(按照其文档说所,这个可以用Node.js来展现),自己折腾个吧。

1. Sharp的货,4.3″,最早在Sparkfun上发现,PSP用,Sharp的货啊,ISP硬屏么?不管怎么样听上去就NB轰轰。taobao卖130¥。接口40Pin,8位RGB数据线:R0~R7,G0~G7,B0~B7。不知道这是何种接口。这种大的LCD可能没有带drive芯片。可以直接和ARM连结。友善之臂的tiny6410就是这么做的,我没看到中间有驱动芯片。这种工业级板子都只有扁平线,要自己弄的话,还得买个FPC连接器。

2. 带驱动芯片的小屏。比如taobao上的这个这个。LCD控制芯片分别为SSD1289和ILI9325,数据线分别为16根和18(3*6=18)根,奇怪。但是都提供转接板,这样容易焊接也容易使用,价格也很便宜。可能这种模式的TTF是给AVR一般的MCU用的。

3.我自己有个Zune mp3 player,由于不能显示中文。这货屏幕还算细腻,拆下来看了下,23针接口,双排的,间距0.3mm,要个FH26-23S-0.3SHW连接器。也不知道这货是否带控制芯片,点亮估计有点难。

这些屏幕如果使用ARM+Linux做系统,哪种更方便呢?是否需要驱动?这个我还没有看到例子。

Ubuntu with ARM

陡然想看看UBUNTU能否跑在ARM上面。这里有总的信息,因为ARM的种类也比较多,所以不是所有的都能跑ubuntu。先要确定是Linux很早就能跑在ARM上了,但是ubuntu这种桌面系统不光只有kernel,还有很多其他的软件。

现在能支持的ARM一般是OMAP平台的,比较新的是OMAP4,双核。kindle fire用的也是这个U,其他平板还有国产的“智器 Ten3”。智器优于kindle fire在于屏幕大,而且已经支持android 4了,便宜200元。不过社区支持可能没有kindle fire好,因为搞的人少啊。

//今天又看到一东东,刚好符合我的要求 - Raspberry Pi,这个是为小孩子准备的超低价电脑,跟前些年的那个啥“一人一台PC”有点像。基于ARM,有HDMI输出,不带显示器,39$,开发板样子和ARDUION很像,我喜欢,就是一时半会可能买不到。

//专门的开发板有BeagleBoard和pandaBoard,后者功能比较强,基于OMAP4的双核,带HDMI+DVI输出。前者则是普通的ARM A8,优点在于社区成熟,容易上手。价格都比较贵,BeagleBone便宜些,700,panda得2000,日,开发板还这么贵,还是量产的便宜。这里面有个输出显示的问题,触摸屏一般都是扩展卡的形式,得另外买,如果有HDMI输出则有现成的PC显示器。还有另外的方法:VNC,不过就少了触摸的乐趣。

//这里有个问答帖子What’s the simplest Linux capable board I could make at home?。从回答上看自己做个还不如买个做好的,因为ARM芯片或者AVR32(这个也可以跑Linux,不过有ARM谁会玩这个啊,虽然我有点atmel情节…)都是贴片的,焊接困难。

//Arch Linux也有跑在ARM上的版本。支持的ARM版本比较广泛,从ARMv5到Cortex-A9都可以。

//今天发现一个牛人的东东:在8位的ATmega1284p上面跑linux(非完整的UBUNTU),纯手工制作,还在AVR上做了个ARM模拟器,牛的一塌糊涂。不过速度就慢了,启动就得花2个小时。这个ATmega1284p是DIP封装的,看来ARM多半没有DIP封装的。

//国产的ARM开发板就便宜多了,一般500多还带LCD。比较有名的是友善之臂的Tiny6410(想到友善的狗)。感觉支持的还行,linux/android都可以,文档也很齐全,就是2D, 3D驱动没有开源。U比较老,android 4.0是没戏的。

//LeafLabs Maple – 这是跟Arduino很相像的ARM 开发板,便宜,才100多块钱,STM32F103RB芯片(这个可可能是开发板上用的最多的ARM芯片)。不过如果有了AVR版本的Arduion,要这个做啥呢?后来看了下Arduion也出来了官方的ARM版本 – Arduion Due。看了地球人不能阻挡ARM的步伐了…

//如果要搞STM32,taobao 大菠萝上面有很多开发板,大多是基于Cortex-M3,可能只是廉价的ARM方案。

//其实我想一个更好的方案是搞些便宜的android平板做开发板,可能没有PIN接口,不过对于ARM来说,我想软件才是最重要的。

纠结了一个月,最后买了beaglebone。感谢老婆,感谢社会,感谢淘宝。。。

风扇硬件设计

1. 需要一个测温功能,这样芯片可以有两种模式:一个为软件模式,一个为硬件模式。当为软件模式时,使用USB传递指令,温度可以从tinyFan上取,可以从主板上取。没有USB控制时,fallback到硬件模式,也可以称为巡航模式或者默认模式,这时候温度从本身自带的测温模块上取。这样做主要是让比较懒的用户拿到就可以用。有些复杂,可以先在PCB上留出预留的针脚,软件再慢慢搞起来。

2.需要一个LED来显示PCB的工作状态。现在考虑这个LED能否显示有用的信息,否则只是通电/断电没有多大意思。另外taobao上面多色的LED还没找到。

3. 风扇有3pin和4pin之分,但是对于avr来说基本一样:都需要一个pwm来调速,要用直接调,要么通过调电压来调。所以如果一个风扇接头只能使用3pin或者4pin,那么就浪费了一个pwm信号。所以最好是有种切换的方法来适应两张接口。DPDT双刀双掷符合这种要求,但是DPDT SMD的taobao上没有,而且感觉都很大,如果有四个风扇接头,则需要四个DPDT,好恐怖,而且感觉按钮很土。后来发现有种芯片可以做到:74HCT4053,TTL enable,3 * SPDT,这样两个就能组成3个DPDT,而且价格便宜,来源广泛。就是不知道这东东是否受得了PWM的高频要求。其实我只是需要连通,所以频率可能不是问题。