[Ovmsdev] SD CARD vs 16MB flash

Michael Balzer dexter at expeedo.de
Mon Jan 8 21:25:24 HKT 2018


Mark, Steve,

that's really a great relief!

I also doubt the fix will be backported. I tried applying the idf v3 commits involved in the fix you also commented on some weeks ago, but the
issue wasn't solved. I got the impression it's not an isolated issue of the driver. We should go idf-3.x anyway.

Regarding last hardware fixes, please don't forget…

    5. Support active GPS antennas

I hope we can use the Wroom module.

Regards,
Michael


Am 08.01.2018 um 03:37 schrieb Mark Webb-Johnson:
>
> Using Espressif standard SD CARD example program, modified to write "Hello\n” 10 million times, and then read it back 10 million times...
>
> Here is what I get with OVMS v3 developer-release hardware using release version of ESP IDF v2.1:
>
>     I (50) boot: ESP-IDF v2.1.1-8-g5ae2c0d0 2nd stage bootloader
>     I (51) boot: compile time 08:28:36
>     I (83) boot: Enabling RNG early entropy source...
>     I (84) boot: SPI Speed      : 40MHz
>     I (84) boot: SPI Mode       : DIO
>     I (94) boot: SPI Flash Size : 16MB
>>     I (910) cpu_start: Pro cpu start user code
>     I (967) cpu_start: Starting scheduler on PRO CPU.
>     I (972) example: Initializing SD card
>     I (972) cpu_start: Starting scheduler on APP CPU.
>     E (1112) sdmmc_cmd: sdmmc_card_init: send_scr returned 0x107
>     E (1112) example: Failed to initialize the card (263). Make sure SD card lines have pull-up resistors in place.
>
>
> Using latest (bleeding edge, not released) ESP IDF v3.1, using 1 line mode:
>
>     I (31) boot: ESP-IDF v3.1-dev-168-ga1b59679 2nd stage bootloader
>     I (31) boot: compile time 08:35:38
>     I (42) boot: Enabling RNG early entropy source...
>     I (42) boot: SPI Speed      : 40MHz
>     I (42) boot: SPI Mode       : DIO
>     I (45) boot: SPI Flash Size : 16MB
>>     I (195) cpu_start: Pro cpu up.
>     I (199) cpu_start: Starting app cpu, entry point is 0x40080e38
>     I (0) cpu_start: App cpu up.
>     I (209) heap_init: Initializing. RAM available for dynamic allocation:
>     I (216) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
>     I (222) heap_init: At 3FFB2A48 len 0002D5B8 (181 KiB): DRAM
>     I (228) heap_init: At 3FFE0440 len 00003BC0 (14 KiB): D/IRAM
>     I (235) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
>     I (241) heap_init: At 40089270 len 00016D90 (91 KiB): IRAM
>     I (247) cpu_start: Pro cpu start user code
>     I (265) cpu_start: Starting scheduler on PRO CPU.
>     I (0) cpu_start: Starting scheduler on APP CPU.
>     I (267) example: Initializing SD card
>     I (267) example: Using SDMMC peripheral
>     Name: SB16G
>     Type: SDHC/SDXC
>     Speed: default speed
>     Size: 15193MB
>     CSD: ver=1, sector_size=512, capacity=31116288 read_bl_len=9
>     SCR: sd_spec=2, bus_width=5
>     I (347) example: Opening file
>     I (347) example: write count = 0 ...
>     I (25397) example: write count = 1000000 ...
>     I (50417) example: write count = 2000000 ...
>     I (75737) example: write count = 3000000 ...
>     I (101277) example: write count = 4000000 ...
>     I (127417) example: write count = 5000000 ...
>     I (154087) example: write count = 6000000 ...
>     I (180247) example: write count = 7000000 ...
>     I (206977) example: write count = 8000000 ...
>     I (232807) example: write count = 9000000 ...
>     I (259647) example: File written
>     I (259647) example: Renaming file
>     I (259657) example: Reading file
>     I (259657) example: read count = 0 ...
>     I (278507) example: read count = 1000000 ...
>     I (297367) example: read count = 2000000 ...
>     I (316427) example: read count = 3000000 ...
>     I (335347) example: read count = 4000000 ...
>     I (354327) example: read count = 5000000 ...
>     I (373157) example: read count = 6000000 ...
>     I (391637) example: read count = 7000000 ...
>     I (410097) example: read count = 8000000 ...
>     I (428517) example: read count = 9000000 ...
>     I (446807) example: Read from file: 'Hello'
>     I (446807) example: Card unmounted
>
>
> and using v3.1 with 4-line mode:
>
>     I (247) cpu_start: Pro cpu start user code
>     I (265) cpu_start: Starting scheduler on PRO CPU.
>     I (0) cpu_start: Starting scheduler on APP CPU.
>     I (267) example: Initializing SD card
>     I (267) example: Using SDMMC peripheral
>     Name: SB16G
>     Type: SDHC/SDXC
>     Speed: default speed
>     Size: 15193MB
>     CSD: ver=1, sector_size=512, capacity=31116288 read_bl_len=9
>     SCR: sd_spec=2, bus_width=5
>     I (347) example: Opening file
>     I (357) example: write count = 0 ...
>     I (24187) example: write count = 1000000 ...
>     I (47637) example: write count = 2000000 ...
>     I (71277) example: write count = 3000000 ...
>     I (94927) example: write count = 4000000 ...
>     I (119567) example: write count = 5000000 ...
>     I (143517) example: write count = 6000000 ...
>     I (168297) example: write count = 7000000 ...
>     I (192597) example: write count = 8000000 ...
>     I (216847) example: write count = 9000000 ...
>     I (240587) example: File written
>     I (240727) example: Renaming file
>     I (240727) example: Reading file
>     I (240737) example: read count = 0 ...
>     I (257697) example: read count = 1000000 ...
>     I (274507) example: read count = 2000000 ...
>     I (291327) example: read count = 3000000 ...
>     I (308117) example: read count = 4000000 ...
>     I (325157) example: read count = 5000000 ...
>     I (341647) example: read count = 6000000 ...
>     I (358397) example: read count = 7000000 ...
>     I (375097) example: read count = 8000000 ...
>     I (391787) example: read count = 9000000 ...
>     I (408247) example: Read from file: 'Hello'
>     I (408247) example: Card unmounted
>
>
> Smiling so much my face hurts... This has been such a PITA, but it looks like Espressif have finally solved it with their latest pre-release SDK.
>
> Very little performance difference between 1 line and 4 line modes (4 line is about 8% faster), so probably not worth using up those GPIO
> lines for that.
>
> I’m working with Espressif to see if this fix can be back-ported to v2.1. I doubt it, but no harm asking…
>
> This all, of course, brings into top priority the work Steve and I are doing trying to get OVMS v3 firmware working against ESP IDF v3.x.
> Here’s a hastily hacked together kludge based on bleeding edge ESP IDF v3.1:
>
>     OVMS > metrics list m.version
>     m.version                                3.0.0/factory/main build (idf v3.1-dev-168-ga1b59679) Jan  8 2018 10:09:53
>
>     OVMS > sd mount
>     Name: SB16G
>     Type: SDHC/SDXC
>     Speed: default speed
>     Size: 15193MB
>     CSD: ver=1, sector_size=512, capacity=31116288 read_bl_len=9
>     SCR: sd_spec=2, bus_width=5
>     Mounted SD CARD
>
>     OVMS > vfs ls /sd
>     .Spotlight-V100
>     .fseventsd
>     component.mk
>     sd_card_example_main.c
>     FOO.TXT
>
>     OVMS > vfs cp /sd/FOO.txt /sd/FOO2.txt
>     VFS copy complete
>
>     OVMS > vfs ls /sd
>     .Spotlight-V100
>     .fseventsd
>     component.mk
>     sd_card_example_main.c
>     FOO2.TXT
>     FOO.TXT
>
>
> That FOO.TXT file is about 60MB in size.
>
> Now finalising hardware with the china manufacturer. I think at this point, it is worth:
>
>  1. Use 1 line SD CARD (which frees up GPIOs SD_DATA1/SD_DATA2/SD_DATA3, but also avoids the conflict between GPIO12/SD_DATA2 and VDD_SDIO
>     bootstrap pin).
>  2. Add some capacitors for power line smoothing, as per Espressif’s example in their test board.
>  3. Double-check power on SIMCOM module, to ensure it is as expected (following issues reported with low-amperage USB ports).
>  4. Change to use Analog Lamb WROOM-32 module and their 16MB flash + 4MB ram.
>
>
> Change #4 should be the only controversial one. It has the advantages of much more RAM, and no need for external flash, but the disadvantage
> is that we would have to move GPIOs for simcom async (as those are using by Analog Lamb for their chip). It also depends on Analog Lamb’s lead
> time, and future plans for this module.
>
> Regards, Mark
>


-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20180108/9d14e078/attachment.htm>


More information about the OvmsDev mailing list