【合宙Air105开发板试用体验】开发环境搭建

描述

本文来源电子发烧友社区,作者:卢松涛, 帖子地址:https://bbs.elecfans.com/jishu_2286300_1_1.html

非常感谢发烧友论坛和上海合宙通信科技有限公司 为我和孩子  提供此产品合宙Air105开发板感谢大佬们的指导。

合宙Air105开发板是一款由上海合宙通信科技有限公司 LuatOS-SoC开发板,如果使用厂家提供的合宙LuatOS固件和LuaTools下载软件,可以用任何文本编辑软件开发使用此Air105开发板。
LuatOS:
LuatOS是一款针对嵌入式的脚本运行框架,可以极大提升开发效率。
使用Lua 5.3作为主要语言,针对资源较少的嵌入式环境进行了优化,极大提升了运行效率。
Powerful embedded Lua Engine for IoT devices, with many components and low memory requirements (16K RAM, 128K Flash)
是合宙出的基于freertos的VM,提供库和外设、LuatOS-SOC接口及demo 极大提升开发效率。


合宙Air105是一款QFN88 封装,10mm x 10mm 大小的MCU, 支持最多54个GPIO,不仅提供UART/GPIO/I2C/ADC/SPI等基础外设,更提供DAC/USB/DCMI/HSPI/LCDI/KCU等高级外设接口,内置充电 功能,支持5V/3.3V供电,同时自带5v转3.3V的LDO,4M字节Flash,640K字节RAM。
Air105

Air105


