The Densitron DMT040QBHTNT0-1A data sheet has much useful info. DE Mode: VS and HS are inverted (active low) DE and DOTCLK (active-high)
HV Mode: VS and HS are active-low PCLK active-high DE always 1 SPI: SPI has 4 clock modes SCK/SCL is active-high (normally low on fall of active-low CS) clocks data in on first rising edge clocks data out on first falling edge after first rising edge On Monday, 30 March 2020 22:34:30 UTC+1, Corey Vixie wrote: > > Hi folks. For some months now, I've been trying to get a small LCD based > on the Sitronix ST7701S working with the BeagleBone Black. Because the > Linux kernel only includes a MIPI DSI driver for the ST7701 (which is > similar but not identical), I wrote my own SPI driver in Rust. It's > open-source, available here: > https://github.com/ironblock/ST7701S-SPI-Driver > > My problem is that no matter what kind of image I try and display, the > output is garbled. I see no distinct pixel color values across an entire > column (or maybe they're lines? I'm not sure which way is up). > > I've connected it using the 16-bit pinmux, since that seemed "safest". My > SPI commands work, and doing things like "turn all pixels on", "turn all > pixels off", "invert colors", etc. all work as expected, but the image is > never clear. > > I put 33R resistors on the data lines in case there was some kind of > reflection or interference that was causing the problem. > > I'm currently powering the LCD driver from P9.3 (VDD 3.3v). The Sitronix > data sheet indicates that this is allowed, but the LCD vendor's data sheet > says 2.8v±0.3v. So, maybe I'm over-volting it? > > The vendor tells me that the display should be set to 480x480@60Hz. Using > other resolutions like standard VGA shifts the garbled image as though the > porches were being respected. > > > A public link to the data sheet is here. This is the same as the one I've > been provided by my vendor: > https://focuslcds.com/content/ST7701S_SPEC_%20V1.2.pdf > > The GitHub contains the dts and uEnv.txt files (or I can copy them here, > if linking out is disallowed in this group). > > I've copied most of my Github issue below: > https://github.com/ironblock/ST7701S-SPI-Driver/issues/1 > > I appreciate any insight anyone may have. I'm honestly not sure what else > to try. As a disclaimer, I'm new to both Rust and hardware development, so > there's a lot I don't know. > > I'm happy to answer any questions or provide any additional information. > > Thanks! > --Corey > > > ------- > > Using fim to render a pure white png produces this: > [image: IMG_6400] > <https://user-images.githubusercontent.com/5800173/77863664-c4643e80-71d8-11ea-85a0-891d10fce45c.jpeg> > > The OS is Debian Stretch 9.5 IoT from the Beaglebone website. > > The display is connected as per the normal > > The chosen resolution is 480x480@60Hz. I've also tried the CVT RB and CVT > RBv2 variants of standard VGA (640x480@60Hz, which should be supported by > the ST7701S), and the results are the same, just shifted on the display. > All tested configurations are visible in the device tree overlay. > > Using fim to display other test images produces similar results. My pure > black png is dark, a color test pattern produces some green effects, etc. > > Testing the signal lines with a logic analyzer shows the expected values > when sampling the MSB for each color. An excellent example is using a test > image like this: > [image: image004] > <https://user-images.githubusercontent.com/5800173/77863973-03938f00-71db-11ea-90b7-af0f03dec3af.png> > > When zoomed to the level of a single frame, everything looks correct, like > the datasheet. DE, VSYNC, and HSYNC polarity look good and correct. The > VSYNC refresh rate tested at 59.97hz, which should be appropriate for the > display. > [image: image005] > <https://user-images.githubusercontent.com/5800173/77864041-481f2a80-71db-11ea-87a2-acf6604e2275.png> > > When I zoom in to look at the timings for each line, everything also looks > correct, and you can see the white and black pattern for each line in the > MSB values. My logic analyzer can only sample as fast as 24MS/s, which does > not accurately capture the pixel clock (which is was set to 16.15MHz for > this test). > [image: image006] > <https://user-images.githubusercontent.com/5800173/77864052-58370a00-71db-11ea-8310-34c94181db9a.png> > > Relevant files: > > - /boot/uEnv.txt > > <https://github.com/ironblock/ST7701S-SPI-Driver/blob/master/platforms/beaglebone/uEnv.txt> > - Device tree overlay > > <https://github.com/ironblock/ST7701S-SPI-Driver/blob/master/platforms/beaglebone/VE-2IN-BBB.dts> > > > Here is the exact hardware setup I'm using: > > [image: IMG_6401] > <https://user-images.githubusercontent.com/5800173/77944579-0d1d0580-7274-11ea-9e9e-6c2901d75876.jpeg> > > [image: Screen Shot 2020-03-30 at 10 46 23 AM] > <https://user-images.githubusercontent.com/5800173/77944609-1908c780-7274-11ea-8aac-c3eb7855c986.png> > FunctionNamePinResistorPinName > LED ANODE +12.8v DC PSU + -- 1 LED A > LED CATHODE GND DC PSU - -- 2 LED K > LED CATHODE GND DC PSU - -- 3 LED K > Ground DGND P9.1 -- 4 GND > Power supply VDD 3.3V P9.3 -- 5 VCI > Reset Signal GPIO_60 P9.12 -- 6 RESET > Not Connected -- -- -- 7 NC > Not Connected -- -- -- 8 NC > SPI Data signal SPIO_D1 P9.18 -- 9 SDA > SPI Clock signal SPIO_SLCK P9.22 -- 10 SCK > SPI Chip select signal SPIO_CSO P9.17 -- 11 CS > RGB dot clock signal LCD_PCLK P8.28 33Ω 12 PCLK > RGB data enable signal LCD_AC_BIAS P8.30 33Ω 13 DE > RGB frame synchronizing signal LCD_VSYNC P8.27 33Ω 14 VSYNC > RGB line synchronizing signal LCD_HSYNC P8.29 33Ω 15 HSYNC > 📘B[0] DGND P8.1 33Ω 16 DB0 > 📘B[1] LCD_DATA0 P8.45 33Ω 17 DB1 > 📘B[2] LCD_DATA1 P8.46 33Ω 18 DB2 > 📘B[3] LCD_DATA2 P8.43 33Ω 19 DB3 > 📘B[4] LCD_DATA3 P8.44 33Ω 20 DB4 > 📘B[5] LCD_DATA4 P8.41 33Ω 21 DB5 > 📗G[0] LCD_DATA5 P8.42 33Ω 22 DB > 📗G[1] LCD_DATA6 P8.39 33Ω 23 DB > 📗G[2] LCD_DATA7 P8.40 33Ω 24 DB > 📗G[3] LCD_DATA8 P8.37 33Ω 25 DB > 📗G[4] LCD_DATA9 P8.38 33Ω 26 DB > 📗G[5] LCD_DATA10 P8.36 33Ω 27 DB > 📕R[0] DGND P8.2 33Ω 28 DB > 📕R[1] LCD_DATA11 P8.34 33Ω 29 DB > 📕R[2] LCD_DATA12 P8.35 33Ω 30 DB > 📕R[3] LCD_DATA13 P8.33 33Ω 31 DB > 📕R[4] LCD_DATA14 P8.31 33Ω 32 DB > 📕R[5] LCD_DATA15 P8.33 33Ω 33 DB > -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/beagleboard/912b9f60-84b6-466c-8760-ef16d321580b%40googlegroups.com.