Forum: Mikrocontroller und Digitale Elektronik LPC2478 Projekt Hilfe benötigt


von Jan S. (derblubb)


Lesenswert?

So ersma Moin an alle hier.

Ich bin grade dabei mir Teile für ein Projekt mit einem LPC2478 
zusammenzusuchen. Das ganze soll für mich auch gleich als Umstieg von 
ATmega auf ARM dienen.

So nun ersmal zu dem Projekt als solches. Das ganze soll nach und nach 
in Modulen bis auf die entgültige Funktion ausgebaut werden. Rauskommen 
soll Schlussendlich eine ich nen es mal 
MP3-Player/Wecker-Dockingstation.

Erstmal die MP3-Player/Wecker Funktionen die ich einbauen möchte: 
MP3(VS1011) von SD/SDHC-Karte abspieln, evtl MP3 Onlineradio Funktion, 
Kalenderfunktion mit einstellbaren Alarmen als Wecker oder 
Terminerinnerung(RTC mit Kalenderfuntion).

Die Dockingstation Funktionen wären bisher: Über USB die SD-Karte  mit 
Daten füllen, Temperaturen vom PC einlesen, Lüfterdrehzahlen regeln.

Als visuelle Ausgabe wollte ich gerne ein PSP-Display mit extra 
Touchpanel(HT043A-NCOFD52-R) nehmen.

Sooo. Das ersma soweit zu meiner Idee. Nu hätte ich allerdings auch noch 
n paar Fragen die ihr mir hoffentlich beantworten könnt.

1. Als wichtigstes. Meint ihr das ganze wäre allgemein so umsetzbar?

2. Wie sieht das mit dem Display aus? Was brauch ich an zusätzlicher 
Beschaltung?

3. Da ich in Sachen Display allgemein noch nicht so Bewandert bin, kennt 
ihr evtl Tutorials oder sonstiges um so ein Display anzusteuern?

4. Sollte ich als evtl doch lieber ein andres Display mit integriertem 
Controller benutzen(wobei diese meist weitaus teurer sind)?

5. Was brauche ich an zusätzlichen Teilen(PHY usw.) um mit dem ARM ans 
Ethernet zu kommen(für Online-Radio Funktion)? Und woher beziehen?

6. Brauche ich noch zusätzliche Teile um die USB-Funktionen umzusetzen?

Ich hoffe das war jetzt nicht zu viel auf einmal. ;)
Würde mich über Hilfe und Anregungen eurerseits freuen.

MfG Jan

von Omega G. (omega) Benutzerseite


Lesenswert?

Für Ethernet benötigst du eine Ethernet PHY, am einfachsten eine RMII 
kompatible. Ich habe einen LAN8720 von SMSC dafür verplant.

Als Display, eignet sich alles mit einem parallelen Interface. Mit einem 
LVDS Encoder (75LVDS83) sollten auch Notebook Displays mit LVDS 
Interface funktionieren.

Man müsste den internen ADC zur Auswertung des Digitizers verwenden 
können. Da gibt es ein Application Note von NXP.

Für deine Anwendung empfehle ich dir noch etwas SDRAM, dann kannst du 
den Stream gut puffern.

Man müsste mit diesem Controller MP3 auch ohne VS... dekodieren können, 
ein DAC ist auch vorhanden. Oder man nutzt die I²S Schnittstelle für 
einen Audio DAC.

Ich würde mich freuen, wenn du mich auf dem Laufenden hältst was dein 
Projekt angeht, da ich selbst auch mit diesem Controller experimentieren 
werde.

von Kai F. (k-ozz)


Lesenswert?

1. Generell ist dein Vorhaben umsetzbar, als ersten ARM7-Projekt aber 
recht ehrgeizig.

2. Für das Display brauchst du zum einen eine Boosterschaltung, um die 
notwendige Spannung für die Hintergrundbeleuchtung zu erzeugen (mehr als 
20V, je nach Displaytyp). Außerdem ist ein Touchscreen-Controller sehr 
empfehlenswert wenn auch nicht zwingend notwendig. (z.B. TI TSC2046)

