本文來源電子發(fā)燒友社區(qū),作者:盧松濤, 帖子地址:https://bbs.elecfans.com/jishu_2286300_1_1.html
非常感謝發(fā)燒友論壇和上海合宙通信科技有限公司 為我和孩子提供此產(chǎn)品合宙Air105開發(fā)板感謝大佬們的指導(dǎo)。
合宙Air105開發(fā)板是一款由上海合宙通信科技有限公司 LuatOS-SoC開發(fā)板,如果使用廠家提供的合宙LuatOS固件和LuaTools下載軟件,可以用任何文本編輯軟件開發(fā)使用此Air105開發(fā)板。
LuatOS:
LuatOS是一款針對嵌入式的腳本運(yùn)行框架,可以極大提升開發(fā)效率。
使用Lua 5.3作為主要語言,針對資源較少的嵌入式環(huán)境進(jìn)行了優(yōu)化,極大提升了運(yùn)行效率。
Powerful embedded Lua Engine for IoT devices, with many components and low memory requirements (16K RAM, 128K Flash)
是合宙出的基于freertos的VM,提供庫和外設(shè)、LuatOS-SOC接口及demo 極大提升開發(fā)效率。
合宙Air105是一款QFN88 封裝,10mm x 10mm 大小的MCU, 支持最多54個GPIO,不僅提供UART/GPIO/I2C/ADC/SPI等基礎(chǔ)外設(shè),更提供DAC/USB/DCMI/HSPI/LCDI/KCU等高級外設(shè)接口,內(nèi)置充電 功能,支持5V/3.3V供電,同時自帶5v轉(zhuǎn)3.3V的LDO,4M字節(jié)Flash,640K字節(jié)RAM。
105發(fā)布:http://www.1cnz.cn/d/comp-4699659-136340651553233530880.html
105源碼:https://gitee.com/openLuat/luatos-soc-air105
105編譯說明:https://wiki.luatos.com/develop/compile/Air105.html
105寄存器手冊:https://luatos.com/t/air105
我使用的LuatOS-SoC@Air105 V0007正式固件地址:
https://gitee.com/openLuat/LuatOS/releases/v0007.air105.v0007
最新的https://gitee.com/openLuat/LuatOS/releases/v0007.air105.v0008
下載tool(我下載的是LuaTools 2。1。58):https://wiki.luatos.com/pages/tools.html
準(zhǔn)備一個文本編輯軟件(我用的UltraEdit)
程序:
復(fù)制代碼
. 雙擊 Luatools_v2.exe 啟動程序并更新
.LuaTools 各個文件夾功能:
1. _temp : 臨時文件。2. config : 對Luatools_V2 進(jìn)行的一些配置會存放到這個文件夾。3. log : 這個文件夾和我們關(guān)系緊密,當(dāng)你向合宙 FAE 尋求技術(shù)支持的時候,需要提交這個目錄下的文件。4. resource : 合宙模塊相關(guān)的AT固件,LuaTask 開發(fā)的Core 底層固件,Lib庫 和demo5. project : 使用項(xiàng)目管理后會自動生成這個目錄,用來管理下載項(xiàng)目的
. 下載固件入口
LuatOS-SoC@Air105 V0007正式固件位置并下載
. 項(xiàng)目管理入口
選擇"創(chuàng)建",輸入項(xiàng)目名字,選擇確認(rèn),選擇填入lua文件的位置(我的是H:合宙Air105
esource105_lua_lodcore_V0007democoremark下的main.lua)
選擇底層core選擇剛才下載 LuatOS-SoC@Air105 V0007正式固件位置
就可以只下載lua文件了。
log:[2022-06-13 09:40:18.266] X8yZRemote_Upgrade 468:no ota info
復(fù)制代碼
環(huán)境搭建
完成。
出現(xiàn)問題:
1。mcu.reg(address, value, mask)讀不出
2。mcu.tick64()只有32位
3。RTC (Real-Time Clock)實(shí)時時鐘使用mcu.setXTAL(source_main, source_32k),低速32K使用外部晶振不工作。
lua語法了解:
Lua快速入門教程 –
https://www.bilibili.com/video/BV1vf4y1L7Rb
Lua教程-進(jìn)階部分 –
https://www.bilibili.com/video/BV1WR4y1E7ud
luatos在線模擬器 –
https://wiki.luatos.com/_static/luatos-emulator/lua.html
語法參考手冊 –
https://www.runoob.com/manual/lua53doc/contents.html
Lua 5.3 歡迎你 –
https://www.runoob.com/manual/lua53doc/
語法 –
https://www.runoob.com/lua/lua-tutorial.html
文檔 –https://wiki.luatos.com/
文檔2 –https://wiki.openluat.com/
非常感謝發(fā)燒友論壇和上海合宙通信科技有限公司 為我和孩子提供此產(chǎn)品合宙Air105開發(fā)板感謝大佬們的指導(dǎo)。
合宙Air105開發(fā)板是一款由上海合宙通信科技有限公司 LuatOS-SoC開發(fā)板,如果使用廠家提供的合宙LuatOS固件和LuaTools下載軟件,可以用任何文本編輯軟件開發(fā)使用此Air105開發(fā)板。
LuatOS:
LuatOS是一款針對嵌入式的腳本運(yùn)行框架,可以極大提升開發(fā)效率。
使用Lua 5.3作為主要語言,針對資源較少的嵌入式環(huán)境進(jìn)行了優(yōu)化,極大提升了運(yùn)行效率。
Powerful embedded Lua Engine for IoT devices, with many components and low memory requirements (16K RAM, 128K Flash)
是合宙出的基于freertos的VM,提供庫和外設(shè)、LuatOS-SOC接口及demo 極大提升開發(fā)效率。
合宙Air105是一款QFN88 封裝,10mm x 10mm 大小的MCU, 支持最多54個GPIO,不僅提供UART/GPIO/I2C/ADC/SPI等基礎(chǔ)外設(shè),更提供DAC/USB/DCMI/HSPI/LCDI/KCU等高級外設(shè)接口,內(nèi)置充電 功能,支持5V/3.3V供電,同時自帶5v轉(zhuǎn)3.3V的LDO,4M字節(jié)Flash,640K字節(jié)RAM。
105發(fā)布:http://www.1cnz.cn/d/comp-4699659-136340651553233530880.html
105源碼:https://gitee.com/openLuat/luatos-soc-air105
105編譯說明:https://wiki.luatos.com/develop/compile/Air105.html
105寄存器手冊:https://luatos.com/t/air105
我使用的LuatOS-SoC@Air105 V0007正式固件地址:
https://gitee.com/openLuat/LuatOS/releases/v0007.air105.v0007
最新的https://gitee.com/openLuat/LuatOS/releases/v0007.air105.v0008
下載tool(我下載的是LuaTools 2。1。58):https://wiki.luatos.com/pages/tools.html
準(zhǔn)備一個文本編輯軟件(我用的UltraEdit)
程序:
- -- LuaTools需要PROJECT和VERSION這兩個信息
- PROJECT = "coremark"
- VERSION = "1.0.0"
- --mcu.setXTAL(true, true, 1248) --高速時鐘使用外部時鐘,低速32K使用外部晶振, delay1248
- mcu.setXTAL(true, false, 1248) --高速時鐘使用外部時鐘,低速32K使用, delay1248
- localtick_str, tick_per = mcu.tick64()
- print("ticks64", tick_str,"ticks_per_us", tick_per)
- local tick = mcu.hz()
- print("mcu-tick.hz", tick)
- local tick = mcu.ticks()
- print("ticks", tick)
- log.info("tick64-type", type(tick_str))
- local mhz = mcu.getClk()
- print("getClk", mcu.getClk())--打印主頻
- log.info("getClk-Boom", mhz)
- -- 一定要添加sys.lua !!!!
- local sys = require "sys"
- log.info("main", PROJECT, VERSION)
- log.info("t_per_us", tick_per,"len",tick_str:len())
- --添加硬狗防止程序卡死
- --wdt.init(15000)--初始化watchdog設(shè)置為15s
- --sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
- --下面的GPIO引腳編號,請根據(jù)實(shí)際需要進(jìn)行更改!
- -- Air101開發(fā)板的3個LED分別為 PB08/PB09/PB10
- -- Air103開發(fā)板的3個LED分別為 PB24/PB25/PB26
- -- Air105開發(fā)板的3個LED分別為 PD14/PD15/PC3
- -- 若下載到設(shè)備后提示pin庫不存在,請升級固件到V0006或以上
- --【HaoSir2022】于2022年4月21日增加
- function pinx()--根據(jù)不同開發(fā)板,給LED賦值不同的gpio引腳編號
- if rtos.bsp()=="air101" then--Air101開發(fā)板LED引腳編號
- local A= pin.PB08
- local B= pin.PB09
- local C= pin.PB10
- return A,B,C
- elseif rtos.bsp() == "air103" then--Air103開發(fā)板LED引腳編號
- local A= pin.PB26
- local B= pin.PB25
- local C= pin.PB24
- return A,B,C
- elseif rtos.bsp() == "air105" then--Air105開發(fā)板LED引腳編號
- print(_VERSION)
- log.info( "air105")
- local A= pin.PD14--b
- local B= pin.PD15--g
- local C= pin.PC3--r
- return A,B,C
- end
- end
- --LED引腳判斷賦值結(jié)束
- local P1,P2,P3=pinx()--賦值開發(fā)板LED引腳編號
- local LEDA= gpio.setup(P1, 0, gpio.PULLUP)
- local LEDB= gpio.setup(P2, 0, gpio.PULLUP)
- local LEDC= gpio.setup(P3, 0, gpio.PULLUP)
- --[[
- sys.wait(200) --點(diǎn)亮?xí)r間
- sys.wait(200) --點(diǎn)亮?xí)r間
- --mcu.setXTAL(true) --高速時鐘使用外部時鐘,
- --
- sys.wait(2000) --點(diǎn)亮?xí)r間
- local tick_str, tick_per = mcu.tick64()
- print("ticks64", tick_str,"ticks_per_us", tick_per)
- local tick = mcu.hz()
- print("mcu.hz", tick)
- local tick = mcu.ticks()
- print("ticks", tick)
- local mhz = mcu.getClk()
- -print("getClk-Boom", mhz)
- mcu.setClk(192)
- sys.wait(2000) --點(diǎn)亮?xí)r間
- local tick_str, tick_per = mcu.tick64()
- print("ticks64", tick_str,"ticks_per_us", tick_per)
- local tick = mcu.hz()
- print("mcu.hz", tick)
- local tick = mcu.ticks()
- print("ticks", tick)
- local mhz = mcu.getClk()
- --print("getClk-Boom", mhz)
- ]]
- log.info("pm", "last power reson", pm.lastReson())
- local t = rtc.get()
- if t["year"] == 2022 then--
- log.debug("time no set", os.date())--打印時間
- else
- log.debug("timeset", os.date())--打印時間
- rtc.set({year=2022,mon=8,day=31,hour=17,min=8,sec=43})--rtc時間設(shè)置
- end
- log.info("os.date()", os.date())--打印時間
- sys.taskInit(function()
- --開始流水燈
- local count = 0
- while 1 do
- --流水燈程序
- -- 輪流點(diǎn)燈
- LEDA(count % 3 == 0 and 1 or 0)
- LEDB(count % 3 == 1 and 1 or 0)
- LEDC(count % 3 == 2 and 1 or 0)
- log.info("GPIO", "Go Go Go", count)
- -- log.info("LuatOS:", "https://wiki.luatos.com")
- -- log.info(count % 3, count % 3 == 0,count % 3 == 0 and 1 or 0, "LEDA")
- -- log.info(count % 3, count % 3 == 1,count % 3 == 1 and 1 or 0, "LEDb")
- -- log.info(count % 3, count % 3 == 2,count % 3 == 2 and 1 or 0, "LEDc")
- count = count + 1
- sys.wait(3000) --點(diǎn)亮?xí)r間
- end
- end)
- --第二個任務(wù)
- sys.taskInit(function()
- while true do
- adc.open(0) -- 模塊上的ADC0腳-PA1, 0~2.4v,不要超過范圍使用!!!
- sys.wait(500) --點(diǎn)亮?xí)r間
- log.debug("adc", "adc0", adc.read(0))
- -- 使用完畢后關(guān)閉,可以使得休眠電流更低.
- adc.close(0)
- sys.wait(15000) --時間
- -- local t = rtc.get()
- -- log.info("rtc", json.encode(t))
- log.info("os.date()", os.date())--打印時間
- end
- end)
- --第3個任務(wù)
- sys.taskInit(function()
- local count = 0
- while true do
- log.info("ticks", count)
- local tick_str, tick_per1 = mcu.tick64()
- rtos.nop()--1854=3nop.,887=nop.nop~=483~=10us.
- local tick_str1, tick_per = mcu.tick64()--44s,89s,90s(32bit 0.5,~1,》1)
- tick_per1=tick_str:sub(1,4)
- tick_per=tick_str:sub(5,8)
- sys.wait(500) --點(diǎn)亮?xí)r間
- log.info("ticks32-1", tick_per1,"ticks32-2", tick_per) --string.format("%d" , tick_per1)
- tick_per=0
- for i=4,1,-1 do
- log.info("ticks32-N", tick_per1:byte(i))
- tick_per=tick_per*256+tick_per1:byte(i)
- end
- log.info("ticks32add", tick_per)
- for i=1,8 do
- log.info("ticks64-N", tick_str:byte(i),tick_str1:byte(i))
- end
- count = count + 1
- sys.wait(5000) --時間
- end
- end)
- -- API文檔 https://wiki.luatos.com/api/gpio.html
- -- 用戶代碼已結(jié)束---------------------------------------------
- -- 結(jié)尾總是這一句
- sys.run()
- -- sys.run()之后后面不要加任何語句!!!!!
. 雙擊 Luatools_v2.exe 啟動程序并更新
.LuaTools 各個文件夾功能:
1. _temp : 臨時文件。2. config : 對Luatools_V2 進(jìn)行的一些配置會存放到這個文件夾。3. log : 這個文件夾和我們關(guān)系緊密,當(dāng)你向合宙 FAE 尋求技術(shù)支持的時候,需要提交這個目錄下的文件。4. resource : 合宙模塊相關(guān)的AT固件,LuaTask 開發(fā)的Core 底層固件,Lib庫 和demo5. project : 使用項(xiàng)目管理后會自動生成這個目錄,用來管理下載項(xiàng)目的
. 下載固件入口
LuatOS-SoC@Air105 V0007正式固件位置并下載
. 項(xiàng)目管理入口
選擇"創(chuàng)建",輸入項(xiàng)目名字,選擇確認(rèn),選擇填入lua文件的位置(我的是H:合宙Air105
esource105_lua_lodcore_V0007democoremark下的main.lua)
選擇底層core選擇剛才下載 LuatOS-SoC@Air105 V0007正式固件位置
就可以只下載lua文件了。
log:[2022-06-13 09:40:18.266] X8yZRemote_Upgrade 468:no ota info
- [2022-06-13 09:40:18.266] main 659:bootloader build release May7 2022 19:23:19!
- [2022-06-13 09:40:18.266] Jump_AppRun 76:jump to 0x01010400 !
- [2022-06-13 09:40:18.266] main 176:APP Build release May7 2022 19:22:45!
- [2022-06-13 09:40:18.266] I/main LuatOS@air105 core V0007 bsp V0007
- [2022-06-13 09:40:18.266] I/main ROM Build: May7 2022 19:22:58
- [2022-06-13 09:40:18.266] D/main loadlibs luavm 204792 14656 14912
- [2022-06-13 09:40:18.266] D/main loadlibs sys 361544 18512 19176
- [2022-06-13 09:40:18.281] ticks64 k ticks_per_us 48
- [2022-06-13 09:40:18.281] mcu-tick.hz 1000
- [2022-06-13 09:40:18.281] ticks 13
- [2022-06-13 09:40:18.281] I/user.tick64-type string
- [2022-06-13 09:40:18.281] getClk 192
- [2022-06-13 09:40:18.281] I/user.getClk-Boom 192
- [2022-06-13 09:40:18.281] I/user.main coremark 1.0.0
- [2022-06-13 09:40:18.281] I/user.t_per_us 48 len 8
- [2022-06-13 09:40:18.281] Lua 5.3
- [2022-06-13 09:40:18.281] I/user.air105
- [2022-06-13 09:40:18.281] I/user.pm last power reson 0 0
- [2022-06-13 09:40:18.281] I/user.os.date() Wed Aug 31 17:08:43 2022
- [2022-06-13 09:40:18.281] I/user.GPIO Go Go Go 0I/user.ticks 0
- [2022-06-13 09:40:18.796] D/user.adc adc0 3266 3987
- [2022-06-13 09:40:18.796] I/user.ticks32-1 5 ticks32-2
- [2022-06-13 09:40:18.796] I/user.ticks32-N 0
- [2022-06-13 09:40:18.796] I/user.ticks32-N 14
- [2022-06-13 09:40:18.796] I/user.ticks32-N 218
- [2022-06-13 09:40:18.796] I/user.ticks32-N 53
- [2022-06-13 09:40:18.796] I/user.ticks32add 973365
- [2022-06-13 09:40:18.796] I/user.ticks64-N 53 97
- [2022-06-13 09:40:18.796] I/user.ticks64-N 218 225
- [2022-06-13 09:40:18.796] I/user.ticks64-N 14 14
- [2022-06-13 09:40:18.796] I/user.ticks64-N 0 0
- [2022-06-13 09:40:18.796] I/user.ticks64-N 0 0
- [2022-06-13 09:40:18.796] I/user.ticks64-N 0 0
- [2022-06-13 09:40:18.796] I/user.ticks64-N 0 0
- [2022-06-13 09:40:18.796] I/user.ticks64-N 0 0
- [2022-06-13 09:40:21.296] I/user.GPIO Go Go Go 1
- [2022-06-13 09:40:23.793] I/user.ticks 1
- [2022-06-13 09:40:24.293] I/user.GPIO Go Go Go 2
- [2022-06-13 09:40:24.293] I/user.ticks32-1 ticks32-2
- [2022-06-13 09:40:24.293] I/user.ticks32-N 15
- [2022-06-13 09:40:24.293] I/user.ticks32-N 204
- [2022-06-13 09:40:24.293] I/user.ticks32-N 166
- [2022-06-13 09:40:24.293] I/user.ticks32-N 240
- [2022-06-13 09:40:24.293] I/user.ticks32add 265070320
- [2022-06-13 09:40:24.293] I/user.ticks64-N 240 29
- [2022-06-13 09:40:24.293] I/user.ticks64-N 166 171
- [2022-06-13 09:40:24.293] I/user.ticks64-N 204 204
- [2022-06-13 09:40:24.293] I/user.ticks64-N 15 15
- [2022-06-13 09:40:24.293] I/user.ticks64-N 0 0
- [2022-06-13 09:40:24.293] I/user.ticks64-N 0 0
- [2022-06-13 09:40:24.293] I/user.ticks64-N 0 0
- [2022-06-13 09:40:24.293] I/user.ticks64-N 0 0
- [2022-06-13 09:40:27.306] I/user.GPIO Go Go Go 3
環(huán)境搭建
完成。
出現(xiàn)問題:
1。mcu.reg(address, value, mask)讀不出
2。mcu.tick64()只有32位
3。RTC (Real-Time Clock)實(shí)時時鐘使用mcu.setXTAL(source_main, source_32k),低速32K使用外部晶振不工作。
lua語法了解:
Lua快速入門教程 –
https://www.bilibili.com/video/BV1vf4y1L7Rb
Lua教程-進(jìn)階部分 –
https://www.bilibili.com/video/BV1WR4y1E7ud
luatos在線模擬器 –
https://wiki.luatos.com/_static/luatos-emulator/lua.html
語法參考手冊 –
https://www.runoob.com/manual/lua53doc/contents.html
Lua 5.3 歡迎你 –
https://www.runoob.com/manual/lua53doc/
語法 –
https://www.runoob.com/lua/lua-tutorial.html
文檔 –https://wiki.luatos.com/
文檔2 –https://wiki.openluat.com/
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
合宙通信
+關(guān)注
關(guān)注
0文章
147瀏覽量
1737 -
Air105
+關(guān)注
關(guān)注
0文章
48瀏覽量
300
發(fā)布評論請先 登錄
相關(guān)推薦
Made with KiCad(六):合宙DAPLink開發(fā)板
“這是一款由合宙官方,基于ARM官方代碼將其移植至Air32F103CBT6芯片,并適配了216MHz主頻和96KB RAM大資源,支持更快的下載速度,開發(fā)應(yīng)用更為便捷的,僅2.5×1
RNDIS網(wǎng)卡應(yīng)用看這篇!合宙Air780EP低功耗4G模組AT開發(fā)示例
** ? 1.1 硬件準(zhǔn)備 合宙EVB_Air780EP開發(fā)板一套,包括天線、SIM卡; USB線 WIN10以上PC電腦 1.2 軟件準(zhǔn)備 串口工具 如果沒有準(zhǔn)備,推薦使用LLCO
FTP應(yīng)用看這篇!合宙Air780EP低功耗4G模組AT開發(fā)示例
780EX/Air724UG… **一、相關(guān)準(zhǔn)備工作 ** ? 1.1 硬件準(zhǔn)備 合宙EVB_Air780EP開發(fā)板一套,包括天線、SIM卡
合宙Air780EP模塊——AT指令MQTT接入OneNET開發(fā)指南
過程,Air780EP和MQTT是最佳拍檔,讓設(shè)備互聯(lián)變得輕松又靠譜。想不想試試這簡單又神奇的操作?那就來吧!本文詳細(xì)講解了基于合宙的Air80EP
評論