This section will outline some of the guidelines, and excerpts from the datasheets that are relevant to both specifically the Photon Ultra board and the DLPC1438 in general.
Suggested documents to familiarise yourself with
- The DLPC1438 datasheet
- The DLPC1438 programming guide (describes the I2C stuff)
- The raspberry pi pico c SDK
In the datasheet for the DLPC1438
there are multiple sections containing info about the startup sequence:
- section 7.3.3
- section 9.2 & 9.3
The main gist of it is that to power on you must both:
- Provide power to the photon ultra board
- Keep GPIO_08 (on DLPC1438) (a.k.a. PROJ_ON) high
The controller will then run through a reset/bootup cycle and eventually let you know it is done by pulling HOST_IRQ low.
After HOST_IRQ is low you can start the i2c bus and start talking to the DLPC1438.
🖼 Figure 9-1 of the datasheet nicely summarises this.
For whatever reason (probably a I2C address conflict) Anycubic/eViewTek has changed the default i2c adress of the DLPC1438 on the Ultra's board from 0x36
to 0x1B
.
I assume this will be the same for all the boards, but if not you can connect power and the FPC to the ultra's mainboard and only the i2c line to the pico board and then after power on of the Ultra mainboard run an i2c scan script to find out the address of the DLPC1438.