Перейти к содержанию
    

Проблема LPC2364 P2 и P3

Проблема заклю чается в следую щем.

Альтернативные функции на этих портах работают, а когда переключаю их в режим GPIO они неперекльчаются.

после записи значения в регистры FIO2DIR и FIO3DIR в них остаётся 0.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Port 2: Port 2 is a 32-bit I/O port with individual direction controls for each bit. The

operation of port 2 pins depends upon the pin function selected via the Pin Connect

block. Pins 14 through 31 of this port are not available.

 

Port 3: Port 3 is a 32-bit I/O port with individual direction controls for each bit. The

operation of port 3 pins depends upon the pin function selected via the Pin Connect

block. Pins 0 through 24, and 27 through 31 of this port are not available.

 

из LPC2364/66/68/78 User manual стр. 91, стр.93

Может как раз на этих пинах и смотрите?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

из LPC2364/66/68/78 User manual стр. 91, стр.93

Может как раз на этих пинах и смотрите?

 

из альтернативных функций порта 2 используются:

P2.0 - TXD1

P2.1 - RXD1

P2.5 - DTR1

P2.7 - RTS1

остальные планировалось ис пользовать в режиме GPIO

 

настройка следующяя

 

void InitPerefial(void)

{

//настраиваем PINSEL0

PINSEL0=

// 1:0 P0.0 ;GPIO Port 0.0; RD1; TXD3; SDA1; 00

(1<<0) + //RD1

// 3:2 P0.1 GPIO Port 0.1 TD1 RXD3 SCL1 00

(1<<2) + //TD1

// 5:4 P0.2 GPIO Port 0.2 TXD0 Reserved Reserved 00

(0<<4) + //

// 7:6 P0.3 GPIO Port 0.3 RXD0 Reserved Reserved 00

(0<<6) +

// 9:8 P0.4 GPIO Port 0.4 I2SRX_CLK RD2 CAP2.0 00

(3<<8) + //CAP2.0

// 11:10 P0.5 GPIO Port 0.5 I2SRX_WS TD2 CAP2.1 00

(3<<10) + //CAP2.1

// 13:12 P0.6 GPIO Port 0.6 I2SRX_SDA SSEL1 MAT2.0 00

(0<<12) +

// 15:14 P0.7 GPIO Port 0.7 I2STX_CLK SCK1 MAT2.1 00

(0<<14) +

// 17:16 P0.8 GPIO Port 0.8 I2STX_WS MISO1 MAT2.2 00

(0<<16) +

// 19:18 P0.9 GPIO Port 0.9 I2STX_SDA MOSI1 MAT2.3 00

(0<<18) +

// 21:20 P0.10 GPIO Port 0.10 TXD2 SDA2 MAT3.0 00

(1<<20) + //TXD2

// 23:22 P0.11 GPIO Port 0.11 RXD2 SCL2 MAT3.1 00

(1<<22) + //RXD2

// 25:24[1] P0.12 GPIO Port 0.12 Reserved MISO1 AD0.6 00

(0<<24) +

// 27:26[1] P0.13 GPIO Port 0.13 U2UP_LED MOSI1 AD0.7 00

(0<<26) +

// 29:28[1] P0.14 GPIO Port 0.14 U2CONNECT Reserved SSEL1 00

(0<<28) +

// 31:30 P0.15 GPIO Port 0.15 TXD1 SCK0 SCK 00

(0<<30);

//настраиваем PINSEL1

PINSEL1=

// 1:0 P0.16 GPIO Port 0.16 RXD1 SSEL0 SSEL 00

(0<<0) +

// 3:2 P0.17 GPIO Port 0.17 CTS1 MISO0 MISO 00

(0<<2) +

// 5:4 P0.18 GPIO Port 0.18 DCD1 MOSI0 MOSI 00

(0<<4) +

// 7:6 P0.19 GPIO Port 0.19 DSR1 MCICLK SDA1 00

(0<<6) +

// 9:8 P0.20 GPIO Port 0.20 DTR1 MCIMD SCL1 00

(0<<8) +

// 11:10 P0.21 GPIO Port 0.21 RI1 MCIPWR RD1 00

(0<<10) +

// 13:12 P0.22 GPIO Port 0.22 RTS1 MCIDAT0 TD1 00

(0<<12) +

// 15:14 P0.23 GPIO Port 0.23 AD0.0 I2SRX_CLK CAP3.0 00

(0<<14) +

// 17:16 P0.24 GPIO Port 0.24 AD0.1 I2SRX_WS CAP3.1 00

(0<<16) +

// 19:18 P0.25 GPIO Port 0.25 AD0.2 I2SRX_SDA TXD3 00

(0<<18) +

// 21:20 P0.26 GPIO Port 0.26 AD0.3 AOUT RXD3 00

(2<<20) + //AOUT

// 23:22 P0.27 GPIO Port 0.27 SDA0 Reserved Reserved 00

(0<<22) +

// 25:24 P0.28 GPIO Port 0.28 SCL0 Reserved Reserved 00

(0<<24) +

// 27:26 P0.29 GPIO Port 0.29 U1D+ Reserved Reserved 00

(1<<26) + //U1D+

// 29:28 P0.30 GPIO Port 0.30 U1D? Reserved Reserved 00

(1<<28) + //U1D?

// 31:30[1] P0.31 GPIO Port 0.31 U2D+ Reserved Reserved 00

(0<<30);

/*

//настраиваем PINSEL2

PINSEL2=

// 1:0 P1.0 GPIO Port 1.0 ENET_TXD0 Reserved Reserved 00

(0<<0) +

// 3:2 P1.1 GPIO Port 1.1 ENET_TXD1 Reserved Reserved 00

(0<<2) +

// 5:4 P1.2 Reserved Reserved Reserved Reserved 00

(0<<4) +

// 7:6 P1.3 Reserved Reserved Reserved Reserved 00

(0<<6) +

// 9:8 P1.4 GPIO Port 1.4 ENET_TX_EN Reserved Reserved 00

(0<<8) +

// 11:10 P1.5 Reserved Reserved Reserved Reserved 00

(0<<10) +

// 13:12 P1.6 Reserved Reserved Reserved Reserved 00

(0<<12) +

// 15:14 P1.7 Reserved Reserved Reserved Reserved 00

(0<<14) +

// 17:16 P1.8 GPIO Port 1.8 ENET_CRS Reserved Reserved 00

(0<<16) +

// 19:18 P1.9 GPIO Port 1.9 ENET_RXD0 Reserved Reserved 00

(0<<18) +

// 21:20 P1.10 GPIO Port 1.10 ENET_RXD1 Reserved Reserved 00

(0<<20) +

// 23:22 P1.11 Reserved Reserved Reserved Reserved 00

(0<<22) +

// 25:24 P1.12 Reserved Reserved Reserved Reserved 00

(0<<24) +

// 27:26 P1.13 Reserved Reserved Reserved Reserved 00

(0<<26) +

// 29:28 P1.14 GPIO Port 1.14 ENET_RX_ER Reserved Reserved 00

(0<<28) +

// 31:30 P1.15 GPIO Port 1.15 ENET_REF_CLK Reserved Reserved 00

(0<<30);

*/

//настраиваем PINSEL3

PINSEL3=

// 1:0 P1.16 GPIO Port 1.16 ENET_MDC Reserved Reserved 00

(0<<0) +

// 3:2 P1.17 GPIO Port 1.17 ENET_MDIO Reserved Reserved 00

(0<<2) +

// 5:4 P1.18 GPIO Port 1.18 U1UP_LED PWM1.1 CAP1.0 00

(0<<4) +

// 7:6 P1.19 GPIO Port 1.19 Reserved Reserved CAP1.1 00

(0<<6) +

// 9:8 P1.20 GPIO Port 1.20 Reserved PWM1.2 SCK0 00

(0<<8) +

// 11:10 P1.21 GPIO Port 1.21 Reserved PWM1.3 SSEL0 00

(0<<10) +

// 13:12 P1.22 GPIO Port 1.22 Reserved Reserved MAT1.0 00

(0<<12) +

// 15:14 P1.23 GPIO Port 1.23 Reserved PWM1.4 MISO0 00

(0<<14) +

// 17:16 P1.24 GPIO Port 1.24 Reserved PWM1.5 MOSI0 00

(0<<16) +

// 19:18 P1.25 GPIO Port 1.25 Reserved Reserved MAT1.1 00

(0<<18) +

// 21:20 P1.26 GPIO Port 1.26 Reserved PWM1.6 CAP0.0 00

(0<<20) +

// 23:22 P1.27 GPIO Port 1.27 Reserved Reserved CAP0.1 00

(0<<22) +

// 25:24 P1.28 GPIO Port 1.28 Reserved PCAP1.0 MAT0.0 00

(0<<24) +

// 27:26 P1.29 GPIO Port 1.29 Reserved PCAP1.1 MAT0.1 00

(0<<26) +

// 29:28 P1.30 GPIO Port 1.30 Reserved VBUS AD0.4 00

(0<<28) +

// 31:30 P1.31 GPIO Port 1.31 Reserved SCK1 AD0.5 00

(3<<30);//AD0.5

//настраиваем PINSEL4

PINSEL4=

// 1:0 P2.0 GPIO Port 2.0 PWM1.1 TXD1 TRACECLK[1] 00

(3<<0) + //TXD1

// 3:2 P2.1 GPIO Port 2.1 PWM1.2 RXD1 PIPESTAT0[1] 00

(3<<2) + //RXD1

// 5:4 P2.2 GPIO Port 2.2 PWM1.3 CTS1 PIPESTAT1[1] 00

(0<<4) +

// 7:6 P2.3 GPIO Port 2.3 PWM1.4 DCD1 PIPESTAT2[1] 00

(0<<6) +

// 9:8 P2.4 GPIO Port 2.4 PWM1.5 DSR1 TRACESYNC[1] 00

(0<<8) +

// 11:10 P2.5 GPIO Port 2.5 PWM1.6 DTR1 TRACEPKT0[1] 00

(3<<10) + //DTR1

// 13:12 P2.6 GPIO Port 2.6 PCAP1.0 RI1 TRACEPKT1[1] 00

(0<<12) +

// 15:14 P2.7 GPIO Port 2.7 RD2 RTS1 TRACEPKT2[1] 00

(3<<14) + //RTS1

// 17:16 P2.8 GPIO Port 2.8 TD2 TXD2 TRACEPKT3[1] 00

(0<<16) +

// 19:18 P2.9 GPIO Port 2.9 U1CONNECT RXD2 EXTIN0[1] 00

(0<<18) +

// 21:20 P2.10 GPIO Port 2.10 EINT0 Reserved Reserved 00

(0<<20) +

// 23:22 P2.11 GPIO Port 2.11 EINT1 MCIDAT1 I2STX_CLK 00

(0<<22) +

// 25:24 P2.12 GPIO Port 2.12 EINT2 MCIDAT2 I2STX_WS 00

(0<<24) +

// 27:26 P2.13 GPIO Port 2.13 EINT3 MCIDAT3 I2STX_SDA 00

(0<<26) +

// 29:28 P2.14 Reserved Reserved Reserved Reserved 00

(0<<28) +

// 31:30 P2.15 Reserved Reserved Reserved Reserved 00

(0<<30);

/*

//настраиваем PINSEL5

PINSEL5=

// 1:0 P2.16 Reserved Reserved Reserved Reserved 00

(0<<0) +

// 3:2 P2.17 Reserved Reserved Reserved Reserved 00

(0<<2) +

// 5:4 P2.18 Reserved Reserved Reserved Reserved 00

(0<<4) +

// 7:6 P2.19 Reserved Reserved Reserved Reserved 00

(0<<6) +

// 9:8 P2.20 Reserved Reserved Reserved Reserved 00

(0<<8) +

// 11:10 P2.21 Reserved Reserved Reserved Reserved 00

(0<<10) +

// 13:12 P2.22 Reserved Reserved Reserved Reserved 00

(0<<12) +

// 15:14 P2.23 Reserved Reserved Reserved Reserved 00

(0<<14) +

// 17:16 P2.24 Reserved Reserved Reserved Reserved 00

(0<<16) +

// 19:18 P2.25 Reserved Reserved Reserved Reserved 00

(0<<18) +

// 21:20 P2.26 Reserved Reserved Reserved Reserved 00

(0<<20) +

// 23:22 P2.27 Reserved Reserved Reserved Reserved 00

(0<<22) +

// 25:24 P2.28 Reserved Reserved Reserved Reserved 00

(0<<24) +

// 27:26 P2.29 Reserved Reserved Reserved Reserved 00

(0<<26) +

// 29:28 P2.30 Reserved Reserved Reserved Reserved 00

(0<<28) +

// 31:30 P2.31 Reserved Reserved Reserved Reserved 00

(0<<30);

*/

//настраиваем PINSEL6

PINSEL6=

// 1:0[1] P3.0 GPIO Port 3.0 D0 Reserved Reserved 00

(0<<0) +

// 3:2[1] P3.1 GPIO Port 3.1 D1 Reserved Reserved 00

(0<<2) +

// 5:4[1] P3.2 GPIO Port 3.2 D2 Reserved Reserved 00

(0<<4) +

// 7:6[1] P3.3 GPIO Port 3.3 D3 Reserved Reserved 00

(0<<6) +

// 9:8[1] P3.4 GPIO Port 3.4 D4 Reserved Reserved 00

(0<<8) +

// 11:10[1] P3.5 GPIO Port 3.5 D5 Reserved Reserved 00

(0<<10) +

// 13:12[1] P3.6 GPIO Port 3.6 D6 Reserved Reserved 00

(0<<12) +

// 15:14[1] P3.7 GPIO Port 3.7 D7 Reserved Reserved 00

(0<<14) +

// 17:16 P3.8 Reserved Reserved Reserved Reserved 00

(0<<16) +

// 19:18 P3.9 Reserved Reserved Reserved Reserved 00

(0<<18) +

// 21:20 P3.10 Reserved Reserved Reserved Reserved 00

(0<<20) +

// 23:22 P3.11 Reserved Reserved Reserved Reserved 00

(0<<22) +

// 25:24 P3.12 Reserved Reserved Reserved Reserved 00

(0<<24) +

// 27:26 P3.13 Reserved Reserved Reserved Reserved 00

(0<<26) +

// 29:28 P3.14 Reserved Reserved Reserved Reserved 00

(0<<28) +

// 31:30 P3.15 Reserved Reserved Reserved Reserved 00

(0<<30);

 

//настраиваем PINSEL7

PINSEL7=

// 1:0 P3.16 Reserved Reserved Reserved Reserved 00

(0<<0) +

// 3:2 P3.17 Reserved Reserved Reserved Reserved 00

(0<<2) +

// 5:4 P3.18 Reserved Reserved Reserved Reserved 00

(0<<4) +

// 7:6 P3.19 Reserved Reserved Reserved Reserved 00

(0<<6) +

// 9:8 P3.20 Reserved Reserved Reserved Reserved 00

(0<<8) +

// 11:10 P3.21 Reserved Reserved Reserved Reserved 00

(0<<10) +

// 13:12 P3.22 Reserved Reserved Reserved Reserved 00

(0<<12) +

// 15:14[1] P3.23 GPIO Port 3.23 Reserved CAP0.0 PCAP1.0 00

(0<<14) +

// 17:16[1] P3.24 GPIO Port 3.24 Reserved CAP0.1 CAP1.1 00

(0<<16) +

// 19:18 P3.25 GPIO Port 3.25 Reserved MAT0.0 PWM1.2 00

(0<<18) +

// 21:20 P3.26 GPIO Port 3.26 Reserved MAT0.1 PWM1.3 00

(0<<20) +

// 23:22 P3.27 Reserved Reserved Reserved Reserved 00

(0<<22) +

// 25:24 P3.28 Reserved Reserved Reserved Reserved 00

(0<<24) +

// 27:26 P3.29 Reserved Reserved Reserved Reserved 00

(0<<26) +

// 29:28 P3.30 Reserved Reserved Reserved Reserved 00

(0<<28) +

// 31:30 P3.31 Reserved Reserved Reserved Reserved 00

(0<<30);

 

//настраиваем PINSEL8

PINSEL8=

// 1:0[1] P4.0 GPIO Port 4.0 A0 Reserved Reserved 00

(0<<0) +

// 3:2[1] P4.1 GPIO Port 4.1 A1 Reserved Reserved 00

(0<<2) +

// 5:4[1] P4.2 GPIO Port 4.2 A2 Reserved Reserved 00

(0<<4) +

// 7:6[1] P4.3 GPIO Port 4.3 A3 Reserved Reserved 00

(0<<6) +

// 9:8[1] P4.4 GPIO Port 4.4 A4 Reserved Reserved 00

(0<<8) +

// 11:10[1] P4.5 GPIO Port 4.5 A5 Reserved Reserved 00

(0<<10) +

// 13:12[1] P4.6 GPIO Port 4.6 A6 Reserved Reserved 00

(0<<12) +

// 15:14[1] P4.7 GPIO Port 4.7 A7 Reserved Reserved 00

(0<<14) +

// 17:16[1] P4.8 GPIO Port 4.8 A8 Reserved Reserved 00

(0<<16) +

// 19:18[1] P4.9 GPIO Port 4.9 A9 Reserved Reserved 00

(0<<18) +

// 21:20[1] P4.10 GPIO Port 4.10 A10 Reserved Reserved 00

(0<<20) +

// 23:22[1] P4.11 GPIO Port 4.11 A11 Reserved Reserved 00

(0<<22) +

// 25:24[1] P4.12 GPIO Port 4.12 A12 Reserved Reserved 00

(0<<24) +

// 27:26[1] P4.13 GPIO Port 4.13 A13 Reserved Reserved 00

(0<<26) +

// 29:28[1] P4.14 GPIO Port 4.14 A14 Reserved Reserved 00

(0<<28) +

// 31:30[1] P4.15 GPIO Port 4.15 A15 Reserved Reserved 00

(0<<30);

 

//настраиваем PINSEL9

PINSEL9=

// 1:0 P4.16 Reserved Reserved Reserved Reserved 00

(0<<0) +

// 3:2 P4.17 Reserved Reserved Reserved Reserved 00

(0<<2) +

// 5:4 P4.18 Reserved Reserved Reserved Reserved 00

(0<<4) +

// 7:6 P4.19 Reserved Reserved Reserved Reserved 00

(0<<6) +

// 9:8 P4.20 Reserved Reserved Reserved Reserved 00

(0<<8) +

// 11:10 P4.21 Reserved Reserved Reserved Reserved 00

(0<<10) +

// 13:12 P4.22 Reserved Reserved Reserved Reserved 00

(0<<12) +

// 15:14 P4.23 Reserved Reserved Reserved Reserved 00

(0<<14) +

// 17:16[1] P4.24 GPIO Port 4.24 A24 OE Reserved 00

(0<<16) +

// 19:18[1] P4.25 GPIO Port 4.25 A25 WE Reserved 00

(0<<18) +

// 21:20 P4.26 Reserved Reserved Reserved Reserved 00

(0<<20) +

// 23:22 P4.27 Reserved Reserved Reserved Reserved 00

(0<<22) +

// 25:24 P4.28 GPIO Port 4.28 Reserved MAT2.0 TXD3 00

(3<<24) +

// 27:26 P4.29 GPIO Port 4.29 Reserved MAT2.1 RXD3 00

(3<<26) +

// 29:28[1] P4.30 GPIO Port 4.30 CS0 Reserved Reserved 00

(0<<28) +

// 31:30[1] P4.31 GPIO Port 4.31 CS1 Reserved Reserved 00

(0<<30);

 

//настраиваем PINSEL10

PINSEL10 = 0;

 

//включение внешнего тактирования

SCS=0x20;

//SCS=0x21;

CLKSRCSEL=1;//

 

//активируем UART3

PCONP &= ~PCONP_PCEMC_MASK;

PCONP|=PCONP_PCUART3_MASK;

 

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вчера пробавал непомогает.

пока принял решение использовать в качестве GPIO только

порты 0 и 1.

с ними проблем нет.

единственное они работают только при SCS &= ~1;

разбираться буду позже время поджимает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

еще 2 предположения. для портов,на которых висит usb направление ставится ТОЛЬКО для обеих ног.. т.е. нога usb+ на вход и usb- на выход в режиме FIO НЕ РАБОТАЮТ. либо обе вход, либо обе выход. второе. ETM надо ОТКЛЮЧИТЬ, причем в самом начале программы. PINSEL10 &=~ (1<<3); вот так

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А причём тут "USB+" и "USB-"?

Они располжены на "P0", а умня неполучается работать с "P2" и "P3".

А "ETM" я откльчаю в начале "main", а затем делаю все остальные настройки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема заклю чается в следую щем.

Альтернативные функции на этих портах работают, а когда переключаю их в режим GPIO они неперекльчаются.

после записи значения в регистры FIO2DIR и FIO3DIR в них остаётся 0.

Кристалл - LPC2368(ранее стоял 2366)

Среда Keil uVision3 v3.53 (mdk3.11)

Использую порты 2 и 3 как с альтернативными функциями так и GPIO.

ПРОБЛЕМ НЕ БЫЛО!!!

 

#define PIN_SA        0x00000004    // P2.2 Вход опроса клавиатуры
#define KEY_PRESS    (FIO2PIN & PIN_SA) == 0    // Проверка нажатия клавиши
...
#define EOC        (FIO2PIN & PIN_EOC) == 0
...
#define PIN_RD1        0x02000000    // P3.25 Вход датчика
...

// Port Configuration
// Порт 0
PINSEL0 = 0x00500050;    
PINSEL1 = 0x15400022;
// Порт 1
PINSEL2 = 0x00;    
PINSEL3 = 0x00;    // все GPIO
// Порт 2
PINSEL4 = 0x00000005;
PINSEL5 = 0x00;    // все GPIO
// Порт 3
PINSEL6 = 0x00;    
PINSEL7 = 0x00;    // все - GPIO
// Порт 4
PINSEL8 = 0x00;    
PINSEL9 = 0x0F000000;    

//Port Direction
IODIR0 = 0xFF1AF5F4;    // Port 0
IODIR1 = 0x00000302;    // Port 1
FIO2DIR = 0x00000003;    // Port 2
FIO3DIR = 0x00000000;    // Port 3
FIO4DIR = 0x10000000;    // Port 4 
...

 

Возможно, у Вас глюк самой IDE, например, у меня были проблемы с UART 2,3 когда стоял Keil 3.03 или 3.05. Сейчас стоит 3.11, проблем нет, обновляться пока не собираюсь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...