我家有很多台旧款的MIDIcontroller, 就是不会发声的电子琴,弹奏是只能发出MIDI码输入音源发出声音,只所以买这么多台是因为想用来组织乐队,用几个人弹多个声部变成乐队的形式,但这些年来没有什么进展,直到低功耗蓝牙LE出现,似乎又有些希望,有名厂推出无线蓝牙MIDI,可以把MIDI弹进IPHONE或IPAD,似乎掀起一阵热潮,民间也兴起土制的国产品,有些连壳也没有也在卖,但很快又冷了回去,毕竟这是少数人的爱好,形成不了市场规模,我也试制了一款,但是为了用来给自己组织乐队用,所以不必考虑与其他产品兼容,可以任意设计。
制作这款蓝牙无线MIDI发射模块最大的挑战就是省电,MIDI接口只能提供大概7-8MA的电流,5V电源通过一个220R电阻供应电流,而低功耗蓝牙模块也就需要几MA而已,因此是可行的,市面卖的成品是把这些电储存在大电容里为蓝牙模块供电。这些产品必须与apple制定的标准兼容,对我一点也没有用,我希望我的琴能够弹进PC电脑,或者硬体音源,因此只能DIY。
市面上买的廉价模块的波特率并没有31250BPS的,只有标准的38400BPS,因此从MIDI接口收到的信号得用单片做转换才能用蓝牙模块发射出去,要用7-8MA的电流去驱动单片机几乎是不可能的,因此得用充电锂电池,而电池必须单靠MIDI插口那7-8MA的电流来充电维持电量,这就是这个设计难和有趣的地方,我这设计采用几个方法来解决:
1。 采用低功耗的CPU,查过有专门的低功耗CPU,但我STC12才学不久不可能再去学别的,因此还是用STC12,首先是要用低的振荡频率,从18M降到3.6M, 耗电果然低了很多。
2. 采用设计优秀的蓝牙模块,必须容易休眠,又容易唤醒。
3. STC12单片机运作时要十几个MA,停机时有几个MA,但关机时才几个UA, 利用玩电子琴的习惯在几个模式里转换,争取向电池充电。比如开机时先进入关机模式,让电池充电,需要弹奏前先按启动的钮,进入开机模式,这时电池出电,电压慢慢降低,每当完成一个MIDI输出,若无新键被按就进入停机,这时有少量电流流进电池,若有一分钟以上没弹琴,则进入关机,让电池充电,若要重新弹琴,得再按启动钮。
实验证明此法可行,但应该应付不了不断弹琴几个小时不休息的键盘达人哈,那还得另想办法了,由于这设计非常奇怪,也被我发现STC12单片机的一个特性,当我把新写的,一开机就进入关机状态的码用市售的自动冷启动烧录器烧进单片机后,烧录软件就再也无法检测的单片机了,是怎么回事呢?折腾了半天才发现,由于单片机一开始就进入关机状态,耗电太低,当烧录器关闭单片机电源准备冷启动时,单片机靠那两个10u的电容还能苟活不死,冷启动以失败告终,烧录也失败。怎么办呢?在电源的正负极焊上一个4.7K的电阻故意耗电,就能够再烧录了。
底板设计图:左边是电源板,右边是CPU板
STC单片机
两板叠加:
烧录时得在电源加消耗电阻
|