3. Im Falle des LPC2478 ist es so, dass du ja einen Framebuffer brauchst 
und man kann SRAM oder SDRAM anschließen. SDRAM ist aber billiger und 
größer. Auf LVDS würde ich verzichten, da nur größere Display dies 
nutzen, ich aber davon abraten würde zu großen Auflösung zu wollen. VGA, 
d.h. 640x480 ist noch recht gut mit dem LPC2478 machbar, darüber wird es 
dann kritisch, d.h. man muß die Farbtiefe reduzieren bzw. man muß damit 
leben können, dass der externe Speichercontroller schon sehr stark 
ausgelastet ist.

4. Wenn du den LPC2478 nutzen willst, dann wäre es Unsinn ein Display 
mit integriertem Controller zu nehmen. Die Kombination LPC2478 und 
PSP-Display (480x272; 24 Bit RGB) bietet sich schon sehr an. Vorsicht 
ist allerdings beim Platinenlayout geboten: Eine zweilagige Platine 
bietet mit dem unglücklichen Pinout des LPC2478 kaum eine brauchbare 
Möglichkeit sowohl eine 24-Bit-TFT, eine SD-Karte, einen Ethernet-PHY 
und einen SDRAM (16-Bit oder 32-Bit) anzubinden. Also realistisch 
betrachtet ist hier auf jeden Fall eine vierlagige Platine notwendig.

5. Für Ethernet sind extern ein PHY (für den Micrel KSZ8001L und den 
National Semi. D83848C/I gibt es schon reichlich Code für den LPC2400) 
mit seiner Beschaltung und ein Übertragen sowie eine Netzwerkbuche 
erforderlich. Empfehlen würde ich dir eine kombinierte Lösung (MagJack, 
PulseJack, oder andere).

6. Für USB-Device und USB-Host werden eigentlich nur ein paar passive 
Bauteile (Widerstände und Kondensatoren; für USB-Host evtl. noch ein 
Power-Switch wie den TPS2041) und die jeweilige Buchse benötigt. Für 
USB-OTG noch ein Transceiver, z.B. ISP1301 von NXP.

Eine Dekodierung von MP3 in Software würde ich nicht machen, da das 
schon eine viel zu große Grundlast mit sich bringt. Lieber ein paar Euro 
in einen MP3-Dekoder investieren und glücklich sein. Greif nach 
Möglichkeit gleich zu einem aktuellen Chip wie den VS1053.
Der interne DAC des LPC24xx hat übrigens nur einen Kanal und 10 Bit 
Auflösung und ist für solche Spiele somit ungeeignet. I²S ist mit den 
restlichen Features schon nicht mehr an den Pins erreichbar 
(Mehrfachbelegung).

von Simon K. (simon) Benutzerseite


Lesenswert?

Kai F. schrieb:
> 4. Wenn du den LPC2478 nutzen willst, dann wäre es Unsinn ein Display
> mit integriertem Controller zu nehmen. Die Kombination LPC2478 und
> PSP-Display (480x272; 24 Bit RGB) bietet sich schon sehr an. Vorsicht
> ist allerdings beim Platinenlayout geboten: Eine zweilagige Platine
> bietet mit dem unglücklichen Pinout des LPC2478 kaum eine brauchbare
> Möglichkeit sowohl eine 24-Bit-TFT, eine SD-Karte, einen Ethernet-PHY
> und einen SDRAM (16-Bit oder 32-Bit) anzubinden. Also realistisch
> betrachtet ist hier auf jeden Fall eine vierlagige Platine notwendig.

Aus eigenem Interesse möchte ich den Thread noch mal ausgraben. Ich 
überlege mir im Moment mal die LPCs genauer anzuschauen und bastele mir 
was, mit dem LPC2478 und PSP Display.
Allerdings frage ich mich, wie ihr das löst, dass das Display mit 2,5V 
läuft, aber der LPC2478 mit 3,3V. IMHO braucht man da Level-shifter, da 
nur max. VCC+0,3V am Display erlaubt ist.

Was meint ihr dazu?

von Kai F. (k-ozz)


Lesenswert?

