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

Salamander

Участник*
  • Постов

    662
  • Зарегистрирован

  • Посещение

Весь контент Salamander


  1. Я без претензий, никто не знает, ну и ладно. Просто интересно, для чего был задан вопрос? Я думал, он нужен для ответа на мой вопрос. Я ответил. МОлчание.
  2. proskit 608-384N http://micromir.ucoz.ru/publ/66-1-0-594 Да, поправлюсь - не тоньше AWG28, а тоньше AWG30 У проскита тоньше нет. А провод под мой контакт - 0,032-0,08 мм2.
  3. Нужно обжать вот такое http://shop.dart.ru/index.php?productid=17489 Пробовал кримпер на AWG28 - корежит контакты.
  4. |1|1|1 Ну что жвы такой упертый? НА грани с некомпетентностью. В микроконтроллере нет регистра TI_CCxxx0_IOCFG2. Я не спрашивал, как заставить конкретный контроллер читать и писать регистры - с этим у меня проблем нет. ВОпрос был чисто по использованию конкретного радитрансивера. Уважаемый! Я создал тему в этом разделе, потому что здесь больше всего людей, которые занимаются RF, а значит здесь больше всего людей, которые имели счастье работать с CC2500. Предлагаете создавать подобные темы в разделе AVR? Много ли советчиков найдется? Ну не виноват я, что схемные вопросы в CC1101 решены разработчиками полностью. С вами не согласится действительность - прошу оценить список тем, где встречается CC1101 и прикинуть процент тех, которые создаются в этом разделе: http://electronix.ru/forum/index.php?act=S...c1101&st=50
  5. Уже разобрался. Был кривой заголовок, в который вместо адреса одного из регистров написано его желаемое значение. Скачал библиотеку с форума одного. Надеюсь, стало понятнее, что моя тема все-таки имеет отношение к данному разделу?
  6. Кто нибудь сталкивался с такой проблемой? У меня есть платы и с CC2500 и c CC1101 - одна и та же картина. ПРограммирую регистр на OSC/192 - на GDO2 лог.0, а из регистра читается 0x00. Даже если его не трогать - по умолчанию 0x29 должно быть, а там все равно 0x00. Весь код приводить не буду, вот фрагменты: void writeRFSettings(void) { // Write register settings TI_CC_SPIWriteReg(TI_CCxxx0_FSCTRL1,0x0c); TI_CC_SPIWriteReg(TI_CCxxx0_FSCTRL0,0x00); TI_CC_SPIWriteReg(TI_CCxxx0_FREQ2,0x5B); TI_CC_SPIWriteReg(TI_CCxxx0_FREQ1,0xFB); TI_CC_SPIWriteReg(TI_CCxxx0_FREQ0,0x04);//04 rx 7c jeep TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG4,0x2d); TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG3,0x36); TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG2,0x73); TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG1,0xc2); TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG0,0xEF); TI_CC_SPIWriteReg(TI_CCxxx0_CHANNR,0x00); TI_CC_SPIWriteReg(TI_CCxxx0_DEVIATN,0x01); TI_CC_SPIWriteReg(TI_CCxxx0_FREND1,0x56); TI_CC_SPIWriteReg(TI_CCxxx0_FREND0,0x10); TI_CC_SPIWriteReg(TI_CCxxx0_MCSM2,0x07); TI_CC_SPIWriteReg(TI_CCxxx0_MCSM1,0x3c);//30 TI_CC_SPIWriteReg(TI_CCxxx0_MCSM0,0x18); TI_CC_SPIWriteReg(TI_CCxxx0_FOCCFG,0x15); TI_CC_SPIWriteReg(TI_CCxxx0_BSCFG,0x6C); TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL2,0xc3); TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL1,0x00); TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL0,0x91); TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL3,0xea); TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL2,0x0A); TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL1,0x00); TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL0,0x11); TI_CC_SPIWriteReg(TI_CCxxx0_FSTEST,0x59); TI_CC_SPIWriteReg(TI_CCxxx0_TEST2,0x8f); TI_CC_SPIWriteReg(TI_CCxxx0_TEST1,0x21); TI_CC_SPIWriteReg(TI_CCxxx0_TEST0,0x0B); TI_CC_SPIWriteReg(TI_CCxxx0_IOCFG2,0x3F); TI_CC_SPIWriteReg(TI_CCxxx0_IOCFG0,0x3F); TI_CC_SPIWriteReg(TI_CCxxx0_PKTCTRL1,0x0C);//05 TI_CC_SPIWriteReg(TI_CCxxx0_PKTCTRL0,0x0D); TI_CC_SPIWriteReg(TI_CCxxx0_ADDR,0x01); TI_CC_SPIWriteReg(TI_CCxxx0_PKTLEN,0x00); TI_CC_SPIWriteReg(TI_CCxxx0_FIFOTHR,0x07); } TI_CC_SPISetup(); // Initialize SPI port TI_CC_PowerupResetCCxxxx(); // Reset CCxxxx writeRFSettings(); // Write RF settings to config reg TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE, paTable, paTableLen);//Write PATABLE st=TI_CC_SPIReadStatus(TI_CCxxx0_IOCFG2); // sprintf(str," 0x%.2X",st); WriteString(0,40,str,BLUE); для длинных фрагментов кода используйте тэг "codebox" вместо "code". l1l1l1
  7. Ни то, ни другое, ни третье. Причина была до смешного проста - нечищенная китайская бибилотека от LCD. ОДному китайскому богу известно, зачем они задействовали там тот же пин, что я использовал для FAULT, комментарии на китайском. А дисплей инициализировался после зарядки.
  8. Уточню... все-таки не к земле притянут SHDN. На нем 0.2 вольт. Буду искать коротыш.
  9. Решилась проблема. Как я и предполагал - напряжения не хватало. За кучей других проблем я просто упустил из виду очевидное. Блока подходящего не нашел, поставил временно SEPIC, настроил на 15 вольт - все ОК. Непонятки только с индикацией - FAULT все время в нуле (притянут к земле). Хотя батарея заряжается, индикаторы FASTCHG и FULLCHG мигают как надо. Не помогает даже включение режима SHDN. То есть зарядка при этом прекращаяется. Но FAULT притянут к земле.. Что может быть причиной?
  10. Да я уже разобрался, дело было не в RTC.
  11. Хочу использовать PC13 и PC14 указанного контроллера. Настраиваю ножки на выход, подаю импульсы, на выходе импульсов нет. При ощупывании осциллографом создается впечатление, что они настроены на вход, висящий в воздухе. На этих же ножках RTC. Я их не инициализировал, попытался покопаться в стартапе - не разобрался. Если они инициализированы по умолчанию, то где их отключать?
  12. http://www.cutedigi.com/development-tools/...ouchscreen.html не совсем понял значение бита ORG в этом регистре. Куда-то, по идее, перемещает начало. А детально? А в вашем документе - все примеры одной ориентации... Вот как у меня: oid LCD_Init(void) { lcd_rst(); LCD_WR_CMD(0x00E3, 0x3008); // Set internal timing LCD_WR_CMD(0x00E7, 0x0012); // Set internal timing LCD_WR_CMD(0x00EF, 0x1231); // Set internal timing LCD_WR_CMD(0x0000, 0x0001); // Start Oscillation LCD_WR_CMD(0x0001, 0x0100); // set SS and SM bit LCD_WR_CMD(0x0002, 0x0700); // set 1 line inversion LCD_WR_CMD(0x0003, 0x1030); // set GRAM write direction and BGR=0,262K colors,1 transfers/pixel. LCD_WR_CMD(0x0004, 0x0000); // Resize register LCD_WR_CMD(0x0008, 0x0202); // set the back porch and front porch LCD_WR_CMD(0x0009, 0x0000); // set non-display area refresh cycle ISC[3:0] LCD_WR_CMD(0x000A, 0x0000); // FMARK function LCD_WR_CMD(0x000C, 0x0000); // RGB interface setting LCD_WR_CMD(0x000D, 0x0000); // Frame marker Position LCD_WR_CMD(0x000F, 0x0000); // RGB interface polarity //Power On sequence LCD_WR_CMD(0x0010, 0x0000); // SAP, BT[3:0], AP, DSTB, SLP, STB LCD_WR_CMD(0x0011, 0x0007); // DC1[2:0], DC0[2:0], VC[2:0] LCD_WR_CMD(0x0012, 0x0000); // VREG1OUT voltage LCD_WR_CMD(0x0013, 0x0000); // VDV[4:0] for VCOM amplitude Delay(200); // Dis-charge capacitor power voltage LCD_WR_CMD(0x0010, 0x1690); // SAP, BT[3:0], AP, DSTB, SLP, STB LCD_WR_CMD(0x0011, 0x0227); // R11h=0x0221 at VCI=3.3V, DC1[2:0], DC0[2:0], VC[2:0] Delay(50); // Delay 50ms LCD_WR_CMD(0x0012, 0x001C); // External reference voltage= Vci; Delay(50); // Delay 50ms LCD_WR_CMD(0x0013, 0x1800); // R13=1200 when R12=009D;VDV[4:0] for VCOM amplitude LCD_WR_CMD(0x0029, 0x001C); // R29=000C when R12=009D;VCM[5:0] for VCOMH LCD_WR_CMD(0x002B, 0x000D); // Frame Rate = 91Hz Delay(50); // Delay 50ms LCD_WR_CMD(0x0020, 0x0000); // GRAM horizontal Address LCD_WR_CMD(0x0021, 0x0000); // GRAM Vertical Address // ----------- Adjust the Gamma Curve ----------// LCD_WR_CMD(0x0030, 0x0007); LCD_WR_CMD(0x0031, 0x0302); LCD_WR_CMD(0x0032, 0x0105); LCD_WR_CMD(0x0035, 0x0206); LCD_WR_CMD(0x0036, 0x0808); LCD_WR_CMD(0x0037, 0x0206); LCD_WR_CMD(0x0038, 0x0504); LCD_WR_CMD(0x0039, 0x0007); LCD_WR_CMD(0x003C, 0x0105); LCD_WR_CMD(0x003D, 0x0808); //------------------ Set GRAM area ---------------// LCD_WR_CMD(0x0050, 0x0000); // Horizontal GRAM Start Address LCD_WR_CMD(0x0051, 0x00EF); // Horizontal GRAM End Address LCD_WR_CMD(0x0052, 0x0000); // Vertical GRAM Start Address LCD_WR_CMD(0x0053, 0x013F); // Vertical GRAM Start Address //LCD_WR_CMD(0x0051, 0x0000); // Horizontal GRAM Start Address //LCD_WR_CMD(0x0050, 0x00EF); // Horizontal GRAM End Address //LCD_WR_CMD(0x0053, 0x0000); // Vertical GRAM Start Address //LCD_WR_CMD(0x0052, 0x013F); // Vertical GRAM Start Address LCD_WR_CMD(0x0060, 0xA700); // Gate Scan Line LCD_WR_CMD(0x0061, 0x0001); // NDL,VLE, REV LCD_WR_CMD(0x006A, 0x0000); // set scrolling line //-------------- Partial Display Control ---------// LCD_WR_CMD(0x0080, 0x0000); LCD_WR_CMD(0x0081, 0x0000); LCD_WR_CMD(0x0082, 0x0000); LCD_WR_CMD(0x0083, 0x0000); LCD_WR_CMD(0x0084, 0x0000); LCD_WR_CMD(0x0085, 0x0000); //-------------- Panel Control -------------------// LCD_WR_CMD(0x0090, 0x0010); LCD_WR_CMD(0x0092, 0x0000); LCD_WR_CMD(0x0093, 0x0003); LCD_WR_CMD(0x0095, 0x0110); LCD_WR_CMD(0x0097, 0x0000); LCD_WR_CMD(0x0098, 0x0000); LCD_WR_CMD(0x0007, 0x0133); // 262K color and display ON //ini(); }
  13. Почитал еще... Поменял биты. Картинка перевернулась. А вот текст почему-то оказался в той же ориентиции, что и раньше. В подпрограмме вывода текста не нашел ничего, влияющего на ориентацию. А библиотека у меня - ucGUI
  14. в смысле, о какой библиотеке? Часть программы, отвечающая за дисплей. поскольку сам нашел кое-что, уточню вопрос. Что-нибудь кроме GRAM Access Direction Setting (регистр 03h) менять надо? Я поменял - на результате не сказалось.
  15. дисплей ILI9325. Как повернуть изображение на 180 градусов? Есть ли команда специальная? Или же нужно переписывать библиотеку?
  16. Даташит выкладываю. Господа, раскидыванием битов я добился работы дисплея в ногодрыгательном режиме. То есть исправность контроллера, исправность дисплея и правильность монтажа подтвердились. Помогите что ли с настройкой смаого FSMC. Есть в частности два вопроса: 1. У меня 100-ногий контроллер, соответственно, использую адресную линию A16. Чему в этом случае должен быть равен параметр FSMC_NORSRAMInitStructure.FSMC_DataAddressMux - Enable или Disable? В интернете крайне противоречивая информация об этом. 2. Адрес первого банка - правильно ли я указал #define LCD_BASE ((u32)0x60020000) #define LCD ((LCD_TypeDef *) LCD_BASE) Вот инициализация: /******************************************************************************* * Function Name : RESET_line_config * Description : Configures LCD Reset * Input : None * Output : None * Return : None *******************************************************************************/ void RESET_line_config(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOD, &GPIO_InitStructure); } /******************************************************************************* * Function Name : LCD_CtrlLinesConfig * Description : Configures LCD Control lines (FSMC Pins) in alternate function Push-Pull mode. * Input : None * Output : None * Return : None *******************************************************************************/ void LCD_CtrlLinesConfig(void) { GPIO_InitTypeDef GPIO_InitStructure; /* Enable FSMC, GPIOD, GPIOE, GPIOF, GPIOG and AFIO clocks */ RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO, ENABLE); /* Set PD.00(D2), PD.01(D3), PD.04(NOE), PD.05(NWE), PD.07(NE1/CS), PD.08(D13), PD.09(D14), PD.10(D15), PD.11(A16/RS) PD.14(D0), PD.15(D1) as alternate function push pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_14 | GPIO_Pin_15; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOD, &GPIO_InitStructure); /* Set PE.07(D4), PE.08(D5), PE.09(D6), PE.10(D7), PE.11(D8), PE.12(D9), PE.13(D10), PE.14(D11), PE.15(D12) as alternate function push pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOE, &GPIO_InitStructure); } /******************************************************************************* * Function Name : LCD_FSMCConfig * Description : Configures the Parallel interface (FSMC) for LCD(Parallel mode) * Input : None * Output : None * Return : None *******************************************************************************/ void LCD_FSMCConfig(void) { FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure; FSMC_NORSRAMTimingInitTypeDef p; /*-- FSMC Configuration ------------------------------------------------------*/ /* FSMC_Bank1_NORSRAM4 timing configuration */ p.FSMC_AddressSetupTime = 1; p.FSMC_AddressHoldTime = 0; p.FSMC_DataSetupTime = 2; p.FSMC_BusTurnAroundDuration = 0; p.FSMC_CLKDivision = 0; p.FSMC_DataLatency = 0; p.FSMC_AccessMode = FSMC_AccessMode_B; /* FSMC_Bank1_NORSRAM4 configured as follows: - Data/Address MUX = Disable - Memory Type = SRAM - Data Width = 16bit - Write Operation = Enable - Extended Mode = Disable - Asynchronous Wait = Disable */ FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1; FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable; FSMC_NORSRAMInitStructure.FSMC_MemoryType = 0x00; //FSMC_MemoryType_SRAM; FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b; FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable; FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low; FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable; FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState; FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable; FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable; FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable; FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable; FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable; FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p; FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p; FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure); /* Enable FSMC_Bank1_NORSRAM1 */ FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE); } /******************* © COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/ Ну и запуск - два варианта: void LCD_Init(void) { static uint16_t DeviceCode; unsigned char i; /* Configure the LCD Control pins --------------------------------------------*/ LCD_CtrlLinesConfig(); /* Configure the FSMC Parallel interface -------------------------------------*/ LCD_FSMCConfig(); LCD_WriteReg(0x0000,0x0001); Delay(5); // LCD_Delay 50 ms DeviceCode = LCD_ReadReg(0x0000); //DeviceCode=0x9325; if(DeviceCode==0x9325||DeviceCode==0x9328)//ILI9325 { LCD_WriteReg(0x00e5,0x78F0); // LCD_WriteReg(0x0000,0x0001); LCD_WriteReg(0x0001,0x0100); LCD_WriteReg(0x0002,0x0700); LCD_WriteReg(0x0003,0x1030); LCD_WriteReg(0x0004,0x0000); LCD_WriteReg(0x0008,0x0202); LCD_WriteReg(0x0009,0x0000); LCD_WriteReg(0x000a,0x0000); LCD_WriteReg(0x000c,0x0001); LCD_WriteReg(0x000d,0x0000); LCD_WriteReg(0x000f,0x0000); //Power On sequence // LCD_WriteReg(0x0010,0x0000); LCD_WriteReg(0x0011,0x0007); LCD_WriteReg(0x0012,0x0000); LCD_WriteReg(0x0013,0x0000); LCD_WriteReg(0x0007,0x0001); Delay(5); LCD_WriteReg(0x0010,0x1690); LCD_WriteReg(0x0011,0x0227); Delay(5); LCD_WriteReg(0x0012,0x009d); Delay(5); LCD_WriteReg(0x0013,0x1900); LCD_WriteReg(0x0029,0x0025); LCD_WriteReg(0x002b,0x000d); Delay(5); LCD_WriteReg(0x0020,0x0000); LCD_WriteReg(0x0021,0x0000); Delay(5); //Ù¤ÂíУÕý LCD_WriteReg(0x0030,0x0007); LCD_WriteReg(0x0031,0x0303); LCD_WriteReg(0x0032,0x0003); LCD_WriteReg(0x0035,0x0206); LCD_WriteReg(0x0036,0x0008); LCD_WriteReg(0x0037,0x0406); LCD_WriteReg(0x0038,0x0304); LCD_WriteReg(0x0039,0x0007); LCD_WriteReg(0x003c,0x0602); LCD_WriteReg(0x003d,0x0008); Delay(5); LCD_WriteReg(0x0050,0x0000); LCD_WriteReg(0x0051,0x00ef); LCD_WriteReg(0x0052,0x0000); LCD_WriteReg(0x0053,0x013f); LCD_WriteReg(0x0060,0xa700); LCD_WriteReg(0x0061,0x0001); LCD_WriteReg(0x006a,0x0000); LCD_WriteReg(0x0080,0x0000); LCD_WriteReg(0x0081,0x0000); LCD_WriteReg(0x0082,0x0000); LCD_WriteReg(0x0083,0x0000); LCD_WriteReg(0x0084,0x0000); LCD_WriteReg(0x0085,0x0000); LCD_WriteReg(0x0090,0x0010); LCD_WriteReg(0x0092,0x0600); LCD_WriteReg(0x0007,0x0133); } else if(DeviceCode==0x9320||DeviceCode==0x9300) { LCD_WriteReg(0x00,0x0000); LCD_WriteReg(0x01,0x0100); //Driver Output Contral. LCD_WriteReg(0x02,0x0700); //LCD Driver Waveform Contral. LCD_WriteReg(0x03,0x1030);//Entry Mode Set. //LCD_WriteReg(0x03,0x1018); //Entry Mode Set. LCD_WriteReg(0x04,0x0000); //Scalling Contral. LCD_WriteReg(0x08,0x0202); //Display Contral 2.(0x0207) LCD_WriteReg(0x09,0x0000); //Display Contral 3.(0x0000) LCD_WriteReg(0x0a,0x0000); //Frame Cycle Contal.(0x0000) LCD_WriteReg(0x0c,(1<<0)); //Extern Display Interface Contral 1.(0x0000) LCD_WriteReg(0x0d,0x0000); //Frame Maker Position. LCD_WriteReg(0x0f,0x0000); //Extern Display Interface Contral 2. Delay(10); LCD_WriteReg(0x07,0x0101); //Display Contral. Delay(10); LCD_WriteReg(0x10,(1<<12)|(0<<8)|(1<<7)|(1<<6)|(0<<4)); //Power Control 1.(0x16b0) LCD_WriteReg(0x11,0x0007); //Power Control 2.(0x0001) LCD_WriteReg(0x12,(1<<8)|(1<<4)|(0<<0)); //Power Control 3.(0x0138) LCD_WriteReg(0x13,0x0b00); //Power Control 4. LCD_WriteReg(0x29,0x0000); //Power Control 7. LCD_WriteReg(0x2b,(1<<14)|(1<<4)); LCD_WriteReg(0x50,0); //Set X Star //ˮƽGRAMÖÕֹλÖÃSet X End. LCD_WriteReg(0x51,239); //Set Y Star LCD_WriteReg(0x52,0); //Set Y End.t. LCD_WriteReg(0x53,319); // LCD_WriteReg(0x60,0x2700); //Driver Output Control. LCD_WriteReg(0x61,0x0001); //Driver Output Control. LCD_WriteReg(0x6a,0x0000); //Vertical Srcoll Control. LCD_WriteReg(0x80,0x0000); //Display Position? Partial Display 1. LCD_WriteReg(0x81,0x0000); //RAM Address Start? Partial Display 1. LCD_WriteReg(0x82,0x0000); //RAM Address End-Partial Display 1. LCD_WriteReg(0x83,0x0000); //Displsy Position? Partial Display 2. LCD_WriteReg(0x84,0x0000); //RAM Address Start? Partial Display 2. LCD_WriteReg(0x85,0x0000); //RAM Address End? Partial Display 2. LCD_WriteReg(0x90,(0<<7)|(16<<0)); //Frame Cycle Contral.(0x0013) LCD_WriteReg(0x92,0x0000); //Panel Interface Contral 2.(0x0000) LCD_WriteReg(0x93,0x0001); //Panel Interface Contral 3. LCD_WriteReg(0x95,0x0110); //Frame Cycle Contral.(0x0110) LCD_WriteReg(0x97,(0<<8)); // LCD_WriteReg(0x98,0x0000); //Frame Cycle Contral. LCD_WriteReg(0x07,0x0173); //(0x0173) Delay(10); } LCD_Clear(0x0FF0); } В main.c GPIOD->BSRR =GPIO_BSRR_BR12; //передергиваем RESET delay_ms(50); GPIOD->BSRR =GPIO_BSRR_BS12; delay_ms(50); LCD_PowerOn(); LCD_DisplayOn(); STM3210E_LCD_Init(); /* Clear the LCD */ LCD_Clear(0x0000);
  17. Я уже, в принципе, с помощью кувалды и чертовой матери раскидал байт на биты. Но постфактум интересно - как же надо было?
  18. Как в KEIL , в функции sprintf представить число в двоичном виде? %b - не работает...
  19. КТо рано встает, тому бог подает. Встал в 5 утра и копался.... ПРозвонил каждый бит, проверил пайку, убедился что каждый бит попадает на шлейф дисплея - не работает. И вот только что, похоже причину нашел. Оказывается, эти китайские дисплеи очень тонкие, чувственные натуры - требуют чтения данных из себя. Я взял китайскую плату, с заведомо рабочим железом и кодом. Функция LCD_ReadReg встречается один лишь раз - в чтении идентификатора (тип дисплея). А дальше, в зависимости от типа дисплея соответствующий код. Я закомментировал LCD_ReadReg и указал тип дисплея - не работает. Я даже тип дисплея предварительно прочитал. В FSMC библиотеке, что я использовал, тип дисплея не читался.
  20. Так я не с панелью работаю, а с собственной платой. Ссылка на нее http://electronix.ru/forum/index.php?showtopic=109835 ОК. Тогда придется раскидывать 16 бит слова данных... Я с утра уже голову ломаю - что-то не получается. DA0-DA15 разкиданы по портам D и E. С портом E у меня получилось писать биты слова 4-12 в биты порта 7-15: GPIOE=((СЛОВО_ДАННЫХ <<3) & 0xFF80); А как с портом D быть? Там должно быть так: А именно GPIOD.0 = бит_данных.2 GPIOD.1 - бит_данных.3 GPIOD.8 - бит_данных.13 GPIOD.9 - бит_данных.14 GPIOD.10 - бит_данных.15 GPIOD.14 - бит_данных.0 GPIOD.15 - бит_данных.1 Подскажите пожалуйста. Тихо сам с собою.... Получилось писать вот так: Теперь попробую читать...
  21. В моем китайском дисплее нет SPI. Хотя по даташиту - SPI там есть. Китайцы сэкономили. Не может ли хотя бы теоретически так быть, что экономное производство данного дисплея китайцами делало невозможным исползование FSMC?
  22. пищит негромко. если лежит на столе, то хорошо слышно в абсолютной тишине. Но пищит с максимальной для себя амплитудой - на осциллограмме видно, что иголоки до земли доходят. Если взглянуть нас структурную схему микросхемы - там два мосфета на LX. По идее, такая осциллограмма должна быть когда большую часть времени открыт верхний мосфет, и иногда открывается нижний. А осциллограмма похожа на ШИМ, стремящийся к 99%. НАверное все- таки дело в нехватке входного напряжения. Вы какое напряжение зарядки устанавливали? И какое на вход подавали?
  23. Ставил все как в даташите. Даже ESR учитывал. ОБратил внимание, что если нагрузка на SYSTEM_LOAD увеличивается, писк уменьшается. ПОдключал, там все гладко. Еще раз говорю - моя плата - практически копия eval_board. Даже типоразмер соблюден.
×
×
  • Создать...