Home  |  Contents 

Microcontroller and PC projects
  Forum Index : Microcontroller and PC projects         Section
Subject Topic: Armmite - STM32H7: Developments Post ReplyPost New Topic
<< Prev Page of 12 Next >>
Author
Message << Prev Topic | Next Topic >>
matherp
Guru
Guru


Joined: 11 December 2012
Location: United Kingdom
Online Status: Offline
Posts: 2164
Posted: 13 July 2018 at 1:02am | IP Logged Quote matherp

Quote:
Just a thought, am I the only one getting this problem with the Armmite & TFT?


No there is an issue but I'm certain it is electrical rather than code:

My original results with your test program:

option lcdpanel ssd1963_5_16,rl,1 - perfect

option lcdpanel ssd1963_5_16,rl,0 - Corruption of white-on-black and black-on-white otherwise OK

option lcdpanel ssd1963_5_BUFF,rl,1 - perfect

option lcdpanel ssd1963_5_BUFF,rl,0 - Corruption of black-on-white otherwise OK

option lcdpanel ssd1963_5,rl,1 - random small sections of background missing (typically 2 chars per run)

option lcdpanel ssd1963_5,rl,0 - random small sections of background missing (typically 3 chars per run)

BUT

I then put a 47pF capacitor between WR and GND on the display and the results for all the 16-bit driver versions were then perfect but the 8 bit results were worse

Basically I think we need a daughter board to get a good connection to the display. The signals from the STM32 seem to "ring" more than those of the PIC


Back to Top View matherp's Profile Search for other posts by matherp
 
TrevorH
Regular Member
Regular Member


Joined: 06 April 2018
Location: United Kingdom
Online Status: Offline
Posts: 53
Posted: 13 July 2018 at 6:12am | IP Logged Quote TrevorH

Hi Peter,

Thanks for your reply, you have sort of put my mind to rest (thought I was going nuts).
I am close to completing my own daughter board (after drilling what seems to be an endless number of holes).
I must admit I don't like using patch wires for these displays but needs must, I think as clock speeds rise problems also rise.
Will try your remedy and play a little with values, hope the daughter board works first time will keep you posted.

ps. did you do the driver mods to the 7 inch drivers?, if not will go back to the 5 inch.
pps. any update on your daughter board thoughts?


Thanks again for your continued interest in my problem.

Trevor.
Back to Top View TrevorH's Profile Search for other posts by TrevorH
 
TrevorH
Regular Member
Regular Member


Joined: 06 April 2018
Location: United Kingdom
Online Status: Offline
Posts: 53
Posted: 14 July 2018 at 1:00am | IP Logged Quote TrevorH

Hi Peter,

The 47pf fix did not help on my setup or even 150pf.

I have at last got my TFT daughter board working after corrections which eliminates the long wires.

My tests are as follows:-

SSD1963_5_16,rl,0 - corruption of
white/black,white/blue,magenta/black,yellow/black and black/white

SSD1963_5_16,rl,1 - PERFECT

SSD1963_5_buff,rl,0 - corruption of black/white only others OK

SSD1963_5_buff,rl,1 - PERFECT

SSD1963_5,rl - mostly corrupt some OK

SSD1963_5,rl,1 - PERFECT

Are you introducing WR wait states or are you slowing down the processor in the ...rl,1 drivers?

Trevor.

Back to Top View TrevorH's Profile Search for other posts by TrevorH
 
matherp
Guru
Guru


Joined: 11 December 2012
Location: United Kingdom
Online Status: Offline
Posts: 2164
Posted: 14 July 2018 at 4:24am | IP Logged Quote matherp

Here is a first cut (as yet unrouted) for a Nucleo-144 daughter board. It supports:

Battery for RTC
SSD1963
ILI9341
ESP8266 module connected to COM3
OV7670 camera I/F
I2C pullups
Micro-SD card
Jack socket for DACs
Micro-USB socket for 5V input power (use Pi3 PSU or similar)

Comments and ideas appreciated





Quote:
Are you introducing WR wait states or are you slowing down the processor in the ...rl,1 drivers?


Much more complicated than that

You can access a GPIO port by writing to the complete port (ODR=output data register)

GPIOE.ODR = 16-bit number

or you can write to a pair of registers that either set one or more bits

GPIOE.BSRRH = 16-bit mask (any bit in the mask sets the IO bit)

or clear one or more bits

GPIOE.BSRRL = 16-bit mask (any bit in the mask clears the IO bit)



To set an individual bit using the first method you first have to read the register change the bit and then write the complete register back (read-modify-write). C does this for you with instructions like:

GPIOE.ODR ^= GPIO_PIN_4; GPIOE.ODR ^= GPIO_PIN_4; //Toggle pin GPIOE4 off then on

The second method is a single atomic instruction and is much faster

GPIOE.BSRRL = GPIO_PIN_4;GPIOE.BSRRH = GPIO_PIN_4; //Toggle pin GPIOE4 off then on

The fast version of the drivers use the BSRRL and BSRRH registers to toggle WR.
The slow versions use the ODR

I have a slight suspicion that mixing the two can cause problems in that the BSRRL, BSRRH, and ODR registers may be out of synch for short periods in particular circumstances but I'm unable to prove it.



Edited by matherp on 14 July 2018 at 4:52am
Back to Top View matherp's Profile Search for other posts by matherp
 
cdeagle
Senior Member
Senior Member


Joined: 22 June 2014
Location: United States
Online Status: Offline
Posts: 179
Posted: 14 July 2018 at 4:47am | IP Logged Quote cdeagle

Nice and clean Peter. Pins are easy to read, especially for a greybeard like me.
Back to Top View cdeagle's Profile Search for other posts by cdeagle
 
