前言:
首先感谢芯查查,米尔科技把这次MYC-Y6ULYV-V21E 51D-50-C,开发板的测评机会,让自己在工作之余学到更多的机会。快递也收到的比较快,先给大家开箱看一下。
开发板调试:
1:使用工具:自制的USB转TTL工具:
2:查看一下板子的信息;
硬件设计
硬件配置一览
主要硬件规格:
处理器:NXP i.MX 6UltraLite,基于ARM Cortex-A7架构
内存:
- DDR3L SDRAM,通常有256MB或512MB选项,我拿到的版本是512的
- 4GB eMMC闪存
存储:
- 1个MicroSD卡插槽
- 1个SIM卡插槽
接口:
- 2个10/100 Mbps以太网接口、2个USB 2.0主机端口、1个USB 2.0 OTG端口、2个串行通信接口(UART)、1个I2C接口、
- 1个SPI接口、1个CAN接口、1个RS232接口、1个RS485接口、1个CSI接口
显示:
- 1个LCD接口
音频:
- 1个3.5mm音频立体声输出接口、1个3.5mm音频输入接口
扩展接口:
- 14针的扩展连接器,包含GPIO、SPI、I2C等
电源:
- DC 12V输入
硬件资源和外设及其接口可以说是十分丰富了。丰富的资源意味着能够有更广泛的应用场景测试体验,是一块优秀的开发板所不可或缺的。
简单测试一下板载的IO口,在工具包内找到测试demo
主要代码如下:
#define dbg_err(fmt, args...) printf(fmt, #args)
/*初始化IO口的结构体函数*/
typedef struct gpio_s {
int gpio;
char value_path[64];
char dir_path[64];
int value;
}gpio_t;
void leds_ctrl(const char **leds, int count, unsigned int status)
{
int i = 0;
char cmd[128] = {0};
static unsigned int pre_status = 0;/* It was on by default */
for (i = 0; i < count; i++, leds++) {
if ((pre_status ^ status) & (1 << i)) {
sprintf(cmd, "echo %d > %s", !!(status&(1 << i)), *leds);
if (system(cmd)) {
dbg_info("run cmd [%s] failed!\n", cmd);
}
}
}
pre_status = status;
}
/*主程序*/
int main (int argc, char *argv[])
{
int keys_fd;
char ret[2];
struct input_event t[2];
fd_set fds;
struct timeval tv;
const char* leds[]={argv[1]};
keys_fd = open (argv[1], O_RDONLY);
if (keys_fd <= 0) {
dbg_err ("open %s device error!\n", argv[1]);
return 0;
}
/* Set all LEDs to ON to info user for key pressing */
while(1){
leds_ctrl(leds, ARRAY_SIZE(leds), 0xF);
usleep(LED_DELAY_US);
leds_ctrl(leds, ARRAY_SIZE(leds), 0);
usleep(LED_DELAY_US);
}
return 0;
}
这里我们交叉编译后上传给开发板,就可以看到板载的LED灯闪烁了。
全部评论