【祖传点灯】安信可Ai-M61-32S +点灯+LM75试水

[复制链接]
查看1360 | 回复13 | 2024-5-12 00:29:31 | 显示全部楼层 |阅读模式
本帖最后由 huazai1995 于 2024-5-12 00:29 编辑
      BL 芯片型号确实强悍                                     内核
1        bl60x(bl602/bl604)                  RISC-V SiFive E24
2        bl70x(bl702/bl704/bl706)        RISC-V SiFive E24
3        bl61x(bl616/bl618)                   RISC-V T-Head E907
4        bl808                                        RISC-V T-Head E902(lp)+E907(m0)+C906(d0)

科技进步真是快,RISC-V内核的MCU 的应用越来越广泛。
接来是安信可Ai-M61-32S开发环境搭建!
上电后串口终端设置2000000波特率,打印启动信息;
  1. ____               __  __      _       _       _     
  2. |  _ \             / _|/ _|    | |     | |     | |   
  3. | |_) | ___  _   _| |_| |_ __ _| | ___ | | __ _| |__  
  4. |  _ < / _ \| | | |  _|  _/ _` | |/ _ \| |/ _` | '_ \
  5. | |_) | (_) | |_| | | | || (_| | | (_) | | (_| | |_) |
  6. |____/ \___/ \__,_|_| |_| \__,_|_|\___/|_|\__,_|_.__/

  7. Build:22:54:10,May  8 2024
  8. Copyright (c) 2022 Bouffalolab team
  9. =========== flash cfg ==============
  10. jedec id   0x5E4017
  11. mid            0x5E
  12. iomode         0x04
  13. clk delay      0x01
  14. clk invert     0x01
  15. read reg cmd0  0x05
  16. read reg cmd1  0x35
  17. write reg cmd0 0x01
  18. write reg cmd1 0x31
  19. qe write len   0x01
  20. cread support  0x01
  21. cread code     0x20
  22. burst wrap cmd 0x77
  23. =====================================
  24. dynamic memory init success, ocram heap size = 281 Kbyte
  25. sig1:ffffffff
  26. sig2:0000f32f
  27. cgen1:9f7ffffd
复制代码
【小熊带你玩转小安派】环境搭建和烧录可能遇到的问题 - 小安派S1&M61教程合集 - 物联网开发者社区-安信可论坛 - Powered by Discuz! (ai-thinker.com)
在压缩包AiPi-Open-Kits.zip文件夹解压后,接下来完成配置我们系统环境的变量。 环境变量.png


注释.png

最后修改一下 project.build文件,就可以放心编译了;


                               
登录/注册后可看大图


我们可以使用VSCODE 打开示例,进行编译(即 点击 在集成终端中打开)后,在命令行输入make等待编译完成。

                               
登录/注册后可看大图


通过上传固件 完成固件更新make flash COMX=COM11  (COM11 根据自己系统识别到的串口号进行填写即可)

led.jpg


完成了一小步

安信可SDK做的确实很不错,扩展了很多可能性!

                               
登录/注册后可看大图


机器学习上支持sipeed的tinymaix 和Google的tensorflowlite   

pikapython可玩性也很高!



