Hi @all as i read in other threads and i have the same problem: theres a N43i Display wich doenst work with standard tslib / s3c24xx adc drivers. I need to get it working :) Anna R. -> you resoldered the 4 resistors and now its working with the s3c24xx adc driver? You wrote that the backlight doesnt work... can you try this? -Resolder resistor R1 to R26 and then set the GPE0 pin to high? Because R1 is for the TouchOne interface and R26 is directly connect to the gpe0 pin. At least it shoul light up now, i dont know about the brihgtness / dimm... ill try it next week for my self :) is there a kernel patch to get the s3c24xx soc adc touchscreen driver in my own kernel?
Mini6410 N43i Display / Touchscreen
What kernel do you use? You must register the S3C ADC platform device and the S3C touchscreen platform device in your Mini6410 board file (and enable both corresponding drivers in your kernel config).
tested it today, chaning R1 -> R26 works perfect, now tslib works and backlight! ann: even fatbrain told that you ONLY need to short R26, my advice is that you solder out R1. better don't connect two outputs with each other, thats what i learned since i'm electronic enginner :) Juergen: i'm using your patched kernel 3.0 from the ptxdist bsp for mini6410 but compiled with a buildroot created toolchain and a buildroot created rootfs. i always was verly lucky with this toolchain, never had any compiling errors.
Well, I have been an electronics engineer for longer than most of you have been "breathing air" and I find the hardware aspect of this thread totally confusing. And I quote: Anna R. -> you resoldered the 4 resistors and now its working with the s3c24xx adc driver? "Resoldered" does not mean changing anything, but resoldering to hopefully ensure that you do not have an intermittent connection. Possibly another thread explains this step more clearly. -Resolder resistor R1 to R26 (Reasonably clear) Remove R26 and put it somewhere safe, remove R1 and resolder this resistor where R26 was located. Or, place R1 where R26 was located. ann: even fatbrain told that you ONLY need to short R26, my advice is that you solder out R1. better don't connect two outputs with each other, thats what i learned since i'm electronic enginner :) Short R26? I thought it was removed from the board. "Solder out R1", I guess means remove it from the board AND then what do you with R1. Ah, above it said to place it where R26 was. "better don't connect with each other" I guess this is referring to the two empty pads left by removing R1. May I suggest something along the lines of: - remove R26 - remove R1 - place R1 in the R26 position Do not short the PCB pads of R1 together. ****** Correct as necessary so that others can carry out this operation with a chance of success. Regards, Dave
sorry Dave my english is not perfect. as there are all 0 ohm resistors it doesnt matter if you: -remove R26 and place it at R1 or -remove R26 and short the pads of R1
... actually you can choose if you have a N43 or a N43i with this resitors, just like jumpers. so there never should be a boad with R1 (0ohm) AND R26(0ohm) on it. Either R26 is closed (0 ohm resistor in it or shor) OR R1 is closed (0ohm or short)
My second attempt: ***** Configuring the LCD board controller board for N43 and N43i LCD displays For the N43 display: - place a 0 Ohm resistor in the R1 position (R26 is NOT placed) For the N43i display: - place a 0 Ohm resistor in the R26 position (R1 is NOT placed) Note: - either R1 or R26 should already be a 0 Ohm resistor so you should only have to reposition this resistor as above. If you have lost the 0 Ohm resistor you can short the pads of R1 or R26 together with a small piece of wire and/or a "blob" of solder. ***** It would be helpful to identify these two displays. I understand that the N43i display is made by NEC and the N43 display is made by ? I suspect I may still have this wrong so please correct me.
Dave, from my collected list, the "N43" seems to use a 4.3" NEC NL4827HC19-01B and the "N43i" seems to be a 4.3" Sharp LQ043T3DX02. Maybe the "i" does not mean the used LCD, but how the touchscreen is connected.
another try :) N43 has identical LCD with N43i, on the N43i controller board is an additional uC(STC12LE4052-12I-SOP20) which has reads the four x+- / y+- lines from the touchscreen and sets the backlight. it does one-wire communication with our mini6410 board. So if you want to use the "normal" tslib touchscreen interface with kernel driver which reads the touchscreen position by the adc from mini6410 you have to reconfig your controller board by swapping the resistor. Dave: have a look at this scheme, it will be clear then: http://www.friendlyarm.net/dl.php?file=lcd43_schematic.zip ======================================== Enable normal ADC Read for Touchscreen & GPIO Backlight instead of Friendly Arm proprietary TouchOne //for Touchscreen wires: - place a 0 Ohm resistor in the R28 position (R34 NOT placed, remove it) - place a 0 Ohm resistor in the R29 position (R35 NOT placed, remove it) - place a 0 Ohm resistor in the R30 position (R36 NOT placed, remove it) - place a 0 Ohm resistor in the R31 position (R37 NOT placed, remove it) //for LCD Backlight - place a 0 Ohm resistor in the R26 position (R1 NOT placed, remove it)
antifish, Getting better. If I ever brought a mini6410 with one of these displays I am feeling slightly more confident that I would be able to ensure that the LCD was configured properly. I am left with at least one question and maybe something that completes your well-written summary above . . . what happened to R1? I understand from previous comments (near the top of the thread) that it is only placed when using TouchOne. Also, according to the schematic R26 is placed for TouchOne and in your summary (Enable normal ADC Read for Touchscreen & GPIO Backlight) it is placed as well. It seems redundant to mention anything about R26. [quote] so there never should be a boad with R1 (0ohm) AND R26(0ohm) on it. [unquote] However, the schematic shows both resistors are placed and there is no mention that they change. Reading lcd-43_schematic_v1043.txt doesn't mention anything about R1 and R26 when changing from use on the mini2440 (Enable normal ADC Read for Touchscreen & GPIO Backlight?) and the mini6410 (Friendly Arm proprietary TouchOne?). Or, have I made an incorrect assumption here linking a dev board with a touchscreen driver method? Is this thread is trying to sort out two separate issues: - different display types AND - different methods of driving the displays. If so, the summary table needs to cater for four different combinations. Regards, Dave
yes the schematic show both placed, but on my board (n43i, default: touchone) only R1 was placed. And its correct for the "i" Version. R26 is only for the standard, NOT TouchOne mode. N43i / TouchOne: R1 connects the output of the OneWire/TouchOne Controller to the CTRL(Enable) pin of the LED Backlight Supply. Signal Name: LCD_EN So there must be a command in this TouchOne Protocoll which enables the backlight. N43 / "normal" R26 connects the GPIO pin of the Mini6410 to the CTRL(Enable) pin of the LED Backlight Supply. Signal Name: LCD_PWR The Kernel is configured to pullup the GPIO Port when starting the board to enable the Backlight. So i would not recommend to place both resistor, as you would short the GPIO output with the TouchOne output... ok it could be that the TouchOne pin stays high impedance until it gets a command to enable the backlight, but better dont place both, at least not 0 ohms :) what i dont know is what happends when you connect that thing to a mini2440, never had one. We used a sky2440 with a custom display/spi touch before i bought a mini6410 for private fun :)
antifish, So, the schematic does not reflect reality. Won't be the first time! Maybe someone could advise them to update their schematic. If putting both resistors on , as per the schematic, causes a problem they should advise users via an errata sheet. You have captured your 43i knowledge to a good level, now you can get back to developing the product! Cheers, Dave
Hi Guys, I resoldered R26 and R28 - R31. The touchscreen seems to work flawless, but I can't get the backlight to work. I am using Juergen‘s BSP with the 3.0 kernel -- can you guys tell me, what kernel module I need to enable?
did you removed R1? actually the Kernel form Pengutronix BSP automaticaly enables the backlight, its done with the GPE0 output of the mini6410.¨no special module needed. you can try setting GPE0 port high manually?
antifish: I removed R1 and placed it on R26. I tested it with the FriendlyARM-Ubuntu Distro, and there, the Backlight was working fine. Which Pengutronix-Release are you using? I am using the latest git. Can you give me a quick recap on how to enable GPIO-Ports? I am a bit rusty on the subject ;)
deltaT: Did you play with the backlight sysfs entry? Maybe this display unit needs a different polarity to enable/disable the backlight (I can't test it, because I have only an N43 (without the 'i') here).
i used the latest (git) bsp too, worket out of the box! did you reconfigured the kernel or changed antything else? for setting gpio port high: find the right gpio port number: - $ cat /sys/class/gpio/gpiochipxxx/label(or something, it should give you the name of the gpio port [do it with all gpiochipxxx until you find GPE :) ]) - $ echo xxx > /sys/class/gpio/export (where xxx is the number from the gpiochip wih name GPE) - $ echo out > /sys/class/gpio/gpioxxx/direction - $ echo 1 > /sys/class/gpio/gpioxxx/value + have a look here: http://www.avrfreaks.net/wiki/index.php/Documentation:Linux/GPIO#gpio-sysfs
@Juergen: technically speaking, I now have a N43, too. I tried playing with backlight-sysfs, but no cookie. @antifish: Thanks! With the FriendlyARM-Ubuntu Kernel, it worked fine too. I didn't modify the kernel, which version are you using? I'm on 3.0 here.
Okay, did a test on my Mini6410 and N43 (without 'i') display unit with my own kernel here. Backlight control does not work as expected: kernel's backlight control operates only on GPIOF15 which controls the PWM line (which has no function on the N43, AFAIK). But using the LED control works here on my Mini6410: echo 1 > /sys/devices/platform/leds-gpio/leds/backlight/brightness Enables the backlight here and echo 0 > /sys/devices/platform/leds-gpio/leds/backlight/brightness disables it (this entry switches the GPIOE0 line). Exporting the GPIOE0 does not work with my kernel, as this GPIO is already occupied by the LED framework. BTW: To see who occupies what GPIO you can run a "cat /sys/kernel/debug/gpio" (if the 'debugfs 'is already mounted)
@deltaT i'm using 3.0 too, actually everything default out of the git, just compiled & it worked. @Juergen your right, i think i did it the same way, enabled/disabled with the led backlight control i'm using a moddified n43i too (switched the 5 resistors), everything works great :) deltaT do you have the device entry "/sys/devices/platform/leds-gpio/leds/backlight/brightness" ? nothing changes when exporting 1 or 0 to it? is your rootfs from the pengutronix BSP too or do you use your own?
another option would be removing R1 and connect the enable pin directly to 3.3V, so that blacklight would be always on.
antifish: just checked it - exporting Nr. 32 (GPE) doesn't release the GPIO-files (direction, value etc) -- all I have is base, label, ngpio, power/ <empty>, subsystem and uevent...
@deltaT i think you are in the wrong directory :) after the "echo 32 > /sys/class/gpio/export" there should be a new directory called /sys/class/gpio32 can you check if that exists?
maybe you have no output on the display and backlight is on? :) i cant remeber if ptxdist bsp does some output if you dont start anything like a Qt application or something... try starting ts_calibrate or something? just an idea :)
antifish: like Juergen said, Nr. 32 is already occupied as backlight and set to high by default... I just checked the solder-pads, seems fine (no shorts)... Can you post your ptxconfig somewhere? Maybe it's just a matter of different git versions
You should notice: My kernel does not use the screen. So it is always empty until you run some kind of application using the screen (like my default little Qt app).
deltaT: i stoped using ptxdist because of the missing USB support, so i don't have a config. put i allways used default configs, so id should work at your board too. as Juergen said, can you try starting a execuatable which produces output on the framebuffer device? A Qt app? or fbtest (if its included) or ts_test or ts_calibrate?
Can you upload a picture of your modded n43i board where i can see all the resistors? Then i can compare to mine
deltaT: had another look at the schematics -> try removing R26! it looks like there is a pullup connected to the enable pin of the backlight supply ic. so if you have R1 and R26 both removed, your backlight should always be on
R26 is in the schematic but not on the board.It is open just short it and the backlight will work. Anyway it is 0 Ohms. I paired a mini6410 lcd N43 with a mini2440 and it works.
sorry deltaT, but my kernel also doesn't init backlight :( Today i replaced R26 With R1 and still no luck. No backlight :(
fatbrain: I desoldered R1 and shorted R26 (it is on my board) - no cookie. I will re-flash it with a FriendlyARM-Image and check, which device the FA-Kernel uses for backlight-control
yeah.. bad news: resoldering the 5 resistors is only half the game. Apparently, the backlight-controller interface (not the actual backlight) differs from the regular N43 too. I played around a bit with kernel settings etc - no cookie. I just installed a Kernel from the Ubuntu-Image and shazaam - it lit up. Following mindee's tip, I played with "echo 0...128 > /dev/backlight-1wire" and it actually worked. But: The LCD is not synced properly - I'm not an expert, but I see vertical lines, seems like the sync-rate isn't set properly. Any tips?
@antifish Have you tried to re-calibrate the touchscreen? I have tried, at first with a USB mouse to select menu recalibration on the menu: settings -> recalibrate. After recalibration, restart the OS, then use the stylus to touch the screen. It Works well :)