TWELITE  のファーム書き込みしてみる

ファーム書き込みは以前は通常のUSBシリアルでできていたみたいだが、今はFTDIチップを使ったUSBシリアルモジュールを使わないといけないようだ。

# 配線

FTDIチップを使ったUSBシリアルモジュールとして、WaveShare の FT232 USB UART Board (Type A) を使いました。
![IMG_20200706_204230004.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/319e7965-9e2d-7b2e-5858-9d964b045cd3.jpeg)

|TWE-LITE|FT232 UART Board |説明|
|:---:|:---:|:---:|
|TXD|RXD||
|PRG||GNDに接続|
|RXD|TXD||
|GND|GND||
|VCC|VCCIO| VCCIOは3V3に設定|
![IMG_20200706_211726778.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/92c5ea50-e538-1ca3-dcf0-443f0f4dea2d.jpeg)


# Ubuntu でやってみる編

以下のページを元に作業してみた
「tweterm.py」
https://sdk.twelite.info/twelite-sdkno/fumuua/tweterm.py


## 環境
- Ubuntu 18.04 
- TWELITE DIP
- Python 3.6.9

## インストール

tweterm.py は SDK に入っている。SDKをダウンロードして解凍しておく。


また、サイトの情報を元に、必要なパッケージをインストールしておく。

```

sudo apt-get install libusb-dev
sudo apt-get install python3-pip
sudo pip3 install pyserial
sudo pip3 install pyftdi
```

## 作業


```

$ cd MWSDK/Tools/tweprog_py/
$ ls -alh
合計 120K
drwxr-xr-x 3 nanbuwks nanbuwks 4.0K  5月 28  2018 .
drwxr-xr-x 5 nanbuwks nanbuwks 4.0K  5月 28  2018 ..
-rw-r--r-- 1 nanbuwks nanbuwks 5.4K 10月 27  2017 MW-SLA-1E.txt
-rw-r--r-- 1 nanbuwks nanbuwks 6.9K 10月 27  2017 MW-SLA-1J.txt
-rw-r--r-- 1 nanbuwks nanbuwks  981 10月 30  2017 TWEEnum.py
-rw-r--r-- 1 nanbuwks nanbuwks 2.6K 10月 30  2017 TWELogger.py
-rw-r--r-- 1 nanbuwks nanbuwks 1.5K 10月 30  2017 TWEProg.py
-rw-r--r-- 1 nanbuwks nanbuwks 2.9K 10月 30  2017 TWEProg_Firm.py
drwxr-xr-x 2 nanbuwks nanbuwks 4.0K  5月 28  2018 __pycache__
-rw-r--r-- 1 nanbuwks nanbuwks 8.6K 10月 30  2017 con_pyftdi.py
-rw-r--r-- 1 nanbuwks nanbuwks  11K 10月 30  2017 flashutils.py
-rw-r--r-- 1 nanbuwks nanbuwks  866 10月 30  2017 parseFmt.py
-rw-r--r-- 1 nanbuwks nanbuwks 2.3K 10月 30  2017 parseFmt_Ascii.py
-rw-r--r-- 1 nanbuwks nanbuwks 1.8K 10月 30  2017 parseFmt_Binary.py
-rw-r--r-- 1 nanbuwks nanbuwks 8.9K 10月 30  2017 pyterm.py
-rw-r--r-- 1 nanbuwks nanbuwks 7.8K 10月 30  2017 readme-j.txt
-rw-r--r-- 1 nanbuwks nanbuwks 3.7K 10月 30  2017 term.py
-rwxr-xr-x 1 nanbuwks nanbuwks  16K 10月 30  2017 tweterm.py


```

実行権ついているので、実行してみる

```

$ ./tweterm.py 

No USB-Serial device has been detected

```
USBシリアルが接続していないからですね。

```

$ ./tweterm.py 

Error: The device has no langid

```
と出てきました。FTDIデバイスのアクセス権限の問題です。アクセス権限の設定がめんどくさかったので、sudoで動かしました。

```


$ sudo ./tweterm.py 
Available interfaces:
  ftdi://ftdi:232:AI069IL2/1   (FT232R USB UART)

Please specify the USB device

```
と出て、FTDIデバイスを指定しろと出てきます。上の実行結果にデバイス名が出てますが、念の為サーチしてみて、

```

$ sudo ./tweterm.py -p ftdi:///?
Available interfaces:
  ftdi://ftdi:232:AI069IL2/1   (FT232R USB UART)

Please specify the USB device

```
出てきたデバイス名を使って書き込みをしてみます。


```

$ sudo ./tweterm.py -p ftdi://ftdi:232:AI069IL2/1 -b 115200 -F ../../../App_TweLite_1_8_2_BIN/App_Twelite-Master-BLUE.bin

Error: 
Bye.
```


配線が間違えていたので、直すと書けました

```
$ sudo ./tweterm.py -p ftdi://ftdi:232:AI069IL2/1 -b 115200 -F ../../../App_TweLite_1_8_2_BIN/App_Twelite-Master-BLUE.bin
*** TWE Wrting firmware ... ../../../App_TweLite_1_8_2_BIN/App_Twelite-Master-BLUE.bin
MODEL: TWEModel.TWELite
SER: 1000f97
FILEINFO: 04 03 0008
0%..10%..20%..30%..40%..50%..60%..70%..80%..90%..done - 10.53 kb/s
Entering minicom mode
*** r:reset i:+++ A:ASCFMT B:BINFMT x:exit>[RESET TWE]

```


# Windows
TWE-Programmer.exe を使います。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/a9f192b1-0e23-f957-64e5-fe8a43375105.png)

同様の接続で書けました。

なお、配線間違いのときに出てきたメッセージを、参考のために貼っておきます。

```

Entering minicom mode
*** r:reset i:+++ A:ASCFMT B:BINFMT x:exit>[Canceled]
*** r:reset i:+++ A:ASCFMT B:BINFMT x:exit>[+ + +]
*** r:reset i:+++ A:ASCFMT B:BINFMT x:exit>[+ + +]
Exception: UsbError: [Errno 32] Pipe error
*** r:reset i:+++ A:ASCFMT B:BINFMT x:exit>[Canceled]

```