View previous topic :: View next topic |
Author |
Message |
lander72
Joined: 29 Jul 2007 Posts: 25 Location: Fraser Valley BC
|
Posted: Sun Feb 02, 2014 2:16 am Post subject: Using SPI on 3.5 display with FTDI FT800 controller. |
|
|
Hello Forum,
I have an ATmega8 breadboard to a 3.5 inch display from Digikey made by FTDICHIP.com
The wake-up routine looks to be OK since the backlighting on the display turns on after the code is run.
The area I need help in is that I am unable to get the display to put anything on the screen.
I have used other devices with SPI but only 1 byte commands so even just a second opinion on format would help.
In my remarks I have notes from the Data Sheet and Programmers Guide.
I think this Display might be of interest to others using BASCOM. It looks to have interesting widgets that don't need a powerful chip.
Regards Larry
(BASCOM-AVR version : 2.0.7.6 , Latest : 2.0.7.7 ) |
|
Back to top |
|
|
PeterM
Joined: 09 Jun 2008 Posts: 118
|
Posted: Sun Feb 02, 2014 2:34 pm Post subject: |
|
|
Larry
I am in the process of doing the same with Bascom but a little later on.
I have spent quite a bit of time porting over FT800_SampleApp_1.0.c to PowerBasic using FTDI's MPSSE
interface cable running SPI on the PC and comunicating to a FTDI 5" VM800 LCD. It's a long way around doing it like this
but I wanted to learn to do SPI on the PC and I thought is was easier to learn and debug code on the PC before going to a Micro.
(still learning how to drive it!)
There are a few very nice demos going around displaying the amazing things you can do with the FT800, search on the net for GameDuino2 to get a feel of the features (also FTDI have some demos).
I will try and have a play with your code and see if I can do anything. _________________ Peter |
|
Back to top |
|
|
lander72
Joined: 29 Jul 2007 Posts: 25 Location: Fraser Valley BC
|
Posted: Mon Feb 03, 2014 1:39 am Post subject: |
|
|
Thanks Peter for the reply and suggestions.
I have sent an E-mail to FTDICHIP asking for a list of Hex commands to use with spiout.
Regards Larry |
|
Back to top |
|
|
PeterM
Joined: 09 Jun 2008 Posts: 118
|
Posted: Mon Feb 03, 2014 6:20 am Post subject: removed attachment |
|
|
Larry
They are all in the FTDI's Software Examples.
Here is a file which has most of the stuff you need but its in PowerBasic, just
change some of the '%' to 'Const'.
It's a real pain to try and convert some of this C/C++ over to Bascom (though I dislike C/C++).
I am just havng a look at your example code now.
Note: Deleted attachment, if you require the FT800 inc file get it from the post further down
which is for Bascom. _________________ Peter
Last edited by PeterM on Sun Feb 09, 2014 12:00 am; edited 1 time in total |
|
Back to top |
|
|
nicofer
Joined: 01 May 2013 Posts: 90 Location: GRJ
|
|
Back to top |
|
|
PeterM
Joined: 09 Jun 2008 Posts: 118
|
Posted: Sat Feb 08, 2014 1:35 pm Post subject: |
|
|
Larry
Please try the attached file, change your port pins and make Const Wqvga = 0 (FT800_Eve.inc)
Spent days just trying to get it to work, converted a few sample programs and even compared
SPI data with a Logic Analyser having all the data output identical. But guess what I did!, I told the logic analyser software
to ignore the CS pin because at the time it would not display any byte numbers, at the end all I had to do is
manually controll the CS line and make NOSS=1 so then it worked! ......grrrrrhhhh (dumb idiot I am).
Anyway, all the code does is print a coloured circle in the centre of the display and changes colour
from White to Red.
It's a start.... code needs more improvement, still more routines are needed to make it fully usable. _________________ Peter |
|
Back to top |
|
|
lander72
Joined: 29 Jul 2007 Posts: 25 Location: Fraser Valley BC
|
Posted: Mon Feb 10, 2014 2:33 am Post subject: |
|
|
Hi Peter,
Thanks for all the work. I am out of town until Feb/14/14 and am looking forward to trying your code.
I struggle the most with getting a new piece of hardware to work so getting a red dot will be great.
Regards Larry |
|
Back to top |
|
|
PeterM
Joined: 09 Jun 2008 Posts: 118
|
Posted: Tue Feb 18, 2014 2:54 am Post subject: |
|
|
Larry
If you want to wait a little longer (1week) I will post a better alternative library of routines/demo's.
I am wanting to do this for myself anyway.... but had heaps of issues where the problem was the way
I handled the Chip Select line. The CS tells the FT800 when a new command and parameter is sent and
not as a signal for each SPIOUT/IN use. _________________ Peter |
|
Back to top |
|
|
PeterM
Joined: 09 Jun 2008 Posts: 118
|
Posted: Thu Feb 20, 2014 1:17 pm Post subject: |
|
|
Larry
Here is a replacement version to the last one I posted.
Still needs many of the Copro Commands to be added but
it's good enough to start playing with.
(I also added Text and Numbers Subs) _________________ Peter |
|
Back to top |
|
|
lander72
Joined: 29 Jul 2007 Posts: 25 Location: Fraser Valley BC
|
Posted: Fri Feb 21, 2014 9:13 am Post subject: |
|
|
Hi Peter,
Just had a quick look at your updated code and see you added a number of prints to help understand the steps in
communication with the FT800. I look forward to working with it over the weekend. Thank-you very much for sharing.
Regards Larryjavascript:emoticon('') |
|
Back to top |
|
|
PeterM
Joined: 09 Jun 2008 Posts: 118
|
|
Back to top |
|
|
lander72
Joined: 29 Jul 2007 Posts: 25 Location: Fraser Valley BC
|
Posted: Tue Mar 04, 2014 1:17 pm Post subject: |
|
|
Hi Peter,
I setup the same ATmega328 and external Crystal in your last code without the bug and now have a working 3.2 inch display.
I can't thank you enough for sharing your code! I was going for a bare bones approach and now have the framework for a Rolls Royce.
I have shied away from using Include files thinking they were too complex until I saw how you used it so effectively.
Best Regards Larry
javascript:emoticon('javascript:emoticon('')') |
|
Back to top |
|
|
PeterM
Joined: 09 Jun 2008 Posts: 118
|
Posted: Tue Mar 04, 2014 2:07 pm Post subject: |
|
|
Larry
BTW which FT800 board are you using ?
Regarding Includes sometimes you can leave them in the main file
while developing and move them to a seperate file once debugging
and testing is finished, no point bloating the main file, keep it tidy and functional. _________________ Peter |
|
Back to top |
|
|
lander72
Joined: 29 Jul 2007 Posts: 25 Location: Fraser Valley BC
|
Posted: Wed Mar 05, 2014 3:14 am Post subject: |
|
|
HI Peter,
I have the VM800B35A-BK that I ordered from Digi-key for about $75.00 Canadian.
Now I see why your asking, I said that I was using a 3.2 inch display. Sorry I got it
wrong, the display is 3.5 but 320 X 240 pixels.
Regards Larry |
|
Back to top |
|
|
Per Svensson
Joined: 03 Oct 2004 Posts: 235 Location: Gothenburg, Sweden
|
Posted: Wed Mar 12, 2014 12:02 pm Post subject: |
|
|
Peter,
I saw this thread and read the conversation. It is a very competent dispaly approach made by FTDI.
Looks very much like HP and Tektronix back in the old days when mini-computers live VAX had no graphic, and
had to write graphic commands over RS232 or HPIB to a terminal or plotter. Our relatively weak AVR family is perfectly suited for offloading
by a graphic engine.
When I opened your code and saw all the frontwork you have done I decided to purchase two4LCD- FT843 and give it a try.
You have really made a good job here so I take my hat off, and wish to give some back to the community by the attached code.
What I have done is to move the parts of your code to the include file and also move those variables and constants that I found possible to move.
Hopefully this could be the embryo to a FT800 library that we can build on?
Someone has to be the moderator and code owner, and my hope is that you would like to be responsible for future releases?
Besides from moving some code to FT800-Eve.inc I also optimized your low-level calls to the SPI-routines. It was very much a question of swapping bytes
prior to calling SPIIN and SPIOUT with multiple bytes. I think I managed to double the speed or a bit less... There might be some more to gain but not much.
Some code in the beginning of the BAS-file is of course adapted to my hardware so everybody has to change it to suit their platform.
I also createc two new subs. Newpage() and Endpage(). Essentially a bundle of the code you already had created.
Another thing is that I have used a slightly modified compiler where Mark has introduced LOCAL CONSTANTS. (I am the ginneypig). If you run into trouble
concerning constant references you will have to fix that to compile in the standard way. (I don't use the old style anymore).
For those of you having SLA there is a version "2077 LOCAL CONST" if you dare.
Local constants will hopefully be standard later on.. ? Works very much the same as local variables inside subs.
So don't blame Mark if the code does not compile. Blame me. Then fix it
Thanks for your good work!
/Per |
|
Back to top |
|
|
|