20170210_jeffrey - silenceuncrio/diary GitHub Wiki

Index

  • 0840 - Dual SIM page - 'Connect' 按鈕需要修正一下
  • 1000 - m300 週會
  • 1300 - 紀錄一下昨天下班前接到的新需求
  • 1435 - 四月底前我有四個工作項目
  • 1550 - morris 量完 pull low 的時間表示不夠
  • 1625 - 發現 GPIO5-IO7 這根腳不能去做 mux mode 的設定

0840

關於 Dual SIM pageConnect 和 'Disconnect' 按鈕按下去之後的行為目前如下

  • Connect
    • 按下去之後顯示 旋轉圖示提醒使用者正在動作
    • 五秒之後再去確認狀態
  • 'Disconnect'
    • 按下去之後顯示 旋轉圖示提醒使用者正在動作
    • 五秒之後再去確認狀態

'Disconnect' 按鈕目前的行為是可以的

不過 'Connect' 按鈕需要修正一下

  • 按下去之後顯示 旋轉圖示提醒使用者正在動作
  • 五秒之後再去確認狀態, 若還是沒進入 connected 狀態, 再等五秒再確認
  • 如果持續一分鐘都還沒進入 connected 狀態... 提醒使用者 connecting fail

1000

m300 週會

這次 spring 也有參加

因為後續有些功能需要他幫忙

proposal 方面 aaron 提了 cli 和 snmp john 提了 spi driver ariel 提了 gps module

跟我有關的是 gps module

如果 proscend 的 menuconfig 沒有要包含 gps 功能的話

web ui 就不要顯示該功能

目前對於在 web ui 顯示 gps mosule 資訊的方式有變

為了規避 Google MAP 的版權問題

我們只在 banner 顯示經緯度

另外附上超連結讓使用者去連結到 google map 做顯示

1300

紀錄一下昨天下班前接到的新需求

M300 開機的時候, uboot 幫忙把下面這些周邊做 reset 的動作

  • eth1
  • eth2
  • LTE module

參考 https://github.com/silenceuncrio/diary/wiki/20170113_jeffrey#1045

整理一下上述各周邊的 reset pin

Reset PIN Instance Signal Pad Mode
Ethernet 1 GPIO1 IO30 UART5_TX_DATA ALT5
Ethernet 2 GPIO1 IO31 UART5_RX_DATA ALT5
Mobile GPIO5 IO7 SNVS_TAMPER7 No Muxing(ALT5)

Reset PIN 的 trigger 動作要先拉成 low... 至少維持一下... 再拉成 high

具體維持多久就看 uboot 的執行會不會太快

用以下的 uboot command 來對 Ethernet 1 做 reset

  • IOMUXC_SW_MUX_CTL_PAD_UART5_TX_DATA - select mux mode: ALT5 mux port
    • mw 0x020E00BC 00000005 1
  • GPIO1_GDIR - define the direction of the GPIO1-IO30 as OUTPUT
    • mw 0x0209C004 40000000 1
  • GPIO1_DR - define the value of the GPIO1-IO30 OUTPUT to 0 - pull low
    • mw 0x0209C000 00000000 1
  • GPIO1_DR - define the value of the GPIO1-IO30 OUTPUT to 1 - pull high
    • mw 0x0209C000 40000000 1

用以下的 uboot command 來對 Ethernet 2 做 reset

  • IOMUXC_SW_MUX_CTL_PAD_UART5_RX_DATA - select mux mode: ALT5 mux port
    • mw 0x020E00C0 00000005 1
  • GPIO1_GDIR - define the direction of the GPIO1-IO31 as OUTPUT
    • mw 0x0209C004 80000000 1
  • GPIO1_DR - define the value of the GPIO1-IO31 OUTPUT to 0 - pull low
    • mw 0x0209C000 00000000 1
  • GPIO1_DR - define the value of the GPIO1-IO31 OUTPUT to 1 - pull high
    • mw 0x0209C000 80000000 1

用以下的 uboot command 來對 Mobile(LTE Module) 做 reset

  • IOMUXC_SW_PAD_CTL_PAD_SNVS_TAMPER7 - select mux mode: ALT5 mux port
    • mw 0x020E02C4 00000005 1
  • GPIO5_GDIR - define the direction of the GPIO5-IO7 as OUTPUT
    • mw 0x020AC004 00000080 1
  • GPIO5_DR - define the value of the GPIO5-IO7 OUTPUT to 0 - pull low
    • mw 0x020AC000 00000000 1
  • GPIO5_DR - define the value of the GPIO5-IO7 OUTPUT to 1 - pull high
    • mw 0x020AC000 00000080 1