Von welchem Display genau spricht du?
Wir setzen das Sharp LQ043T1DG01 mit Touchscreen (ab Werk) ein und das 
läuft lt. Datenblatt mit 2,3-3,6V.
Ebenso möglich ist das LQ043T3DX02 von Sharp. Dieses kann mit 2,3-3,3V 
versorgt werden (lt. Datenblatt). (Absolute Maximum Rating ist hier 
4,5V.)
Dieses Display kann also auch problemlos mit 3,3V versorgt werden und 
damit sind auch keine Levelshifter zum Betrieb am LPC2478 notwendig.
Dann gibt's da z.B. noch das Hantronix HDA430-2 (gibt's bei 
www.eproo.net). Dieses Display läuft auch mit 2,3-3,6V. Also auch ohne 
Levelshifter möglich.

von Simon K. (simon) Benutzerseite


Lesenswert?

Ich rede vom LQ043T3DX02:
Fußnote 6, Seite 12:

> Please input the voltage between the maximum values and the minimum value
> in the table.
>(Example: Vcc;+3.3V±5% is not allowable. )

Hab aber schon ein wenig rumgelesen im Internet, das scheinen einige 
Leute auf 3,3V zu betreiben.

EDIT: Aber mal eine andere Frage, wenn ich ein 16 Bit TFT anschließe, 
sind die I2S Pins eigentlich frei. Meinst du, man kann in diesem Falle 
das I2S verwenden?
Siehe:
http://embdev.net/topic/166837#1594004

von Katherine J. (katherine)


Lesenswert?

Kai F. schrieb:
> I²S ist mit den
> restlichen Features schon nicht mehr an den Pins erreichbar
> (Mehrfachbelegung).

Man kann die I²S schon nutzen obwohl sie durch die Mehrfachbelegung der 
Pins diese auf den RGB-Daten-Pins für das Display liegen. Es sind halt 
die niederwertigsten Bits für die Displayansteuerung. Wenn man die 
Farbtiefe runterschraubt auf 3x6bit anstatt 3x8 sind ist die I²S 
nutzbar, siehe Schaltplan des 2478 Dev-Kit von Olimex.
Gruß Katherine

von Simon K. (simon) Benutzerseite


Lesenswert?

Katherine J. schrieb:
> Kai F. schrieb:
>> I²S ist mit den
>> restlichen Features schon nicht mehr an den Pins erreichbar
>> (Mehrfachbelegung).
>
> Man kann die I²S schon nutzen obwohl sie durch die Mehrfachbelegung der
> Pins diese auf den RGB-Daten-Pins für das Display liegen. Es sind halt
> die niederwertigsten Bits für die Displayansteuerung.
Alles klar, wenn das geht ist das super.

> Wenn man die
> Farbtiefe runterschraubt auf 3x6bit anstatt 3x8 sind ist die I²S
> nutzbar, siehe Schaltplan des 2478 Dev-Kit von Olimex.

LPC-2478STK? Da sehe ich nur ein 24 Bit TFT ohne I2S :-)

Trotzdem Danke an euch für die Infos!

von Katherine J. (katherine)


Lesenswert?

Simon K. schrieb:
> LPC-2478STK? Da sehe ich nur ein 24 Bit TFT ohne I2S :-)
Es sind jeweils die zwei niederwertigsten LCD_Datenleitungen beim 
LPC-2478STK mit Lötjumpern versehen und die I²S-Pins des Controllers 
sind dann über einen 20-poligen Wannenstecker herausgeführt, Pin 4-9 an 
Stecker UEXT.

Siehe auch LPC2478 preliminary datasheet rev1 seite 66, 
TFT16bit(1:5:5:5mode).

Katherine

von Katherine J. (katherine)


Lesenswert?

Ebenso würde ich auch den VS1053 empfehlen, der kann auch OGG Files.

von xxx (Gast)


Lesenswert?

Ich mein ob du einen DAC für 10Euro einbaust oder einen VS1053 ist ja 
egal. Nur das der VS1053 noch OGG,WMA usw. unterstüzt, aufnehmen kann 
und du auf deinem MCU fast vollkommen entlastest für andere Anwendungen.

von Katherine J. (katherine)


Lesenswert?

Genau, und wenn wir schon so entlastet sind kann man auf die zweite 
SPI(SSP) auch noch einen VS1053 klemmen, die Ausgänge fett mit nem 
Crossfader mischen und so als DJ für Unterwegs ordentlich abfeiern.

