上網找update ESP8266 tool 有找到,
但要說的不是軟體,重點是在硬體方面
ESP8266 source
VCC => 3.3V
GND => GND
RX => TX
TX => RX
CH_PD => 3.3V
RST => x(不接)
GPIO0 => GND
GPIO2 => x(不接)
這樣再加上update tool就可以燒了
2016年3月9日 星期三
ESP8266用UART控制
先用UART轉USB的方法來測試一些功能是否正常
只寫我遇到的情況,其他上網找有一大堆說明
硬體方面遇到問題:
1.之前用UART轉USB的3.3V去做電源供應,發現電流不足,所以改用Power Supply供給3.3V
2.板子上的CH_PD腳要接到VCC(3.3V)

軟體遇到的問題:
板子上的軟體沒有更新,新版的是(AT+GMR 0018000902 OK),而我沒更新用115200 baudrate
1.我用的Terminal是RealTerm(Realterm_2.0.0.70),網路找也一大堆
選擇這個使用上會有亂碼的現象,下面是我選的選項,不會出現亂碼,選擇ansi


2.AT Command,一行一行下command
1.剛裝好要先下AT ,是因為看有沒有回OK,如果有回OK,表示可以通
2.先掃一下wifi, AT+CWLAP
3.掃到後, AT+CWJAP="power","1122334455"
4.連上thingspeak.com, AT+CIPSTART="TCP","183.106.153.149",80
5.告知要上傳的長度 AT+CIPSEND=52
6.要丟的資料 GET /update?key=CKS7J99MM62TTJAC&field1=5&field2=9
這樣就可以在網上看到資料
下面是我遇到的問題
第四項問題: 183.106.153.149 就是thingspeak.com的IP address自固定的,80是port,也是固定
第五項問題: 連上後AT+CIPSEND=52 <<==52 因為長度不對,導致網站回應錯誤
第六項問題: 1.有很多網站會出現 (>) <==之前就是搞不懂,是自己要下command還是怎樣,結果 是第五項下了之後就會產生(>)
2.CKS7J99MM62TTFJAC <<==這種東西是thingspeak.com給的現在是我亂寫的 不能照抄,在API keys(網頁),上網找,會有,要換上自己的
可以下2種方式上傳:
1.
AT+CIPSEND=52
GET /update?key=CKS7J99MM62TTJAC&field1=5&field2=9
2.
AT+CIPSEND=78
https://api.thingspeak.com/update?api_key=CKS7J99MM62TTJAC&field1=1&field2=5
請注意一下長度,如果還是看不到資料,可以在空白網頁上輸入
https://api.thingspeak.com/update?api_key=CKS7J99MM62TTJAC&field1=1&field2=5
再到自己的thingspeak.com網頁裡看有沒有資料,有的話,表示thingspeak.com網站是可以填寫資料的
這是我下command索回傳的字串

只寫我遇到的情況,其他上網找有一大堆說明
硬體方面遇到問題:
1.之前用UART轉USB的3.3V去做電源供應,發現電流不足,所以改用Power Supply供給3.3V
2.板子上的CH_PD腳要接到VCC(3.3V)

軟體遇到的問題:
板子上的軟體沒有更新,新版的是(AT+GMR 0018000902 OK),而我沒更新用115200 baudrate
1.我用的Terminal是RealTerm(Realterm_2.0.0.70),網路找也一大堆
選擇這個使用上會有亂碼的現象,下面是我選的選項,不會出現亂碼,選擇ansi


