您尚未登录。

#1 Re: 全志 SOC » F1C200S SPI->ST7789 » 2023-02-28 01:41:52

终于问题解决了。 现在我需要设置一个 DMA 中断并删除 dma 完成等待函数“while(NDMA0->CR & NDMA_CFG_BUSY_STATUS)*SPI1_FCR |= SPI_FCR_RX_FIFO_RST;”dma3.jpg

#2 Re: 全志 SOC » F1C200S SPI->ST7789 » 2023-02-26 00:58:52

dykxjh 说:

是不是接收FIFO满了,数据没有及时取走? 可以配置忽略接收FIFO状态

是的,这确实是 RX FIFO 溢出感谢您的提示。 但主要问题仍然存在,每个 64B 都有 34uS 的暂停。 我不明白为什么,关于 DMA 功能的信息很少
dma2.jpg

#3 Re: 全志 SOC » F1C200S SPI->ST7789 » 2023-02-24 23:33:26

配置 DMA SPI 再次出现问题。 发送前 64 个字节,然后挂起 while(NDMA0->CR & NDMA_CFG_BUSY_STATUS)SPI1_RXD_BYTE;问题是什么?
dma.jpg
https://whycan.com/t_3405.html

NDMA0->CR = NDMA_CFG_DRQ_SPI1_TX      |
                NDMA_CFG_DRQ_SDRAM_MEMORY |
                NDMA_CFG_ADDRESS_IO_MODE  |
                NDMA_CFG_WAIT_STATE2;
    NDMA0->SAR =&disp_buf;
    NDMA0->DAR = SPI1_TXD_BYTE;

    *SPI1_FCR = SPI_FCR_RF_RST         |
                SPI_FCR_TX_FIFO_RST    |
                SPI_FCR_TF_DRQ_EN      |
                SPI_FCR_TX_TRIG_LEV_64 |
                SPI_FCR_RX_FIFO_RST    |
                SPI_FCR_RX_TRIG_LEV_1;