TrevorH
Regular Member
Regular Member


Joined: 06 April 2018
Location: United Kingdom
Online Status: Offline
Posts: 53
Posted: 14 July 2018 at 5:56am | IP Logged Quote TrevorH

Hi again,

Silly me thinking it was going to be simple. I am more or less OK with PIC IO but Arm is a whole new ballgame.
Slowing it down certainly has a marked effect, but I don't understand why the colour makes any difference (It couldn't be the 565 conversion screwing up or something silly like that?). I am guessing.

The PCB looking good so far (I never get on with these autorouting programs) I use Corel's Paint shop Pro for mine.

I have found another problem for me anyway. Using the faster drivers, touch gives hardware failure,
but using slower drivers calibrate locks up every time.

Trevor.
Back to Top View TrevorH's Profile Search for other posts by TrevorH
 
astro1
Newbie
Newbie


Joined: 26 June 2016
Location: Australia
Online Status: Offline
Posts: 30
Posted: 14 July 2018 at 9:00am | IP Logged Quote astro1

Daughter board ideas.
Grouped connections for SPI, I2C & COM ports, power as well. This way it's easier to add other types of serial boards and SPI devices.
For power maybe 2 rows of 10 pads, ground and 3v3.
Or/and add extra 35x2 connector pads, top and bottom, labeled for ad-hock wire connections. Or all the other pins that aren't SPI, I2C or Com?
A free pad area square for miscellaneous parts. Group by 2 pads with a route in between. Example:
O-OO-O
O-OO-O
O-OO-O
O-OO-O

Back to Top View astro1's Profile Search for other posts by astro1
 
JohnS
Guru
Guru


Joined: 18 November 2011
Location: United Kingdom
Online Status: Offline
Posts: 1660
Posted: 14 July 2018 at 11:15pm | IP Logged Quote JohnS

matherp wrote:
The signals from the STM32 seem to "ring" more than those of the PIC


Might it be partly to do with the rise time / drive strength?

On quite a few chips you can change one or more of those.

John
Back to Top View JohnS's Profile Search for other posts by JohnS
 
TrevorH
Regular Member
Regular Member


Joined: 06 April 2018
Location: United Kingdom
Online Status: Offline
Posts: 53
Posted: 15 July 2018 at 11:51pm | IP Logged Quote TrevorH

Hi peter,

This corruption problem first arose for me when coupling these TFTs to PJRC's TEENSY boards from the Arduino camp.
Paul Stoffregen built in the Teensy patch to the IDE, settings to change the speed of the processor. If you ran the M4 processor at full speed (180Mhz) problems arose with TFT, but if you used speeds below 120Mhz everything was OK.

I was wondering IF this is the same problem, cranking the speed down when talking to the TFT could be the answer?

I was also wondering if anyone else are having similar problems with their SSD1963 TFTs.


Trevor.
Back to Top View TrevorH's Profile Search for other posts by TrevorH
 
matherp
Guru
Guru


Joined: 11 December 2012
Location: United Kingdom
Online Status: Offline
Posts: 2164
Posted: 16 July 2018 at 2:03am | IP Logged Quote matherp

I've tried to incorporate the various suggestions for a daughter board. Here is the routed version and a view of the bottom showing the ground plane fill









Back to Top View matherp's Profile Search for other posts by matherp
 
PCG68
Newbie
Newbie


Joined: 14 July 2018
Location: Italy
Online Status: Offline
Posts: 1
Posted: 16 July 2018 at 10:08am | IP Logged Quote PCG68

Hi all, I'm new (in this forum, my first pc was a spectrum, so I'm not really new).
Sorry for the language, I'm Italian and my English is bad.
First of all thank you all for the interesting forum,
but a special thanks to Peter and Geoff, I already have a maximite tft and micromite extreme, simply fantastic.
Regarding the pcb I wanted to ask if you expected the fixing on the back of the tft (in this case dimensions and fixing holes).
If then this display was a 7'' maybe there may be space for other connectors (nunchuck, mikroe etc ..) always that we can and that reflects the concept of this card.
Back to Top View PCG68's Profile Search for other posts by PCG68
 
robert.rozee
Guru
Guru


Joined: 31 December 2012
Location: New Zealand
Online Status: Offline
Posts: 1273
Posted: 16 July 2018 at 9:02pm | IP Logged Quote robert.rozee

JohnS wrote:
matherp wrote:
The signals from the STM32 seem to "ring" more than those of the PIC


Might it be partly to do with the rise time / drive strength?

On quite a few chips you can change one or more of those.

John


it is because we are moving up into the realm of a bit of wire no longer acting like a bit of wire, but instead like an RF transmission line. see:
https://en.wikipedia.org/wiki/Transmission_line

there are NO simple/cheap solutions, beyond slowing things down. the complex/expensive solution is software that analyses each PCB trace and calculates either a target length (remember those squiggly little tracks on PC motherboards?), or a set of values for small series resistors (resistor values based on trace length, capacitance to adjacent copper, etc). it is all very much a black-art.


cheers,
rob :-)


Edited by robert.rozee on 16 July 2018 at 9:05pm
Back to Top View robert.rozee's Profile Search for other posts by robert.rozee
 


<< Prev Page of 12 Next >>
In the news...
 
Post ReplyPost New Topic
Printable version Printable version
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot delete your posts in this forum
You cannot edit your posts in this forum
You cannot create polls in this forum
You cannot vote in polls in this forum

Powered by Web Wiz Forums version 7.8
Copyright ©2001-2004 Web Wiz Guide

This page was generated in 0.1563 seconds.
Privacy Policy     Process times : 0, 0, 0, 0.16