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

Utyff

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

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

  • Посещение

Репутация

0 Обычный

Информация о Utyff

  • Звание
    Участник
    Участник

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Посетители профиля

596 просмотров профиля
  1. Библиотеки для STM32

    Снипеты это и есть небоходимые sytem* и startup* файлы с макросами. И примеры/шаблоны их применения. Похоже ST отказалась от SPL для L0 и F0 серий и сделала снипеты. http://www.st.com/en/embedded-software/stm...roductId=LN1898
  2. А есть разница? :) На самом деле это была шутка. Пока мало кто понимает зачем нужны нейроные сети в ембеддед устройствах.
  3. Автопилот для дрона на нейронных сетях. Nvidia TX1 дорого стоит, но можно от АМД на коленке собрать.
  4. LCD + stm32f4 discovery

    китайцы много интересного пишут. Про работу с LCD нашел тут и тут
  5. LCD + stm32f4 discovery

    В документации на ssd1289 на стр. 72, я нашел "DISPLAY SETTING SEQUENCE". Тут пример есть И эта последовательность отличается от твоей :) Чудеса с этими контролерами..
  6. LCD + stm32f4 discovery

    Подсветка - это просто светодиод. Светодиодный "Hello World!" через ШИМ - это не проблема :) Про определение ID контроллера я нашел интересную статью - http://elty.pl/pl/n/3 Там же есть пример с определением и инициализацией разных дисплеев. Доверия не внушает, но может кому-то поможет.
  7. LCD + stm32f4 discovery

    Попробуй читать ID после первой записи в рег 00 ------- LCD_WriteReg(0x0000,0x0001); Delay(100); DeviceCode = LCD_ReadReg(0x0000); ------- У меня LCD не заработал. Пришли еще функции: LCD_CtrlLinesConfig(); LCD_FSMCConfig();
  8. LCD + stm32f4 discovery

    Уже неделю вожусь. Все пробовал. Спасибо за идею. Нашел нужный код. Теперь оказалось есть два контроллера HX8347-A и HX8347-D https://www.rockbox.org/wiki/pub/Main/Irive..._v02_090324.pdf http://www.displayfuture.com/Display/datas...ller/HX8347.pdf И они отличаются. У HX8347-D id-контроллера хранится в 00h регистре, а у HX8347-A в регистре 67h. У меня оба регистра возвращают не то что нужно.. Значит проблема в другом..
  9. LCD + stm32f4 discovery

    Как можно определить тип контроллера в LCD? Когда-то давно прикупил себе такой LCD: Model Number: TK1105# 2.4" TFT LCD Module Display + Touch Panel Screen Driver IC: SSD1289 (Note: The old Version <Come with HX8347 Controller> will be out of manufacture) Сейчас не могу запустить этот дисплей. После инициализации экран чистый, даже не мигает. Есть подозрение что контроллер не SSD1289. Но как это проверить? Нашел что: SSD1289 должен вернуть 8989h из регистра 00h, а HX8347 возвращает 47h из регистра 67h. Проверил оба регистра - возвращают не то. Запускаю на stm32f4 discovery, светодиоды выпаял, линию от USB PWR fault отключил. Подключен к FSMC 16bit. Провода по 10 см. Примеры брал от сюда: https://hubstub.ru/display/61-podklyuchenie...89-ili9341.html https://www.element14.com/community/groups/...y-hy32d-tft-lcd И еще - можете подсказать пример инициализации HX8347?
  10. Я сделал принципиальную схему в AD. Размер А3. Теперь нужно напечатать ее на листе А1. Нужна рамка по ГОСТ. Как это можно сделать?
  11. STM32f103 USB double buffer

    По моему ты что-то путаешь. FT232 стабильно тянет больше 2 мбит/сек (256 кбайт/с) У меня скорость 580 кбайт/сек или 4,6 мбит/сек.
  12. STM32f103 USB double buffer

    Я переделал стандартный пример VirtualComport_Loopback на работу с USB double buffer. Но скорость передачи не изменилась ~550 кб/сек. Нормального примера на Endpoint_IN Double buffer я не смог найти. Кто имел опыт с double buffer, подскажите что не так делаю? Изменил три файла. В usb_conf.h добавил один буфер и сдвинул остальные ///// usb_conf.h //#define ENDP1_TXADDR (0xC0) #define ENDP1_BUF0ADDR (0xC0) #define ENDP1_BUF1ADDR (0x100) #define ENDP2_TXADDR (0x140) #define ENDP3_RXADDR (0x150) В usb_prop.c заменил инициализацию EP1 ///// usb_prop.c /* Initialize Endpoint 1 SetEPType(ENDP1, EP_BULK); SetEPTxAddr(ENDP1, ENDP1_TXADDR); SetEPTxStatus(ENDP1, EP_TX_NAK); SetEPRxStatus(ENDP1, EP_RX_DIS);*/ /* Initialize Endpoint 1 (TX) (IN) (EP1_IN)*/ SetEPType(ENDP1, EP_BULK); SetEPDoubleBuff(ENDP1); SetEPDblBuffAddr(ENDP1, ENDP1_BUF0ADDR, ENDP1_BUF1ADDR); SetEPDblBuffCount(ENDP1, EP_DBUF_IN, Device_Property.MaxPacketSize); // 0x40 ClearDTOG_TX(ENDP1); // USB PERIPHERAL ClearDTOG_RX(ENDP1); // SW_BUF for APPLICATION ToggleDTOG_RX(ENDP1); // NOT TX ie SW_BUF SetEPTxStatus(ENDP1, EP_TX_NAK); SetEPRxStatus(ENDP1, EP_RX_DIS); // NOT TX DISABLE В hw_config.c переписал CDC_Send_DATA. ////// hw_config.c /*uint32_t CDC_Send_DATA (uint8_t *ptrBuffer, uint8_t Send_length) { //if max buffer is Not reached if(Send_length <= VIRTUAL_COM_PORT_DATA_SIZE) { packet_sent = 0; //Sent flag // send packet to PMA UserToPMABufferCopy((unsigned char*)ptrBuffer, ENDP1_TXADDR, Send_length); SetEPTxCount(ENDP1, Send_length); SetEPTxValid(ENDP1); } else { return 0; } return 1; } */ uint32_t CDC_Send_DATA(uint8_t* ptrBuffer, uint8_t Send_length) { if(Send_length > VIRTUAL_COM_PORT_DATA_SIZE) return 0; if (GetENDPOINT(ENDP1) & EP_DTOG_RX) // NOT TX ie SW_BUF { UserToPMABufferCopy(ptrBuffer, ENDP1_BUF0ADDR, Send_length); SetEPDblBuf0Count(ENDP1, EP_DBUF_IN, Send_length); } else { UserToPMABufferCopy(ptrBuffer, ENDP1_BUF1ADDR, Send_length); SetEPDblBuf1Count(ENDP1, EP_DBUF_IN, Send_length); } FreeUserBuffer(ENDP1, EP_DBUF_IN); // Toggles EP_DTOG_RX / SW_BUF SetEPTxValid(ENDP1); packet_sent = 0; return 1; } В main.c заменил главный цикл что бы он постоянно отправлял данные #define BUF_SIZE 64 uint8_t Send_Buf[BUF_SIZE], j=0, i; for( i=0; i<BUF_SIZE; i++ ) Send_Buf[i]=j++; while (1) { if (bDeviceState == CONFIGURED) { if ( packet_sent == 1 ) { CDC_Send_DATA( (unsigned char*)Send_Buf, BUF_SIZE ); for( i=0; i<BUF_SIZE; i++ ) Send_Buf[i]=j++; } } }
  13. STM32f103 USB speed

    1023 никак. Как я понял, можно использовать двойной буфер и тогда можно передавать за 1 фрейм несколько посылок. И в изохронном и в балк режиме. При этом можно выбрать всю возможную ширину канала. Сейчас разбираюсь с реализацией.
  14. STM32f103 USB speed

    Golikov A. Спасибо! Изохронный больше подойдет мне. Буду копать его реализацию в STM32.
  15. STM32f103 USB speed

    Александр, можешь дать пруф? Ссылку на доку или пример реализации? Т.е по Изохронный каналу можно отправлять свой буфер несколько раз за фрейм? А размер буфера ограничен? Буду благодарен за конкретный пример или описание. Потери пакетов допустимы, главное передать максимум возможного. Я понимаю что вопросы глупые и решаются чтением доки. Но она огромная, не конкретная и дело движется очень медленно. А еще разбираться как кодировать это в STM32. У меня вторую неделю мозги кипят :)
×
×
  • Создать...