2.AT Command,一行一行下command
1.剛裝好要先下AT ,是因為看有沒有回OK,如果有回OK,表示可以通
2.先掃一下wifi, AT+CWLAP
3.掃到後, AT+CWJAP="power","1122334455"
4.連上thingspeak.com, AT+CIPSTART="TCP","183.106.153.149",80
5.告知要上傳的長度 AT+CIPSEND=52
6.要丟的資料 GET /update?key=CKS7J99MM62TTJAC&field1=5&field2=9
這樣就可以在網上看到資料
下面是我遇到的問題
第四項問題: 183.106.153.149 就是thingspeak.com的IP address自固定的,80是port,也是固定
第五項問題: 連上後AT+CIPSEND=52 <<==52 因為長度不對,導致網站回應錯誤
第六項問題: 1.有很多網站會出現 (>) <==之前就是搞不懂,是自己要下command還是怎樣,結果 是第五項下了之後就會產生(>)
2.CKS7J99MM62TTFJAC <<==這種東西是thingspeak.com給的現在是我亂寫的 不能照抄,在API keys(網頁),上網找,會有,要換上自己的
可以下2種方式上傳:
1.
AT+CIPSEND=52
GET /update?key=CKS7J99MM62TTJAC&field1=5&field2=9
2.
AT+CIPSEND=78
https://api.thingspeak.com/update?api_key=CKS7J99MM62TTJAC&field1=1&field2=5
請注意一下長度,如果還是看不到資料,可以在空白網頁上輸入
https://api.thingspeak.com/update?api_key=CKS7J99MM62TTJAC&field1=1&field2=5
再到自己的thingspeak.com網頁裡看有沒有資料,有的話,表示thingspeak.com網站是可以填寫資料的
這是我下command索回傳的字串