von Kai F. (k-ozz)


Lesenswert?

I²S ist auf mehrfach auf Pins ausgeführt:
1. RX: P0[6:4]   -> geht nicht
2. RX: P0[25:23] -> geht
3. TX: P0[9:7]   -> geht nicht
4. TX: P2[13:11] -> geht

1. und 3. sind mit dem LCD-Controller nicht nutzbar, da hier die I²S- 
und die LCD-Signale auf der gleichen Alternate-Function liegen (01). 
Wird also der LCD-Controller aktiviert (PINSEL11), so ist auf diesen 
Pins nur LCD und nicht I²S wählbar.
Auf der zweiten Kombination für I²S-RX (2.) liegen keine LCD-Signale.
Auf der zweiten Kombination für I²S-TX (4.) liegen aber drei LCD-Signale 
(LCDCLKIN und zwei Datenleitungen). Auf LCDCLKIN (P2.11) können die 
meisten sicherlich gut verzichten, auf die beiden Datenleitungen 
weniger.
Modus:
                     P2.13  P2.12
TFT 12 bit           -      -
TFT 16 bit (5:6:5)   BLUE0  RED0
TFT 16 bit (1:5:5:5) BLUE0  intensity
TFT 24 bit           BLUE3  BLUE2

Also je nach Betriebsmodus des LCD-Controller lassen sich die Pins 
besser oder schlechter verschmerzen. 12- und 16-bit TFT Modi lassen sich 
also sehr gut, oder zumindest recht brauchbar mit I²S nutzen. Für den 
24-bit Modus wären einige Verrenkungen in Software notwendig, um diesen 
sinnvoll zu nutzen.

von Simon K. (simon) Benutzerseite


Lesenswert?

Kai F. schrieb:
> I²S ist auf mehrfach auf Pins ausgeführt:
> 1. RX: P0[6:4]   -> geht nicht
> 2. RX: P0[25:23] -> geht
> 3. TX: P0[9:7]   -> geht nicht
> 4. TX: P2[13:11] -> geht
>
> 1. und 3. sind mit dem LCD-Controller nicht nutzbar, da hier die I²S-
> und die LCD-Signale auf der gleichen Alternate-Function liegen (01).
Okay, also weil beide als Secondary Pin Function eingetragen sind?
Das heißt, wenn ich den LCD Controller aktiviere, wird das I2S dort 
"überschrieben"? Steht auch so in der Fußnote im LPC2478 Manual auf 
Seite 66:
> [5] I2S pins replaced by LCD pins.
auf den Pins P0[9], P0[8], P0[7], P0[6], P0[5], P0[4].

> Auf der zweiten Kombination für I²S-RX (2.) liegen keine LCD-Signale.
> Auf der zweiten Kombination für I²S-TX (4.) liegen aber drei LCD-Signale
> (LCDCLKIN und zwei Datenleitungen). Auf LCDCLKIN (P2.11) können die
> meisten sicherlich gut verzichten, auf die beiden Datenleitungen
Wo ist denn der Unterschied zwischen LCDCLKIN und LCDDCLK? Ich nehme an 
an den CK Pin ("Clock signal to sample each date") kommt LCDDCLK (LCD 
Data Clock).

>                      P2.13  P2.12
> TFT 12 bit           -      -
> TFT 16 bit (5:6:5)   BLUE0  RED0
> TFT 16 bit (1:5:5:5) BLUE0  intensity
> TFT 24 bit           BLUE3  BLUE2
>
> Also je nach Betriebsmodus des LCD-Controller lassen sich die Pins
> besser oder schlechter verschmerzen. 12- und 16-bit TFT Modi lassen sich
> also sehr gut, oder zumindest recht brauchbar mit I²S nutzen.
Wie lässt sich denn jetzt mit 16 Bit Modus I2S_TX nutzen? Da sind alle 
I2S_TX Varianten komplett belegt, wie man auch in deinem Diagramm gut 
sehen kann.
Meinst du etwa, dass man den LCD Controller auf 16 Bit einstellt, aber 
BLUE0 und RED0 weglässt und somit nur noch ein 14 Bit Display hat? Das 
wäre ja ein (4:6:4) Display dann.

