您尚未登录。

#1 Re: 全志 SOC » 请问nano在uboot中如何控制GPIO,用唱戏机点屏,发现背光需要PE12输出高电平 » 2022-04-19 02:55:28

还是我自己来结帖了,一直忙着板砖,没时间好好学习。

lichee nano 使用的是PE6 = 1点屏,由于PE6上电默认为1,所以上述配置不生效也能点屏

修改u-boot/arch/arm/mach-sunxi/board.c

static int sunxi_gpio_output2(u32 pin, u32 val)
{
	u32 dat;
	u32 bank = GPIO_BANK(pin);
	u32 num = GPIO_NUM(pin);
	struct sunxi_gpio *pio = BANK_TO_GPIO(bank);

	dat = readl(&pio->dat);
	if (val)
		dat |= 0x1 << num;
	else
		dat &= ~(0x1 << num);

	writel(dat, &pio->dat);

	return 0;
}
static int gpio_init(void)
{
	//使用非dm驱动直接设置引脚电平
	sunxi_gpio_set_cfgpin(SUNXI_GPE(12), SUNXI_GPIO_OUTPUT);
	sunxi_gpio_output2(SUNXI_GPE(12), 1);

#2 Re: 全志 SOC » mangopi_r3 nand烧录 » 2022-03-27 19:39:42

我这边windows 显示没有 USB download gadget 驱动,有没有大佬知道咋办?

_20220327193721.png

#5 Re: 全志 SOC » 荔枝派 大开源交流群(826307240)被封了 » 2019-11-27 10:44:57

荔枝家大水怪们 252413772

老司机都进这个群了,进群看不务正业的“大魔王”玩蝙蝠灯,3D瞎jier画……

吹水,没事来一发

#6 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 分享Ubuntu下开机启动脚本 » 2019-11-18 15:05:09

sudo vim /etc/rc.local

sleep 10s
echo "frp start..."
/home/pp/frp/frpc -c /home/pp/frp/frpc.ini &
exit 0

hmm 网络就绪太慢了,不是指令没执行,强行延时

#14 Cortex M0/M3/M4/M7 » STM32使用cubemx生成HID设备便于USB DFU升级 » 2019-10-19 13:41:56

明月心惜
回复: 10

简介:
      用STM32做东西免不了要考虑升级什么的,特别是对外暴露USB口的时候,大多时候设计个全速USB(12Mbps)就够用了,现在想用这个USB做程序升级。代码中虚拟出可以被DfuSeDemo识别的设备,这样就可以只连USB线,发送指令到MCU进入DFU,升级完跳转到程序。不需要去拨开关什么的额外操作,一根USB线搞定升级。

stm32-0.gif

主要步骤:
STM32F4等系列在system boot里面已经集成了DFU,也就是(BOOT0=1,BOOT1=0),重启进入System memory。
对于开发板,只要把boot0跳到0跑用户程序,跳到1进system boot,可以用串口、DFU等升级用户程序。早期的片子没有集成DFU,自己写一个,然后想办法跳转过去就行了。

stm32-1.jpg

手头有个STM32F401开发板 STM32F401CCU6,tb便宜+Type-c,拿这个跑Demo。

stm32-2.jpg

    把右上角的拨码开关干上去(boot0=1),然后RST一下,打开DfuSeDemo(V3.0.6),接上USB连接电脑。下载程序我就不bb了,注意图中的两个按钮,下载完后按钮2可以跳转到更新的程序,然后就没有然后了(两个按钮都变灰,你无法操作了)。

stm32-3.jpg

现在想把按钮1搞出来,从程序跳转到DFU,释放双手。百毒到处找资料,发现官方的Demo把这个功能阉割了,不管你怎么努力都不行,中文社区还放出了 DfuSeDemo_A.exe下载也是空文件夹,找不到这玩意儿。
DfuSeDemo这个官方给出了源码,在软件的安装目录,C++的,有能耐的大佬可以去改改。后面找到github上有大佬干了这个,我就把别人编译好的文件拿来用了,附件分享可执行文件。现在上位部分识别没问题了,开始cubemx流水化作业了。
新建项目、配置SWD、时钟、USB Device。要给USB 48NHz时钟,时钟树如下:

stm32-4.jpg

简单配置下HID参数,报告描述符设置为23,后面有数据需要填充。

stm32-5.jpg

把堆栈设置大一点,堆8K,栈16K。然后就可以快活玩耍了。

stm32-6.jpg

生成MDK工程,配置勾选生成hex,然后配置用户指令生成dfu(hex2dfu.exe -t  "$h@h.hex")


修改代码:

usbd_custom_hid_if.c

/** Usb HID report descriptor. */
__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS[USBD_CUSTOM_HID_REPORT_DESC_SIZE] __ALIGN_END =
{
  /* USER CODE BEGIN 0 */
	0x06, 0x00, 0xff,              // USAGE_PAGE (Vendor Defined Page 1) 表示一个报文标签之类的用途类页
	0x09, 0x01,                    // USAGE (Vendor Usage 1) 表示一个报告ID标志
	0xa1, 0x00,                    // COLLECTION (Physical) 要以下面最后的0xc0结束它

	0x85, 0x80, /* REPORT_ID (128) */ 
	0x09, 0x55, /*USAGE (LED 1) */ 
	0x15, 0x00, /* LOGICAL_MINIMUM (0) */ 
	0x26, 0xFF, 0x00, /* LOGICAL_MAXIMUM (255) */ 
	0x75, 0x08, /* REPORT_SIZE (8 bits) */ 
	0x95, 0x01, /* REPORT_COUNT (1) */ 
	0xB1, 0x82, /* FEATURE (Data,Var,Abs,Vol */
  /* USER CODE END 0 */
  0xC0    /*     END_COLLECTION	             */
};
static int8_t CUSTOM_HID_OutEvent_FS(uint8_t event_idx, uint8_t state)
{
  /* USER CODE BEGIN 6 */
	extern RTC_HandleTypeDef hrtc; 
	if(event_idx ==0x80 && state ==0x55) 
	{
		__HAL_RCC_PWR_CLK_ENABLE(); 
		HAL_PWR_EnableBkUpAccess(); 
		HAL_RTCEx_BKUPWrite(&hrtc,RTC_BKP_DR0,0x5A5A); 
		HAL_PWR_DisableBkUpAccess(); 
		HAL_NVIC_SystemReset(); 
		while (1); 
	}
  return (USBD_OK);
  /* USER CODE END 6 */
}

用RTC寄存器保存标志位,然后重启。重启后判断标志是否需要跳转进system memory

  /* USER CODE BEGIN 2 */
  	__HAL_RCC_PWR_CLK_ENABLE(); 
	HAL_PWR_EnableBkUpAccess(); 
	isJumpDFU=HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_DR0); 
	if(isJumpDFU == 0x5A5A)
	{
		//ReebUSB();
		HAL_RTCEx_BKUPWrite(&hrtc,RTC_BKP_DR0,0); 
		HAL_PWR_DisableBkUpAccess(); 
		JumpToBootloader();
	}else
	{
		HAL_PWR_DisableBkUpAccess(); 
	}
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		HAL_Delay(300);
		HAL_GPIO_TogglePin(LED_D1_GPIO_Port,LED_D1_Pin);
  }