先搭配下述的 uboot env 讓 morris 量一下 pull low 的時間夠不夠

setenv reset_eth1 "echo reset ethetnet 1; mw 0x020E00BC 00000005 1; mw 0x0209C004 40000000 1; mw 0x0209C000 00000000 1; mw 0x0209C000 40000000 1"

setenv reset_eth2 "echo reset ethernet 2; mw 0x020E00C0 00000005 1; mw 0x0209C004 80000000 1; mw 0x0209C000 00000000 1; mw 0x0209C000 80000000 1"

setenv reset_mobile "echo reset mobile module; mw 0x020E02C4 00000005 1; mw 0x020AC004 00000080 1; mw 0x020AC000 00000000 1; mw 0x020AC000 00000080 1"

setenv bootcmd "run reset_eth1; run reset_eth2; run reset_mobile"

saveenv

1435

四月底前我有四個工作項目

  • Web server with HTTPS
  • Web Proxy
  • FOTA
  • Web UI

分別來盤一下

Web UI

這個不像個工作項目

而是我在 M300 所扮演的支援角色

沒有完成的一天

而是要幫每個成員實作 WEB UI

Web server with HTTPS

這是個明確的工作項目

具體要去研究目前的 mongoose embedded webserver 怎麼來實作

Web Proxy

這也是個明確的工作項目

具體要去研究目前的 mongoose embedded webserver 怎麼來實作

FOTA

這是這個階段的最大挑戰

FOTA 應該 firmware over the air 的縮寫

我們會需要有一台 FOTA Server

M300 每天會問一次 FOTA Server 有沒有新的 fimrware

如果有就從 FOTA Server 下載該 firmware 來更新

1550

morris 量完 pull low 的時間表示不夠

直接利用 uboot 的 sleep

setenv reset_eth1 "echo reset ethetnet 1; mw 0x020E00BC 00000005 1; mw 0x0209C004 40000000 1; mw 0x0209C000 00000000 1; sleep 1; mw 0x0209C000 40000000 1"

setenv reset_eth2 "echo reset ethernet 2; mw 0x020E00C0 00000005 1; mw 0x0209C004 80000000 1; mw 0x0209C000 00000000 1; sleep 1; mw 0x0209C000 80000000 1"

setenv reset_mobile "echo reset mobile module; mw 0x020E02C4 00000005 1; mw 0x020AC004 00000080 1; mw 0x020AC000 00000000 1; sleep 1; mw 0x020AC000 00000080 1"

setenv bootcmd "run reset_eth1; run reset_eth2; run reset_mobile"

saveenv

1625

發現 GPIO5-IO7 這根腳不能去做 mux mode 的設定

修正一下

用以下的 uboot command 來對 Mobile(LTE Module) 做 reset

  • GPIO5_GDIR - define the direction of the GPIO5-IO7 as OUTPUT
    • mw 0x020AC004 00000080 1
  • GPIO5_DR - define the value of the GPIO5-IO7 OUTPUT to 0 - pull low
    • mw 0x020AC000 00000000 1
  • GPIO5_DR - define the value of the GPIO5-IO7 OUTPUT to 1 - pull high
    • mw 0x020AC000 00000080 1

利用下述的 uboot env 已經和 morris 確認過可行性了

setenv gpio_eth1reset_init "mw 0x020E00BC 00000005 1; mw 0x0209C004 40000000 1"
setenv gpio_eth1reset_low "mw 0x0209C000 00000000 1"
setenv gpio_eth1reset_high "mw 0x0209C000 40000000 1"

setenv gpio_eth2reset_init "mw 0x020E00C0 00000005 1; mw 0x0209C004 80000000 1"
setenv gpio_eth2reset_low "mw 0x0209C000 00000000 1"
setenv gpio_eth2reset_high "mw 0x0209C000 80000000 1"

setenv gpio_mobilereset_init "mw 0x020AC004 00000080 1"
setenv gpio_mobilereset_low "mw 0x020AC000 00000000 1"
setenv gpio_mobilereset_high "mw 0x020AC000 00000080 1"

setenv bootcmd "run gpio_eth1reset_init; run gpio_eth2reset_init; run gpio_mobilereset_init; run gpio_eth1reset_low; run gpio_eth2reset_low; run gpio_mobilereset_low; sleep 1; run gpio_eth1reset_high; run gpio_eth2reset_high; run gpio_mobilereset_high"

saveenv

下禮拜再找時間整合進目前的軟體