痞酷網_PIGOO

 找回密碼
 立即註冊
!!! [系統偵測到廣告阻擋軟體] !!!

如果您覺得痞酷網對您有些許幫助,或者您認同痞酷網的理想,

那麼希望您將痞酷網設定為白名單.

並請在上論壇的時候,動動您的手指,用行動支持我們.

謝謝!
查看: 9321|回復: 24

[電子儀表] 使用額外的控制卡來為UT61E改機

[複製鏈接]
發表於 2015-10-28 05:14:51 | 顯示全部樓層 |閱讀模式
本文章最後由 jojoling 於 2015-10-28 05:51 AM 編輯

大家好,

剛來到痞酷的時後,發現大家都瘋了,沒事電表買那麼多台幹什麼。
現在才知道,原來是我是個大外行,電表百百種,又每台的精度與特性都不同。
會買這台的原因是因為 Fluke 15B+ 的電阻量不到小數點第2位,看到大家一直在介紹這台CP值不錯,那就買來了喔。
想當然耳,精密電壓參考源,精密可調電阻與積分電容,當然二話不說,改了它,就不介紹這些了。
精密電壓參考源是從 moripi(阿魔)大那拿的,它去 LT 拿了2個sample,剩的那顆當然就我凹來換上了~

當改完這3樣的時後,阿魔貼了國外的網址:
http://mjlorton.com/forum/index.php?topic=284.0
此作者把3個功能混進黃藍2鍵去了:
backlight (長按住黃色鍵來啟動與關閉)
max-min(長按藍色鍵來切換)
rs232 (同時按住2個鍵來開啟與關閉)

魔哥說他也想改這個,不過他跟 TI 拿的 sample (msp430) 好像需要專用燒錄器才拿燒,他想我先衝~
我就想乾脆把它移到 Arduino來,用 ATMEL 的 ATTINY 來做好了,ATTINY 是腳很少的 mcu。
且 Arduino 由於底層是由 GNU compiler (gcc for C, g++ for C++)衍生 出來的,它的 mcu 是全世界支援最廣的。
且在 Arduino 1.6.x or 1.6.4 之後,整個架構有調整過,主要是為了方便第三方開發者開發在不同的 chip 上~~
如:

STM32duino, PCduino, RFduino, ESP8266 arduino ..............
最近個人比較有興趣有2個:

(1) STM32duino 高速 32 bit cpu 之類的(  32 bit ARM based, 72Mhz for STM32F103X )
http://www.stm32duino.com/

(2) ESP8266 arduino 便宜的 wifi 晶片~
http://www.esp8266.com/viewforum.php?f=25
一篇專為它寫的文章介紹
http://www.makezine.com.tw/make2599131456/5wifiesp8266arduino


好了,回到正題,這次用的 ATTINY 相關資訊來源:
http://playground.arduino.cc/Main/ArduinoOnOtherAtmelChips
基本上網路上一堆人覺得 ATMega328太大,有時只需要小小的空間與腳位,就移值到了其它 ATMEL 晶片上了~

此次的主角是 ATTINY24A/44A,為什麼是它呢?其實原因很簡單,因為我有庫存不同 mcu 1-2 顆的癖好,這樣如果臨時需要的話,
可以拿出來瞄一下看看,搞軟體嘛,又像我這樣,是會試試各種各樣的平台與開發環境。
剛好我有 24A(1顆)/44A(2顆)/85(3顆),其實有一個是我要拿來改遙控器的啦,一直沒動手改。
由上面連結出處,需要 3腳控制信號 ( rs232, backlight , max-min ),再加上把2個按鍵從中間切斷要串接模擬原來的信號需4腳( 2 for input from button, 2 for output to digital meter controller),所以需要 7支腳的 I/O 信號,所以 ATTINY85 (SOP8)就被因能力不足而淘汰了。

原始材料,此處有一塊 SOP16 to DIP 轉板,感謝大胖熱情提供,以前去他那,他把倉庫全都搬了出來一直塞給我 ^^
相片 2015-10-27 下午11 01 36.jpg

軟體發開環境,當然就是想辨法先模擬一套硬體出來,所以翻出倉庫的 LED 插麵包板
相片 2015-10-26 上午4 57 09.jpg