2016年1月20日 星期三
FreeRTOS xSemaphoreCreateMutex用法
親身體驗的結果,
測試環境:
Compiler: windows8.1 + CCS v6.1x
Software:撿到的FreeRTOS,應該是8.2.3版的
Hardware:EK-TM4C123GXL
測試功能是要使用2組UART(UART0,UART1),做printf,如果沒有用xSemaphoreCreateMutex,輕的會print不出來,重的會直接當機給你看,測試幾次,有2次是重新開機
xSemaphoreHandle g_pUARTSemaphore;
xSemaphoreHandle g_pUART1Semaphore;
int main(void)
{
ROM_SysCtlClockSet(SYSCTL_SYSDIV_2_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ| SYSCTL_OSC_MAIN); //80 MHZ
ConfigureUART();
UARTprintf("\n UARTprintf \nWelcome to the EK-TM4C123GXL FreeRTOS Demo!\n");
UART1_Init();
UART1printf("\nUART1printf \n Welcome to the EK-TM4C123GXL FreeRTOS Demo!\n");
下面是我的範例,如果拿掉xSemaphoreTake, xSemaphoreGive,只留下2行的UARTprintf,會很慘
extern xSemaphoreHandle g_pUARTSemaphore;
extern xSemaphoreHandle g_pUART1Semaphore;
static portTASK_FUNCTION(vTest2Task, pvParameters)
{
for( ;; )
{
xSemaphoreTake(g_pUARTSemaphore, portMAX_DELAY);
UARTprintf("U0vTest2Task.......\r\n");
xSemaphoreGive(g_pUARTSemaphore);
xSemaphoreTake(g_pUART1Semaphore, portMAX_DELAY);
UART1printf("U1vTest2Task.......\r\n");
xSemaphoreGive(g_pUART1Semaphore);
vTaskDelay( 1000/portTICK_RATE_MS );
}
}
//=======================================================
輕點當機,會進到系統裡的地方是,下面的地方
//*****************************************************************************
//
// This is the code that gets called when the processor receives a fault
// interrupt. This simply enters an infinite loop, preserving the system state
// for examination by a debugger.
//
//*****************************************************************************
static void
FaultISR(void)
{
//
// Enter an infinite loop.
//
while(1)
{
}
}
測試環境:
Compiler: windows8.1 + CCS v6.1x
Software:撿到的FreeRTOS,應該是8.2.3版的
Hardware:EK-TM4C123GXL
測試功能是要使用2組UART(UART0,UART1),做printf,如果沒有用xSemaphoreCreateMutex,輕的會print不出來,重的會直接當機給你看,測試幾次,有2次是重新開機
xSemaphoreHandle g_pUARTSemaphore;
xSemaphoreHandle g_pUART1Semaphore;
int main(void)
{
ROM_SysCtlClockSet(SYSCTL_SYSDIV_2_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ| SYSCTL_OSC_MAIN); //80 MHZ
ConfigureUART();
UARTprintf("\n UARTprintf \nWelcome to the EK-TM4C123GXL FreeRTOS Demo!\n");
UART1_Init();
UART1printf("\nUART1printf \n Welcome to the EK-TM4C123GXL FreeRTOS Demo!\n");
g_pUARTSemaphore = xSemaphoreCreateMutex();
g_pUART1Semaphore = xSemaphoreCreateMutex();
while(1);
}下面是我的範例,如果拿掉xSemaphoreTake, xSemaphoreGive,只留下2行的UARTprintf,會很慘
extern xSemaphoreHandle g_pUARTSemaphore;
extern xSemaphoreHandle g_pUART1Semaphore;
static portTASK_FUNCTION(vTest2Task, pvParameters)
{
for( ;; )
{
xSemaphoreTake(g_pUARTSemaphore, portMAX_DELAY);
UARTprintf("U0vTest2Task.......\r\n");
xSemaphoreGive(g_pUARTSemaphore);
xSemaphoreTake(g_pUART1Semaphore, portMAX_DELAY);
UART1printf("U1vTest2Task.......\r\n");
xSemaphoreGive(g_pUART1Semaphore);
vTaskDelay( 1000/portTICK_RATE_MS );
}
}
//=======================================================
輕點當機,會進到系統裡的地方是,下面的地方
//*****************************************************************************
//
// This is the code that gets called when the processor receives a fault
// interrupt. This simply enters an infinite loop, preserving the system state
// for examination by a debugger.
//
//*****************************************************************************
static void
FaultISR(void)
{
//
// Enter an infinite loop.
//
while(1)
{
}
}
2015年5月12日 星期二
Filezilla Client windows8.1跟ubuntu 10.04安裝
server 是linux系統的,有用基本的putty的telnet連上過,沒問題
先講簡單的windows8.1
安裝完 Filezilla Client 3.10.3 , 打開後,開啟站台管理員,新增站台=>在一般設定=>
主機:192.168.xx.xx
連接埠:22
協定:SFTP-SSH File Transfer Protocol
登入型式:一般
使用者:xxx(在server的帳號)
密碼:xxx(在server的密碼)
再按連線,就可以看到successful
先講簡單的windows8.1
安裝完 Filezilla Client 3.10.3 , 打開後,開啟站台管理員,新增站台=>在一般設定=>
主機:192.168.xx.xx
連接埠:22
協定:SFTP-SSH File Transfer Protocol
登入型式:一般
使用者:xxx(在server的帳號)
密碼:xxx(在server的密碼)
再按連線,就可以看到successful
======================================================================
再說linux ubuntu10.04版的
先在terminal下
sudo apt-get install filezilla
安裝完後到
/usr/bin/
看看有沒有
filezilla
直接去執行filezilla,左鍵滑鼠敲2下,就可以打開filezilla
再往下做就跟windows的操作一樣
2015年5月11日 星期一
ubuntu 10.04 安裝圖形化介面
1.先在VM=>Install VMware Tools
首先發現會出現的問題, "VMware Tools installation cannot be started manually while Easy Install is in progress."
首先發現會出現的問題, "VMware Tools installation cannot be started manually while Easy Install is in progress."
1.先確認一下,是否有選到的選項
如果還不行,就請用終極作法
1.將Floppy先移除掉,再重新add,一樣是選Auto detect,按ok
2.再將CD/DVD移除掉,再重新add,選Auto detect,在按ok
完畢後,再開機(power on),開機時會出現找不到Floppy,但不管它,開機後再選一次,VM=>Install VMware Tools,這樣就可以正常了,會出現cancel VMware Tools installation
=======================================================================
有安裝過ubuntu-14.10-desktop-amd64,跟安裝最新的ubuntu-15.04-desktop-i386,安裝老半天都沒法create share file,上面的就是我遇到其中的某一個問題,所以只好回到10.04,之前有使用過10.04版,但是燒到光碟版的安裝都沒什麼問題,我是
直接下載ubuntu 10.04,ubuntu-10.04.4-server-i386.iso,沒燒成CD,安裝完,啟動後,就變文字模式,如果要進入圖形化介面,在terminal,先安裝sudo apt-get install xinit,再打startx,哇~發現是變成白底黑字,在網上找到一些資料,做了一些動作都沒用,例如做一些update,
但是安裝完下面指令後就可以進入圖形化介面,但是安裝時間要很久,我下載時間約2小時多
sudo apt-get install ubuntu-desktop #gnome
如果再不行,可以試著換這個
sudo apt-get install Kubuntu-desktop #kde
我2個都有安裝,先安裝sudo apt-get install ubuntu-desktop #gnome,再安裝sudo apt-get install Kubuntu-desktop #kde,發現會讓你選擇是要執行gnome或kde,我選擇gnome,看起來是沒問題的
2014年11月3日 星期一
MT7620 新增madplayer方法
要先下載madplayer的資料
madplay-0.15.2b.tar.gz
libmad-0.15.1b.tar.gz
libid3tag-0.15.1b.tar.gz
網址:
http://sourceforge.net/projects/mad/files/
zlib-1.2.8.tar.gz
網址:
http://sourceforge.net/projects/libpng/files/zlib/1.2.8/zlib-1.2.8.tar.gz/download
1.
先指定路徑:
TOOLCHAINPATH=/opt/buildroot-gcc342/bin/
2.安裝zlib
tar zxf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure --prefix=$TOOLCHAINPATH
make CC=mipsel-linux-gcc 2>&1 | tee build.log
make install
3.安裝libid3tag
tar zxf libid3tag-0.15.1b.tar.gz
cd libid3tag-0.15.1b
RANLIB=mipsel-linux-ranlib AR=mipsel-linux-ar CC=mipsel-linux-gcc ./configure --prefix=$TOOLCHAINPATH --enable-static --disable-shared --host=mipsel-linux
make 2>&1 | tee build.log
make install
4.安裝libmad
tar zxf libmad-0.15.1b.tar.gz
cd libmad-0.15.1b
RANLIB=mipsel-linux-ranlib AR=mipsel-linux-ar CC=mipsel-linux-gcc ./configure --prefix=$TOOLCHAINPATH --enable-static --disable-shared --host=mipsel-linux
make 2>&1 | tee build.log
make install
5.安裝madplay
tar zxf madplay-0.15.2b.tar.gz
cd madplay-0.15.2b
LIBS="-lm -lz" RANLIB=mipsel-linux-ranlib AR=mipsel-linux-ar CC=mipsel-linux-gcc ./configure --prefix=$TOOLCHAINPATH --enable-static --disable-shared --host=mipsel-linux
make 2>&1 | tee build.log
基本上這樣是沒錯的,但是我安裝到最後會出現問題,不知道為什麼,請待續...
下面是我compiler過的
方法一:
安裝zlib
tar zxf zlib-1.2.8.tar.gz
cd zlib-1.2.8
CC=mipsel-linux-gcc AR="mipsel-linux-ar rc" RANLIB=mipsel-linux-ranlib ./configure --prefix=/opt/buildroot-gcc342/bin/mipsel-linux
export CPPFLAGS='-I../libmad -I../libid3tag'
export LDFLAGS='-L../libmad -L../libid3tag'
安裝libid3tag
./configure --host=mipsel-linux
make
cp .libs/libid3tag.a .
安裝libmad
./configure --host=mipsel-linux
make
cp .libs/libmad.a .
安裝madplay
./configure --host=mipsel-linux
make
我compiler後,會出現這樣的問題
../libtool: line 1644: cd: ../libmad: No such file or directory
libtool: link: cannot determine absolute directory name of `../libmad'
make[2]: *** [libintl.la] Error 1
解決方法:直接指到絕對路徑
修改Makefile
#vi Makefile
CPPFLAGS='-I/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libmad/ -I/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libid3tag/'
LDFLAGS='-L/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libmad/ -L/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libid3tag/'
最後再下:
#./configure --host=mipsel-linux --disable-debugging --disable-shared --enable-static CPPFLAGS='-I/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libmad/ -I/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libid3tag/' LDFLAGS='-L/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libmad/ -L/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libid3tag/.libs'
就過了
之後換make
#make
又會出現error
mipsel-linux-gcc: /root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libid3tag/.libs/.libs/libid3tag.so: No such file or directory
make[2]: *** [madplay] Error 1
再次修改Makefile
vi Makefile
找到下面那行
LDFLAGS='-L/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libmad/ -L/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libid3tag/.libs'
變成
LDFLAGS='-L/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libmad/ -L/root/Workspace/SDK4120_Original_DRAM_128MB/source/user/madplay/libid3tag/
之後再make一次
#make
就過了
# file madplay
madplay: ELF 32-bit LSB executable, MIPS, MIPS-II version 1 (SYSV), dynamically linked (uses shared libs), not stripped
就會看到是用MIPS
2013年5月23日 星期四
PIC32MX795F512H相關的問題PK3Err0040 error massage
這顆CHIP發現有個問題,就是燒錄問題,在programmer可以燒錄,但是轉換成Debug時候就不能燒錄,會出現這樣的Massage:
PK3Err0040: The target device is not ready for debugging.
Please check your configuration bit settings and program
the device before proceeding.
檢查之後是因為Spec上有寫到的問題
bit 3 ICESEL: In-Circuit Emulator/Debugger Communication Channel Select bit
1 = PGEC2/PGED2 pair is used
0 = PGEC1/PGED1 pair is used
bit 2 Reserved: Write ‘1’
bit 1-0 DEBUG<1:0>: Background Debugger Enable bits (forced to ‘11’ if code-protect is enabled)
11 = Debugger is disabled
10 = Debugger is enabled
01 = Reserved (same as ‘11’ setting)
00 = Reserved (same as ‘11’ setting)
原來燒錄問題是出現在這顆IC有2個燒錄方式,分別是
1. PGEC1; PGED1
2. PGEC2; PGEC2
要看當時的版子是選用哪一種方式去燒路,所以要去選擇Configure->Configuration Bit->ICESEL
要看一下線路圖,Spec預設值是PGEC2/PGED2
線路圖的話,
要看一下PIC32MX795F512,100隻腳位PGEC1/PGED1是在pin24(PGEC1),pin25(PGED1)
PGEC2/PGED2是在pin28(PGEC2),pin27(PGED2)
PK3Err0040: The target device is not ready for debugging.
Please check your configuration bit settings and program
the device before proceeding.
檢查之後是因為Spec上有寫到的問題
bit 3 ICESEL: In-Circuit Emulator/Debugger Communication Channel Select bit
1 = PGEC2/PGED2 pair is used
0 = PGEC1/PGED1 pair is used
bit 2 Reserved: Write ‘1’
bit 1-0 DEBUG<1:0>: Background Debugger Enable bits (forced to ‘11’ if code-protect is enabled)
11 = Debugger is disabled
10 = Debugger is enabled
01 = Reserved (same as ‘11’ setting)
00 = Reserved (same as ‘11’ setting)
原來燒錄問題是出現在這顆IC有2個燒錄方式,分別是
1. PGEC1; PGED1
2. PGEC2; PGEC2
要看當時的版子是選用哪一種方式去燒路,所以要去選擇Configure->Configuration Bit->ICESEL
要看一下線路圖,Spec預設值是PGEC2/PGED2
線路圖的話,
要看一下PIC32MX795F512,100隻腳位PGEC1/PGED1是在pin24(PGEC1),pin25(PGED1)
PGEC2/PGED2是在pin28(PGEC2),pin27(PGED2)
訂閱:
文章 (Atom)