> Für den
> 24-bit Modus wären einige Verrenkungen in Software notwendig, um diesen
> sinnvoll zu nutzen.
Was heißt das? Zugegeben habe ich noch nichts mit dem Chip gemacht. 
Meinst du etwa I2S per Software?

von Kai F. (k-ozz)


Lesenswert?

Simon K. schrieb:
> Kai F. schrieb:
>> I²S ist auf mehrfach auf Pins ausgeführt:
>> 1. RX: P0[6:4]   -> geht nicht
>> 2. RX: P0[25:23] -> geht
>> 3. TX: P0[9:7]   -> geht nicht
>> 4. TX: P2[13:11] -> geht
>>
>> 1. und 3. sind mit dem LCD-Controller nicht nutzbar, da hier die I²S-
>> und die LCD-Signale auf der gleichen Alternate-Function liegen (01).
> Okay, also weil beide als Secondary Pin Function eingetragen sind?
> Das heißt, wenn ich den LCD Controller aktiviere, wird das I2S dort
> "überschrieben"? Steht auch so in der Fußnote im LPC2478 Manual auf
> Seite 66:
>> [5] I2S pins replaced by LCD pins.
> auf den Pins P0[9], P0[8], P0[7], P0[6], P0[5], P0[4].

Richtig.

>> Auf der zweiten Kombination für I²S-RX (2.) liegen keine LCD-Signale.
>> Auf der zweiten Kombination für I²S-TX (4.) liegen aber drei LCD-Signale
>> (LCDCLKIN und zwei Datenleitungen). Auf LCDCLKIN (P2.11) können die
>> meisten sicherlich gut verzichten, auf die beiden Datenleitungen
> Wo ist denn der Unterschied zwischen LCDCLKIN und LCDDCLK? Ich nehme an
> an den CK Pin ("Clock signal to sample each date") kommt LCDDCLK (LCD
> Data Clock).

Mit LCDCLKIN kann man sozusagen den Pixeltakt von extern vorgeben.

>>                      P2.13  P2.12
>> TFT 12 bit           -      -
>> TFT 16 bit (5:6:5)   BLUE0  RED0
>> TFT 16 bit (1:5:5:5) BLUE0  intensity
>> TFT 24 bit           BLUE3  BLUE2
>>
>> Also je nach Betriebsmodus des LCD-Controller lassen sich die Pins
>> besser oder schlechter verschmerzen. 12- und 16-bit TFT Modi lassen sich
>> also sehr gut, oder zumindest recht brauchbar mit I²S nutzen.
> Wie lässt sich denn jetzt mit 16 Bit Modus I2S_TX nutzen? Da sind alle
> I2S_TX Varianten komplett belegt, wie man auch in deinem Diagramm gut
> sehen kann.
> Meinst du etwa, dass man den LCD Controller auf 16 Bit einstellt, aber
> BLUE0 und RED0 weglässt und somit nur noch ein 14 Bit Display hat? Das
> wäre ja ein (4:6:4) Display dann.

Ja, entweder als 4:6:4 oder als 5:5:4.

>> Für den
>> 24-bit Modus wären einige Verrenkungen in Software notwendig, um diesen
>> sinnvoll zu nutzen.
> Was heißt das? Zugegeben habe ich noch nichts mit dem Chip gemacht.
> Meinst du etwa I2S per Software?

Wenn du ganz verrückt bist (nicht wörtlich zu nehmen), dann kannst du 
mittels des 24-bit Modus auch z.B. ein 7:8:7 erzeugen, indem du den Bits 
quasi eine andere Bedeutung verpasst und das Display entsprechend an den 
LPC verdrahtest.
Beispiel:
Im 24-bit Modus wird ein Pixel durch ein DWord beschrieben, wobei die 
oberen acht Bit ungenutzt sind. Also so (binär):
xxxxxxxx BBBBBBBB GGGGGGGG RRRRRRRR
xxxxxxxx 76543210 76543210 76543210 -> 8:8:8
             ^^ -> diese beiden Bits stehen nicht zur Verfügung.
Also könnte man folgdenes draus machen:
xxxxxxxx BBBBxxBB GGGGGGGG RRRRRRRB
xxxxxxxx 6543xx21 76543210 65432100 -> 7:8:7

