2010年4月29日 星期四

關於STM32的新聞

如果這新聞是真的話,那麼STM32真的很強勢,不只是功能上,連價格上也是


最近用STM32的感覺真的還不錯


真的是一顆好物


最近又看到一個有趣的產品,一樣也是CORTEX-M3的架構


我只能說CORTEX-M3真的是來勢兇兇(雖然不是最近就這樣了)


而且這股旋風感覺一直在發酵


但是,我最近的心得是:


1、別一直玩新產品,對於現階段的自己沒有幫助


2、既然玩了STM32就持續的玩下去,別三心二意的,要和當初玩dsPIC一樣,要玩就玩到熟為止


3、進階的控制和程式,才是當務之急


4、專案導向對於我來說,真的比較有吸引力,一直做周邊應用真的很乏味


整理好自己的心情,重新出發~GO~


2010年4月28日 星期三

外部記憶體

今天玩了超多記憶體的


SRAM、NAND flash、NOR flash和1個外部的I2C 介面的EEPROM(主要是因為之後要用I2C介面)


以前不知道這些記憶體的差異性


透過這樣的練習,快速的了解差異性


發現到STM32的功能強大,而且方便使用。


但是卻困擾著我,因為我有超大的記憶體可以使用,目前還不知道要拿來做什麼@@


想想以前dsPIC只有8KB,現在STM32除了內部有64KB外,還有


1、SRAM-512KB


2、NOR-2MB


3、NAND-64MB


 


在回家時,發現STM32有2個很有趣的功能


1、BACKUP(備份資料)


BACKUP的功能是-STM32保留42個16bit的暫存器,而不被reset或是燒錄而清除


雖然這沒有什麼,dspic或是其他的單晶片也行,但是可以外接電池,只供給這個區塊的資料使用


2、TAMPER(侵入偵測)


TAMPER的功能是-當這個PIN腳被觸發時,會將BACKUP的暫存器都與以刪除也會觸發中斷,讓USER定義功能。


 


應該該要準備的周邊都玩過了,也整合好了,明天可以動手寫選單了。


由於電腦鼠的顯示能力只有4字元(SLR2016),所以要寫一堆的選單


這次因為有240x320的彩色TFT,所以選單應該不用很複雜。


我想只要寫幾個比較不一樣的選單就行了。


2010年4月27日 星期二

整合,整合,還是整合

今天終於完成了一堆周邊的整合了@@


沒錯!


因為是一顆新MCU的關係,所以我中了很多招,以後有機會再慢慢介紹吧。


不過也因為這樣,學到了不少東西


這次應用比較複雜,本來希望144PIN的STM32F103ZET6可以解決,沒想到,還是遇到腳位不夠的問題,為了不想動用到第2顆MCU,所以就刪去原先的想法,既然如此,我還需要


1、4組OC,控制Servo


2、4組PWM,控制2組H-Bridge


3、1組彩色TFT,人機介面&debug使用


4、2~3組USART,與PC和搖控器做通訊使用


5、1組I2C,電子羅盤(Compass)


6、1組ADC,陀螺儀


7、6組ADC,紅外線光接收器感測器


8、6組I/O,控制紅外線發射器


9、3顆Button


10、5顆LED


11、數組TIMER做為計時用


12、2組QEI,馬達上的編碼器使用


13、外接1Mbits的SRAM(練功,前不知道要做什麼)


14、外接1GMbits的Flash(也是練功,目前不知道要做什麼)


15、2組DAC(現在還不知道要做什麼,打算拿來做呼吸燈吧!)


沒錯,很多功能,今天已經整合了大部分的程式了,明天再把I2C還有外部記憶體玩完,就可以進入核心了!


如果運氣好的話,下星期應該就可以看到原型機了。


 


PS:雖然STM32的範例程式很多,但是寫得都不是很詳細,當自己需要使用到相對應的功能時,很容易不注意就做不出來,不知道是因為功能太強,還是是故意不寫清楚?


今天在看菜的五味雜陳,裡面寫了一句很有趣的話「坎坷的路難走,平穩的路不想走,那我該走什麼路?」,其實很配服陶淵菜他的勇氣!


想到「路」,就想到最近想和朋友或同學聊天


很多人說工作難找,薪水太低,工作很雜,@@


而我卻說,我找到了研發替代役,以後工作算穩定了,待遇也算不錯


很多人要我介紹工作,後來大家又對我要做的工作內容很排斥,大概可以整理以下的原因:


1、不想碰硬體


2、對電子沒有興趣


3、坐不住


4、不想加班


5、不要寫程式的


但是後來想想,是不是因為這樣,才讓我找工作還算順利,而且也擁有更多的競爭力?


我又整理了我的一點思緒:


1、就是大家都不想做的事,才更需要去做


2、如果沒有「關係」,那麼努力更顯得更要


3、千萬不要抱著錢多事少離家近的想法,想想,如果你是肥貓,你的老闆會想什麼辦法把你踢走?


我的一點小小看法,給大家做參考


 


PS:就如陶淵菜所說的:「當我想要什麼,就去做什麼,最後我得到了什麼。


真的,試了就知道會得到什麼,即使最後的結果不是很理想!


2010年4月26日 星期一

再次中招了

因為之後需要用到I2C的周邊,剛好這塊板子上面有layout I2C的EEPROM


試著利用EEPROM來練習I2C的功能


好巧不巧的是,因為有裝TFT,而TFT是利用FSMC(Flexible static memory controller)來做控制的


這次用的mcu是STM32F103ZET6


運氣很好,又遇到了奇怪的bug


所以就試著解BUG:


1、有沒有接提升電阻;


2、程式有沒有錯;


3、有沒有與其他周邊共接


後來把TFT的程式和硬體拔掉就正常了


查了很久


最後終於知道原因了


參考stm32 high density errata


因為FSMC被打開的時後


會讓I2C1的時序錯亂(如果一定要用I2C1的功能時,要做REMAP的動作,將PORT腳設定在另外的腳位)


所以也就是為什麼我做不出來的原因


嗯,這件事告訴我們


看完了datasheet最好下一個要看errata


不然中招的機會很高,很高,很高!


2010年4月23日 星期五

終於搞定彩色TFT

用最「蝦」的方式,將圖片LOAD進彩色TFT了(其實我是一點一點劃上去的)


在這過程中,因為出了一點小意外,所以學了如何使用J-LINK的DEBUG方式


也利用MATLAB,將圖片轉成16BIT的資料型態


a=imread('C:\shi_2.bmp');                %將圖片讀入MATLAB
imshow(a);                                              %show出原始圖


c=floor(uint16(a(:,:,1)/8))*2048+floor(uint16(a(:,:,2)/4))*32+floor(uint16(a(:,:,3))/8);


%將24bit轉成16bit,紅色5bit,綠色6bit,藍色5bit


imshow(c);                                               %show出修改後的圖


%將10進制轉成16進制,最後再轉到記事本


fid = fopen('exp.txt','wt');
fprintf(fid,'a=[]\r\n',c);
fprintf(fid,'0x%04X,0x%04X,0x%04X,0x%04X,0x%04X,0x%04X,0x%04X,0x%04X,0x%04X,0x%04X,\r\n',c);
fclose(fid);


這是原始圖檔



這是顯示後的圖片大小,修改成240*240,利用這個方式,還學會photoimpact如何修改圖片大小




或許有些人知道這張圖到底是什麼


不過不知道的也沒關係,以後會慢慢知道這張圖到底要幹啥用


將下來可以玩我所需要的模組了


玩新玩具的好處就是可以弄很多花招


但是痛苦的就是沒人教,要自己挖掘


不過也因為這樣,才會有更多意外的收獲。


2010年4月21日 星期三

又有新玩具

這是學弟在大陸買的新玩具


STM32F103RET6Z+3.2吋的觸碰TFT


說實在的,一開電,就是uLinux,其實還滿厲害的


做得很贊


不過萬事起頭難,還是得一步一步慢慢來吧


看了裡面的程式,真的太複雜了


如果沒有一步一步來的話,還真不知道該怎麼上手


不過這塊板子目前打算用在一台自走車上


配合stm32強大的周邊


試著做做看不同的應用


 


這是板子的正面



這是板子的背面


還是趕緊把手頭的事情做完比較實在,這樣才有空玩新玩具!


2010年4月20日 星期二

馬達驅動板

要驅動一顆比較大的瓦數的直流有刷馬達,這次有要動用到ir2110+mosfet


因為我對這樣的h-bridge有不好的印象,我燒怕了!


透過這次的機會


不管怎樣


控制上如果有問題,這次硬體一定要先將電源cutoff


為了達到這個目的


這次加入一顆「電阻」來偵測h-bridge流過的電流


再來就是要把訊號抓來放大&濾波了


這次電路是學弟幫忙layout的,嗯,我測試


發了1個晚上+1個白天做測試,最後發現,學弟在電阻上,因為氧化的關係,導至空焊@@


套一句周董說的話:「瞎!」


真是的,下次叫學弟自己測好了,自己layout的電路應該要自己做測試才是硬體工程師嘛


這是正面圖,左邊就是加了一顆0.02Ω的電阻,用在電流偵測上。



背面的零件


沒關係,反正學弟在layout上,沒有考慮到電源的走線,所以叫他再layout一次應該不過份吧!


期待下一次的改板