此種程式,一定是用外部中斷來設計,突然發現 ATTINY24A 只有一條外部中斷 (INT0) ,哭哭了,可是口袋沒有 ATTINY2313可用,好吧,這種小事難不倒我低,最多多上幾個元件搞定它,改設計,改成2個 button 共用 1組中斷觸發。
利用4顆二極體來隔離不同按鍵的信號 ,其實我是突然想到,我在別人改遙控器時,利用二極體可以模擬額外的按鍵信號,就拿來套用了。
相片 2015-10-28 上午3 53 58.jpg

第一版程式完成,拍個宣導短片來 demo 一下下


工作時的電流為 0.88mA  (工作電壓 3V )
相片 2015-10-26 上午4 48 16.jpg

待機時進入睡眠的電流為 0.21mA (工作電壓 3V )
相片 2015-10-26 上午4 48 23.jpg

成品圖
相片 2015-10-26 下午11 34 30.jpg

改進電表裏之正面
相片 2015-10-27 上午5 43 59.jpg

改進電表裏之背面
圖上的 jumper 是我打算用來斷開 mcu 的 Vcc 與電表的連結,因為我可能還需要直接線上更新mcu firmware(程式碼)
相片 2015-10-27 上午5 41 53.jpg

此為 Fluke15B+ 在成品上的量測電流 0.773mA(normal mode) 與 0.2096mA ( power down mode )
相片 2015-10-28 上午3 19 04.jpg

相片 2015-10-28 上午3 18 43.jpg


最後最後,demo 最後成品的影片



最後最後,附上原程式碼與 binary
此 mcu fuse 是設在 internal RC 1Mhz工作的
UT61E_MOD_SRC_V1.zip (2.08 KB, 下載次數: 31)
UT61E_MOD_BIN_V1.zip (4.06 KB, 下載次數: 17)

謝謝關賞。
{:14_1486:}

評分

35

查看全部評分

發表於 2015-10-28 07:34:22 來自手機 | 顯示全部樓層
本文章最後由 fix2010 於 2015-10-28 07:38 AM 編輯

jojoling威武!各类MCU信手拈来,羡慕!
这么早,不会在西半球吧?

評分

1

查看全部評分

 樓主| 發表於 2015-10-28 11:08:03 | 顯示全部樓層
fix2010 發表於 2015-10-28 07:34 AM
jojoling威武!各类MCU信手拈来,羡慕!
这么早,不会在西半球吧?

沒啦,只是每次寫文章,都要加上排板,就會寫很久 ^^
Arduino 很好用,很多底層都封裝好了,玩家不用那麼了解 detail 的晶片規格,連國中生也愛玩 ^^。

評分

1

查看全部評分

發表於 2015-10-28 12:00:49 | 顯示全部樓層
fix2010 發表於 2015-10-28 07:34 AM
jojoling威武!各类MCU信手拈来,羡慕!
这么早,不会在西半球吧?

他是個吃軟飯的,現在搞得連吃硬飯的都快沒飯吃了 ...
其實真正吃軟飯的是我啦 ... 菜湯泡飯變稀飯 ...

評分

2

查看全部評分

 樓主| 發表於 2015-10-28 13:25:00 | 顯示全部樓層
scottwang 發表於 2015-10-28 12:00 PM
他是個吃軟飯的,現在搞得連吃硬飯的都快沒飯吃了 ...
其實真正吃軟飯的是我啦 ... 菜湯泡飯變稀飯 ... ...

玩玩玩具而以,Scott大你見笑了 ^^
發表於 2015-10-28 13:45:52 | 顯示全部樓層
jojoling 發表於 2015-10-28 01:25 PM
玩玩玩具而以,Scott大你見笑了 ^^

你要發了喔,Wish大竟然給你貢獻獎耶 ... {:14_1485:} ... {:14_1486:}  ... {:14_1483:}

評分

1

查看全部評分

 樓主| 發表於 2015-10-28 14:29:47 | 顯示全部樓層
scottwang 發表於 2015-10-28 01:45 PM
你要發了喔,Wish大竟然給你貢獻獎耶 ...  ...   ...

其實每個會員都有不同的貢獻~
有的負責修修東西,有的時後被110V/220V電一下~
有的負責看看文章~
有的負責寫寫自己想寫的報告~
有的負責寫菜單~
有的負責只看不回,在電腦前面大笑~
有的負責打屁~
這就是一個大團體啊~
剛好我真的不太會修啊,就寫寫玩具~讓大家也可以玩一下玩具~

評分

4