文件下载:

DfuSeDemo Plus.7z

MiniF4WeAct_HID1.7z

写在最后:

如果当前已经使用了USB干别的事情,那么也是可以利用组合设备的方式,将这个hid接口集成进去的。
我目前使用的方法是,系统运行日志存储在spi flash中,然后虚拟出USB mass,电脑上显示U盘,可以直接操作文件。
然后与这个hid集成形成一个组合设备,mass和hid共存,有相关疑问的道友可以回帖,要是需要后期我搞个组合设备的demo。

#17 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » littlevgl 官方已经支持 vc2017 了, 终于可以丢掉编译速度辣鸡到家的 mingw 了 » 2019-09-30 10:02:40

晕哥 说:

为了方便对git不熟的朋友, 这里提供打包下载, SDL 的 lib 和 dll 已经内置, 可以用 VC2015/VC2017 编译成功:

本站下载: visual_studio_2017_sdl_x64_debugdump_20190116.7z

只需要设置  目标平台平台工具集

参考: https://whycan.cn/t_2064.html#p14175


这个压缩包,下载下来好像损坏了,是不是晕哥没弄好吧?解压报错

#18 全志 SOC » 请问nano在uboot中如何控制GPIO,用唱戏机点屏,发现背光需要PE12输出高电平 » 2019-09-28 20:42:44

明月心惜
回复: 3

手头有一个lichee+5寸屏,一个3.5寸的唱戏机。在使用uboot的时候,发现nano点屏没有问题,唱戏机就不行。
后面去查电路找引脚,发现唱戏机使用PE12控制PWM,nano为低电平,唱戏机为高电平。
按照nano的教程将引脚改为PE12,分辨率改为480*272,然后设置了PWM反转,还是不行。

#define CONFIG_VIDEO_LCD_BL_PWM "PE6"

查看代码,定位到sunxi_display.c中void *video_hw_init(void),初始化屏幕。

*video_hw_init()>sunxi_mode_set(mode, fb_dma_addr)>sunxi_lcdc_backlight_enable()->
sunxi_name_to_gpio(CONFIG_VIDEO_LCD_BL_PWM)->gpio_lookup_name()->dm_gpio_lookup_name()

最后这个函数,ret = dm_gpio_lookup_name(name, &desc);返回失败了。

