您尚未登录。

#3 Cortex M0/M3/M4/M7 » 请教大神辨别stm32真假,求助 » 2021-01-25 23:59:13

sawgsxiao
回复: 3

stm32f103c8t6 连接stlink 显示idcode 是x02b开头,这块芯片是假的吗?我用STM32 ST-LINK Utility 查看flash有128k?咋情况

#4 Re: 全志 SOC » 全志 f1200s ADC问题 » 2021-01-15 02:08:20

david 说:

还有个adc读键盘的 触屏应该也是adc

我没找到相关的案例的,试试楼上看看

#5 Re: 全志 SOC » 全志 f1200s ADC问题 » 2021-01-15 02:04:31

sjshe3326 说:

可用的测试代码如下

 //------------------------------------------------------//
    // ADC input test 
    #if(0)
    {
        adc_init();
        printf("adc test init OK. \n\r");
        delay_s();
        i = 0;
        
        while(1)
        {
            delay_s();
            u32_t v1 = adc_f1c100s_read(ADC_CHANNEL_FMINL);
            delay_s();
            u32_t v2 = adc_f1c100s_read(ADC_CHANNEL_FMINR);  
            delay_s();
            u32_t v3 = adc_f1c100s_read(ADC_CHANNEL_LINL);  
            delay_s();        
            u32_t v4 = adc_f1c100s_read(ADC_CHANNEL_MIC);    
            printf("ADC: %08X, %08X, %08X, %08X \n\r", v1,v2,v3,v4);
        }
    }
    #endif

u32_t adc_f1c100s_read(int channel)
{
    u32_t mixerReg = read32(ADC_BAISADDR + ADC_MIXER_CTRL) & ~(0x1f << 8);
    switch (channel) 
    {
        case ADC_CHANNEL_FMINL:
            write32(ADC_BAISADDR + ADC_MIXER_CTRL, mixerReg | (1 << 12));
            break;
        case ADC_CHANNEL_FMINR:
            write32(ADC_BAISADDR + ADC_MIXER_CTRL, mixerReg | (1 << 11));
            break;
        case ADC_CHANNEL_LINL:
            write32(ADC_BAISADDR + ADC_MIXER_CTRL, mixerReg | (1 << 10));
            break;
        case ADC_CHANNEL_MIC:
            write32(ADC_BAISADDR + ADC_MIXER_CTRL, mixerReg | (1 << 13));
            break;
        default:
            // mute all
            break;
    }
    
    udelay();  // wait for internal filter to be stable

    // FIFO flush
    write32(ADC_BAISADDR + ADC_FIFOC, read32(ADC_BAISADDR + ADC_FIFOC) | (1 << 0));
    while( (read32(ADC_BAISADDR + ADC_FIFOS) & (1 <<23))==0);
    
    // by default, 0V = -24000 and VRA = 0.
    // make 0V = 0 and vreference = 65535.
    int val = (read32(ADC_BAISADDR + ADC_RXDATA));// >> 16);

    return (u32_t)val;
}

void adc_init(void)
{
	
    // ADC打开时钟 //
    write32( 0x01C20008, (read32(0x01C20008) | (1<<31)) );
    write32( 0x01C20068, (read32(0x01C20068) | (1<<0)) );
    write32( 0x01C20140, (read32(0x01C20140) | (1<<31)) );
    udelay(); 
    write32( 0x01C202D0, (read32(0x01C202D0) | (1<<0)) );
    udelay();
    
    //24kHz采样率 ,// digital enable // fifo mode 0 delay 0 8fifo 16bit mono
	u32_t regVal = 	(2 << 29) | (1 <<28) | (0xf << 8) | (1 << 7);
    write32(ADC_BAISADDR + ADC_FIFOC, regVal);


    // ADC enable gain 0  all mute
	regVal = (1 << 31) | (3<<24) | (3<<16)| (1 <<14) | (1<<7) | (1<<3) | (0 << 0); 
    write32(ADC_BAISADDR + ADC_MIXER_CTRL, regVal);
    
}

感谢大神,我试试下

#6 全志 SOC » 全志 f1200s ADC问题 » 2021-01-14 15:24:23

sawgsxiao
回复: 4

全志 f1200s ADC问题,adc 怎么用,没有相关的资料,请大神指点,求助

#7 全志 SOC » f1c200 micin 怎么使用 » 2021-01-11 18:59:24

sawgsxiao
回复: 0

