Hi,
我使用自定义与DA 14585芯片。fl的ash being used is W25X20CL. The flash is being controlled by a P-Channel logic enhancement mode power field effect transistors , HM2301BSR. The pin P0_6 of DA 14585 is connected to the gate of transistor, the source to VDD and Drain to the SUPPLY pin of flash.
Now, by default, on power up, the GATE voltage is 0, Drain voltage is 3.4V, source voltage is 3.4V and the supply voltage of VCC is also 3.4V. On clicking CONNECT in smart snippets toolbox, the SPI pins are successfully configured. The requirement is to boot from flash, and the SPI pins configured are as follows:
CLK - P0_0, CS - P0_1, DI -P0_2, DO - P0_3. For the purpose of getting booted from flash, I have correspondingly configured the secondary bootloader, and have programmed into the OTP.
Now, the issue I am facing is, after the CONNECTION is successful in smart snippets, the supply voltage of flash, as well as the drain voltage have dropped down to 2.72 V.
Now, after clicking the Read 32kb tab, the data is successfully read, but the voltages further drop to around 720 mV. Please suggest the reasons for the same.
Does this have anything to do with the jtag_programmer.bin which is programmed at the beginning while connection is being performed initially in smart snippets ?
Thanks in advance
Wisilica
Hi,
I have also tried the same using the PRO development board, by using the same MOSFET. The GATE is connected to PIN P1_1, SOURCE TO VCC and Drain to pin SPI_SUP in J5. Before connecting to smart snippets, just after power up, the flash is fully powered to 3.4V, with gate at 0V, drain and source at 3.4V. After connection is successful, the voltage at GATE increases to 3.2V, lowering the voltage at drain and supply vcc to 2.6V. After reading 32kb, the voltage further drops to 0 V at both flash supply as well as drain.
Please suggest the reasons for the same.
Thanks
Hi wisilica,
Well, if you check the flash_programmer you will see that, when the fw is downloaded all the pins are in the state of all the GPIO's are set in INPUT_PULLUP in the periph_init() function, after that all the pins are in high state, then the device configures the state of the pins that are related with the used peripherals, eventually this is what triggers the MOSFET that you have applied and reduces the voltage. If you would like to avoid that you should customize the flash_programmer and handle the pin that operates the MOSFET appropriately. Then after modifying the flash programmer you should copy and paste the binary in the C:\DiaSemi\SmartSnippetsStudio\Toolbox\common_resources and rename it to jtag_programmer_585.bin.
Thanks MT_dialog
Hi,
Thanks for your reply. The issue seems to be solved. May I know the significance of pulling up the GPIOs ? Currently in the flash programmer code, I have commented out the function call which pulls up all the GPIOs. Hope it does not have any impercussioons.
Thanks
Wisilica
Hi wisilica,
No, it wont have any side-effects unless you connect something else on the pins that is actually active low, the reason this instruction was added was becuase during the flash programming the boards might had additional sesnors memories connected to the SPI BUS in a seperate pins that would be activated due to a low signal, so it would corrupt the burning of the flash, thus all the pins are set to input high.
Thanks MT_dialog
Hi,
Thanks for your prompt reply.
Wisilica