2010年4月17日 星期六

論文初稿 & 投影片初稿

論文初稿前天確認好,昨天影印店就印好了


還滿有效率的,一本121元,比我想像中便宜許多


今天也把投影片初稿做好了,共73頁


扣掉不必要的頁數,也要65頁


說實在的,還滿多的


為了讓我可以表達時可以更清楚


這次做了很多動畫


演算法的動畫約做了一個星期


還好剩下來的動畫就比較簡單了


明天再複習一下


星期一應該就可以rehearsal了


口試倒數20days


期待一切順利!


 


回家的路上,看到一支大蝸牛


索性之前買了一支可以拍照的手機,所以就有記錄了


超大支的



和我的鑰匙相比,明顯感覺到他的大!



不知道為什麼最近和小動物很有緣


2010年4月16日 星期五

第三屆電子系競速自走車比賽

昨天很忙(其實是去約會),所以今天才記錄


一早廁所就來了一位貴客(一支漂亮的飛蛾,吹了也不會飛走),可能是知道今天有活動吧,


這活動辦了第三屆了,給學弟一點壓力和獎勵


透過這樣的活動


除了切磋技巧外,也拉近了大家的感情


今年還不錯,自走車的樣式還滿多的,看來自走車還是比較有吸引力



除了有裝風扇(聽說是沒用,反而更浪費電),四輪車(聽說機構還不成熟)  


小巧可愛自走車(還會唱兩支老虎),箭頭車?

  


賽前先抓參與的同學拍照,這次邀請microchip 何仁杰先生來幫我們的裁判


後面那個手舉那麼高,還不是被擋到


看吧,真的被擋到了


有女生要偷親我們老大,ccc


直線會衝刺,轉彎會減速。




 


學妹跑完了,可是為什麼最後大家卻驚呼連連?




 


原來這就是真象




 


賽前最受看好的學弟,結果,噴了~




 


完全的ending


今天,特別開心!


2010年4月14日 星期三

辦比賽

明天系上要辦自走車的校內競賽


今天看到好多學弟留下來試跑


好久沒有這樣的景象了


今天人也特別多


一群人在聊天聊八卦


感覺很溫馨


 


昨天在忙碌中,寫了這陣子很久沒有碰的程式


利用dsPIC的OC功能,配合UART做了一個簡單的伺服器控制板


因為這陣子都在寫論文和報告還有做投影片


真的是太久沒有寫程式,會退化@@


不過寫報告和投影片的技術真的變好了


CCC


 


PS:還欠著老大一篇心得,要更加把勁才行


2010年4月12日 星期一

準備要提口試了

終於系辦公告提口試的日期了


沒錯!


我打算要提口試了


但提口試的同時還要準備投影片與論文



還真是忙碌


在此同時


又報了一個「新光保全機器人」的比賽



其實我應該是覺得我事情太少


ㄜ~


不是啦


這是


給自己在學生時代最後一次的挑戰機會吧!


這次要用stm32來完成這個比賽


ccc


2010年4月10日 星期六

文章讀後感

不知道為什麼


看到了這篇文章,我會不會以後也遇到相同的問題


嗯~這位版主的寫得挺有趣的幾個問題


由其是他的ABCDE這5個問題與他的旁白


真的是經典


他後面的結論我覺得也是我以後可能會遇到的問題


不過沒關係


我已經給了自己要努力的目標


讓我試試看吧!


如蔡依林說過的:「我不能忍受還沒學好就放棄


畢竟,我還要半年左右才會進入職場


我還可以躲在象牙塔裡面學習


CCCCC


2010年4月9日 星期五

收到正式的offer

期待了好久


終於等到了offer了


今天送妞妞回家的時候


順便回家領掛號信


果然就是offer


人生的第一張offer


開心


但我忘了這是我第一張offer


在撕開信封的時候忘了保留它的完整


破破爛爛的@@


沒關係


還是很重要的一封信!


2010年4月8日 星期四

口試投影片-part3

早上改完論文內容後


下午在做投影片才發現


如果寫完,應該會有5~60頁的數量



原來不只是論文的頁數很多,連投影片的頁數也不少@@


這下真的考驗著我的整合與表達能力了


如何把論文的重點還有精神強調出來


這就是我要練習的地方了


應該慢慢的快完成了


或許下星期在meeting的時候


可以先rehearsal一下


cccc


 


2010年4月7日 星期三

口試投影片-part2

oh~my~god


說實在的


今天光我的抱怨詞,自己聽了都快累了@@


做投影片的動畫做到手酸@@


哈~


終於把演算法的動畫做好了@@


不過後來我才發現,這只是我的報告一小部分


還有另外的一大部分還不知道怎麼製作@@(難怪我會和老闆說30分鐘不夠用)


