Main_18
Members-
Постов
22 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Блоги
Весь контент Main_18
-
Все верно. Рядом с ними есть контрольные точки, смотрите шелкографию на плате. Ну конечно калибровку проводил. На форму волны это не влияет, влияет на измерение постоянного напряжения. NiMN акб в прямом и обратном подключении. Естественно, при измерении бОльших напряжений разница будет бОльше. Если будете свой разбирать, чекните опорное напряжение на АЦП. 78хх\79хх есть с разными допусками 4%, 2%, 1% вообще тут или входные усилители косячат или опора ацп смещена. Другого на ум не приходит.
-
Вот
-
Да, делали такую развязку, трансов по 15 ватт хватает. USB не пользуюсь, долгое время отклика (около секунды) напрягает.
-
Совершенно верно. Видел даже как некоторые товарищи выламывали заземляющий штырек в гнезде. Ну и конечно по классике с родным бп на корпусе осцила ~110В. Классика. На приведенной мной схеме с 4пда указаны какие-то аццкие токи. Потребление моего 2d15 12 Ватт. По цифровым +5В - 1,1А Аналоговые +-8В ток совсем маленький около 200мА
-
Так я это... конкретно думал, что ответит тот кто имел дело с этими самыми 2c10 и 2d15 (без обид) а не заставлять пользователей которые "не в теме" искать в гуглах схемы и тд. Поясню суть дела. У этих моделей сильно греется штатный бп (диоды до 90 градусов, электролиты до 70) + сильно шумит. Я начитался интернетов по переделке бп на трансформаторные, но там как оказалось есть один нюанс. С платы бп идет сигнал 50Гц для синхронизации по сети. Так вот, люди в интернетах пишут, что в старых версиях на этот сигнал можно было забить и вообще убрать. Однако в новых этот сигнал 50Гц еще отслеживается процессором для того, чтоб осцил в момент когда его выключают не работал на остаточном заряде электролитов какое-то время (видимо доли секунды) и не сходил с ума от этого иногда со слетом прошивки. Короче он отслеживает сеть 50Гц и как только эти 50Гц пропали сразу выключается не пытаясь пахать на заряде конденсаторов. Вот меня собственно и интересовала часть бп (схема) которая формирует сигнал 50Гц синхронизации. Нашел схему на 4пда. Тему можно закрыть. Всем спасибо.
-
Ищу схему трансформаторного бп для сабжа. Может здесь есть те, кто менял штатный иип на трансформатор для уменьшения шумов и гальванической развязки. Интересует также схема штатного иип. Точнее то, как формируются импульсы 50Гц (крайний вывод в разъеме)
-
Сгруппировав пины по портам, поднял этот экран на регистрах. Прирост в быстродействии 7 раз (~ 800 fps) Дисплей держит максимальную скорость 180 fps
-
В опытах учавствовали: PIC16F887 на частоте 20МГц удалось выжать 20 кадров в секунду (сужу по импульсам кадровой синхронизации) заметно мерцание. PIC18F252 на частоте 40МГц - 37 кадров но и ресурсов для другой работы нет почти. STM32F406 на частоте 168МГц - 113 кадров в сек (если выводить изображение с частотой 50 Гц то впринципе еще много времени для другой работы остается) У меня есть жменя STM32F405 думаю сделаю на нем подобие видюхи с SPI интерфейсом. Или на худой конец PIC24FJ256GB110 вроде SRAM в нем хватает на кадр. void PinInitial(void){ dispoff_set(); // Display ON led_set(); // Green led ON flm_reset(); cl1_reset(); cl2_reset(); } void LoadHiByte(unsigned char data){ /*Send higher nibble*/ if(((data >> 7)&0x01)==1) {d3_set();} else {d3_reset();} if(((data >> 6)&0x01)==1) {d2_set();} else {d2_reset();} if(((data >> 5)&0x01)==1) {d1_set();} else {d1_reset();} if(((data >> 4)&0x01)==1) {d0_set();} else {d0_reset();} } void LoadLoByte(unsigned char data){ /*Send lower nibble*/ if(((data >> 3)&0x01)==1) {d3_set();} else {d3_reset();} if(((data >> 2)&0x01)==1) {d2_set();} else {d2_reset();} if(((data >> 1)&0x01)==1) {d1_set();} else {d1_reset();} if((data&0x01)==1) {d0_set();} else {d0_reset();} } void FrameSync(void){ flm_set(); for(int s = 0; s < 2; s++); cl1_set(); for(int s = 0; s < 2; s++); cl1_reset(); for(int s = 0; s < 2; s++); flm_reset(); } void LoadFourBits(void){ cl2_set(); for(unsigned char s = 0; s < dtc; s++); cl2_reset();for(unsigned char s = 0; s < dtc; s++); } void NextString(void){ cl1_set(); for(unsigned char s = 0; s < dtc; s++); cl1_reset(); } void DrawFrame(void){ FrameSync(); for(int str = 0; str < 240; str++ ){ for(int px = 0; px < 320/8; px++ ) { LoadHiByte(img[count]); LoadFourBits(); LoadLoByte(img[count]); LoadFourBits(); count ++; if(count == 9600) { count = 0; } } NextString(); } } int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); PinInitial(); HAL_Delay(100); while (1) { DrawFrame(); } } Рабочий говнокод для дискавери. Впринципе по нему понятно что и как делать.
-
Короче ОЙ... просто нет нормальных слов... когда уже эти ребята из winstar научатся делать документацию. Итак по порядку. Перечитал даташитов на neotek ну штук 30 наверное и только в двух или в трех вскользь написано про кадровую синхронизацию. Про загрузку строки написано в всех (почти во всех) и как перейти на следующую строку НО! без кадровой синхронизации получим 240 одинаковых строк какой бы массив данных не выводили. И это еще не все. Мой экземпляр напрочь отказался работать от напряжения выше 4,2В. От слова совсем. При питании от 5В (лабораторник или usb компа) напряжение на VEE вместо положенных -28В приближалось к -36В и резистором в 10К настроить контрастность невозможно (Карл!) даже выкрутив его в крайнее положение еле еле заменто на белом фоне изменение пикселей.
-
даташит NT7086PQ, таких на плате дистлея 7 штук. распиновка разьема в файле Даташит на дисплей WG320240A-TFH-TZ# я так и не разобрался как дергать пины FLM, CL1, CL2 у меня только получилось залить весть экран по строкам
-
с В0 моя бабушка справится. В сабже нет контроллера, только драйверы строк и столбцов.
-
Ищу инфу по сабжу, как с ним работать, может у кого есть опыт.
-
Спасибо за ответ. Буду обращаться туда, где покупал. Хотя уже надежды немного, т.к. сабж снят с производства 6 лет назад.
-
Собственно долго и пока безрезультатно ищу схему на сабж. Может кому встречалась.
-
согласен. там просто всякого дерьма висит... и дисплей и sd катра и юсб и внешняя eeprom. видимо я вчера ночью просто устал)
-
Оно. как я мог про него забыть. Спасибо милый человек.
-
пардон. только на передачу вот usart2 void USART_Init(long baud_rate) { float temp; TRISB6=0; /* Make Tx pin as output*/ TRISB7=1; /* Make Rx pin as input*/ /* Baud rate=9600, SPBRG = (F_CPU /(64*9600))-1*/ temp= (( (float) (F_CPU) / (float) baud_rate ) - 1); SP2BRG = (int) temp; TX2STA = 0x20; /* Enable Transmit(TX) */ RC2STA = 0xB0; /* Enable Receive(RX) & Serial */ } unsigned char USART_ReceiveChar() { while(PIR3bits.RC2IF==0); return RC2REG; } байт принимается вот usart1 void USART_Init(long baud_rate) { float temp; TRISC6=0; /* Make Tx pin as output*/ TRISC7=1; /* Make Rx pin as input*/ /* Baud rate=9600, SPBRG = (F_CPU /(64*9600))-1*/ temp= (( (float) (F_CPU) / (float) baud_rate ) - 1); SP1BRG = (int) temp; TX1STA = 0x20; /* Enable Transmit(TX) */ RC1STA = 0xB0; /* Enable Receive(RX) & Serial */ } void USART_TransmitChar (unsigned char out) { while(PIR1bits.TX1IF==0); TX1REG = out; } unsigned char USART_ReceiveChar() { while(PIR1bits.RC1IF==0); return RC1REG; } байт передается, приема нет делал и так, разницы нет void USART_Init(long baud_rate) { float temp; TRISC6=0; /* Make Tx pin as output*/ TRISC7=1; /* Make Rx pin as input*/ /* Baud rate=9600, SPBRG = (F_CPU /(64*9600))-1*/ temp= (( (float) (F_CPU) / (float) baud_rate ) - 1); SPBRG = (int) temp; TXSTA = 0x20; /* Enable Transmit(TX) */ RCSTA = 0xB0; /* Enable Receive(RX) & Serial */ } unsigned char USART_ReceiveChar() { while(PIR1bits.RCIF==0); return RCREG; } скорости ставил от 9600 и выше, прогресса пока нет(
-
соединен 18F2550 с 18F25K22 читал так unsigned char USART_ReceiveChar() { // while(PIR1bits.RC1IF==0); return RC1REG; } и так unsigned char USART_ReceiveChar() { while(PIR1bits.RC1IF==0); if(RC1STAbits.OERR) { RC1STAbits.CREN = 0; NOP(); RC1STAbits.CREN=1; } return(RC1REG); } В том то и дело, что беру этот же код, меняю TRISC7, TRISC6 на TRISB7, TRISB6 SP1BRG, TX1STA, RC1STA на соответственно SP2BRG, TX2STA и RC2STA перекидываю провода на uart2 все прекрасно читается в RC2REG есть принятый байт видел заметки по поводу проблем с уартом у этого чипа на максимальной частоте 64МГц, пойду почитаю что там пишут.
-
читал. за вчера столько инициализаций на писал что всех не упомню. конкретно эта работает (проверено на многих пиках за все время) и на этом я выше писал, что usart 2 работает и на прием и на передачу, usart 1 работает на прием, в терминале байты целые. уверен, скорость здесь ни при чем
-
опечатка. в коде все хорошо. TRISC6 = 0, TRISC7 = 1. В даташите написано вообще настраивать оба пина на вход, модуль сам при приеме и передаче настраивает пины. Результата это не дало естественно. ни один флаг RCxIF не выпадает при попытке приема первым уартом ( вчера уже проверил все, даже те, которые к uart1 не относятся RCIF, RC1IF, RCIF1 при приеме uart 2 RC2IF как положено становится 1 вот это вот обидно было, как будто в оба глаза наплевали.
-
Доброго времени суток всем. Выручайте, у меня уже едет крыша. Не могу прочитать uart 1 на pic18f25k22 работает только отправка данных. uart 2 работает нормально и на отправку данных и на чтение. Инициализация обычная void USART_Init(long baud_rate) { TRISCbits.TRISC6 = 1; TRISCbits.TRISC7 = 0; float temp; temp=(( (float) (F_CPU) / (float) baud_rate) - 1); SP1BRG = (int) temp; /* Baud rate=9600 SPBRG=(F_CPU /(64*9600))-1*/ TX1STA = 0x20; /* TX enable; */ RC1STA = 0xB0; /* RX enable and serial port enable*/ } RC1REG всегда 0x00 если пытаюсь читать посылку. отправка работает нормально, если положить байт в TX1REG все отправляется. беру usart 2 на этом же чипе void USART_Init(long baud_rate) { TRISBbits.TRISB7 = 1; TRISBbits.TRISB6 = 0; float temp; temp=(( (float) (F_CPU) / (float) baud_rate) - 1); SP2BRG = (int) temp; /* Baud rate=9600 SPBRG=(F_CPU /(64*9600))-1*/ TX2STA = 0x20; /* TX enable; */ RC2STA = 0xB0; /* RX enable and serial port enable*/ } все прекрасно работает и на чтение и на запись. Мистика. Пробовал через прерывания и без них, usart 2 работает без нареканий, usart 1 только на передачу. соединил два 18F2550 по уарту, все прекрасно один пишет, второй читает. Что не так с 18F25K22 кто подскажет?