Wenn du mit einfachen Farben etwas zeichnen willst, dann stört das so 
nicht, denn du kannst dir die Farben ja auch per Define festlegen und an 
deine Zeichenoperation übergeben.
Willst du ein paar Grafiken irgendwoher laden und anzeigen, so ist das 
auch noch kein großen Problem: Beim bzw. nach dem Laden müssen die ein 
Daten einfach einmalig konvertiert werden.
Willst du allerdings irgendwelche aufwändigeren Dinge darstellen 
(Farbverläufe, Überblendungen, ...) so wird das halt aufwändiger und 
langsamer, da du die Werte immer erst umwandeln mußt.

Evtl. könnte man sich zwei Funktionen schaffen (EncodeColor und 
DecodeColor oder so ähnlich), die einen "normalen" 24-bit Farbwert in 
einen, an deine Hardware angepassten Farbwert wandelt und umgekehrt.
1
unsigned long EncodeColor(unsigned long Color)
2
{
3
    unsigned long Result;
4
    Result = Color & 0x00F0FFFE;
5
    Result |= (Color & 0x000C000) >> 2;
6
    Result |= (Color & 0x0002000) >> 13;
7
    return Result;
8
}
9
10
unsigned long DecodeColor(unsigned long Color)
11
{
12
    unsigned long Result;
13
    Result = Color & 0x00F0FFFE;
14
    Result |= (Color & 0x0003000) << 2;
15
    Result |= (Color & 0x0000001) << 13;
16
    return Result;
17
}

Wie man jetzt mit den LSBs von Red und Blue umgeht, das bleibt der 
Vorliebe des Programmierers überlassen. In dem Beispiel oben werden sie 
einfach auf Null gesetzt. Genauso könnte man sie auch auf Eins setzen, 
oder ein anderes Bit (z.B. MSB) kopieren.

von Katherine J. (katherine)


Lesenswert?

Simon K. schrieb:
> Wie lässt sich denn jetzt mit 16 Bit Modus I2S_TX nutzen?
Na mit P0[7-8] das sind doch ebenfalls die LCD[9] (GREEN1), LCD[16] 
(BLUE0) und LCD[17] (BLUE1). Alle drei werden im 16bit (1:5:5:5) nicht 
benutzt.

von Simon K. (simon) Benutzerseite


Lesenswert?

Katherine J. schrieb:
> Simon K. schrieb:
>> Wie lässt sich denn jetzt mit 16 Bit Modus I2S_TX nutzen?
> Na mit P0[7-8] das sind doch ebenfalls die LCD[9] (GREEN1), LCD[16]
> (BLUE0) und LCD[17] (BLUE1). Alle drei werden im 16bit (1:5:5:5) nicht
> benutzt.

Das geht nicht. Wenn das LCD Interface aktiviert ist, lässt sich da kein 
I2S mehr auswählen. So hab ich das jetzt verstanden.

LPC2478 Manual auf Seite 66:
> [5] I2S pins replaced by LCD pins.
auf den Pins P0[9], P0[8], P0[7], P0[6], P0[5], P0[4].

Seite 26:
> [15] Either the I2S function or the LCD function is selectable, see Table
> 13, Table 14, and Table 15.
Als Fußnote für die von dir genannten Pins.
(P0[9], P0[8], P0[7], P0[6], P0[5], P0[4])

LPC24XX Manual auf Seite 180:
> Function when 01: I2STX_CLK / LCDVD[9]

von Kai F. (k-ozz)


Lesenswert?

Nein, das funktioniert nicht. Wenn der LCD-Controller aktiv ist, kann 
man die Pins P0[9:4] nicht für I²S nutzen, da beide auf der gleichen 
Alternate-Function (01) liegen und die Aktivierung des LCD-Controllers 
darüber entscheidet, welche der beiden Funktionen aktiv ist.

von Simon K. (simon) Benutzerseite


Lesenswert?

Kai F. schrieb:
> Nein, das funktioniert nicht. Wenn der LCD-Controller aktiv ist, kann
> man die Pins P0[9:4] nicht für I²S nutzen, da beide auf der gleichen
> Alternate-Function (01) liegen und die Aktivierung des LCD-Controllers
> darüber entscheidet, welche der beiden Funktionen aktiv ist.

