Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    emard
    @emard
    @goran-mahovlic I see in esp32 micropython docs somehow esp32 also has ENC28J60, i tried to load this module but my mpy v1.12 doesn't have this module https://software.open-dev.ru/docs/online/micropython/library/network.ENC28J60.html
    It's a digiowl's mod/fork of micropython maybe so
    Goran Mahovlic
    @goran-mahovlic
    ok, ENC is detected by SaxonSoc - but I do not get IP
    SaxonSoc.jpg
    emard
    @emard
    I can't try my full setup but I remember I have crimped flat cable to accept standard ebay's ENC28J60 and I got IP from my network
    Goran Mahovlic
    @goran-mahovlic
    Yes, I know it should work, but my does not :) - but good thing is that it is detected so SPI pins are ok
    I do have more pins connected -- RST pin in on GP16 - CO to GP17 - WOL to GN16
    emard
    @emard
    It is 10-mbit maybe your net structure refuses this low speed. Those pins I have also connected on crimped cable and module still worked
    Goran Mahovlic
    @goran-mahovlic
    but only reset should be important
    emard
    @emard
    I'd sniff with tcpdump, does module place some packets on the net
    Lawrie Griffiths
    @lawrie
    It is a while since I have used it. Check you have /etc/network/interfaces and try ifup eth0.
    Goran Mahovlic
    @goran-mahovlic
    I would say that everything is fine with SaxonSoc - if I assign manual address and ping from PC I do get led blink on connector - and if I ping gateway from SaxonSoc - I also get blink - ping does not pass in any direction. I need to recheck parts I have on PMOD - as I did half of PMOD log time ago - so there is a chance I did something wrong ...
    e2kgh
    @e2kgh
    @pnru_gitlab : You don't need the bandwidth yet ;-) I just fooled around with different screen resolutions. So getting the higher bandwidth for the display controller is "easy", as it simply reads n-words, as fast as clock goes. The other good (?) issue is, that filling/flushing caches can also use the DRAM burst. And even when @Lawrie starts with his GPU, burst still can be used for reading/writing tiles/caches etc. Was just hoping to get as much raw bandwidth as possible, to get at least SVGA in 24bit ... (and still have bandwidth to access the display memory)
    @emard: please forget the ESP-S2 ;-) I think it is more "logical" to use the ESP32 for the SD-CARD, booting and slow keyboards/mice, and even ftp. But we are pumping all this data through an SPI ... It would be more beneficial, to have a real USB on the FPGA side (USB3340?) and do it right there ...
    @emard: and don't forget, the ESP32-S2 is slower than the ones you have now ...
    emard
    @emard
    I know, S2 is not yet ready, goran ordered few S2 modules and we will try it external with wires, no replacing usbserial in ulx3s design yet. I have USB3340 module and never could get anything from ths PHY, tried several downloaded ULPI sources but this chip its so full of regs and compilicated. Id like if somehow would sorted out replacement of soft-core PHY with 3340.
    OTOH my soft-core US2 phy works well for low and full speed USBs
    Even if we get 3340 PHY, we would have heavy FPGA core handling VFAT and protocols, that's why ESP32 is easy way to offload core development with benefit of programming convenience and in many cases slow speed is acceptable for what we do
    e2kgh
    @e2kgh
    @emard: you know this on github:
    emard
    @emard
    I know and I could get 3340 to work only as sniffer but not as host or device.
    e2kgh
    @e2kgh
    And, I thought, all the USB protocol could be done in a small microcontroller, which sits in the FPGA to, would be a common block for all designs, like the ESP interface?
    emard
    @emard
    That for sure is possible and orangecrab is demonstration of how good can it work
    emard
    @emard
    @pnru_gitlab SD card 4-bit additional: one card didnt wanted to work, I have explicitely set ESP32 CPU to run at 240MHz instead 160MHz default and now this SD card mounts well also in 4-bit mode
    from machine import freq
    freq(240*1000*1000) # 80/160/240 MHz, faster CPU = faster SD card
    promach
    @promach
    does open-source lattice tool have real-time signal capturing capability like what Altera SignalTap or Xilinx ILA/chipscope do ?
    emard
    @emard
    no but for ULX3S we have scopeio https://github.com/hdl4fpga/hdl4fpga I debugged usb-host with it. VHDL too advanced for openosurce to compile, need diamond
    promach
    @promach
    drr
    @danrr_au_twitter

    More fun with audio + ULX:
    https://twitter.com/danrr_au/status/1293501360021757952?s=20

    Also saw this VHDL encoder for HDMI video + audio, I noticed you had a fork for this @emard but from a few years ago. Did you have success with this on the ULX?
    https://github.com/emard/hdmi-audio

    I'll run it through GHDL + yosys at some point, HDMI video/audio is ideal and the interface on that module looks pretty much the same as the one I currently use , but with bonus audio

    emard
    @emard
    This source is problematic has some logical loop and written by C-style programmer. It works good only on altera. Needs to be rewritten or new source found that is clean and portable
    Paul Ruiz
    @pnru_gitlab
    In the Fall I'd be interested to take a look at that HDMI-audio code. At some point I would like to understand the details of HDMI data islands and the lot.

    For the mini-Cortex I have the IDE emulation working - it can now load the 2nd stage boot loader from disk and that stage can load the kernel from disk. Haven't done the MMU yet, so there is where it currently stops. @emard In your OSD code you have this:

        self.irq_handler(0)
        self.irq_handler_ref = self.irq_handler # allocation happens here
        self.spi_request = Pin(0, Pin.IN, Pin.PULL_UP)
        self.spi_request.irq(trigger=Pin.IRQ_FALLING, handler=self.irq_handler_ref)

    Why is that necessary? It (Pin.irq) seems to work for me with just giving the function name as handler.

    Paul Ruiz
    @pnru_gitlab

    @pnru_gitlab SD card 4-bit additional: one card didnt wanted to work, I have explicitely set ESP32 CPU to run at 240MHz instead 160MHz default and now this SD card mounts well also in 4-bit mode

    Is there any downside to running at 240MHz (other than power)? Do some things break at that speed? If not, would it not make sense to always run at 240MHz??

    emard
    @emard
    @pnru_gitlab First call of the handler(0) is to catch some stale irq. Second line .ref is micropython trick to force allocation for a function before it will be called by interrupt (reduce latency). Third line sets pin status and pullup to avoid glitches if FPGA side is missing. Last line activates IRQ handler passing it already allocated function. If you change it and it works, it's ok :)
    ULX3S has plenty of onboard power so 240MHz is just fine. Some esp32 soc parts may scale (be clocked) with that frequency some are from bugs in micropython or IDF, some are normal.
    emard
    @emard
    If you manage to rewrite HDMI islands from scratch to work that would be great! It's some data delivered during blank signal. Monitors that don't support audio will either show garbled screen or no sync. Those that support will normally show picture and play audio
    emard
    @emard
    https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/power_management.html here is a lot of ESP32 dynamic frequency control, I think main reason is power saving
    Paul Ruiz
    @pnru_gitlab
    Got the "mini-cortex" model booting ancient Unix. It is about 4 times faster than the SBC (double the clock frequency and a 16-bit bus instead of 8-bit). IDE simulation from the ESP32 works fine.
    emard
    @emard
    @pnru_gitlab wwoooww amazing project! Is the source on git with some download lines for disk image?
    I was playing with line draw hardware accelerator (a simple SPI controlled "GPU") https://github.com/emard/ulx3s-misc/blob/master/examples/lcd_st7789/micropython/st7789_240x240_spi_slave/proj/hdl/draw_line.v and demo is for LCD ST7789 which doesn't have built-.in hardware line like OLED SSD1331 has. Now it has 3330 lps
    Dobrica Pavlinušić
    @dpavlin
    @goran-mahovlic I'm also having problems with ENC28J60 and saxonsoc with ebay module and wires which used to work, so you pmod is probably ok, it's a software problem. I will try to go through all kost builds and find one which works for you
    Dobrica Pavlinušić
    @dpavlin
    @goran-mahovlic https://github.com/dok3r/ulx3s-saxonsoc/releases/tag/v2020.01.24 works for me, you can test ENC28J60 pmod using this image
    emard
    @emard
    when we are at saxonsoc, is there some chance for RTC MCP7940N i2c support, can we demonstrate that saxonsoc can boot with clock set, make hardware shutdown and wake up again from RTC. I have esp32 mictopython example for this https://github.com/emard/ulx3s-misc/tree/master/examples/rtc/micropython-mcp7940n
    Paul Ruiz
    @pnru_gitlab
    @emard Yes I will put all that on Gitlab in the next few days. At the moment the code still needs some cleanup and I'm chasing a few issues: I discovered that my CPU microcode for signed divide has a bug and also that I never implemented NMI (which is used for single stepping in the debugger - a bit like the "trap" status bit on a PDP11).
    Goran Mahovlic
    @goran-mahovlic
    @dpavlin tnxI will check, as I did recheck everything and did not find anything wrong wirh PMOD
    Goran Mahovlic
    @goran-mahovlic
    Working.png
    @dpavlin tnx - it is working :)
    Paul Ruiz
    @pnru_gitlab

    I've now cleaned up the source and posted the repo for the Mini Cortex project. It is located here: https://gitlab.com/pnru/cortex
    Let me know if it works on other boards too.

    If there is an emerging standard for how to organize projects on the SD card let me know, and I'll try to conform.