2021年10月19日 星期二

交換式電源設計初探

隨著3C產品的普及,有許多小型電源變壓器出現,通常是以USB插座為輸出,並且提供500mA~2000mA之間的輸出功率。在拆解一款USB電源供應器的時候,發現設計極為簡單,甚至僅見TO-92包裝的元件,經查發現為一款編號為13001的電晶體,專門用來實作大功率的開關用途。
13001相關的電路設計在網路上十分常見,如果要如法炮製確實不難,唯有變壓器一項不知其參數。






2019年12月11日 星期三

樹莓派上用安裝方式打造最小桌面系統

樹莓派最小安裝
啟動後執行raspi-config
設定wifi
設定autologin

安裝樹莓派的xwindow、顯示驅動、桌面管理員以及chromium
sudo apt-get install --no-install-recommends xserver-xorg libgles2-mesa-dev xorg-dev chromium-browser matchbox-window-manager

reboot之後

在~/.bashrc 添加 startx
創建~/.xinitrc 添加欲自動執行的xwindow程式


2019年5月7日 星期二

在stm32f407搭配SW開發dsp程式的程式庫設定

從STM32065這裡可以拿到stm32出的dsp程式
https://www.st.com/en/embedded-software/stsw-stm32065.html
但是在SW裡面開發時需要設定一些地方
首先看看STM32065裡面有什麼
下載並解開後的資料夾名稱(版本1.8)
STM32F4xx_DSP_StdPeriph_Lib_V1.8.0

裡面有個Lib資料夾,裡面有DSP相關標頭檔以及程式庫,以下標示程式庫所在位置,我們需要的是GCC版本,將整個Lib資料夾拉到專案的Drivers/CMSIS資料夾裡面
再來找到標頭檔(.h)所在位置,將這幾個拉到專案的Drivers/CMSIS/Include資料夾裡面
補充:在刷新cubeMX的時候這裡面的.h會被刷新,新加入的.h會消失需要重新拉入,目前正在找新的資料夾位置

目前SW專案資料夾會多上面這兩個

接著打開專案設定,點選Libraries設定(-l)新增arm_cortexM4lf_math,設定(-L)新增程式庫所在路徑,這裡示範的程式庫是放在專案的相對位置:Drivers/CMSIS/Lib/GCC
至於include的部份因為我們放的是已經存在專案中的include資料夾,因此在專案設定方面無需更動。

最後加入ARM_MATH_CM4的巨定義以便讓前置處理器能夠開通標頭檔中相對應的巨集設定

然後就可以在程式中呼叫相關DSP 的API
記得引入相對應標頭檔:
      #include <arm_math.h>
      arm_sin_f32(2*PI*10*i/Fs)

      arm_cfft_radix4_init_f32(&Base4fft,Length,0,1);
      arm_cfft_radix4_f32(&Base4fft,Inputdata);

      arm_cmplx_mag_f32(Inputdata,Outputdata,Length);

參考資料:

CFLAGS += -I$(CMSISPATH)/CMSIS/DSP/Include
LDFLAGS += -L$(CMSISPATH)/CMSIS/Lib/GCC/ -larm_cortexM4lf_math
出處:https://stackoverflow.com/questions/49237484/stm32f-discovery-undefined-reference-to-arm-sin-f32

2019年5月1日 星期三

在7688duo的後台shell裡面,如何使用avrdude及其注意事項

1.  要在avr ide產生正確的7688duo的32u4 hex檔,需要記得載入7688duo的板子管理員
2.  avr ide產生的hex在什麼地方,可以將avr ide的詳細輸出打開,編譯訊息中會指出位置
3.  呼叫 /usr/bin/run-avrdude 後面帶hex檔即可後台燒錄
4. 二次呼叫如果出現下列錯誤訊息
    set pinmux spi_s -> gpio
    Can't export GPIO 3, already exported/busy?: Device or resource busy
    則需要將 /sys/class/gpio/裡面的gpio3 unexport掉

2019年3月23日 星期六

ubuntu升級當機修復記

這一次ubuntu升級原本利用圖形介面,但升級到一半電腦當機只好重置重開機。但之後開機畫面一片黑只剩下游標,再開機一次後進入安全模式但也無法修復,只好正常開機後用ctrl-alt-F1進入終端機試圖用指令修復,但是用指令
ifconfig
發現網路裝置eth0消失只剩下lo裝置。
用指令
ip a
可以發現裝置存在但是狀態是DOWN
於是找到指令
sudo ip link set eth0 up
這樣可以把eth0開啟
但這樣可以把裝置開啟還是沒有取得ip
於是再用指令
sudo dhclient eth0
取得ip位置
到此系統終於可以連上網路
然後再用指令
sudo dpkg --configure -a
試圖修復系統繼續升級

2019年3月7日 星期四

發想:7688的擴展版,增加易用性

7688是一款自帶wifi的linux單板
其linux版本是openwrt,一種用在路由器的作業系統
由於linux系統的關係,使得7688能夠執行多樣的應用程式
例如搭配webcam可以做為網路影像監視器
同時也可以安裝執行python、node等程式

7688原始設計中,如果要設定7688的wifi組態,需要將7688的組態先回復成原始狀態
其原始狀態是將自己成為無線基地台並同時執行網頁伺服器,
然後使用者可以連接進去7688的首頁進行相關設定

這裡設想幾個情境
只有7688:使用者直接與7688連接與操作
處在wifi環境:7688可切換成Client端模式,將7688連接到區域無線網路中,使用者與7688同處一處區域wifi便可以連接7688,此時必須知道7688的ip,或者在電腦具備Bonjour協定能力情況下,以domain name方式登入7688進行操控

於是,我想設計一款擴展版,上面具備顯示幕,能將顯示7688目前的狀態或ip,這樣就可以方便讓使用者連線

同時擴展板上的為控制器除了負責顯示7688狀態與溝通,也可以負擔一些周邊擴充的任務,例如GPIO擴展,PWM擴展以及ADC,DAC等類比輸出入