Hello,
i want to get familiar with the Portenta H7, so i ordered one and now i´m playing a little bit around, before starting a "CAN-BUS" project in future.
I got connection to the board, I got 2 LED´s on the different cores running, everything fine so far.
My idea was now to connect a HDMI display via USB-C to the board, so i ordered a "USB-C to HDMI" cable.
Then, i loaded the "Envie_video_coreboot.ino" example from the libraries, got it compiled and uploaded.
Next, I connected my display via the cable to the board,... and nothing happened.
I added some lines in the example to see a little bit:
#include "Portenta_Video.h"
#include "SDRAM.h"
#include "image_320x240_argb8888.h"
#include "mbed.h"
struct edid recognized_edid;
mbed::DigitalOut video_on(PK_2);
mbed::DigitalOut video_rst(PJ_3);
void setup() {
// added for debugging
pinMode(LEDR, OUTPUT);
pinMode(LEDG, OUTPUT);
pinMode(LEDB, OUTPUT);
digitalWrite(LEDR, HIGH);
digitalWrite(LEDG, HIGH);
digitalWrite(LEDB, HIGH);
// put your setup code here, to run once:
delay(1000);
video_on = 1;
delay(10);
video_rst = 1;
delay(10);
int ret = -1;
video_on = 0;
delay(10);
video_rst = 0;
delay(100);
while (ret < 0) {
// added for debugging
digitalWrite(LEDB, LOW);
video_on = 0;
delay(10);
video_rst = 0;
delay(100);
video_on = 1;
delay(100);
video_rst = 1;
// added for debugging
digitalWrite(LEDB, HIGH);
ret = anx7625_init(0);
}
// added for debugging
digitalWrite(LEDB, HIGH);
digitalWrite(LEDG, LOW);
anx7625_dp_get_edid(0, &recognized_edid);
anx7625_dp_start(0, &recognized_edid, EDID_MODE_800x600_59Hz);
SDRAM.begin(getFramebufferEnd());
// added for debugging
digitalWrite(LEDG, HIGH);
while (1) {
stm32_LCD_DrawImage((void *)texture_raw, (void *)getNextFrameBuffer(), 300,
300, DMA2D_INPUT_RGB565);
stm32_LCD_DrawImage((void *)texture_raw, (void *)getNextFrameBuffer(), 300,
300, DMA2D_INPUT_RGB565);
delay(500);
// added for debugging
digitalWrite(LEDR, LOW);
delay(500);
// added for debugging
digitalWrite(LEDR, HIGH);
}
}
int i = 0;
void loop() {
delay(1000);
i = random(0, 0xFFFFFF);
printf("now: %d\n", millis());
delay(1000);
}
What I could verify:
Board is powered ;), CPU is running in general.
What I see is a periodic flashing blue LED now (about 200ms ON, about 3-4seconds OFF).
I tried:
- Connecting the display via "USB-C to HDMI Cable" to the board
- Connecting the board via an USB-C Adapter i normally use with my Laptop and dual HDMI monitors
- Connecting my monitor via the cable to the board
Only the flashing blue LED on the board, but no signal on the display/monitor,
which means the software gets no positive response from the "anx7625_init" function
My questions:
Should it work to drive a HDMI monitor with (just) a "USB-C to HDMI connector" or is the more intelligence required between?
How far should the software run, even with no monitor connected? My suggestion was, the software runs to, and in the endless loop indipendend from any connected device on the USB-C port, but i have absolutely no idea how grafic-adapters work.
I would be thankful fo all help.
regards,
Martin
[edit] removed mistakely copied line from code