void flushDMA()
{

    *SPI1_MBC = *SPI1_MTC = *SPI1_BCC = NDMA0->BCR = 170*320*2;
     NDMA0->CR |=NDMA_CFG_LOADING;
    *SPI1_TCR &= ~SPI_TCR_SS_LEVEL_HIGH;
    *SPI1_TCR |= SPI_TCR_XCH_START;
    while(NDMA0->CR & NDMA_CFG_BUSY_STATUS) SPI1_RXD_BYTE;
    *SPI1_ISR |= SPI_ISR_TC;
    while(!(*SPI1_ISR&SPI_ISR_TC)SPI1_RXD_BYTE;
    *SPI1_TCR |= SPI_TCR_SS_LEVEL_HIGH;
}

#4 Re: 全志 SOC » F1C200S SPI->ST7789 » 2023-02-20 02:47:41

dykxjh 说:

改成DMA传输不香吗

我不明白如何启动 DMA->SPI。 有如何做到这一点的例子吗?

#5 Re: 全志 SOC » F1C200S SPI->ST7789 » 2023-02-18 15:43:15

dykxjh 说:

代码贴出来看看 啊

void spi_write(unsigned char *buffer, int length)
{
  int i;
  int cnt;
  
  while(length)
  {

    if(length <= 64)
      cnt = length;
    else
      cnt = 64;
    //number of bytes burst
    *SPI0_MBC = cnt;
    //number of bytes to transmit
    *SPI0_MTC = cnt;
    *SPI0_BCC = cnt;
    //Load FIFO
    for(i=0;i<cnt;++i)
      *SPI0_TXD_BYTE = *buffer++;
    //Start
    *SPI0_TCR |= SPI_TCR_XCH_START;
    length -= cnt;
    while(*SPI0_TCR & SPI_TCR_XCH_START);
    *SPI0_FCR |= SPI_FCR_RX_FIFO_RST;
    while(*SPI0_FCR & SPI_FCR_RX_FIFO_RST);
  }
}
void LCD_Fill(uint16_t Color)
{
    uint16_t i, j;
    for (i = 0; i < LCD_WIDTH; i++)
        for (j = 0; j < LCD_HEIGHT; j++)
        {
            *(volatile uint16_t *) (disp_buf + j * LCD_WIDTH + i) = Color;
        }

    SetAddressWindow(0, 0, LCD_WIDTH - 1, LCD_HEIGHT - 1);
    spi_write(disp_buf,LCD_WIDTH * LCD_HEIGHT*2);

}

#6 全志 SOC » F1C200S SPI->ST7789 » 2023-02-18 04:26:41

Simn
回复: 10

需要帮助。 传输 SPI FIFO 数据时遇到问题,每 64 字节加载一次会使传输延迟 35 毫秒。 如何不间断地传输数据?
lllog1.jpglllog2.jpglcd1.jpg

#7 Re: 全志 SOC » 在SPL Boot f1c200s FatFs 不能正常工作是什么原因? » 2023-01-22 21:30:26

问题出在链接器脚本中

.stack ALIGN(8)  : / <----改为 255
    {
        PROVIDE(__stack_start = .);
        PROVIDE(__stack_und_start = .);
        . += STACK_UND_SIZE;
        PROVIDE(__stack_und_end = .);

.stack ALIGN(255)一切都按预期工作

#8 全志 SOC » 在SPL Boot f1c200s FatFs 不能正常工作是什么原因? » 2023-01-19 00:05:23

Simn
回复: 1

大家好! 在 FatFs 方面需要帮助。 面对一个难以理解的问题,相同的代码表现不同,SDC 和 FatFs 可以正常工作 如果你编译二进制文件并在 DDR 中运行
xfel ddr F1C200S
xfel  write 0x80000000 f1c200s.bin
xfel exec 0x80000000

但是如果 FatFs 为 spl 引导编译
sunxi-fel -v -p spl boot.bin

uint8_t state = f_mount(&fs, "", 1); // return FR_NO_FILESYSTEM,        /* (13) There is no valid FAT volume */
state = f_open(&imgfile, "image.bin", FA_READ); // return FR_NO_FILESYSTEM,        /* (13) There is no valid FAT volume */

在SPL Boot f1c200s FatFs 不能正常工作是什么原因?

#9 Re: 全志 SOC » 使用 SOC F1Cxxx 的多媒体设备精选 » 2023-01-12 21:09:39

dykxjh 说:

只发不给链接的吗?

在搜索有关 F1Cxxx 的信息时,会定期遇到使用此 SOC 的设备,因此我将其发布在这里,也许它会对某些人派上用场。

#10 Re: 全志 SOC » 使用 SOC F1Cxxx 的多媒体设备精选 » 2023-01-11 21:44:26

Lunasama 说:

车机也用这玩意我是万万没想到的。夏天车里的高温和北方冬季的低温能抗住吗

从速卖通的评论来看,人们没有抱怨,订单很多。

#12 Re: 全志 SOC » 使用 SOC F1Cxxx 的多媒体设备精选 » 2023-01-09 19:35:06

sokou 说:

大彩的串口屏也是用F1C100S ?

是的。屏幕有几种选择  DWIN,SYNWIT,F1C100S...
https://github.com/mriscoc/Ender3V2S1/wiki/How-to-update-the-display

#14 Re: 全志 SOC » F1C100S/F1C200S如何进入休眠模式 » 2023-01-06 05:50:30

mcr 指令 p15, 0, r0, c7, c0, 4 /* 等待中断 */
我对 DOZE/SLEEP mode 模式感兴趣 https://developer.arm.com/documentation/ddi0287/b/introduction-and-configuration/system-controller-and-configuration-logic/about-the-system-controller/system-mode-control?lang=en

ARM926EJ-S Development Chip Reference Manual
"SLEEP mode
In SLEEP mode, the system clocks, HCLK and CLK, are disabled and the System Controller clock, SCLK, is driven from a slow speed oscillator (nominally 32 768Hz).
When either a FIQ or an IRQ interrupt is activated (through the VIC) the system moves into the DOZE mode. Additionally, the required operating mode in the system control register automatically changes from SLEEP to DOZE.

Note
Before entering SLEEP mode you must ensure that the processor is in the Wait-for-interrupt state. Processor status is determined by the STANDBYWFI output from the processor.

DOZE mode
In DOZE mode, the system clocks and the System Controller clock are driven from a low frequency oscillator.
From DOZE mode it is possible to move into SLEEP mode when none of the mode control bits are set and the processor is in Wait-for-interrupt state.
If SLOW mode or NORMAL mode is required the system moves into the XTAL control transition state to initialize the crystal oscillator."

#16 全志 SOC » F1C100S/F1C200S如何进入休眠模式 » 2023-01-05 06:23:26

Simn
回复: 3

问候! 有谁知道如何通过等待外部中断或定时器中断使处理器进入睡眠模式?

#17 Re: 全志 SOC » 新作F1C200S,打算百分之百开源,给大家的新年礼物。 » 2023-01-05 06:10:38

Lesterbor 说:

我准备用F1C200S采集🕹️摇杆数据,但是F1C200S只有一个音频输入的ADC采集口,应该怎么办呢,各位大佬帮忙出谋划策一下,我目前的想法是用一块st的单片机采样然后用串口发给F1C200S,但不知道这样可不可以

最好使用 SPI ADC

#19 Re: 全志 SOC » f1c100s入门 » 2022-12-14 16:42:44

chenbee168 说:

这里有个f1c100s+FreeRTOS的例程,可直接debug运行的,支持LCD,串口打印之类的,可以一起学习
https://download.csdn.net/download/chenbee168/86988791

以及如何下载?  csdn:(((

#23 Re: 全志 SOC » 使用 SOC F1Cxxx 的多媒体设备精选 » 2022-12-14 01:21:18

lanlanzhilian 说:

从哪能弄一个来玩?

Aliexpress

#24 全志 SOC » 使用 SOC F1Cxxx 的多媒体设备精选 » 2022-12-13 04:07:49

Simn
回复: 18

问候。 我在维修论坛上找到了这样的多媒体,也许有人会感兴趣
50644357.jpg04832334.jpgLIQxqazmE4E.jpg76bjal7t2Zg.jpg49951596.jpg56096140.jpg65666698.jpg26256852.jpg40234064.jpg19789615.jpg
如果您对此主题感兴趣,我会继续在这里发布我找到的所有内容。
您见过哪些设备带有这些 SOC? 在这里张贴。

#25 Re: 全志 SOC » F1C100s UART寄存器 » 2022-11-28 05:26:18

tzp 说:

大概知道了,根据不同的标志位访问权限不同

Ofset 0x00 Read RBR  ( data bit 7:0) bits 7:0
Ofset 0x00 Write THR  ( data bit 7:0) bits 7:0
Ofset 0x00 R/W DLL    ( data bit 7:0) bits 15:8 Divisor Latch low  (7:0 Read RBR / Write THR)

Exemple:
uint16_t val = (uint16_t)(apb_clock / baud / 16UL);

write32(UartBase+DLL, val & 0xFF); // Write divisor value

inline void uart_tx(uint32_t UartBase, uint8_t data)
{
    write32(UartBase+THR, data);
}

inline uint8_t uart_get_rx(uint32_t UartBase)
{
    return (uint8_t)read32(UartBase+RBR);
}

#26 Re: 全志 SOC » F1C100S的Keil裸机USB+LCD+PWM+GPIO工程搞定,修复GNU工具链BUG » 2022-11-28 00:58:48

@右半边天天晴
asm volatile (
               "b Entry         \n" //Jump to Entry
               ".long 0x4E4F4765\n" //eGON
               ".long 0x3054422E\n" //.BT0
               ".long 0x00000000\n" //checksum for boot must be calculated !
               ".long 0x00006000\n" //length for boot 0x6000 24 kB
               ".long 0x00000000\n"
               ".long 0x00000000\n"
               ".long 0x00000000\n"
              );
or
_start:
    //Boot head information for BROM
    .long 0xea000006 //Jump to Entry
    .byte 'e', 'G', 'O', 'N', '.', 'E', 'X', 'E'
    .long 0, __program_size //checksum for boot must be calculated !, length for boot
    .byte 'E', 'X', 'E', 'C' //
    .long 0, 0

or

;/* Boot head information for BROM booting */
BROM_BHI        B       Vectors
                DCB     "eGON.BT0"
                DCD     0, ||Load$$LR$$FLASH_SPL$$Length||
                DCB     'S', 'P', 'L', 2
                DCD     0, 0
                DCD     0, 0, 0, 0, 0, 0, 0, 0
                ;/* 0x40 - boot params, 0x54 - entry, 0x58 - fel boot type, 0x5c - dram size */
                DCD     0, 0, 0, 0, 0, 0, 0, 0

#27 Re: 全志 SOC » Windows裸机程序烧录工具,烧录到SD卡 » 2022-11-25 02:36:17

我使用 cfimager.exe + *.BAT 实用程 但是你的实用程序更有趣

cfimager.exe tool is used to flash boot images and create FAT partition on SD/MMC cards
on the host PC
- To flash the uboot, use the following command:
cfimager -raw -offset 0x400 -skip 0x400 -f u-boot.bin -d
cfimager.exe -raw -offset 0x2000 -f boot.bin -d F
Note if changing -offset 0xXXXX, other image can be flashed to SD card "F".

Exemple bat file:
rem cfimager.exe -raw -offset 0x2000 -f boot.bin -d Disk F
cfimager.exe -raw -offset 0x2000 -f boot.bin -d F
pause

https://gitlab.com/my-imx6/mfgtools/tree/master/Utils/cfimager
https://github.com/NXPmicro/cfimager

#28 Re: Nuvoton N32905/N32926/NUC972/N9H20/N9H26/N9H30 » step by step 全志 f1c100s MDK 裸奔各种外设(参考N3290x) » 2022-11-25 00:09:43

awfans 说:

https://whycan.cn/files/members/713/QQ20180821093222.jpg

紧跟楼主步伐,学习 f1c100s mdk 裸奔.
jlink 可以连上,mdk 可以调试。

J-link适配器原件还是复印件? 哪个版本? 我在哪里可以买到?

#31 Re: 全志 SOC » 开源一个F1C200S的实用向板,极限压榨这片子的功能 » 2022-11-21 21:41:28

hjwsl 说:

楼主,我有个F1C200S的项目,可以帮忙处理一下吗?可以有偿

写一篇关于你的项目的帖子。 你有什么需要帮助的?

#32 Re: 全志 SOC » 搞定 T113 / T113-S3 裸奔驱动CAN (转) » 2022-11-21 21:09:24

CAN 报文过滤器怎么样? 我在哪里可以找到完整的文档

页脚

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

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