用库函数准备搞一个LM75 温度读取,还没搞完,没研究明白库函数,后面接着研究。
  1. #include "bflb_mtimer.h"
  2. #include "bflb_i2c.h"
  3. #include "bflb_gpio.h"
  4. #include "board.h"

  5. #define I2C_SLAVE_ADDR      0x48         //I2C的从机地址

  6. static struct bflb_device_s *i2c0;       //i2c0外设句柄

  7. struct bflb_i2c_msg_s msgs[2];           //I2C发送数据结构体数组


  8. void My_i2c0_gpio_init()                 //初始化I2C的gpio引脚,选择IO_0作为SDA,IO_1作为SCL
  9. {
  10.     struct bflb_device_s* gpio;

  11.     gpio = bflb_device_get_by_name("gpio");
  12.     /* I2C0_SCL*/
  13.     bflb_gpio_init(gpio, GPIO_PIN_0, GPIO_FUNC_I2C0 | GPIO_ALTERNATE | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_1);
  14.     /* I2C0_SDA */
  15.     bflb_gpio_init(gpio, GPIO_PIN_1, GPIO_FUNC_I2C0 | GPIO_ALTERNATE | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_1);
  16. }


  17. //I2C写入数据函数

  18. static uint8_t LM75_i2c_write(char reg_addr, char buff, char buf_size)
  19. {
  20.     /* Write data */
  21.     msgs[0].addr = I2C_SLAVE_ADDR;
  22.     msgs[0].flags = I2C_M_NOSTOP;
  23.     msgs[0].buffer = reg_addr;
  24.     msgs[0].length = buf_size;

  25.     msgs[1].addr = I2C_SLAVE_ADDR;
  26.     msgs[1].flags = 0;
  27.     msgs[1].buffer = &buff;
  28.     msgs[1].length = buf_size;

  29.     bflb_i2c_transfer(i2c0, msgs, 2);

  30.     bflb_mtimer_delay_ms(100);

  31.     return 1;
  32. }

  33. //I2C读取数据函数
  34. static int16_t LM75_i2c_read(char reg_addr,  char buf_size)
  35. {
  36.     char read_data = 0;
  37.     int16_t temp_data=0;
  38.     /* Read data */
  39.     msgs[0].addr = I2C_SLAVE_ADDR;
  40.     msgs[0].flags = I2C_M_NOSTOP;
  41.     msgs[0].buffer = reg_addr;
  42.     msgs[0].length = 1;

  43.     msgs[1].addr = I2C_SLAVE_ADDR;
  44.     msgs[1].flags = I2C_M_READ;
  45.     msgs[1].buffer = &temp_data;
  46.     msgs[1].length = buf_size;

  47.     bflb_i2c_transfer(i2c0, msgs, 2);
  48.    
  49.     bflb_mtimer_delay_ms(100);

  50.     return temp_data;
  51. }


  52. //LM75 初始数据配置函数
  53. static int32_t LM75_init(void)
  54. {
  55.     printf("radar init\n");
  56.     uint8_t value;


  57.         My_i2c0_gpio_init();  


  58.     printf("TM1637_init done\n");

  59.     return 0;
  60. }



  61.        
  62.         void LM75A_GetTemperature(void)
  63.         {
  64.                 /*
  65.                 Temp register
  66.                 -------------------------------------------------------------
  67.                 MSByte                                                   |LSByte
  68.                 7        6        5        4        3        2        1        0  |7        6  5   4   3   2        1        0
  69.                 D10 D9 D8  D7  D6  D5  D4  D3  |D2        D1 D0  X   X   X        X        X
  70.                 -------------------------------------------------------------
  71.                 D10=0温度为+,D10=1温度为-
  72.                 */
  73.                 float TempHL;
  74.                 int16_t  temp;
  75.                 temp = LM75_i2c_read(0x00,2);
  76.             TempHL=(temp>>5)*0.125;
  77.         printf("Tempog:%d\r\n", temp);
  78.                 printf("Temp:%f\r\n", TempHL);

  79.         }




  80. int main(void)
  81. {
  82.    
  83.     board_init();

  84.     //I2C引脚初始化
  85.     My_i2c0_gpio_init();

  86.     i2c0 = bflb_device_get_by_name("i2c0");

  87.     //I2C初始化  (305K-400K)
  88.     bflb_i2c_init(i2c0, 400000);

  89.     //_init配置
  90.    // LM75_init();

  91.     while(1){
  92.      bflb_mtimer_delay_ms(1000);
  93.      LM75A_GetTemperature();
  94.     }
  95. }


复制代码












回复

使用道具 举报

hrqwe | 2024-5-12 12:13:02 | 显示全部楼层
有代码好评
日拱一卒,功不唐捐
回复 支持 反对

使用道具 举报

1055173307 | 2024-5-12 13:06:51 | 显示全部楼层
回复

使用道具 举报

干簧管 | 2024-5-12 17:01:06 | 显示全部楼层
回复

使用道具 举报

WT_0213 | 2024-5-13 09:11:23 | 显示全部楼层
漂亮
回复

使用道具 举报

noonezero | 2024-5-17 13:15:27 | 显示全部楼层
666
回复

使用道具 举报

wukong50 | 2024-5-17 14:02:42 | 显示全部楼层
期待移植成功
回复 支持 反对

使用道具 举报

sansui | 2024-5-17 14:33:50 | 显示全部楼层
棒棒的
回复

使用道具 举报

timo | 2024-5-17 21:14:18 | 显示全部楼层
加油
回复

使用道具 举报

7788 | 2024-5-19 17:13:54 | 显示全部楼层
支持下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则