作者:Joe Broms,ProtoBricks創(chuàng)始人及CEO
ProtoBricks是一款具有類似樂高外形的電路構(gòu)建玩具,現(xiàn)已在市場上發(fā)布。對于我來說,這是6年基于愛好的努力的結(jié)果,作為發(fā)明家,我努力將想法變成愛好,并最終令其成為一個(gè)真正的產(chǎn)品。今天,我想關(guān)注產(chǎn)品的核心,也就是“hub”,以及Silicon Labs微控制器如何成為ProtoBricks電子產(chǎn)品的核心。
ProtoBricks Hub是有12x6個(gè)螺柱的LEGO?大小的塊,頂部有電觸點(diǎn)和LED格柵。我們把一個(gè)兩層PCB板放在塊里面。電路板的底部有四個(gè)彈簧負(fù)載引腳:電源,Gnd,UART TX,UART RX,以及用于編程的裸板觸點(diǎn)。頂部是充滿魔力的地方; 邊緣觸點(diǎn)(螺柱)是電路的IO引腳。還有兩行RGB LED(每個(gè)IO引腳一個(gè))。最后,中心的那排需要做大部分的工作:測量電阻/電壓,發(fā)送/接收UART消息,并在這些任務(wù)之間切換。這已經(jīng)經(jīng)歷了許多修改,以滿足最佳的外形,功能和成本。現(xiàn)在我們只需要一個(gè)可以完成任務(wù)的微控制器。
要進(jìn)一步滿足要求,我需要選擇至少有兩個(gè)UART的微控制器。其中一個(gè)需要處理TX和RX在不同時(shí)間翻轉(zhuǎn)。我需要至少35個(gè)GPIO引腳來處理裸露的IO,并為板上的其他芯片提供服務(wù)。我還需要在不同強(qiáng)度中點(diǎn)亮24個(gè)RGB LED。最后,我需要一個(gè)精確快速的ADC,用于通過精密電阻和計(jì)算電位器位置來檢測塊。
我還需要一種現(xiàn)場編程板的方式,并且可以在無需完全分開的情況下輕松地調(diào)試。
此外,所有的工作都需要使許多微控制器外設(shè)以100us的粒度啟用,禁用,啟動和停止。在1KHz的速率下,我設(shè)置了一個(gè)很困難的最后期限來維修我的主電路仿真環(huán)路。最耗時(shí)的開發(fā)任務(wù)是組織和將任務(wù)分解成可以被正確優(yōu)先排列成小而有狀態(tài)的塊。幸運(yùn)的是,對于我來說,我已經(jīng)從事C ++開發(fā)將近20年了,并且一直喜歡編寫較低級別的代碼并優(yōu)化緊湊的循環(huán)。
最后,我選擇了Silicon Labs的EFM32G232,其具有128KB閃存,16KB RAM。 IO引腳,USART,良好的ADC和合理的價(jià)格的正確平衡。
Hub塊內(nèi)部
以下是我在開發(fā)過程中總結(jié)的亮點(diǎn),特點(diǎn)和技巧:
我們希望以非常緊湊的2x2螺柱的尺寸提供電源,UART和微控制器編程引腳,因此我用3D打印機(jī)構(gòu)建了該板。現(xiàn)在我可以連接到我的板子,而無需每次都拆開我的塊。 pogo引腳連接到SWCLK,SWDIO,SWO和RESET。
調(diào)試塊:中間的四個(gè)pogo引腳連接到微控器
去年的原型設(shè)計(jì),使用Gecko開發(fā)板調(diào)試hub微控器
其中一個(gè)UART需要從RX翻轉(zhuǎn)到TX,具體取決于塊從左到右的位置。為此,我直接連接到相同的UART外設(shè),但使用兩個(gè)不同的引腳排列位置。我可以使用備用位置標(biāo)志翻轉(zhuǎn)UART,無需任何外部硬件或Busing。每一分錢對于消費(fèi)電子產(chǎn)品來說都是很重要的。塊到塊的通信使用115 KB的無外部晶振的UART。我的測試中試著將其提高到1Mbps,而且大部分情況下運(yùn)作良好,但我認(rèn)為這大多是因?yàn)槲译娐钒宓脑O(shè)計(jì)。
具有許多功能的中心排(電壓讀取器,電阻讀取器,UART通信器)最終通過兩個(gè)低歐姆模擬多路復(fù)用器(IDTQS3VH251)進(jìn)行服務(wù),然后將其饋入微控制器的UART和ADC引腳。然后,所有這些都在微控制器上進(jìn)行時(shí)間復(fù)用 - 打開/關(guān)閉ADC,UART,內(nèi)部分壓器,尋址MUX。 EFM32能良好的完成任務(wù):其在啟用/禁用外設(shè)方面非常快,永遠(yuǎn)不會陷入一些奇怪的狀態(tài)或時(shí)序問題。這節(jié)省了大量的時(shí)間,電路板空間和成本,相比之下,更多的專注于硬件!我唯一的問題是做我自己需要的。我需要在固件中編寫一個(gè)相當(dāng)復(fù)雜的調(diào)度程序來最佳地為所有的塊提供服務(wù)。
盡管如此,我仍然需要快速服務(wù)LED。該任務(wù)通過使用配置為SPI的最后一個(gè)USART塊完成。我將DMA上的數(shù)據(jù)盡可能快地(一次以1 Mbps的速率突發(fā)96位)連接到一連串的恒流LED驅(qū)動器。同時(shí),我需要打開和關(guān)閉PMOS晶體管,為3組LED供電,全部時(shí)分復(fù)用。一切都需要很快的刷新,因?yàn)槲蚁胪ㄟ^PWM控制每個(gè)LED的強(qiáng)度。
最后,我試圖為3個(gè)組(3 * 32 * 200)= 19200 Hz刷新強(qiáng)度為200 Hz的32級,一些自定義GPIO位在中斷處理程序中全部翻轉(zhuǎn)!這推動了這種設(shè)計(jì)可能的局限性。我想如果我添加了一個(gè)額外的移位寄存器或卸載服務(wù),整個(gè)LED計(jì)算/移位到一個(gè)微型微控制器(EFM8 Busy Bee?),我可以得到我真正想要的8位強(qiáng)度水平和快于200赫茲的復(fù)用。
對于LED閃爍的燈光愛好者,200Hz對于LED復(fù)用來說太慢了。你一開始就沒有注意到,但是在這個(gè)速度上有一些頻閃效應(yīng)問題:特別是在相機(jī)上。上個(gè)月我們進(jìn)行了一次視頻拍攝,經(jīng)過一些測試,決定犧牲大部分的強(qiáng)度水平,以便更快的整體刷新(500-600 Hz)。我們拍攝了一個(gè)視頻,進(jìn)行慢動作捕捉時(shí),600Hz的LED刷新是太慢了,但對于實(shí)時(shí)視頻來說是很好的。
在編寫了數(shù)千行代碼之后,我可以報(bào)告編譯器從未生成錯(cuò)誤的輸出。 YMMV,但我發(fā)現(xiàn)編譯器和調(diào)試器非常強(qiáng)大。我能夠斷開和探測變量,并將堆棧框架放置在中斷之外,而不會出現(xiàn)問題,并且很快。這大大加快了我的開發(fā)時(shí)間。 我仍然在使用Simplicity Studio 3,因?yàn)槲也幌胱儎游业墓ぞ哝溨钡轿业脑徒Y(jié)束。我很期待4.0能夠提供什么。
在C中的固件啟動之后,我期望只需要適量的C ++語言。函數(shù)指針是非常好的,但是在我的許多函數(shù)的開頭基本上傳遞了一個(gè)“this”指針后,事情開始變得很冗長。
幸運(yùn)的是,Simplicity工作室添加了C ++支持。只需編寫接口指針,我便可以傳遞一些高級塊,大大減少了編碼任務(wù)。我甚至可以在一些中斷代碼中調(diào)用一些C ++對象,而不會有問題。
有幾個(gè)地方對浮點(diǎn)分割或乘法非常有幫助(例如我自己的ADC校準(zhǔn)過程)。由于我使用的是ARM M3內(nèi)核,它沒有浮點(diǎn)單元,而是由軟件生成。我一直在關(guān)注代碼大小 - 它沒有添加太多(我現(xiàn)在在90K的編譯代碼)。
最后,我很高興地報(bào)告Silicon Labs MCU及軟件套件非常適合我的任務(wù),其很少在開發(fā)過程中引起問題(我不得不重新啟動軟件幾次,但是與我的真實(shí)問題相比,這是很小的)。我能夠集中力量建立我的產(chǎn)品,推動硬件的極限,并處理其他的挑戰(zhàn)!
如果您有興趣以實(shí)踐和有趣的方式教孩子們了解數(shù)字邏輯,那么請從8月15日起查看ProtoBricks的ProtoBricks’ Indiegogo campaign,我們將發(fā)布所有Silicon Labs固件和板設(shè)計(jì),以便任何人進(jìn)行修改。
作者簡介:Joe Broms是ProtoBricks的創(chuàng)始人及CEO,該公司使得用戶可以將數(shù)字邏輯構(gòu)建為類似樂高的設(shè)計(jì)。此處我們分享了他是如何將該愿景實(shí)現(xiàn)的。
-
mcu
+關(guān)注
關(guān)注
146文章
17824瀏覽量
360173 -
Silicon
+關(guān)注
關(guān)注
0文章
135瀏覽量
39108
原文標(biāo)題:內(nèi)建Gecko MCU的ProtoBricks助樂高邁入數(shù)字時(shí)代
文章出處:【微信號:SiliconLabs,微信公眾號:Silicon Labs】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
電動車正式邁入閃充時(shí)代
光儲融合 華為數(shù)字能源以全場景構(gòu)網(wǎng)型儲能解決方案邁入全面構(gòu)網(wǎng)時(shí)代

新能源汽車充電設(shè)備將從“野蠻生長”正式邁入“持證上崗”的強(qiáng)監(jiān)管時(shí)代(CCC認(rèn)證)

NimbleTrack 用戶體驗(yàn)共鳴,引領(lǐng)行業(yè)邁入智能全無線掃描時(shí)代

寧波嘉樂智能科技股份有限公司選購我司熱分析儀

浪潮信息如何應(yīng)對智能時(shí)代下的數(shù)據(jù)存儲需求
樂企直連加速企業(yè)財(cái)稅數(shù)字化轉(zhuǎn)型!附重點(diǎn)問題解析!

評論