查看全部評分

發表於 2015-10-28 14:54:50 | 顯示全部樓層
本文章最後由 moripi 於 2015-10-28 02:58 PM 編輯

痾~~~~魔的庫存精密電壓參考~~~~:sam53
果然還是要專業的來, 三兩下就把它搞定了~~:sam05


魔一直不敢動手改...是因為怕把UT61E給搞燒了(其實是很懶)...
當初從TI拿到MSP430時還很開心, 結果一查...光燒錄器就要3-4000台幣...:sam20

後來想改用ATTiny24系列, 也選中ATTiny24A的小而美...:sam60
但...還是偷懶一直沒動手實作它...:sam01

剛好jojo也敗了UT61E, 想說分享一下國外的全封印解除改法~
果然...還是要專業的來!還是要專業的來!!還是要專業的來!!!(因為很重要所以講三次):sam39:sam39:sam39

評分

1

查看全部評分

發表於 2015-10-28 15:07:34 | 顯示全部樓層
jojoling 發表於 2015-10-28 02:29 PM
其實每個會員都有不同的貢獻~
有的負責修修東西,有的時後被110V/220V電一下~
有的負責看看文章~

還有!!還有!!魔負責出出餿主意~~~:sam05:sam05

評分

1

查看全部評分

發表於 2015-10-28 15:43:39 | 顯示全部樓層
moripi 發表於 2015-10-28 02:54 PM
痾~~~~魔的庫存精密電壓參考~~~~
果然還是要專業的來, 三兩下就把它搞定了~~

根據大胖的使用大神之後的說法:
TI MSP430可以使用原廠的燒錄器還有JTAG和BSL可以用啊!
搜尋一下BSL只要不到梅花鹿的價錢就有了,
阿魔被嚇壞了啦!

評分

1

查看全部評分

發表於 2015-10-28 16:29:25 | 顯示全部樓層
moripi 發表於 2015-10-28 03:07 PM
還有!!還有!!魔負責出出餿主意~~~

嗯,不錯不錯,動口不動手,阿魔大真的非常君子 ...  n_167|

評分

1

查看全部評分

發表於 2015-10-28 16:55:43 | 顯示全部樓層
fatzeros 發表於 2015-10-28 03:43 PM
根據大胖的使用大神之後的說法:
TI MSP430可以使用原廠的燒錄器還有JTAG和BSL可以用啊!
搜尋一下BSL只 ...

原來還有BSL這東西能用啊...都怪魔功課作太少...:sam15
不過...魔目前是傾向選用便宜又方便入手的 Atmel 家族較適合...:sam05
發表於 2015-10-28 17:06:42 | 顯示全部樓層
scottwang 發表於 2015-10-28 04:29 PM
嗯,不錯不錯,動口不動手,阿魔大真的非常君子 ...

阿魔還是位癮君子呢~~{:14_1469:}{:14_1483:}
發表於 2015-10-28 17:14:27 | 顯示全部樓層
moripi 發表於 2015-10-28 05:06 PM
阿魔還是位癮君子呢~~

不要當癮君子啦,對自己身體不好,對老婆和小孩也不好,對環境也不好,還有對口袋也不好,這麼多不好,改了吧,我連網路癮想改都改不了,靠網路吃飯的怎麼改 ... :sam10
一個不要改,那就是對電子的喜愛不要改 ...

評分

2

查看全部評分

發表於 2015-10-28 22:43:39 | 顯示全部樓層
這兩天沒眼鏡, 看啥都花花的
先請嘉芬小姐出來陪你

評分

2

查看全部評分

發表於 2015-10-28 22:52:54 | 顯示全部樓層
moripi 發表於 2015-10-28 02:07 PM
還有!!還有!!魔負責出出餿主意~~~

出餿主意也是要有功力的,
一挖就讓 jojoling 進的準準準
沒一甲子養氣功夫 不是凡人可達境界

評分

1

查看全部評分

發表於 2015-10-29 01:12:54 | 顯示全部樓層
scottwang 發表於 2015-10-28 05:14 PM
不要當癮君子啦,對自己身體不好,對老婆和小孩也不好,對環境也不好,還有對口袋也不好,這麼多不好,改了吧, ...

>> 一個不要改,那就是對電子的喜愛不要改 ...
同意+1
發表於 2015-10-29 12:14:01 | 顯示全部樓層
jojoling 發表於 2015-10-28 02:29 PM
其實每個會員都有不同的貢獻~
有的負責修修東西,有的時後被110V/220V電一下~
有的負責看看文章~