我會暈頭吧!


 


另外我還要參加11月的新光機器人比賽


因為應屆畢業生可以參加,所以就~~


和學弟他們小組會議結束


大至上分工也ok了


還算順利


不過現在首要的任務就是把論文和投影片搞定


明天計劃把論文最後有問題的地方修正結束


一步一步慢慢來吧!


2010年4月6日 星期二

口試投影片-part1

從上星期就慢慢的開始做論文口試的投影片了


可能是自己口試的投影片,自己也很重視


今天花了很多時間在做演算法的部分


只做了1頁半,竟然花了1整天的時間


看來明天也只能做完演算法的部分


真不知道這星期能不能做完全部


因為論文的內容很多


所以要在30分鐘內報告論文的精華好像有點困難


所以和老大要求延長時間


呵,變40分鐘


這是無理的要求嗎?


cccccc


 


明天聽說公司會寄出offer,不知道是真的假的


但我該做的手續都差不多了


應該可以順利完成吧!


不過所有的程序要到5月底才會知道


好久喔@@


果然是好事多磨


 


有點累了


晚安!


2010年4月3日 星期六

stm32 入門篇-模擬eeprom介紹

stm32並沒有內建EEPROM


但是可以利用自我燒錄flash的方式


來當作eeprom使用


可以參考官方模擬EEPROM的文章


用起來的感覺就好像在寫EEPROM


只是官方的範例真的是寫得很OOXX


在同一個位址連續寫個1000次


然後還說,flash的讀寫次數約10,000~1000,000


還好我玩範例並沒有玩太久,不然flash被我寫壞了就虧大了


stm32 入門篇-Timer介紹

說實在的


不太敢介紹stm32的Timer


因為我也還沒有玩熟


stm32的Timer的功能很強


就先簡單的介紹一下吧


除了可以產生六步方波外


還可以產生output compare(輸出比較


可以做input capture(輸入計數)


encoder interface(編碼器介面)


外部計數


內部觸發


..........


等等可觀的功能


對我來說,編碼器介面是最好用的



等我以後要介紹進階功能的時候,再交待清楚


 


stm32 入門篇-DMA介紹

STM32內建2組DMA(direct memory access),這個還滿好用的,


只要將設定好的陣列資料,設定給特殊的周邊使用,那麼,核心就可以減少負擔了


這樣說好像有聽沒有懂


舉個例子來說


如果有個ADC 的channel需要一直做取樣與轉換的動作


那麼就可以把這個channel 設定在DMA上,並設定一個陣列位置給DMA


那麼當ADC取樣轉換完後,就會把資料換照順序填入陣列位址上


當核心需要資料時,就只要抓陣列內的資料就好了


可以省去處理ADC取樣與轉換的程序


可惜的是,內部只有2組DMA,這麼好用的功能,如果可以多幾組不知道有多好


ccccccc




stm32 入門篇-ADC介紹

STM32的ADC其實功能還滿強的


看了看,還真不知道該如何介紹


可以下載官方的ADC介紹


我覺得還滿好用的


設定上還滿有彈性的


在設定上可以設定「正規(regular)」取樣與轉換的channel


也可以設定「插隊(inject)」的取樣與轉換的channel


在一般時候,ADC會固定選擇「正規」的channel 做取樣與轉換


當有特殊事件或是需要針對特殊channel做取樣與轉換


可以用「插隊」的方式進入取樣與轉換


在設定時,「插隊」的channel最多可以設定4組


而「正規」的channel最多可以設定16組


很好用的一個功能


 


主要內部有3組ADC轉換器


而ADC1與ADC2是一組的,可以同時取樣與轉換,ADC3是獨立一組


ADC1除了可以讀取內部溫度感測器外,還可以讀取參考電壓


12bit的ADC轉換,最高速可以達到1Mbps(還滿快的)



對岸的人很用心,把接腳圖劃成一張表,在使用上比較方便


重劃了一下接腳圖配置,以方便使用



2010年4月2日 星期五

又不見了

早上載女朋友回家,路上莫名奇妙的鑰匙掉出來,更奇怪的是,回頭撿鑰匙竟然找不到


才100公尺左右,遲了5分鐘


就這樣一串鑰匙消失了


算了


花錢消災吧


 


老大昨天交待了一些事,也提到口試的事情


不知不覺,口試的日期也訂好了


5月上旬要口試


終於輪到我要口試了


好緊張啊


本來要下星期才要對論文做訂正的動作


果然計劃跟不上變化


所以就要加緊趕工我的論文和投影片了


 


不知道為什麼


昨天恍神的過了一天


今天悶了一天


然後我媽說叫我後天再回家,明天家裡沒人



希望明天可以順利過一天