[分享] Realtek公司的RTL8195A即将支持MicroPython

dcexpert   2016-9-20 21:42 楼主
现在ESP8266因超高性价比非常火热,很多芯片供应商也开始加入这个市场。如台湾的Realtek也加入了这个行列,它推出了RTL8195A模块,性能比ESP8266高一倍,外设更多,价格还要低一些。而且RTL8195A即将支持MicroPython,这对MicroPython爱好者来说又多了一个选择。


下面是它相关的说明,网址是:http://cwyark.github.io/mpiot/rtl8195a/tutorial.html。这个网址可能直接访问不了,所以我将它的一部分内容复制过来,给大家参考。




Tutorial
要使用MicroPython之前,你需要先將MicroPython@RTL8195A 的韌體燒錄至開發板內。

燒錄方式可參考 how_to_install_micropython

Basic Usage
首先將MicroUSB Cable 接上開發板,透過終端機程式, ex: minicom, putty 或 TeraTerm, 設定包率為8N1, 115200,並連進開發板。 試著按幾次Enter,你會在畫面看到:

  1. >>>
  2. >>>
  3. >>>

按開發板上的reset鍵,你也可以看到開機畫面。

  1. =========================================================

  2. ROM Version: 0.2

  3. Build ToolChain Version: gcc version 4.8.3 (Realtek ASDK-4.8.3p1 Build 2003)

  4. =========================================================
  5. Check boot type form eFuse
  6. SPI Initial
  7. Image1 length: 0x36e4, Image Addr: 0x10000bc8
  8. Image1 Validate OK, Going jump to Image1
  9. ===== Enter Image 1 ====
  10. SDR Controller Init

  11. load NEW fw 0
  12. Flash Image2:Addr 0xb000, Len 351472, Load to SRAM 0x10006000
  13. Image3 length: 0x1beb0, Image3 Addr: 0x30000000
  14. Img2 Sign: RTKWin, InfaStart @ 0x10006019
  15. ===== Enter Image 2 ====
  16. Starting main task
  17. Starting executing main.py
  18. MicroPython v1.8.1-42-g5a23590-dirty on 2016-06-18; Ameba Board with RT8195A
  19. Type "help()" for more information.
  20. >>>
註解

Ctrl+D 可以reset開發板。

Ctrl+B 可以重啟REPL (不做HW reset)

Ctrl+E 可進入paste mode。在此模式貼上程式碼後輸入Ctrl+D,MicroPython會執行你所貼上的程式碼。


Numerical Operation
目前支援整數及浮點數運算


  1. >>> 1 + 1
  2. 2
  3. >>> 1 * 2
  4. 2
  5. >>> 4e2
  6. 400.0
  7. >>> 3 % 2
  8. 1
  9. >>> 2 / 3
  10. 0.6666667
  11. >>> 123456/999999
  12. 0.1234561
  13. >>> 1.3e3
  14. 1300.0


另也有math 模組可供使用,幫助你做基本數學運算。
  1. >>> import math
  2. >>> math.
  3. __name__        e               pi              sqrt
  4. pow             exp             log             cos
  5. sin             tan             acos            asin
  6. atan            atan2           ceil            copysign
  7. fabs            floor           fmod            frexp
  8. ldexp           modf            isfinite        isinf
  9. isnan           trunc           radians         degrees
  10. >>> math.
  11. >>> math.pi
  12. 3.141593
  13. >>> math.sin(math.degrees(90))
  14. -0.9540797
  15. >>> math.pow(2, 3)
  16. 8.0


Hardware Control
硬體控制可以參考下圖方格所定義的名稱。ex: PA_1, PA_2, PD_5 ...

1.jpg

  1. # To control I/O output
  2. >>> from machine import Pin
  3. >>> pin1 = Pin("PA_1", dir=Pin.OUT)
  4. >>> pin1.toggle()
  5. >>> pin1.value(1)
  6. >>> pin1.value(0)
  7. # To read I/O's value
  8. >>> pin2 = Pin("PC_0", dir=Pin.IN, pull=Pin.OPEN_DRAIN)
  9. >>> pin2.value()
  10. 1


Filesystem

RTL8195A 實體上有1MB的Flash空間,micropython 直譯器約略500KB,剩下的500KB 都會被格式化為FATFS,可供使用者存放小量資料及.py檔。

使用者可以使用os 模組及Standard I/O 存取filesystem (硬碟名稱為 /flash)


  1. >>> import os
  2. >>> os.listdir("/")
  3. ['flash']
  4. >>> os.listdir("/flash")
  5. ['main.py']
  6. >>> os.mkdir("test_dir")
  7. >>> os.listdir("/flash")
  8. ['main.py', 'test_dir']
  9. >>> os.chdir("test_dir")         # to change current directory
  10. >>> os.getcwd()                  # to get current directory
  11. '/flash/test_dir'
  12. >>> os.chdir("/flash")
  13. >>> os.rename("test_dir", "test_dir2")       # rename file or directory
  14. >>> os.listdir("/flash")
  15. ['main.py', 'test_dir2']
  16. >>> os.rmdir("test_dir2")
  17. >>> os.listdir("/flash")
  18. ['main.py']

  19. Now doing the file open/close/seek/read/write

  20. >>> my_file = open("main.py", "r")
  21. >>> my_file.readall()
  22. '# main.py -- put your code here! The script in main.py will be executed when boot up !\r\n'
  23. >>> my_file.readall()
  24. ''
  25. >>> my_file.seek(0)
  26. 0
  27. >>> my_file.readall()
  28. '# main.py -- put your code here! The script in main.py will be executed when boot up !\r\n'
  29. >>> my_file.close()
  30. >>> new_file = open("text.txt", "w")
  31. >>> new_file.write('hello!!!! this is a test file')
  32. 29
  33. >>> new_file.close()
  34. >>> os.listdir("/flash")
  35. ['main.py', 'text.txt']
  36. >>> os.remove("/flash/text.txt")







回复评论 (15)

有没有第一轮活动的py板关于SD卡文件操作的的帖子?分享一下链接,谢谢
点赞  2016-9-20 21:50
引用: suoma 发表于 2016-9-20 21:50
有没有第一轮活动的py板关于SD卡文件操作的的帖子?分享一下链接,谢谢

简单的文件读写例子:

写文件

f = open("1:/hello.txt", "w")
f.write("Hello World from Micro Python")
f.close()


读取文件

f = open("main.py", "r")
f.readall()
点赞  2016-9-20 22:21
引用: dcexpert 发表于 2016-9-20 22:21
简单的文件读写例子:

写文件

f = open("1:/hello.txt", "w")
f.write("Hello World from Micro P ...

我想实现文件名呈变量有规律变化,比如如下arduino程序,如下程序是报错的,你用python写一下
string a[]={"1.txt","2.txt","3.txt"};
...
for(int i=0;i<3;i++)
myFile = SD.open(a, FILE_WRITE)
myfile.close()
delay(1000)
点赞  2016-9-20 22:52
引用: suoma 发表于 2016-9-20 22:52
我想实现文件名呈变量有规律变化,比如如下arduino程序,如下程序是报错的,你用python写一下
string a[ ...

如果是用SPI挂载SD卡,注意一下升级固件,并且对卡有一定要求。
点赞  2016-9-20 23:19
引用: dcexpert 发表于 2016-9-20 23:19
如果是用SPI挂载SD卡,注意一下升级固件,并且对卡有一定要求。

有没有参考的程序案例,我主要是通过变量新建文件名,但是不成功
点赞  2016-9-21 23:46
不成功的出错信息?
点赞  2016-9-22 06:08
引用: suoma 发表于 2016-9-21 23:46
有没有参考的程序案例,我主要是通过变量新建文件名,但是不成功

还没有这样用过,等我试试。
点赞  2016-9-22 10:23
引用: dcexpert 发表于 2016-9-22 10:23
还没有这样用过,等我试试。

谢谢,记得回复
点赞  2016-9-22 18:03
引用: suoma 发表于 2016-9-20 22:52
我想实现文件名呈变量有规律变化,比如如下arduino程序,如下程序是报错的,你用python写一下
string a[ ...
  1. s=('1.txt','2.txt','3.txt')
  2. for i in range(len(s)):
  3.     f=open(s[i], "w")
  4.     f.write("123")
  5.     f.close()
点赞  2016-9-23 10:09

if(serial.available())
{
f.write(serial.read())
}
用python怎么改?我要收串口数据,类似双机通信
点赞  2016-9-23 23:47
引用: suoma 发表于 2016-9-23 23:47
if(serial.available())
{
f.write(serial.read())
}
用python怎么改?我要收串口数据,类似 ...

这个手册上都写了。

  1. uart = UART(1, 9600)
  2. dat = '1'
  3. if uart.any():
  4.     dat = uart.readchar()
  5.     uart.writechar(dat)
点赞  2016-9-24 10:40
买了模块没买开发版,准备自己做模块的周边。
点赞  2016-9-25 23:25
引用: szqt 发表于 2016-9-25 23:25
买了模块没买开发版,准备自己做模块的周边。

模块多少钱一个?
点赞  2016-9-26 10:26
引用: dcexpert 发表于 2016-9-26 10:26
模块多少钱一个?

回看了一下我买的是8711 和 8710 分别是 17元和8元。
点赞  2016-9-27 00:32
我15年做过RTL8711AM.就做了五六个月就改做RTL8189EM了
点赞  2016-10-16 23:31
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复