NGW100 PSP LCD problem

Last post
15 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi All

I'm trying to implement the Sharp PSP display on the NGW100.

I've edited the at32ap700x.c file in the
project_build_avr32_nofpu/atngw100/linux-2.6.23/arch/avr32/mach-at32ap directory, and attached it for reference.

I've edited the setup.c file in the
project_build_avr32_nofpu/atngw100/linux-2.6.23/arch/avr32/boards/atngw100
directory and attached it for reference.

Using make linux26-menuconfig I have enabled the following options:

Quote:

Device Drivers --->
Graphics support --->

[*] Backlight & LCD device support --->
--- Backlight & LCD device support
<*> Lowlevel LCD controls
< > Samsung LTV350QV LCD Panel (NEW)
< > Lowlevel Backlight controls

<*> Support for frame buffer devices
[ ] Enable firmware EDID
[ ] Enable Video Mode Handling Helpers
[ ] Enable Tile Blitting Support
--- Frame buffer hardware drivers
< > Epson S1D13XXX framebuffer support
<*> AT91/AT32 LCD Controller support
< > Virtual Frame Buffer support (ONLY FOR TESTING!)
[ ] Bootup logo --->

For compilation I rm any *.o files in the mach-at32ap and atngw100 directories. Then I run make rootclean, and then finally make.

From my trawling around on the forum I'm guessing that the problem is related to the kernal setup, or to start-up scripts or something along that line.

I can see nothing happening on any of the pins on the LCD expansion connector, and there is no reference to the FB initialising during boot.

Here's a dump from minicom. Any help would be appreciated...

Thanks
Alph

Quote:

U-Boot 1.3.0.atmel.2 (Apr 2 2008 - 16:05:42)

U-Boot code: 00000000 -> 00010380 data: 00016248 -> 0004c8b8
SDRAM: 32 MB at address 0x10000000
Testing SDRAM...OK
malloc: Using memory from 0x11f73000 to 0x11fb3000
DMA: Using memory from 0x11f6f000 to 0x11f73000
Flash: 8 MB at address 0x00000000
DRAM Configuration:
Bank #0: 10000000 32 MB
In: serial
Out: serial
Err: serial
Net: macb0, macb1
Press SPACE to abort autoboot in 1 seconds
Manufacturer ID: 03
OEM/Application ID: 5344
Product name: SD128
Product Revision: 5.8
Product Serial Number: 8221154
Manufacturing Date: 06/03
SD Card detected (RCA 58916)
CSD data: 00260032 1f5983c0 fefa4fff 924040ab
CSD structure version: 1.0
MMC System Spec version: 0
Card command classes: 1f5
Read block length: 512
Supports partial reads
Write block length: 512
Does not support partial writes
Supports group WP: 32
Card capacity: 125960192 bytes
File format: 0/0
Write protection:
mmc: Using 131072 cycles data timeout (DTOR=0x62)

.......

1182419 bytes read
## Booting image at 10200000 ...
Image Name: Linux-2.6.23
Image Type: AVR32 Linux Kernel Image (gzip compressed)
Data Size: 1182355 Bytes = 1.1 MB
Load Address: 10000000
Entry Point: 90000000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK

Starting kernel at 90000000 (params at 11f73008)...

