• Content Count

  • Joined

  • Last visited

1 Follower

About felipeduque

  • Rank

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. felipeduque

    H3 I2S0 DT overlay

    @dony71 The "make linux-menuconfig" stuff is just saying that you need to compile the kernel with the "Allwinner A10 I2S Support" option enabled. You can do it by several means, one of which is the "make linux-menuconfig", but I don't remember how to do it. However, you can compile the kernel using Vagrant. That's how I've always done.
  2. felipeduque

    Nanopi Neo Air and WiringNP

    Apparently the fix by @JohnF doesn't work on mainline (it did work for me on legacy). This fix worked for me on mainline.
  3. It works here. Thanks. Apparently things were different on legacy. I had to do this workaround, but it didn't work on mainline.
  4. felipeduque

    OPi Zero I2S Left Justify

    I2S left-justify requires audio_format = 3. As far as I'm concerned, there is no audio_format = 0. But I think you may run into hardware issues with I2S on OPi zero. See this post.
  5. I've been delving into I2S driver on H3 (legacy kernel) because I need TDM (time-division multiplexing) mics to work. So I came across what all those fex parameters really mean. Almost all of them can be found in sunxi-daudio0.c, some can be found in sunxi-snddaudio0.c, and you need to match those parameters to H3 datasheet. I'll spit out some of my findings. Please feel free to ask questions about any of the parameters. - daudio_master: it goes from 1 to 4. It selects slave/master combinations of bit clock and frame sync. = 1: bit clock and frame sync are input to H3 (i.e., codec is master, H3 is slave); = 2: bit clock is output from H3, frame sync is input to H3; = 3: bit clock is input to H3, frame sync is output from H3; = 4: bit clock and frame sync are output from H3 (i.e., codec is slave, H3 is master). - daudio_select: it can be 0 or 1. It selects whether we will be working with I2S or PCM mode. = 0: PCM mode. Basically, frame sync is just a short pulse, and all channels are sent/captured one after the other. When the last one is sent/captured, frame sync is pulsed again. = 1: I2S mode. Channels 0, 2, 4... are sent/captured during frame sync high; channels 1, 3, 5... are sent/captured during frame sync low. - audio_format: it goes from 1 to 5. It selects different configurations of I2S or PCM mode. See pages 529 and 530 of H3 datasheet. = 1: regular I2S mode. Only makes sense when daudio_select = 1 (I2S). = 2: I2S right justified mode. Only makes sense when daudio_select = 1. = 3: I2S left justified mode. Only makes sense when daudio_select = 1. = 4: DSP_A mode. Only makes sense when daudio_select = 0 (PCM). = 5: DSP_B mode. Only makes sense when daudio_select = 0. - signal_inversion: it goes from 1 to 4. It selects different combinations of bit clock and frame sync polarity.
  6. felipeduque

    H3 I2S0 DT overlay

    @burak That's good to know. However, I'm struggling to make the proper changes to sun4i-i2s.c and device tree stuff. Would you be willing to share the files you had to change?
  7. felipeduque

    NanoPi Neo Core Ethernet.

    Hi, @projetoarduino, thank you very much for your straightforward fix. You mention in your readme that your modified device tree also enables audio. What kind of audio? I tried to record audio with my I2S microphone but arecord doesn't show any audio interface...
  8. felipeduque

    Can you install Armbian to NanoPi Neo Core eMMC?

    Hi, all. I have the same question ("Can you install Armbian to NanoPi Neo Core eMMC?") but on legacy kernel. I was able to install Armbian to NanoPi Neo Core eMMC on mainline, following this topic, but cannot find anyone who made it work on legacy. (I really want to use legacy because I need I2S microphones, and was not able to make them work on mainline.) (Another option was to use NanoPi Neo Air legacy image, which supports eMMC out of the box, but I also need Ethernet, which isn't supported by Neo Air!)
  9. felipeduque

    H3 I2S0 DT overlay

    Hi all. I'm still struggling to capture I2S audio on my OrangePi PC (H3), mainline kernel. I've followed all steps by @Valery Rezvyakov and was able to see the I2S input device with arecord -l, just like @Christos. However, audio is not captured properly: there is an annoying DC offset at about 99% of maximum output value, thus only downwards signal excursion is possible (in fact, they are captured, as I can see them with Audacity). I'm using Adafruit SPH0645 I2S microphone as the capture device, and it's not a hardware problem because it works perfectly with legacy kernel. Audio format in both cases (legacy and mainline) is S16_LE. My suspicion is that the adau7002 driver is not suitable for my mic, but I was not able to find out where to meddle with.
  10. That's exactly the same problem I'm facing right now with legacy 3.4.113 on Nano Pi NEO Air (H3 chip). Audio recorded with e.g. S32_LE format is garbage, whereas S16_LE is perfect. Has anybody figured out how to handle this? I tried meddling with pcm0 parameters to no avail.
  11. felipeduque

    Nano Pi NEO Air with enc28j60: "chip not found"

    Version 5.38 now, but there is no spi0 in armbian-config. There are i2c0, usbhost0 etc, but no spi0... And now eth0 won't even show up, but the module is correctly loaded (same "chip not found error" though). My bad when writing the post. It was correct in my file.
  12. Hi all. I've been struggling for several days to establish an internet connection via enc28j60 (Ethernet to SPI device) on my Nano Pi NEO Air, running Armbian 5.27, kernel 4.11.3. I have this custom DTS file added to my armbianEnv.txt, with two small modifications regarding the interrupt pin (apparently, PA7 is not available on Nano Pi NEO Air). I have pins = "A17"; ... interrupts = <0 17 2>; instead of pins = "PA7"; ... interrupts = <0 7 2>; The DT stuff is correctly loaded during boot, and an eth0 interface shows up (initially with random MAC address upon every reboot, but it's fixed now). However, only the orange light on the enc28j60 blinks - the green one just sits still (powered on). And there is no internet connection, despite the fact that "nmcli d" tells otherwise. The only occurrences of "spi" on dmesg are the following: [ 4.369613] enc28j60 spi0.0: enc28j60 Ethernet driver 1.02 loaded [ 4.373744] enc28j60 spi0.0: enc28j60 chip not found [ 4.373829] enc28j60: probe of spi0.0 failed with error -5 This readme file suggests that enc28j60 overlay "may require activating the SPI bus device is connected to by a kernel provided overlays (i.e. overlays=spi0)", however I could not find spi0 overlay for H3 devices. Other than that, I'm confident the hardware connections are correct. Am I missing anything obvious? Or maybe my Armbian version is outdated? How can I connect my Nano Pi NEO Air to the internet via ethernet?