f1c200 micin 怎么使用,有案例的驱动吗,以及原理图,求大神指点

#8 Re: 全志 SOC » f1c200 spi1工作不正常 » 2021-01-11 15:28:12

f1c200 咪头录音怎么搞,请大神,发下案例

#9 Re: 全志 SOC » f1c200 spi1工作不正常 » 2021-01-11 14:56:38

拉轰的脚踏车 说:

把你的 dts 贴出来看看。

还有, 用 devmem 命令读相关io的复用寄存器, 看是不是使能了 spi 复用。

我把逻辑分析仪的线拔了就可以,非常感谢

#11 全志 SOC » f1c200 spi1工作不正常 » 2021-01-08 13:09:38

sawgsxiao
回复: 5

f1c200 spi1 选择的mode_3 接上逻辑分析仪工作正常,不接就不正常,这个是什么情况,求助大神们,其他模式都怎么调不正常

#12 Re: 全志 SOC » 全志 f1200s spi1 求助 oled驱动 » 2021-01-07 23:06:29

raspberryman 说:

逻辑分析仪怼上去,看下时序,对照手册比较一下。

逻辑分析仪怼不上去,出问题了 怎么改大神 们,怎么调

#13 Re: 全志 SOC » 全志 f1200s spi1 求助 oled驱动 » 2021-01-06 15:56:30

自己改的写了 设备驱动 没有成功点亮oled
oled_probe 是否有问题

static int oled_probe(struct spi_device *spi)
{
    int ret = 0;
    oled_dev.spi_oled_dev = spi;
    struct device *dev = &spi->dev;
   
    ret = spi_setup(spi);
    if (ret)
        return ret;
    oled_dev.node = dev->of_node;

    if(oled_dev.node == NULL){
        printk("fail_get_node\r\n");
    }

    oled_dev.spi_oled_dc_pin = of_get_named_gpio(oled_dev.node, "dc-gpio", 0);

    if(oled_dev.spi_oled_dc_pin<0){
        ret = -EINVAL;
        goto fail_get_node;
    }
    oled_dev.spi_oled_rst_pin = of_get_named_gpio(oled_dev.node, "rst-gpio", 0);
    if(oled_dev.spi_oled_rst_pin<0){
        ret = -EINVAL;
        goto fail_get_node;
    }
    printk("request gpio %d\r\n", oled_dev.spi_oled_dc_pin);

    ret = gpio_direction_output(oled_dev.spi_oled_dc_pin, 0);
    if(ret<0){
        printk("can't gpio_direction_output gpio  %d\r\n", oled_dev.spi_oled_dc_pin);
        goto setout_fail;
    }
    ret = gpio_direction_output(oled_dev.spi_oled_rst_pin, 0);
    if(ret<0){
        printk("can't gpio_direction_output gpio  %d\r\n", oled_dev.spi_oled_rst_pin);
        goto setout_fail;
    }
    oled_dev.major = register_chrdev(0, "oled", &oled_ops);

    oled_dev.class = class_create(THIS_MODULE, "oled");
    printk("matched\r\n");

    device_create(oled_dev.class, NULL, MKDEV(oled_dev.major, 0), NULL, DRIVER_NAME);
    OLEDInit();

    // OLED_Set_DC(0);
    // OLED_Set_RST(0);
    return 0;
setout_fail:
fail_get_node:
    return ret;
}

#14 Re: 全志 SOC » 全志 f1200s spi1 求助 oled驱动 » 2021-01-06 15:53:14

&spi1 {
    pinctrl-names = "default";
    pinctrl-0 = <&spi1_pins_a &oled_dc_rst_pins>;
    status = "okay";
    spioled@0 {
        #address-cells = <1>;
        #size-cells = <1>;
        compatible = "spioled";
        spi-max-frequency = <1000000>;
        dc-gpio = <&pio 4 11 GPIO_ACTIVE_HIGH>;
        rst-gpio = <&pio 4 12 GPIO_ACTIVE_HIGH>;
        reg = <0>;
    };
};

#15 全志 SOC » 全志 f1200s spi1 求助 oled驱动 » 2021-01-06 15:42:21

sawgsxiao
回复: 5

linux 设备树怎么驱动spi1  驱动oled,求助!!!

#17 全志 SOC » 全志 f1200s 能实现录音功能吗? » 2020-12-08 12:27:58

sawgsxiao
回复: 3

全志 f1200s 能实现录音功能吗?需要怎么实现,请大神们帮忙看看

页脚

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

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