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

Main_18

Members
  • Постов

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

  • Посещение

Сообщения, опубликованные Main_18

  1. В 20.03.2023 в 23:46, ДядяВован сказал:

    На основной плате эти два напряжения формируются при помощи стабилизаторов 7805 и 7905

    Все верно. Рядом с ними есть контрольные точки, смотрите шелкографию на плате.

     

    В 20.03.2023 в 23:46, ДядяВован сказал:

     

    @Main_18, а вы калибровку прибора проводили? IMHO после калибровки не должен незначительный разброс этих напряжений влиять на форму волны.

    Ну конечно калибровку проводил. На форму волны это не влияет, влияет на измерение постоянного напряжения.

    NiMN акб в прямом и обратном подключении.

     

    -.jpg

    +.jpg

    Естественно, при измерении бОльших напряжений разница будет бОльше. Если будете свой разбирать, чекните опорное напряжение на АЦП.

    В 21.03.2023 в 08:43, ДядяВован сказал:

    Не может такого быть. Коэффициент усиления определяется обвязкой ОУ и практически не зависит от питания положительного и отрицательного плеча. Тем более, что разброс напряжения стабилизации для 78xx/79xx это нормальное явление и подобрать два одинаковых стаба в массовом производстве невозможно.

    78хх\79хх есть с разными допусками 4%, 2%, 1% вообще тут или входные усилители косячат или опора ацп смещена. Другого на ум не приходит.

  2. В моем 2D15 родной бп выдавал нормальные напряжения, но после линейных стабилизаторов цепи питания входных усилителей было +4.99В и -4.93В соответственно. Из-за этого была разница в показаниях амплитуды в прямом и обратном включении. А у Вас как с этим дела обстоят? 

  3. 7 часов назад, alend сказал:

    У товарища на работе старенький хантек, тот поступил просто, взял два транса 220-12 стандартных малогабаритных,соединил 12в обмотки и получил развязку по сети 220в.

    Да, делали такую развязку, трансов по 15 ватт хватает. USB не пользуюсь, долгое время отклика (около секунды) напрягает.

  4. 11 минут назад, alend сказал:

    Тему то можно и закрыть, но напомню лишний раз, если всё сделаешь по схеме,это хорошо,но не забудь про заземляющий контакт на вилке который соединён с массой и общим проводом щупа.

    Совершенно верно. Видел даже как некоторые товарищи выламывали заземляющий штырек в гнезде. Ну и конечно по классике с родным бп на корпусе осцила ~110В. Классика. На приведенной мной схеме с 4пда указаны какие-то аццкие токи. Потребление моего 2d15 12 Ватт. По цифровым +5В - 1,1А   Аналоговые +-8В ток совсем маленький около 200мА

  5. Так я это... конкретно думал, что ответит тот кто имел дело с этими самыми 2c10 и 2d15 (без обид) а не заставлять пользователей которые "не в теме" искать в гуглах схемы и тд.

    Поясню суть дела. У этих моделей сильно греется штатный бп (диоды до 90 градусов, электролиты до 70) + сильно шумит. 

    Я начитался интернетов по переделке бп на трансформаторные, но там как оказалось есть один нюанс. С платы бп идет сигнал 50Гц для синхронизации по сети. Так вот, люди в интернетах пишут, что в старых версиях на этот сигнал можно было забить и вообще убрать. Однако в новых этот сигнал 50Гц еще отслеживается процессором для того, чтоб осцил в момент когда его выключают не работал на остаточном заряде электролитов какое-то время (видимо доли секунды) и не сходил с ума от этого иногда со слетом прошивки. Короче он отслеживает сеть 50Гц и как только эти 50Гц пропали сразу выключается не пытаясь пахать на заряде конденсаторов. Вот меня собственно и интересовала часть бп (схема) которая формирует сигнал 50Гц синхронизации.

    Нашел схему на 4пда. Тему можно закрыть. Всем спасибо.

    линейный+БП+для+DSO2C10.jpg

  6. Ищу схему трансформаторного бп для сабжа. Может здесь есть те, кто менял штатный иип на трансформатор для уменьшения шумов и гальванической развязки. Интересует также схема штатного иип. Точнее то, как формируются импульсы 50Гц (крайний вывод в разъеме)

  7. В опытах учавствовали:

    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(); 
      }
    }

    Рабочий говнокод для дискавери. Впринципе по нему понятно что и как делать.

  8. Короче ОЙ... просто нет нормальных слов... когда уже эти ребята из winstar научатся делать документацию.

    20221024_232918.jpg

    20221024_233307.jpg

    20221024_235917.jpg

    Итак по порядку. Перечитал даташитов на neotek ну штук 30 наверное и только в двух или в трех вскользь написано про кадровую синхронизацию. Про загрузку строки написано в всех (почти во всех) и как перейти на следующую строку НО! без кадровой синхронизации получим 240 одинаковых строк какой бы массив данных не выводили. И это еще не все. Мой экземпляр напрочь отказался работать от напряжения выше 4,2В. От слова совсем. При питании от 5В (лабораторник или usb компа) напряжение на VEE вместо положенных -28В приближалось к -36В и резистором в 10К настроить контрастность невозможно (Карл!) даже выкрутив его в крайнее положение еле еле заменто на белом фоне изменение пикселей.

  9. 1 час назад, Lexter сказал:

    Этот форум - первое место, с которого вы начали поиск? :D

    Про этот дисплей есть вся необходимая и достаточная информация на сайтах производителей и ссылки на неё практически у каждого продавца. Ищется за пару секунд.

    Достаточно всего двух документов:

    Даташит на дисплей WG320240B0-TFH-TZ#

    и даташит на контроллер этого дисплея RA8835.

    с В0 моя бабушка справится. В сабже нет контроллера, только драйверы строк и столбцов.

  10. 6 часов назад, Alex сказал:

    Ну, ё-маё... Чего-чего, а такое не простительно ... :)

    согласен. там просто всякого дерьма висит... и дисплей и sd катра и юсб и внешняя eeprom. видимо я вчера ночью просто устал)

  11. 5 минут назад, IMXO сказал:

    попробуйте в регистре ANSELC переключить пины на цифровые

     

    Оно. как я мог про него забыть. Спасибо милый человек.

  12. пардон. только на передачу

    вот 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 и выше, прогресса пока нет(

  13. 46 минут назад, Alex сказал:

    Ой, порты разные, точно :D

    @Main_18 , где остальной код, который принимает данные ?
    И опишите вкраце, что куда подключено, откуда и какие данные принимаете ...

    Мы на производстве используем эти процы, УАРТы (оба) работают безупречно.

    соединен 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МГц, пойду почитаю что там пишут.

  14. читал. за вчера столько инициализаций на писал что всех не упомню. конкретно эта работает (проверено на многих пиках за все время) и на этом я выше писал, что usart 2 работает и на прием и на передачу, usart 1 работает на прием, в терминале байты целые. уверен, скорость здесь ни при чем

  15. 8 часов назад, IMXO сказал:

    а можете объяснить зачем вы пин  приемника 1юарта настраиваите на выход?

    TRISCbits.TRISC6 = 1;
    TRISCbits.TRISC7 = 0; ?????

    опечатка. в коде все хорошо. TRISC6 = 0, TRISC7 = 1.  В даташите написано вообще настраивать оба пина на вход, модуль сам при приеме и передаче настраивает пины. Результата это не дало естественно. ни один флаг RCxIF не выпадает при попытке приема первым уартом ( вчера уже проверил все, даже те, которые к uart1 не относятся 

    RCIF, RC1IF, RCIF1

    при приеме uart 2 RC2IF как положено становится 1

    7 часов назад, Alex сказал:

    Ещё и для разных UART'ов одни и те же пины пытается использовать :)

    вот это вот обидно было, как будто в оба глаза наплевали.

  16. Доброго времени суток всем. Выручайте, у меня уже едет крыша. Не могу прочитать 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 кто подскажет?

×
×
  • Создать...