Was mMn. irgendwie ein Design Fehler ist. Da ich ja noch nichts damit 
gemacht hab, werde ich mich auch noch mal bei anderen Herstellern nach 
ARMs mit LCD Interface, I2S, EBI.

von Katherine J. (katherine)


Lesenswert?

Simon K. schrieb:
> LPC24XX Manual auf Seite 180:
>> Function when 01: I2STX_CLK / LCDVD[9]

Huups, das hatte ich mir noch nicht angesehen mit PINSEL0. Ich war fest 
davon ausgegangen daß das machbar sei - tolles Forum.

von Simon K. (simon) Benutzerseite


Lesenswert?

Katherine J. schrieb:
> Simon K. schrieb:
>> LPC24XX Manual auf Seite 180:
>>> Function when 01: I2STX_CLK / LCDVD[9]
>
> Huups, das hatte ich mir noch nicht angesehen mit PINSEL0. Ich war fest
> davon ausgegangen daß das machbar sei - tolles Forum.

Jau, ist irgendwie bescheiden. Deshalb auch meine Nachfrage hier.

Danke also noch mal ;)

PS: LCD_CLKIN ist übrigens ein Eingang am LCD Controller. Für einen 
Takt, das mglw. von einem Panel kommen kann. Lässt sich wohl aber auch 
intern erzeugen.

von Katherine J. (katherine)


Lesenswert?

Simon K. schrieb:
> Jau, ist irgendwie bescheiden. Deshalb auch meine Nachfrage hier.

Man könnte sich noch als Alternative einen SPI_to_I2S in einem kleinen 
CPLD selber stricken. Aber schon kniffelig wegen dem Timing.

von ingo (Gast)


Lesenswert?

Katherine J. schrieb:
> SPI_to_I2S in einem kleinen
> CPLD selber stricken

jo, das ist machbar. ALTERA hat sogar eine App.Note dazu rausgebracht:
SPI to I2S Using MAX II CPLDs

http://www.altera.com/literature/an/an487.pdf

von Katherine J. (katherine)


Lesenswert?

Moin zusammen,

ich wärme das Ding hier nochmal auf weil die hier verbreitete Info, dass 
man die i2s Funktion bei benutztem LCD nicht nutzen kann.
Insoweit richtig, aber nur bei einem Display im 24bit Mode sind die 
nicht nutzbar. In den anderen, z.B. 16bit Mode, sind diese i2s pin, hier 
P0[4] to P0[9], im Alternativ Mode nutzbar - sprich i2s.

Bin nochmals darüber gestolpert, weil hier:
http://tech.groups.yahoo.com/group/lpc2000/message/49678
behauptet wird , dass das geht.
Hab daraufhin mal bei nxp nachgefragt. Hier die Antwort:

NXP Semiconductors answer:
Hi Björn,

Using these pins for any other function than I2S i.e. CAN, SSP, Timer, 
GPIO) is obviously no problem, since you can just set the PINSEL0 
accordingly.

Your doubt was about the I2S function (PINSEL0.xy = 01), which is shared 
with the LCD function. Refer to table 288 in the User Manual. If a pin 
is not listed for the TFT mode you are using, it will operate with its 
alternate function (here: I2S). As you can see in that table, P0[4] to 
P0[9] are only used in TFT 24 bit mode. If you select any other TFT mode 
in PINSEL11, the pins can be used as I2S pins.

Regards,
Rolf

------------------------------------------------------------------------ 
---
NXP Semiconductors answer:
Hi Björn,

This is a thread of perpetual misunderstanding  :-)

Short answer: If the TFT is used in 16-bit mode (TFT5:6:5), the pins 
P0.4...P0.9 can be used as I2S pins.
Your application will work!

Rolf


Gruß Katherine

von Robert T. (robertteufel)


Lesenswert?

Nur mein kurzer Kommentar; eine Antwort von Rolf M. ist normalerweisse 
das beste was Du in Deutschland bekommen kannst. Er ist wirklich ein 
Experte fuer die LPCs.
Hab in der Vergangenheit sehr gerne mit Rolf zusammengearbeitet.

Gruss, Robert

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.