105发布:http://www.elecfans.com/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
准备一个文本编辑软件(我用的UltraEdit)
程序:


  1.  
  2. -- LuaTools需要PROJECT和VERSION这两个信息
  3. PROJECT = "coremark"
  4. VERSION = "1.0.0"
  5. --mcu.setXTAL(true, true, 1248)        --高速时钟使用外部时钟,低速32K使用外部晶振, delay1248
  6. mcu.setXTAL(true, false, 1248)        --高速时钟使用外部时钟,低速32K使用, delay1248
  7. local tick_str, tick_per = mcu.tick64()
  8. print("ticks64", tick_str,"ticks_per_us", tick_per)
  9. local tick = mcu.hz()
  10. print("mcu-tick.hz", tick)
  11. local tick = mcu.ticks()
  12. print("ticks", tick)
  13. log.info("tick64-type", type(tick_str))
  14. local mhz = mcu.getClk()
  15. print("getClk", mcu.getClk())--打印主频
  16. log.info("getClk-Boom", mhz)
  17. -- 一定要添加sys.lua !!!!
  18. local sys = require "sys"
  19.  
  20.  
  21. log.info("main", PROJECT, VERSION)
  22. log.info("t_per_us", tick_per,"len",tick_str:len())
  23.  
  24.  
  25. --添加硬狗防止程序卡死
  26. --wdt.init(15000)--初始化watchdog设置为15s
  27. --sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
  28.  
  29.  
  30.  
  31. --下面的GPIO引脚编号,请根据实际需要进行更改!
  32. -- Air101开发板的3个LED分别为 PB08/PB09/PB10
  33. -- Air103开发板的3个LED分别为 PB24/PB25/PB26
  34. -- Air105开发板的3个LED分别为 PD14/PD15/PC3
  35.  
  36. -- 若下载到设备后提示pin库不存在,请升级固件到V0006或以上
  37.  
  38.  
  39. --【HaoSir2022】于2022年4月21日增加
  40. function pinx()--根据不同开发板,给LED赋值不同的gpio引脚编号
  41.  
  42. if rtos.bsp()=="air101" then--Air101开发板LED引脚编号
  43. local A= pin.PB08
  44. local B= pin.PB09
  45. local C= pin.PB10
  46. return A,B,C
  47.  
  48. elseif rtos.bsp() == "air103" then--Air103开发板LED引脚编号
  49. local A= pin.PB26
  50. local B= pin.PB25
  51. local C= pin.PB24
  52. return A,B,C
  53.  
  54. elseif rtos.bsp() == "air105" then--Air105开发板LED引脚编号
  55. print(_VERSION)
  56. log.info( "air105")
  57. local A= pin.PD14--b
  58. local B= pin.PD15--g
  59. local C= pin.PC3--r
  60. return A,B,C
  61. end
  62. end
  63. --LED引脚判断赋值结束
  64.  
  65. local P1,P2,P3=pinx()--赋值开发板LED引脚编号
  66. local LEDA= gpio.setup(P1, 0, gpio.PULLUP)
  67. local LEDB= gpio.setup(P2, 0, gpio.PULLUP)
  68. local LEDC= gpio.setup(P3, 0, gpio.PULLUP)
  69.  
  70.  
  71. --[[
  72. sys.wait(200) --点亮时间
  73.  
  74.  
  75.  
  76. sys.wait(200) --点亮时间
  77. --mcu.setXTAL(true)        --高速时钟使用外部时钟,
  78. --
  79. sys.wait(2000) --点亮时间
  80. local tick_str, tick_per = mcu.tick64()
  81. print("ticks64", tick_str,"ticks_per_us", tick_per)
  82. local tick = mcu.hz()
  83. print("mcu.hz", tick)
  84. local tick = mcu.ticks()
  85. print("ticks", tick)
  86. local mhz = mcu.getClk()
  87. -print("getClk-Boom", mhz)
  88. mcu.setClk(192)
  89. sys.wait(2000) --点亮时间
  90. local tick_str, tick_per = mcu.tick64()
  91. print("ticks64", tick_str,"ticks_per_us", tick_per)
  92. local tick = mcu.hz()
  93. print("mcu.hz", tick)
  94. local tick = mcu.ticks()
  95. print("ticks", tick)
  96. local mhz = mcu.getClk()
  97. --print("getClk-Boom", mhz)
  98. ]]
  99. log.info("pm", "last power reson", pm.lastReson())
  100. local t = rtc.get()
  101. if t["year"] == 2022 then--
  102.                 log.debug("time no set", os.date())--打印时间
  103.  
  104. else
  105.                 log.debug("time  set", os.date())--打印时间
  106.     rtc.set({year=2022,mon=8,day=31,hour=17,min=8,sec=43})--rtc时间设置
  107. end
  108.  
  109.  
  110. log.info("os.date()", os.date())--打印时间
  111.  
  112. sys.taskInit(function()
  113. --开始流水灯
  114.     local count = 0
  115.     while 1 do
  116.     --流水灯程序
  117.  
  118.         
  119.         -- 轮流点灯
  120.         LEDA(count % 3 == 0 and 1 or 0)
  121.         LEDB(count % 3 == 1 and 1 or 0)
  122.         LEDC(count % 3 == 2 and 1 or 0)
  123.         
  124.         log.info("GPIO", "Go Go Go", count)
  125. --         log.info("LuatOS:", "https://wiki.luatos.com")
  126. --         log.info(count % 3, count % 3 == 0,  count % 3 == 0 and 1 or 0, "LEDA")
  127.  
  128. --         log.info(count % 3, count % 3 == 1,  count % 3 == 1 and 1 or 0, "LEDb")
  129. --         log.info(count % 3, count % 3 == 2,  count % 3 == 2 and 1 or 0, "LEDc")
  130.         count = count + 1
  131.         sys.wait(3000) --点亮时间
  132.     end
  133. end)
  134. --第二个任务
  135. sys.taskInit(function()
  136.     while true do
  137.  
  138.  
  139.                     adc.open(0) -- 模块上的ADC0脚-PA1, 0~2.4v,不要超过范围使用!!!
  140.  
  141.         sys.wait(500) --点亮时间
  142.         log.debug("adc", "adc0", adc.read(0))
  143.  
  144.             
  145.         -- 使用完毕后关闭,可以使得休眠电流更低.
  146.         adc.close(0)        
  147.         sys.wait(15000) --时间  
  148. --        local t = rtc.get()
  149. --        log.info("rtc", json.encode(t))   
  150.         log.info("os.date()", os.date())--打印时间   
  151.     end
  152. end)
  153. --第3个任务
  154. sys.taskInit(function()
  155.     local count = 0
  156.    
  157.     while true do
  158.  
  159.         log.info("ticks", count)   
  160.         local tick_str, tick_per1 = mcu.tick64()
  161.         rtos.nop()--1854=3nop.,887=nop.nop~=483~=10us.
  162.  
  163.                     local tick_str1, tick_per = mcu.tick64()--44s,89s,90s(32bit 0.5,~1,》1)
  164.                     tick_per1=tick_str:sub(1,4)
  165.                     tick_per=tick_str:sub(5,8)
  166.         sys.wait(500) --点亮时间
  167.  
  168.                                 log.info("ticks32-1", tick_per1,"ticks32-2", tick_per) --string.format("%d" , tick_per1)
  169.                                 tick_per=0
  170.         for i=4,1,-1 do
  171.         
  172.         
  173.                                     log.info("ticks32-N", tick_per1:byte(i))  
  174.                                     tick_per=tick_per*256+tick_per1:byte(i)
  175.                                       
  176.                                 end                        
  177.                                 log.info("ticks32add", tick_per)
  178.         for i=1,8 do
  179.         
  180.                                     log.info("ticks64-N", tick_str:byte(i),tick_str1:byte(i))   
  181.                                 end
  182.             
  183.         count = count + 1      
  184.         sys.wait(5000) --时间        
  185.     end
  186. end)
  187.  
  188. -- API文档 https://wiki.luatos.com/api/gpio.html
  189.  
  190. -- 用户代码已结束---------------------------------------------
  191. -- 结尾总是这一句
  192. sys.run()
  193. -- sys.run()之后后面不要加任何语句!!!!!      
  194.  
