|
TE-LPC2478LCD, Документация и примеры к плате |
|
|
|
Feb 2 2010, 20:19
|
Участник

Группа: Участник
Сообщений: 62
Регистрация: 5-05-06
Из: Геленджик
Пользователь №: 16 811

|
Есть диск от нее, ничего там правда хорошего, схема в DWG и PDF, PDF ы на все комплектующие. Есть пример прграммы для IAR с инициализацией диплея и SDRAM. Драйвер FTDI. DWGTrueViev видимо чтобы схему посмотреть. FlashMagic и IAR V5.20. И какието тесты в виде HEX файла. Все в куче 435 мег. Если что нужно пришлю. Или завтра в инет выложу в виде архива и дам ссылку. Брал одну из первых. Кстати они исправили свою ошибку с АЦП или так и продают с неработающим тачскрином ?
|
|
|
|
|
Feb 3 2010, 09:36
|
Местный
  
Группа: Свой
Сообщений: 316
Регистрация: 22-10-05
Пользователь №: 9 976

|
Цитата(Nick Nickl's @ Feb 2 2010, 23:19)  Брал одну из первых. Кстати они исправили свою ошибку с АЦП или так и продают с неработающим тачскрином ? Не знаю о каком именно ките Вы говорите и какую ошибку АЦП имеете в виду, но у меня TE-LPC2478LCD5.6, на которой по сигналам от тачскрина идет помеха частотой около 10 кГц. В итоге показания тачскрина сильно "дергаются". Я с этой проблемой особо не разбирался, поскольку сейчас нет необходимости в тачскрине, но мне просто интересно как другие решают этот вопрос.
|
|
|
|
|
Feb 3 2010, 13:24
|
Группа: Участник
Сообщений: 3
Регистрация: 27-05-09
Пользователь №: 49 610

|
В прикрепленном файле лежит пример работы платы TE-LPC2478 с платой TE-ADS1241. Вывод на экран измерений, выбор канала АЦП и коэффициента усиления, работа и калибровка тачскрина. Проект под ECLIPSE.
|
|
|
|
|
Feb 3 2010, 16:16
|
Местный
  
Группа: Свой
Сообщений: 316
Регистрация: 22-10-05
Пользователь №: 9 976

|
Цитата(VVS_2009 @ Feb 3 2010, 16:24)  В прикрепленном файле лежит пример работы платы TE-LPC2478 с платой TE-ADS1241. Вывод на экран измерений, выбор канала АЦП и коэффициента усиления, работа и калибровка тачскрина. И в каком же месте там калибровка и работа с тачскрином?
|
|
|
|
|
Feb 3 2010, 19:23
|
Участник

Группа: Участник
Сообщений: 62
Регистрация: 5-05-06
Из: Геленджик
Пользователь №: 16 811

|
Vref небыл никуда не подключен. Я обсуждал это с ними в коференции на сайте терры. Ониже там и признались в ошибке. http://www.terraelectronica.ru/board/index...=1306&st=38. Про 10кгц не знал. Но на лицо есть помеха. По горизонтали ее так и не отфильтровал, но для тыканья в крупные кнопки не мешает.
Сообщение отредактировал Nick Nickl's - Feb 3 2010, 19:35
|
|
|
|
|
Feb 4 2010, 14:56
|
иногда заглядывающий
   
Группа: Свой
Сообщений: 900
Регистрация: 18-05-05
Из: Зеленоград
Пользователь №: 5 170

|
Воопщем пол дня пытаемся запустить NOR внешнюю- дохлый номер. На нашем диске вообще никаких примеров по работе с ней нет, даже тестовых, а вот на том диске что в этой теме выкладывали выше есть вот такой пример: I520_SBCL2478P100_SDRAMFLASH.hex(смотрите аттач) Результат выполнения этой проги валит в терминал: Цитата **********Terraelectronica********** Board: SBC_L2478_Axxx ************************************ TestSystem: TEST INTERRUPT OK! TEST SDRAM ... TEST SDRAM OK! TEST FLASH ... Manufacturer Code: 00FF Device Code: FFFF TEST NOR FLASH FAILD! Сами пытались кое-что с нуля запустить, закончилось так же чтением кода производителя 0x00FF и кода девайса 0xFFFF. Воопщем не отладка а садо-маза какая-то выходит...
|
|
|
|
|
Feb 5 2010, 07:39
|
Участник

Группа: Участник
Сообщений: 62
Регистрация: 5-05-06
Из: Геленджик
Пользователь №: 16 811

|
Да работает. Я туда экранную заставку запихнул. Уже не помню где взял код, кажется из примеров IAR
//------------------------------------------------------------------------------
#define NOR_FLASH_SIZE 0x00400000 // M29DW323DT, 32Mbit(2M x 16 bit). #define NOR_FLASH_BASE 0x80000000 // 0x8000 0000 - 0x803F FFFF NOR FLASH
#define GET_ADDR(addr) (volatile WORD *)(NOR_FLASH_BASE | (addr<<1))
//#define SECTOR_SIZE 0x800 /* Must be 2048 ??? words for M29DW323D */ #define BLOCK_SIZE 0x10000 /* Must be 64K words for M29DW323D */
//#define SST_ID 0xBF /* SST Manufacturer's ID code */ //#define SST_39VF160 0x234B /* SST 39VF160 device code */
#define SST_ID 0x20 /* SST Manufacturer's ID code */ #define SST_M29DW323D 0x225F /* SST M29DW323DB device code */
#define PROGRAM_TIMEOUT 0x08000000
extern void NORFLASHInit( void ); extern void NORFLASHErase( void ); extern DWORD NORFLASHCheckID( void ); extern DWORD NORFLASHWriteWord( DWORD Addr, WORD Data ); extern DWORD ToggleBitCheck( DWORD Addr, WORD Data );
/***************************************************************************** ** Function name: NORFLASHInit ** ** Descriptions: initialize external NOR FLASH memory ** ** parameters: None ** ** Returned value: None ** *****************************************************************************/
void NORFLASHInit( void ) { // ************************************************************************** // * Initialize EMC for NOR FLASH // ************************************************************************** EMC_CTRL = 0x00000001;
PCONP |= 0x00000800; // Turn On EMC PCLK PINSEL4 = 0x50000000; PINSEL5 = 0x05050555; PINSEL6 = 0x55555555; PINSEL8 = 0x55555555; PINSEL9 = 0x50555555;
delayMs(1, 100); // use timer 1 EMC_STA_CFG0 = 0x00000081; EMC_STA_WAITWEN0 = 0x2; EMC_STA_WAITOEN0 = 0x2; EMC_STA_WAITRD0 = 0x1f; EMC_STA_WAITPAGE0 = 0x1f; EMC_STA_WAITWR0 = 0x1f; EMC_STA_WAITTURN0 = 0xf; delayMs(1, 10); // use timer 1 return; }
/***************************************************************************** ** Function name: ToggleBitCheck ** ** Descriptions: Toggle Bit check if the data is written or erased ** ** parameters: Address and Expected data ** ** Returned value: done(TRUE) or timeout(FALSE) ** *****************************************************************************/ DWORD ToggleBitCheck( DWORD Addr, WORD Data ) { volatile WORD *ip; WORD temp1, temp2; DWORD TimeOut = PROGRAM_TIMEOUT;
while( TimeOut > 0 ) { ip = GET_ADDR(Addr); temp1 = *ip; ip = GET_ADDR(Addr); temp2 = *ip; if ( (temp1 == temp2) && (temp1 == Data) ) { return( TRUE ); } TimeOut--; } return ( FALSE ); }
/***************************************************************************** ** Function name: NORFLASHCheckID ** ** Descriptions: Check ID from external NOR FLASH memory ** ** parameters: None ** ** Returned value: Flash ID read is correct or not ** *****************************************************************************/ DWORD NORFLASHCheckID( void ) { volatile WORD *ip; WORD SST_id1, SST_id2;
/* Issue the Software Product ID code to 39VF160 */ ip = GET_ADDR(0x5555); *ip = 0x00AA; ip = GET_ADDR(0x2AAA); *ip = 0x0055; ip = GET_ADDR(0x5555); *ip = 0x0090; delay(10);
/* Read the product ID from 39VF160 */ ip = GET_ADDR(0x0000); SST_id1 = *ip & 0x00FF; ip = GET_ADDR(0x0001); SST_id2 = *ip;
/* Issue the Soffware Product ID Exit code thus returning the 39VF160 */ /* to the read operating mode */ ip = GET_ADDR(0x5555); *ip = 0x00AA; ip = GET_ADDR(0x2AAA); *ip = 0x0055; ip = GET_ADDR(0x5555); *ip = 0x00F0; delay(10);
/* Check ID */ if ((SST_id1 == SST_ID) && (SST_id2 ==SST_M29DW323D)) return( TRUE ); else return( FALSE ); }
/***************************************************************************** ** Function name: NORFLASHErase ** ** Descriptions: Erase external NOR FLASH memory ** ** parameters: None ** ** Returned value: None ** *****************************************************************************/ void delayMs(U32 delayInMs); void NORFLASHErase( void ) { volatile WORD *ip;
ip = GET_ADDR(0x5555); *ip = 0x00AA; ip = GET_ADDR(0x2AAA); *ip = 0x0055; ip = GET_ADDR(0x5555); *ip = 0x0080; ip = GET_ADDR(0x5555); *ip = 0x00AA; ip = GET_ADDR(0x2AAA); *ip = 0x0055; ip = GET_ADDR(0x5555); *ip = 0x0010; delayMs(100); /* Use timer 1 */ return;
}
/***************************************************************************** ** Function name: NORFLASHWriteWord ** ** Descriptions: Program one 16-bit data into external NOR FLASH memory ** This "WORD" for the external flash is 16 bits!!! ** ** parameters: DWORD address and WORD data ** ** Returned value: Written successful or not ** *****************************************************************************/ DWORD NORFLASHWriteWord( DWORD Addr, WORD Data ) { volatile WORD *ip;
ip = GET_ADDR(0x5555); *ip = 0x00AA; ip = GET_ADDR(0x2aaa); *ip = 0x0055; ip = GET_ADDR(0x5555); *ip = 0x00A0; ip = GET_ADDR(Addr); /* Program 16-bit word */ *ip = Data; return ( ToggleBitCheck( Addr, Data ) ); }
/******************************************************************************** * ** End Of File ******************************************************************************** */
Сообщение отредактировал Nick Nickl's - Feb 5 2010, 07:44
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|