KenHahn
Well-known member
I am posting this to capture the info in case others stumble onto the same issue and are doing a search or have further input. Tagging @defragster as he was instrumental in figuring out what was going on.
The system in question uses a Teeny 4.1 with a 7” RA8875 LCD sitting on SPI1 and mounted onto a PCB baseboard.
Various software that had been running on the system over a fairly long time showed no issues with the setup.
T41 software (HAM radio software with heavy display usage) was installed and would quickly fail with the display freezing. This usually occurred while painting the initial screen, but sometimes a little later. The same software was previously running OK on a number of different, but similar setups that used the same LCD also on SPI1.
There seemed to be a thermal component as a warm system would tend to fail quicker than a cold one, but the setup was not hot even though the Teensy was positioned under the LCD. CPU temp was generally under or around 50C.
A total of 9 Teensy were installed and run on 3 separate baseboards. 5 of the Teensy failed with this same hang condition and 4 would run OK. A Teensy that passed or failed would stay consistent when swapped between baseboards. Using extender cables on the bus to see if it pointed to a marginal bus integrity issue of some type did not have any effect. Nor did changing the value of the bus dampening resistors from 56 ohm to 100 ohm. I have not seen this type of variability between Teensy before, even if the problem was with the baseboard itself.
The focus was on the SPI1 bus, and it appeared that some SPI transactions were not being completed, thus hanging the bus and freezing the display, but not hanging the Teensy itself.
The issue was eventually tracked down to the fact that the CPU compiler option had been set to 528MHz. It was also set to smallest code size, though that does not appear to be a factor.
Defragster theorized that it might be related to the lower internal operating voltage of 1.15V used at 528MHz vs. 1.25V used at the standard 600MHz. He modified the operating voltage to be 1.25V while keeping the CPU frequency at 528MHz and that proved to fix the issue. Compiling the software at 600MHz (which also raises the voltage to 1.25V) also fixed the issue. Further testing indicated that a voltage of about 1.20V at 528MHz seemed to be where most if not all systems would work correctly. At least one previous failure case at 1.15V would work at 1.18V.
The exact root of the issue was not uncovered. Clearly there was something marginal at this lower internal operating voltage that caused some Teensy 4.1 to malfunction in regards to the SPI1 bus but not others in the same exact baseboard. It seemed to be a perfect storm with this system as each of the pieces were observed to run this same software fine in other systems including the same Teensy 4.1s.
Defragster mentioned that in hindsight, the project by @Dogbone06 which used 16-bit 32MB external SDRAM while running at 528MHz, may have also run into a similar issue which required fine tuning of the operating voltage to achieve optimum performance.
The system in question uses a Teeny 4.1 with a 7” RA8875 LCD sitting on SPI1 and mounted onto a PCB baseboard.
Various software that had been running on the system over a fairly long time showed no issues with the setup.
T41 software (HAM radio software with heavy display usage) was installed and would quickly fail with the display freezing. This usually occurred while painting the initial screen, but sometimes a little later. The same software was previously running OK on a number of different, but similar setups that used the same LCD also on SPI1.
There seemed to be a thermal component as a warm system would tend to fail quicker than a cold one, but the setup was not hot even though the Teensy was positioned under the LCD. CPU temp was generally under or around 50C.
A total of 9 Teensy were installed and run on 3 separate baseboards. 5 of the Teensy failed with this same hang condition and 4 would run OK. A Teensy that passed or failed would stay consistent when swapped between baseboards. Using extender cables on the bus to see if it pointed to a marginal bus integrity issue of some type did not have any effect. Nor did changing the value of the bus dampening resistors from 56 ohm to 100 ohm. I have not seen this type of variability between Teensy before, even if the problem was with the baseboard itself.
The focus was on the SPI1 bus, and it appeared that some SPI transactions were not being completed, thus hanging the bus and freezing the display, but not hanging the Teensy itself.
The issue was eventually tracked down to the fact that the CPU compiler option had been set to 528MHz. It was also set to smallest code size, though that does not appear to be a factor.
Defragster theorized that it might be related to the lower internal operating voltage of 1.15V used at 528MHz vs. 1.25V used at the standard 600MHz. He modified the operating voltage to be 1.25V while keeping the CPU frequency at 528MHz and that proved to fix the issue. Compiling the software at 600MHz (which also raises the voltage to 1.25V) also fixed the issue. Further testing indicated that a voltage of about 1.20V at 528MHz seemed to be where most if not all systems would work correctly. At least one previous failure case at 1.15V would work at 1.18V.
The exact root of the issue was not uncovered. Clearly there was something marginal at this lower internal operating voltage that caused some Teensy 4.1 to malfunction in regards to the SPI1 bus but not others in the same exact baseboard. It seemed to be a perfect storm with this system as each of the pieces were observed to run this same software fine in other systems including the same Teensy 4.1s.
Defragster mentioned that in hindsight, the project by @Dogbone06 which used 16-bit 32MB external SDRAM while running at 528MHz, may have also run into a similar issue which required fine tuning of the operating voltage to achieve optimum performance.