复制代码

. 双击 Luatools_v2.exe 启动程序并更新
Air105

.  LuaTools 各个文件夹功能:
1. _temp : 临时文件。2. config : 对Luatools_V2 进行的一些配置会存放到这个文件夹。3. log : 这个文件夹和我们关系紧密,当你向合宙 FAE 寻求技术支持的时候,需要提交这个目录下的文件。4. resource : 合宙模块相关的AT固件,LuaTask 开发的Core 底层固件,Lib库 和demo5. project : 使用项目管理后会自动生成这个目录,用来管理下载项目的
. 下载固件入口
Air105

LuatOS-SoC@Air105 V0007正式固件位置并下载
. 项目管理入口
Air105

选择"创建",输入项目名字,选择确认,选择填入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

  1. [2022-06-13 09:40:18.266] main 659:bootloader build release May  7 2022 19:23:19!
  2. [2022-06-13 09:40:18.266] Jump_AppRun 76:jump to 0x01010400 !
  3. [2022-06-13 09:40:18.266] main 176:APP Build release May  7 2022 19:22:45!
  4. [2022-06-13 09:40:18.266] I/main LuatOS@air105 core V0007 bsp V0007
  5. [2022-06-13 09:40:18.266] I/main ROM Build: May  7 2022 19:22:58
  6. [2022-06-13 09:40:18.266] D/main loadlibs luavm 204792 14656 14912
  7. [2022-06-13 09:40:18.266] D/main loadlibs sys   361544 18512 19176
  8.  
  9. [2022-06-13 09:40:18.281] ticks64        k                ticks_per_us        48
  10. [2022-06-13 09:40:18.281] mcu-tick.hz        1000
  11. [2022-06-13 09:40:18.281] ticks        13
  12. [2022-06-13 09:40:18.281] I/user.tick64-type        string
  13. [2022-06-13 09:40:18.281] getClk        192
  14. [2022-06-13 09:40:18.281] I/user.getClk-Boom        192
  15. [2022-06-13 09:40:18.281] I/user.main        coremark        1.0.0
  16. [2022-06-13 09:40:18.281] I/user.t_per_us        48        len        8
  17. [2022-06-13 09:40:18.281] Lua 5.3
  18. [2022-06-13 09:40:18.281] I/user.air105
  19. [2022-06-13 09:40:18.281] I/user.pm        last power reson        0        0
  20. [2022-06-13 09:40:18.281] I/user.os.date()        Wed Aug 31 17:08:43 2022
  21. [2022-06-13 09:40:18.281] I/user.GPIO        Go Go Go        0I/user.ticks        0
  22.  
  23. [2022-06-13 09:40:18.796] D/user.adc        adc0        3266        3987
  24. [2022-06-13 09:40:18.796] I/user.ticks32-1        5        ticks32-2        
  25. [2022-06-13 09:40:18.796] I/user.ticks32-N        0
  26. [2022-06-13 09:40:18.796] I/user.ticks32-N        14
  27. [2022-06-13 09:40:18.796] I/user.ticks32-N        218
  28. [2022-06-13 09:40:18.796] I/user.ticks32-N        53
  29. [2022-06-13 09:40:18.796] I/user.ticks32add        973365
  30. [2022-06-13 09:40:18.796] I/user.ticks64-N        53        97
  31. [2022-06-13 09:40:18.796] I/user.ticks64-N        218        225
  32. [2022-06-13 09:40:18.796] I/user.ticks64-N        14        14
  33. [2022-06-13 09:40:18.796] I/user.ticks64-N        0        0
  34. [2022-06-13 09:40:18.796] I/user.ticks64-N        0        0
  35. [2022-06-13 09:40:18.796] I/user.ticks64-N        0        0
  36. [2022-06-13 09:40:18.796] I/user.ticks64-N        0        0
  37. [2022-06-13 09:40:18.796] I/user.ticks64-N        0        0
  38.  
  39. [2022-06-13 09:40:21.296] I/user.GPIO        Go Go Go        1
  40. [2022-06-13 09:40:23.793] I/user.ticks        1
  41. [2022-06-13 09:40:24.293] I/user.GPIO        Go Go Go        2
  42. [2022-06-13 09:40:24.293] I/user.ticks32-1                ticks32-2        
  43. [2022-06-13 09:40:24.293] I/user.ticks32-N        15
  44. [2022-06-13 09:40:24.293] I/user.ticks32-N        204
  45. [2022-06-13 09:40:24.293] I/user.ticks32-N        166
  46. [2022-06-13 09:40:24.293] I/user.ticks32-N        240
  47. [2022-06-13 09:40:24.293] I/user.ticks32add        265070320
  48. [2022-06-13 09:40:24.293] I/user.ticks64-N        240        29
  49. [2022-06-13 09:40:24.293] I/user.ticks64-N        166        171
  50. [2022-06-13 09:40:24.293] I/user.ticks64-N        204        204
  51. [2022-06-13 09:40:24.293] I/user.ticks64-N        15        15
  52. [2022-06-13 09:40:24.293] I/user.ticks64-N        0        0
  53. [2022-06-13 09:40:24.293] I/user.ticks64-N        0        0
  54. [2022-06-13 09:40:24.293] I/user.ticks64-N        0        0
  55. [2022-06-13 09:40:24.293] I/user.ticks64-N        0        0
  56.  
  57. [2022-06-13 09:40:27.306] I/user.GPIO        Go Go Go        3
  58.  
复制代码



环境搭建
完成。

出现问题:
1。mcu.reg(address, value, mask)读不出
2。mcu.tick64()只有32位
3。RTC (Real-Time Clock)实时时钟使用mcu.setXTAL(source_main, source_32k),低速32K使用外部晶振不工作。


lua语法了解:

Lua快速入门教程 –
https://www.bilibili.com/video/BV1vf4y1L7Rb

Lua教程-进阶部分 –
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/

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分