衝~~衝~~衝~~

我是負責搖旗吶喊的(吃包子喊燒)..{:14_1492:}

雖然我什麼都看不懂.....我還是要說....{:14_1473:}

衝~~衝~~衝~~n_041|

評分

2

查看全部評分

發表於 2015-10-29 14:42:53 | 顯示全部樓層
看不太懂工作原理,DIY 就是無價!!n_097|

評分

1

查看全部評分

發表於 2015-10-29 20:29:24 | 顯示全部樓層
JOE大:
   沒想到也可以用 ARDUINO來改這東東!! 程式好簡潔啊!! 就是有一點看不懂, attach Interrupt(Button,Into_ISR,Low);
interrupt();
發表於 2015-10-29 20:42:54 | 顯示全部樓層
antlu 發表於 2015-10-29 08:29 PM
JOE大:
   沒想到也可以用 ARDUINO來改這東東!! 程式好簡潔啊!! 就是有一點看不懂, attach Interrupt(Butto ...

個人淺見,這個應該是加入中斷吧,按下按鈕時執行中斷!

評分

3

查看全部評分

發表於 2015-10-29 23:07:25 | 顯示全部樓層
cremaker 發表於 2015-10-29 08:42 PM
個人淺見,這個應該是加入中斷吧,按下按鈕時執行中斷!

CREMAKER大:
   感謝告知!!
發表於 2015-10-29 23:10:49 | 顯示全部樓層
antlu 發表於 2015-10-29 11:07 PM
CREMAKER大:
   感謝告知!!

其實在 arduino 官網上有介紹,antlu 大可參考一下:
https://www.arduino.cc/en/Reference/AttachInterrupt
 樓主| 發表於 2015-10-30 00:29:04 | 顯示全部樓層
antlu 發表於 2015-10-29 08:29 PM
JOE大:
   沒想到也可以用 ARDUINO來改這東東!! 程式好簡潔啊!! 就是有一點看不懂, attach Interrupt(Butto ...

其實,Arduino 什麼都能做說 ^^
 樓主| 發表於 2015-10-30 00:44:34 | 顯示全部樓層
本文章最後由 jojoling 於 2015-10-30 12:55 AM 編輯
antlu 發表於 2015-10-29 08:29 PM
JOE大:
   沒想到也可以用 ARDUINO來改這東東!! 程式好簡潔啊!! 就是有一點看不懂, attach Interrupt(Butto ...


其實原意一開始是用中斷來觸發完成動作,不過後來又再加入睡眠模式就又不太一樣了。
原意是打算設計成2個 button 產生中斷來執行。不過現在的程式,因為解釋成:
當按鍵任一按下時,會觸發系統,始其從睡眠模式回來,這時可改寫成把程式移到 loop() 去呼叫。
其實現在程式裏在中斷服務程式裏 INT0_ISR() ,在做用 delay() 時是有偏差的,應該是由於在巢狀中斷所產生,就是中斷優先權誰先誰後,或是系統wake up 回來需重新 init 某些,目前所看到的是 delay() timer 差了10倍(由示波器檢查得知),其實現在可以把主功能移到 loop() 再來做,delay()就會準了。
此功能有很多方法都能達成,只是我剛好一開始就用外部中斷 (interrupt)來設計。

另外,裏面引用了一個別人寫好的"庫" Enerlib,這種能用現成的庫,就不要自己來了,人家封裝好,就用,不要什麼都硬來,可以玩很廣喔。

還有,其實在很多時後(沒有timing issue,急需特性效能)的時後,程式的維護是很重要的,愈簡單愈笨愈好,這裏說的簡單/簡潔,不是說你打的愈少字愈好,而是最好讓人一瞄就看的懂,不用思考,這樣有時才是有效的好程式。


reference information:

How to let your Arduino go to sleep and wake up on an external event.
http://playground.arduino.cc/Learning/ArduinoSleepCode

認識與實驗Arduino的睡眠模式
http://swf.com.tw/?p=525

評分

6

查看全部評分

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

關閉

站長小叮嚀上一條 /1 下一條

禁閉室|手機版|連繫我們|痞酷網電子技術論壇

GMT+8, 2024-11-28 08:01 AM , Processed in 0.367494 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.