Linux version 2.6.23 (gordon@GordonLinux) (gcc version 4.2.1-atmel.1.0.3) #5 Wed Apr 9 16:58:22 SAST 2008
CPU: AP7000 [01] revision 0 (AVR32B revision 1)
CPU: MMU configuration: Shared TLB
CPU: features: dsp simd ocd perfctr java
CPU: Running at 140.000 MHz
Physical memory:
10000000-11ffffff
Reserved memory:
10000000-1016fa75: Kernel code
1016fa76-101feb47: Kernel data
Exception vectors start at 90011000
CPU: Paging enabled
Node 0: start_pfn = 0x10000, low = 0x12000
Node 0: mem_map starts at 90201000
Built 1 zonelists in Zone order. Total pages: 8128
Kernel command line: console=ttyS0 root=/dev/mmcblk0p1 rw rootwait=1
WARNING: "rootwait=1" is deprecated, use "rootwait" instead.
PID hash table entries: 128 (order: 7, 512 bytes)
timer: AT32AP system timer/counter at 0xfff00c00 irq 22
console [ttyS0] enabled
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 30436k/30436k available (1402k kernel code, 2332k reserved, 106k data, 68k init)
SLUB: Genslabs=20, HWalign=32, Order=0-1, MinObjects=4, CPUs=1, Nodes=1
Calibrating delay using timer specific routine.. 280.51 BogoMIPS (lpj=561032)
Mount-cache hash table entries: 512
NET: Registered protocol family 16
pdc pdc.0: Atmel Peripheral DMA Controller enabled
at32_eic at32_eic.0: External Interrupt Controller at 0xfff00100, IRQ 19
at32_eic at32_eic.0: Handling 4 external IRQs, starting with IRQ 64
smc smc.0: Atmel Static Memory Controller at 0xfff03400
Generic PHY: Registered new driver
dmac0: DesignWare DMA controller at 0xff200000 irq 2
Time: avr32 clocksource has been installed.
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP reno registered
audit: initializing netlink socket (disabled)
audit(1167609600.299:1): initialized
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
io scheduler noop registered
io scheduler cfq registered (default)
atmel_usart.0: ttyS0 at MMIO 0xffe01000 (irq = 7) is a ATMEL_SERIAL
MACB_mii_bus: probed
eth0: Atmel MACB at 0xfff01800 irq 25 (00:04:25:1c:76:87)
eth0: attached PHY driver [Generic PHY] (mii_bus:phy_addr=0:01, irq=-1)
physmap platform flash device: 00800000 at 00000000
physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
Amd/Fujitsu Extended Query Table at 0x0041
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
RedBoot partition parsing not available
Using physmap partition information
Creating 3 MTD partitions on "physmap-flash.0":
0x00000000-0x00020000 : "u-boot"
0x00020000-0x007f0000 : "root"
0x007f0000-0x00800000 : "env"
atmel_spi atmel_spi.0: Atmel SPI Controller at 0xffe00000 (irq 3)
mtd_dataflash spi0.0: AT45DB642x (8448 KBytes)
atmel_usba_udc atmel_usba_udc.0: MMIO registers at 0xfff03000 mapped at fff03000
atmel_usba_udc atmel_usba_udc.0: FIFO at 0xff300000 mapped at ff300000
at32ap700x_rtc at32ap700x_rtc.0: rtc core: registered at32ap700x_rtc as rtc0
at32ap700x_rtc at32ap700x_rtc.0: Atmel RTC for AT32AP700x at fff00080 irq 21
at32_wdt at32_wdt.0: AT32AP700X WDT at 0xfff000b0, timeout 2 sec (nowayout=0)
mmc_host mmc0: Atmel MCI controller at 0xfff02400 irq 28
Registered led device: sys
Registered led device: a
Registered led device: b
TCP cubic registered
Initializing XFRM netlink socket
NET: Registered protocol family 1
NET: Registered protocol family 10
IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
NET: Registered protocol family 15
at32ap700x_rtc at32ap700x_rtc.0: setting the system clock to 1970-01-01 00:00:00 (0)
Waiting for root device /dev/mmcblk0p1...
mmc0: new SD card at address e624
mmcblk0: mmc0:e624 SD128 123008KiB
mmcblk0: p1
VFS: Mounted root (ext2 filesystem).
Freeing init memory: 68K (90000000 - 90011000)
Mounting virtual filesystems:
/proc mounted
/sys mounted
/dev mounted
/dev/pts directory made
/dev/pts mounted
/dev/shm directory made
/config mounted
/tmp mounted
/var/run mounted
/var/log mounted
Setting up mdev: done
Setting hostname: 'ngw.example.net'
Starting syslogd: done
Log messages to syslog: done
Starting klogd: done
Probing modules:
Starting portmap: done
Mounting local filesystems: done
Network interfaces: udhcpc (v1.7.2) started
udhcpc: script /usr/share/udhcpc/default.script failed: No such file or directory
Sending discover...
udhcpc: sendto: Network is down
Sending discover...
udhcpc: sendto: Network is down
Sending discover...
udhcpc: sendto: Network is down
udhcpc: script /usr/share/udhcpc/default.script failed: No such file or directory
No lease, failing
ifconfig: SIOCGIFFLAGS: No such device
ifconfig: SIOCSIFADDR: No such device
failed
Starting dnsmasq: missing
/etc/init.d/S22iptables: line 3: which: not found
Enable NAT:
IPv4 forwarding: done
iptables postrouting: missing
Starting telnetd: missing
Starting inetd: missing
Starting httpd: missing
Starting ntpdate: missing
WARNING: could not syncronize clock, edit NTPSERVERS in /etc/default/ntpdate.
Mounting remote filesystems: done
Starting SMB services: /etc/init.d/S91smb: line 102: smbd: not found
failed
Starting NMB services: /etc/init.d/S91smb: line 102: nmbd: not found
failed

NGW100 ready

BusyBox v1.7.2 (2008-04-09 10:40:21 SAST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

Attachment(s): 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi,

I made quick check and it seems at least you don't have correct timming setings. Please compare against http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=54956

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

In your call to at32_add_device_lcdc() you pass an ID of 2. Why? There's only 1 LCDC device in the AT32AP7000 and as such the ID should always be 0.

If you check the return value of at32_add_device_lcdc() you will find it will be NULL rather than a copy of the created struct platform_device as it should be.

-S.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi Guys,

Thanks for your replies... I have the screen up and running now. I'll post the modifications shortly ...

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I realize this is a little off topic (hardware), but how do you have the PSP display connected to the NGW100? Where did you get the specs for the display?

Dick Steflik

Dick Steflik
Binghamton University
Binghamton, NY 13902

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

dsteflik wrote:
I realize this is a little off topic (hardware), but how do you have the PSP display connected to the NGW100? Where did you get the specs for the display?

Dick Steflik

I second this request.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi Guys

I'm not sure where we planned to get this in higher volumes (I don't look after purchasing), but our initial samples came from E-Bay :)

The connections are pretty straight forward, but if you want further info please let me know.

This project has been put on the back burner for a while, but I'm hopeing to jump back into it in the next week or two, and then more info will be forthcoming.

At this stage I have the NGW100 running linux and displaying a full colour graphic on the PSP LCD. Its looks awesome.

I noticed an app note or something a little while ago with a C++ implementation for colour displays NOT using linux, and I may have a look at that next...

Hope this helps.

Regards
Alph

Attachment(s): 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

A wiki entry showing the hardware and software needed would be the bee's kness (read as "good" if English idioms aren't your thing)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Alph,
I'm teaching an Embedded Systems course this Fall and I think hooking up a PSP screen would be a great lab project but I need some help (this is where you come in), I have all of the other labs written and ready but this would make a great last lab. I'm using the NGW100 for the lab part of the course because its a very cost effective little platform.

Thanks
Dick Steflik

Dick Steflik
Binghamton University
Binghamton, NY 13902

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I will soon be selling (likely next month) a NGW100 peripheral board, which is called RMT1. It will have a Sharp "PSP" LCD display and resistive touchscreen interface.
I have been keeping a blog as a progress on the hardware and linux support:
http://apps.mediamatech.com/Blog/

Scroll down some entries (and Next Page for more entries), and you will see board photos for early prototype. Also, there are linux source code patches that add support for the PSP display (among other things).

Once I work through production build preparations, I plan to work on a user's guide, which should contain information on adding the PSP to the NGW100. Meanwhile, much of that information is buried in the blogs.

Hope this helps...
Pete

Regards,
Pete
www.mediamatech.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Just in case it is useful to anyone, attached is the setup.c file for my NGW100+RMT1 board set.

There are things to be cleaned up for sure, but all the LCD parameters and platform setup is in there and working correctly. Still plan on adding backlight dimming support using a PWM output.

Regards,
Pete

Attachment(s): 

Regards,
Pete
www.mediamatech.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Very interesting peterma.

Any idea of cost at this stage?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I am estimating CAD$150 for a board with the following:
- Battery charger & 5V DC/DC (NGW100 supplies 3.3V)
- LQ043T3DX0x LCD supplies and connectors
- Connector for Hantouch HT043A-NCOFD52
- Touchscreen controller (ADS7846)
- AC97C codec, with headphone jack
- Pushbutton power-on circuit
- Bag of through-hole pushbuttons and power connector options.

Not planning to include NGW100 headers, as people will want flexibility in inter-board height, stacked connectors, etc.
Also, the board has footprints for other peripherals, such as a Bluetooth module, ZigBee module, RTC with supercap, DB9M RS-232 port, etc.

Does that sound reasonable to you?

Regards,
Pete

Regards,
Pete
www.mediamatech.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

That sounds reasonable for all those features. It certainly sounds like a fun piece of gear to play with.

From a purely commercial point of view, it might make sense to sell just a LQ043T3DX02 with the appropriate connectors for a smaller price. This would target the market of MGW100 hackers that just want a screen to output to easily.

As it stands it looks like a pretty damn interesting project. Congrats.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Just wanted to be clear that the CAD$150 does not include the actual LCD/touchscreen.

I could probably find a source and supply that, as a convenience. But from what I gather, many others already have anyway. It is the "do not have to layout/fab your own PCB", and the bunch of peripheral possibilities that I am focussing on.

Does that still sound reasonable?

Thanks,
Pete

Regards,
Pete
www.mediamatech.com