查资料感觉这个应该跟uboot驱动模型(DM),有关。是不是需要配置设备树啊,请问应该怎么配置?

也就是想通过dm驱动设置对应的PWM引脚的电平。

#19 Re: 全志 SOC » 刚入坑f1c100s,萌新有问 » 2019-09-26 16:11:05

jiangming1399 说:

1. 不建议在Windows下开发,坑很多
2. uboot是bootloader;xboot是一个系统,与其对应的概念是linux、freertos、rt-thread等
3. 主线内核版本新, 有人维护;BSP驱动多,版本旧没人维护。
4. 这个建议自己对比,每个框架都有自己的优点和缺点,脱离应用场景来谈是没法谈的
5. 接口问题建议看数据手册;USB Wifi没有用过没法回答你
6. 肯定没法达到的。intel最近有写一篇文章怎么将linux的启动时间缩短到3秒内,你可以去看看。

BaiduShurufa_2019-9-26_16-3-20.jpeg

新手司机上路,先在window10上装个ubuntu,然后开启ssh,安装vscode remote ssh插件,交叉编辑开发很舒服。

不需要专门去启动虚拟机,资源占用也少,文件还可以直接拷。编译还是在Ubuntu路径中比较好,编完再拷出来
我电脑的ubuntu路径:
C:\Users\mbed\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\pp
烧写脚本:
del uboot u-boot-sunxi-with-spl.bin
copy C:\Users\mbed\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\pp\mycode\f1c100s\u-boot\u-boot-sunxi-with-spl.bin
sunxi-fel.exe uboot u-boot-sunxi-with-spl.bin

Windows Subsystem for Linux(简称WSL)是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubuntu 14.04 "Trusty Tahr"映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。

北京时间 2019 年 5 月 3 日,在 PyCon 2019 大会上,微软发布了 VS Code Remote。这是一个用来实现远程开发的功能插件,对于许多使用 Windows 进行开发,但是需要将程序部署在服务器的用户来说,提供了非常大的便利。这些插件包括了:
Remote - SSH
Remote - Containers
Remote - WSL

#20 全志 SOC » 领券28买了个2.4寸掌机,希望是能玩的动的芯片,等货拆机 » 2019-09-26 09:59:48

明月心惜
回复: 6

领券28买了个2.4寸掌机,希望是能玩的动的芯片,等货拆机
下面是公众号推过来的优惠券
mmmmmmmmmmmmmmmmmmmmmmm
贝贝佳游戏机怀旧款老式掌上fc掌机游超级玛丽复古手柄电视家用迷你儿童nds双人小型红白超小玩具【领券减40.00】

截止时间:2019-10-02

¥XRxGYnLD8YU¥

复制上面的口令,包括前后¥符号

打开【手淘】领券,【到手价】28.00
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
mmexport1569462789715.jpeg
IMG_20190926_095725.jpg

垃圾佬又开始囤垃圾了,上次买了个手表,做工太差退了,垃圾不好捡?。

#21 Re: 全志 SOC » 买个全志arm9 F1C100s 方案的唱戏机回来拆一拆 » 2019-09-25 22:39:14

firstman 说:

@明月心惜 最近买的吗?求购买链接

背光芯片就那么几个, 看下是什么封装的, 帮你猜一下

【夏新M-185 4.3寸看戏机老人唱戏机听戏收音机老年高清视频播放器】 https://m.tb.cn/h.eNYNskN?sm=04b88c  点击链接,再选择浏览器咑閞;或椱ァ製这段描述$p6sWYnIdSuC$后到?◇綯℡寳?

18年11月买的,现在还在卖。40PIN最近那个sot-23-6就是驱动,丝印BIBHF6,引脚找到了,PE12,但是使能逻辑可能和nano(低电平)不一样,所以点不亮,我再试试。

#22 Re: 全志 SOC » 买个全志arm9 F1C100s 方案的唱戏机回来拆一拆 » 2019-09-25 21:53:03

我思故我在 说:

找到背光芯片, 顺藤摸瓜找到背光芯片的控制引脚, 这时有两个选择:

1. 用万用表量出与 f1c100s 连接的引脚.
2. 直接飞线上拉或者下拉引脚控制引脚。

背光芯片找到了,没找到资料,万用表也没量出引脚,

夏新唱戏机,4.3寸,rgb 40PIN。没人玩吗?

IMG_20190925_214430.jpeg

#23 Re: 全志 SOC » 买个全志arm9 F1C100s 方案的唱戏机回来拆一拆 » 2019-09-25 09:12:57

老哥们 唱戏机的屏幕背光用的是哪个引脚,用nano的固件改成480*272的分辨率,nano点唱戏机的屏,是可以显示的。现在换回唱戏机主板点唱戏机,屏幕不亮,不知道背光是哪个脚?4.3寸唱戏机,跟晕哥这个是一样的。

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn