repstosw 18 9 января Опубликовано 9 января (изменено) · Жалоба 2 minutes ago, GenaSPB said: Да развели бы давно свою плату.. в чем проблема то? Проблема побороть свою лень развести плату полностью для этого. 🤣 Изменено 9 января пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 9 января Опубликовано 9 января · Жалоба Берёте мой проект (p-cad), отрезаете лишнее... день работы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 9 января Опубликовано 9 января (изменено) · Жалоба 15 минут назад, repstosw сказал: Зато на материнской плате выведена гребёнка с SPI. И в структурной схеме он явно указан. Это не факт, там 2 сд контроллера, мультиплексированы с спи, и не факт, что там вместо сд карты стоит еммс, а вторая, внешняя как раз с вашим спи))) ЗЫ. ну и вам нужен спи-мастер, который прекрасно эмулируется ногодрыгом на любом гпио... Изменено 9 января пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 9 января Опубликовано 9 января (изменено) · Жалоба 22 minutes ago, GenaSPB said: Берёте мой проект (p-cad), отрезаете лишнее... день работы Вместо PCAD использую Altium, причем довольно древней версии. Тогда проще взять Altium-файлы китайцев на модуль 100ASK-T113 и его изменить. 17 minutes ago, mantech said: Это не факт, там 2 сд контроллера, мультиплексированы с спи, и не факт, что там вместо сд карты стоит еммс, а вторая, внешняя как раз с вашим спи))) Сконвертировал из Altium в картинку. Да. SPI не выведен. Мне нужны PC2,PC3,PC4 и PC5 (SCLK, nSel, SDI, SDO соответственно). На макете с платой Mango Pi этот вопрос решался припаиванием проводков с посадочного места SPI NAND, которой не было. 17 minutes ago, mantech said: ЗЫ. ну и вам нужен спи-мастер, который прекрасно эмулируется ногодрыгом на любом гпио... Могу себе позволить это только на стадии макетирования и когда ещё не раскурил аппаратный SPI. В релизе стремлюсь к аппаратной эстетике. ИМХО ногодрыг SPI - аппаратное уродство. Так что либо рисовать свою плату (или редактировать существующую) или делать шлейфик из гибкой PCB. Макет моего проекта взял много ног с платы mangoPi: дисплей RGB, камера DVP, SD-карта, SPI(аппаратный), кнопки LRADC, TWI для настройки камеры(тоже аппаратный) Изменено 9 января пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 9 января Опубликовано 9 января · Жалоба Вообще-то p-cad затаскивается в altium автоматически Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 9 января Опубликовано 9 января · Жалоба 44 минуты назад, repstosw сказал: В релизе стремлюсь к аппаратной эстетике. ИМХО ногодрыг SPI - аппаратное уродство. А ну эт из разряда вам шашечки или ехать))))) Мне вот все равно, главное надежность работы. Программный спи хорош тем, что я не привязан к конкретным пинам, а это дорогого стоит, особенно в подобных случаях... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 0 9 января Опубликовано 9 января · Жалоба On 1/9/2024 at 4:43 PM, mantech said: А ну эт из разряда вам шашечки или ехать))))) Мне вот все равно, главное надежность работы. кривой стартер ещё тоже хорош - вдруг энергии нет а ехать надо 🙂 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 9 января Опубликовано 9 января (изменено) · Жалоба 43 минуты назад, sasamy сказал: кривой стартер ещё тоже хорош Разумеется)) Кстати, с таймерами(PWM) в Т113 кто нибудь работал? Сначала думал это тупой ШИМ, как в старых аллвиннерах, но тут удивило, что он довольно навороченный, мне надо выдать на ножку заданную частоту, как я понял, 24МГц там идет на грубый делитель 1-256, затем на точный 8и битный делитель, потом на 16 битный счетчик ШИМ, у которого задается отсечка по импульсу и по паузе в соотв. регистрах. Если мне нужен меандр, то я могу задать в этих регистрах одинаковое число. Вопрос №1 - какой диапазон 1-32767 , 1-65535 или чтоб их сумма была не более 65535? Вопрос №2 - если я задам скажем 1 и 1 то частота на выходе будет равна входной \ 2? Изменено 9 января пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 9 января Опубликовано 9 января (изменено) · Жалоба 7 hours ago, mantech said: Кстати, с таймерами(PWM) в Т113 кто нибудь работал? Работал. Делал подсветку для LCD с переменной яркостью. И два противофазных выхода для антенного переключателя. Контроль вёл визуально - понизил частоту почти до 1 Гц и смотрел как моргают светодиоды. Таким образом, эмпирически вывел соотношения между делителями и реальной частотой. 8 hours ago, GenaSPB said: Вообще-то p-cad затаскивается в altium автоматически и что, прям в Altium v.6 затащит? У меня половина файлов открываются пустыми, ибо версию альтиума по-выше мой ПК не вывозит... Приходится использовать относительно старый альтиум Изменено 9 января пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 10 января Опубликовано 10 января · Жалоба 9 часов назад, repstosw сказал: Контроль вёл визуально - понизил частоту почти до 1 Гц Использовали только делители или сам 16и битный регистр ШИМ? С помощью него можно делить частоту? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 10 января Опубликовано 10 января (изменено) · Жалоба 1 hour ago, mantech said: Использовали только делители или сам 16и битный регистр ШИМ? С помощью него можно делить частоту? Использовал всё. Потому что нужно было проверить переключения на ~1 Гц. void PWM_InitRF(void) { u32 period=4; //366*2; PWM_PCCR23=(0<<7)| /*8*/ 0 ; //HOSC(24 MHz), PWM23_CLK_DIV_M=1 => 24 MHz/1 = 24 MHz PWM_PCGR&=~(3<<18); //PWM2_CLK_BYPASS and PWM3_CLK_BYPASS not bypass PWM2_PCR=(0<<8)|( /*256*/ 2 -1); //PWM Active State = Low level, PWM pre-scale K=2 => 24 MHz/2 = 12 MHz clock for PWM2 PWM3_PCR=(1<<8)|( /*256*/ 2 -1); //PWM Active State = High level, PWM pre-scale K=2 => 24 MHz/2 = 12 MHz clock for PWM3 PWM2_PPR=((period-1)<<16)|(period/2); //entire cycles=100, active cycles=duty in % PWM3_PPR=((period-1)<<16)|(period/2); //entire cycles=100, active cycles=duty in % PWM_PCGR|=(3<<2); //PWM2_CLK_GATING and PWM3_CLK_GATING pass PWM_PER|=(3<<2); //PWM2_EN and PWM3_EN enable } Итоговая частота зависит от: PCCR, PCR и PPR. В приведённом коде - меандр, 50%. Закомментированные значения - для частоты около 1 Гц (контроль вёл по двум светодиодам) Изменено 10 января пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 10 января Опубликовано 10 января · Жалоба 3 часа назад, repstosw сказал: Использовал всё. Потому что нужно было проверить переключения на ~1 Гц. Понял, спасибо, надо будет попробовать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vasilius 1 11 января Опубликовано 11 января (изменено) · Жалоба Кто-то может провести ликбез по работе с тачем экрана через TPADC? Ниже код как запускаю. Использую два канала - 0 и 2. Выставляю прерывания по нажатию. Срабатывают прерывания по нажатию и по отпусканию даже если прерывания не разрешены. Данные странные получаю. Единственное, что выглядит корректным - это то, что при нажатии срабатывают прерывания. __WEAK void TPADC_IRQHandler(void) { const uint32_t status = TPADC->TP_INT_FIFO_STAT_REG; TPADC->TP_INT_FIFO_STAT_REG = status; // clear the pending status. //if (BIT_GET(status, 16)) // FIFO_DATA_PENDING if (BIT_GET(status, 0)) { uart_print("\n\r TP_DOWN_CH0="); u32touart0(TPADC->TP_DATA_REG); uart_print("\n\r TP_DOWN_CH2="); u32touart0(TPADC->TP_DATA_REG); } if (BIT_GET(status, 1) ) { uart_print("\n\r TP_UP_CH0="); u32touart0(TPADC->TP_DATA_REG); uart_print("\n\r TP_UP_CH2="); u32touart0(TPADC->TP_DATA_REG); } } __WEAK void TPADC_Init(void) { CCU_SetTPADC(CCU_TPADC_SRC_HOSC); TPADC->TP_CTRL_REG0 = (0x0F << 24) | // ADC_FIRST_DLY (0x01 << 23) | // ADC_FIRST_DLY_MODE (0x03 << 20) | // ADC_CLK_DIVIDER /1 (0x06 << 16) | // FS_DIV = 6 (0xFF << 0) | // TACQ 0; TPADC->TP_CTRL_REG3 = 0x80000FFF; // Default TPADC->TP_CTRL_REG3 = 6; // Set FILTER_EN + TYpe 8/4 TPADC->TP_INT_FIFO_CTRL_REG = (0x3 << 8); // TP_FIFO_TRIG_LEVEL = 3 //BIT_SET(TPADC->TP_INT_FIFO_CTRL_REG, 17); // TP_OVERRUN_IRQ_EN BIT_SET(TPADC->TP_INT_FIFO_CTRL_REG, 16); // TP_DATA_IRQ_EN //BIT_SET(TPADC->TP_INT_FIFO_CTRL_REG, 7); // TP_DATA_DRQ_EN //BIT_SET(TPADC->TP_INT_FIFO_CTRL_REG, 1); // TP_UP_IRQ_EN BIT_SET(TPADC->TP_INT_FIFO_CTRL_REG, 0); // TP_DOWN_IRQ_EN BIT_CLEAR(TPADC->TP_CTRL_REG1, 4); // Set TP Mode BIT_SET(TPADC->TP_CTRL_REG1, 2); // Set ADC_CHAN2_SELECT BIT_SET(TPADC->TP_CTRL_REG1, 0); // Set ADC_CHAN0_SELECT BIT_SET(TPADC->TP_CTRL_REG1, 5); // Set TP_EN SetHandlerIRQ(TPADC_IRQn, TPADC_IRQHandler, PRI_SYS, 0); } void TPADC_Calibration(void) { BIT_SET(TPADC->TP_CTRL_REG1, 7); // 1: Start calibration, it is cleared to 0 after calibration while (BIT_GET(TPADC->TP_CTRL_REG1, 7)) __NOP(); } при нажатии получаю типа такого TP_DOWN_CH0=000004B9 TP_DOWN_CH2=0000079E TP_UP_CH0=00000EA0 TP_UP_CH2=00000E23 .... TP_DOWN_CH0=00000EA3 TP_DOWN_CH2=00000E29 TP_UP_CH0=00000EA2 TP_UP_CH2=00000E28 Изменено 11 января пользователем vasilius Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vasilius 1 12 января Опубликовано 12 января · Жалоба видимо, надо читать все значения RXA, тогда последние выглядят логично. Так же получается, что прерывание по Down - просто сигнализирует нажатие : флаг Down == 1, Idle == 1, RXA == 0 прерывание по UP срабатывает вне зависимости разрешено ли оно. при настройках выше выдает 16 пар значений Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nanorobot 6 12 января Опубликовано 12 января · Жалоба 4 hours ago, vasilius said: Кто-то может провести ликбез по работе с тачем экрана через TPADC? Посмотрите Здесь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться