Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SED1335,PIC18F4550 и LCD320x240
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9
andreichk
Цитата(J-Tix @ Oct 26 2008, 03:26) *
help.gif А может есть у кого разведенная печатная плата.

http://electronix.ru/forum/index.php?act=A...st&id=20605
comper
господа, помогите пожалуйста с экранчиком 320 на 240 на контроллере ra8835
запустить я его запустил, но вот нужно мне один текстовый слой и два графических... и что-то не получается у меня это сделать...
указываю адрес с кторого начинать третью страницу памяти, а он не рисует в ней графику...что-то где-то я недочитал или упустил...подскажите что =)

Код
#define     SED1335_SL1               0xEF
#define     SED1335_SAD2L           0xB0
#define     SED1335_SAD2H           0x04
#define     SED1335_SL2               0xEF
#define     SED1335_SAD3L           0x30
#define     SED1335_SAD3H              0x2A
#define     SED1335_SAD4L           0
#define     SED1335_SAD4H           0


и еще маленький вопросик
почему иногда в разных местах экрана рисуются случайные пиксели...например у меня часто такое около или внутри нарисованной окружности...или вот сейчас целая вертикальная полоса вылезла прерывистая
petrd
А наверное не получится. Я пробовал по всякому. Получается только так - если надо иметь текстовый слой, тогда не получается более одного графического. Я для себя решил делать три графических и в верхнем графическом слое выводить шрифты в графическом режиме.
А по поводу точек причин может быть несколько - я сталкивался с двумя: длинные проводники до индикатора и малое время между командой на чтение из индикатора и самим чтением из индикатора (на высоких частотах сказывается емкость выводов и монтажа).
comper
спасибо за ответ

я вот тут перелистал даташит(на sed1335)...на аглицком я читаю, но тут мне кое-что не понятно...может объясните что это за параметры: (копировал из даташита, раздел 3.3.5)
3.3.5.2 DM1, DM2
DM1 and DM2 specify the display mode of screen
blocks 1 and 3, respectively.
DM1/2 = 0: Text mode
DM1/2 = 1: Graphics mode
Note 1: Screen blocks 2 and 4 can only display graphics.
Note 2: DM1 and DM2 must be the same, regardless of the
setting of W/S.
3.3.5.3 OV
Specifies two- or three-layer composition in graphics
mode.
OV = 0: Two-layer composition
OV = 1: Three-layer composition
Set OV to 0 for mixed text and graphics mode.

не означают ли эти DM1/2 что можно включить 4 слоя, но при этом 1 и 3 например будут текстовыми, а 2 и 4 - графическими?
и как работает OV?
заранее спасибо
petrd
Здесь на русском http://www.gaw.ru/html.cgi/txt/lcd/chips/sed1335/index.htm, но обязательно надо сравнивать с оригиналом на точность перевода.
comper
я же написал, что читаю и по английски...мне от перевода легче не стало...=)
кто-нить может популярно объяснить как работают эти биты?
petrd
Цитата(comper @ Nov 17 2008, 14:12) *
я же написал, что читаю и по английски...мне от перевода легче не стало...=)
кто-нить может популярно объяснить как работают эти биты?

Не надо нервничать - это я к тому, что никто давиться в очереди не будет, чтобы разъяснить Вам все детали этого ЖКИ, это один из немногих топиков на русском, где хоть что-то говорят про этот контроллер. Если Вам не нравятся мои слова, то читайте и эксперементируйте. Я тоже в свое время здесь задавал вопрос когда взял в руки этот индикатор, какой ответ я получил можете найти. Но все же.
Из собственного опыта: DM1= DM2=OV= 0. Текстовый режим - верхний слой текстовый, второй слой графический, третьего слоя не будет.
DM1=DM2=OV=1: Графический режим - может быть до трех графических слоев, по Вашему желанию, но текста не будет.
Если делать по другому, то начинаются фокусы.
Все что я говорил это о полном экране, а не о блочном.
И почувствуйте разницу между Screen blocks и layer, это к - Note 1: Screen blocks 2 and 4 can only display graphics.
BelTech
А какой ток потребляет сей прибор в рабочем режиме?
petrd
Цитата(BelTech @ Nov 18 2008, 22:55) *
А какой ток потребляет сей прибор в рабочем режиме?

По datasheet 100 mA без подсветки, сам не мерил.
BelTech
Подскажите, пожалуйста, где в Москве лучше всего купить lcd, плис, mcu, ацп и fifo для этого осцика? Я сам из Беларуси, но сейчас мой друг в Москве, хочу его попросить купить детальки, но хочется, что бы это был один магазин и другу не пришлось ездить с одного конца города в другой. Ну и конечно где подешевле. За проделанную работу a14.gif .
Rostislav
Цитата(BelTech @ Nov 19 2008, 23:12) *
Подскажите, пожалуйста, где в Москве лучше всего купить lcd, плис, mcu, ацп и fifo для этого осцика? Я сам из Беларуси, но сейчас мой друг в Москве, хочу его попросить купить детальки, но хочется, что бы это был один магазин и другу не пришлось ездить с одного конца города в другой. Ну и конечно где подешевле. За проделанную работу a14.gif .


Магазинов в Москве, где можно купить детальки, не так много. Вот, например, Чип и Дип (_ww.chip-dip.ru). Через интернет можно оформить заказ. smile.gif
BelTech
В чип-дип нет экрана и других микросхем, так что нужны ещё варианты.
andreichk
Код
/////////////////////////////////////////////////////////////////////////
////                           SED1335_MOD.c                         ////
////        Модифицированный модуль управления ЖКИ 320х240 пикселей  ////
////  Example drivers for the SED1335 LCD controller                 ////
/////////////////////////////////////////////////////////////////////////
#ifndef SED1335_VERSION
#define SED1335_VERSION  0x0000

#ifndef GLCD_WIDTH
#define GLCD_WIDTH         320
#endif

#ifndef GLCD_HEIGHT
#define GLCD_HEIGHT        240
#endif

#ifndef  LCD_RESET
#define  LCD_RESET PIN_E3//
#endif

#ifndef  LCD_RD
#define  LCD_RD    PIN_E0//
#endif

#ifndef  LCD_WR
#define  LCD_WR    PIN_E1//
#endif

#ifndef  LCD_A0
#define  LCD_A0    PIN_E2//
#endif

#ifndef  LCD_CS
#define  LCD_CS    PIN_C3//
#endif
//##############################################################################
VOID LCD_init_Grafik( void );
void OVERLAY( unsigned int ovlay );
void display_off( void );
void enable_display( void );
void write_data( unsigned char Data );
void send_msg( unsigned char Data, unsigned char A0, unsigned char WR,
                                     unsigned char RD, unsigned char CS );
void text_cursor_pos( unsigned INT16 Position );
void clear_text( void );
void clear_graphic(void );
void setCursorAddress(int16 addr);
int8 lcd_readByte();
int8 getData(int16 addr);
void setData(int16 addr, int8 data);
void pixel(int16 x, int16 y, int1 color);
void pixel_(int16 x, int16 y, int1 color);
void write_char( unsigned char Zeichen );
void flash_textcursor( unsigned char flashing );
//##############################################################################
// ----- Level 1 Funktionen ----------------------------------------------
VOID  LCD_init_Grafik( void )
{
  SET_TRIS_E (0);
  SET_TRIS_D (0);// LCD_TRIS = 0x00;
  Output_bit(LCD_RESET,0);
  delay_ms(200);
  Output_bit(LCD_RESET,1);
// --- SEND SYSTEM SET --- //
//               A0  WR RD CS
  send_msg( 0x40, 1, 0, 1, 0 );  // C SYSTEM SET instruction
  send_msg( 0x30, 0, 0, 1, 0 );  // P1 // single panel drive
// define display resolution: physical 320pixel / 8 = 40 char-cols ???
// virtual display resolution: 40*8= 320 pixels (X)
// 0х86- двухкадровое управление, 0х06- 16ти строчное управление
  send_msg( 0x87, 0, 0, 1, 0 );  // P2 (FX) - ширина символа (7 pixels) /86 /06
  //Установите FY в "0" (вертикальный размер равняется единице) в графическом режиме.
  send_msg( 0x00, 0, 0, 1, 0 );  // P3 (FY) - высота символа (8 pixels) /0x0 for grafik
// allocate 39 bytes for one line адресный диапазон, занимаемый одной строкой дисплея
  send_msg( 0x27, 0, 0, 1, 0 );  // P4 (c/r) - address range (39) (40 chars)    //2b  //11
  send_msg( 0x39, 0, 0, 1, 0 );  // P5 (tc/r) - length of 1 line (43) (c/r+4)  //9f  //ef
//delay_us(2);//Установка высоты кадра, в линиях.
  send_msg( 0xef, 0, 0, 1, 0 );  // P6 (l/f) - height (in lines) of a frame (239)  //28
//Определяет горизонтальный адресный диапазон виртуального экрана.
//APL - младший значащий байт адреса. зона очистки виртуального экрана
  send_msg( 0x28, 0, 0, 1, 0 );  // P7 (apl) - horiz. addr. range - LOW (40)
  send_msg( 0x00, 0, 0, 1, 0 );  // P8 (aph) - horiz. addr. range - HIGH
//################################################################################
#####
// --- SEND SCROLL PARAMS --- //
//Установка начального адреса дисплея и участков дисплея
  send_msg( 0x44, 1, 0, 1, 0 );  // C (start SCROLL settings)
  //первый текстовый слой стартовый адрес- 0000
  send_msg( 0x00, 0, 0, 1, 0 );  // P1 (SAD 1L) - layer1 start addr. LOW
  send_msg( 0x00, 0, 0, 1, 0 );  // P2 (SAD 1H) - layer1 start addr. HIGH
  send_msg( 0xEF, 0, 0, 1, 0 );  // P3 (SL1) -Отображаемых строк в первом экранном блоке - 30 no. of pixels of screen 1 (239)    //ef
//второй графический слой , нач. адрес-  1200 (dec)  0х040В
  send_msg( 0x81, 0, 0, 1, 0 );  // P4 (SAD 2L) - layer2 start addr. LOW        //b0
  send_msg( 0x25, 0, 0, 1, 0 );  // P5 (SAD 2H) - layer2 start addr. HIGH      //04
  send_msg( 0xEF, 0, 0, 1, 0 );  // P6 (SL2) - no. of pixel rows per screen 2 239 pixels (Y)   //ef
  send_msg( 0x81, 0, 0, 1, 0 );  // P7 (SAD 3L) мл. адрес третьего экранного  блока 32 10802
  send_msg( 0x25, 0, 0, 1, 0 );  // P8 (SAD 3H) ст. адрес третьего экранного  блока 2a
  send_msg( 0x00, 0, 0, 1, 0 );  // P9 (SAD 4L) (disabled)
  send_msg( 0x00, 0, 0, 1, 0 );  // P10 (SAD 4H) (disabled)
// --- set cursor form (CSRFORM) --- //
//Установка типа курсора
  send_msg( 0x5D, 1, 0, 1, 0 );  // C (start CSRFORM settings)
  send_msg( 0x03, 0, 0, 1, 0 );  // P1 (CRX) - cursor length толщина курсора
  send_msg( 0x88, 0, 0, 1, 0 );  // P2 (CM,CRY) - cur. shape, cursor height
// --- set character gen. RAM addr (CGRAM ADR) --- //
//Установка начального адреса генератора символов RAM
// send_msg( 0x5C, 1, 0, 1, 0 );  // C (start CGRAM ADR settings)
// send_msg( 0x00, 0, 0, 1, 0 );  // P1 (SAGL) - start addr. LOW 81
// send_msg( 0x00, 0, 0, 1, 0 );  // P2 (SAGH) - start addr. HIGH25
// --- set default auto cursor direction (CSDIR) ---//
//Установка направления движения курсора
  send_msg( 0x4C, 1, 0, 1, 0 );  // C (start CSRDIR settings) - right
// --- set horiz. scrolling (HDOT SCR) --- //
//Установка позиции горизонтальной прокрутки
  send_msg( 0x5A, 1, 0, 1, 0 );  // C (start HDOT SCR settings)
  send_msg( 0x00, 0, 0, 1, 0 );  // P1 number of pixels to scroll down (1)
//--------------------------------------------------------------------------------
// Выбор метода композиции(OVLAY)
//Выбирает композицию наслоённого экрана и текстовый.графический режим экрана.
//MX1 MX2 Функция    Метод композиции         Применение
// 0  0   L1ИL2ИL3   ИЛИ                Подчёркивание, инструкции, смешанные текст и графика
// 0  1  (L1ЕL2)ИL3  ИСКЛЮЧАЮЩЕЕ ИЛИ    Инвертированные символы, мерцающие области, подчёркивание
// 1  0  (L1ЗL2)ИL3  И                  Простая анимация, трёхмерный вид
// 1  1  L1>L2>L3    ПРИОРИТЕТНОЕ ИЛИ
// 00,01,02,03,10,11,12,13,0c,0d,0e,0f,1c,1d,1e,1f
//0d инвертирует картинку
  send_msg( 0x5B, 1, 0, 1, 0 );  // C (start OVLAY settings)
  send_msg( 0x0d, 0, 0, 1, 0 );  // P1 screen mode (text), style, 2 layers
//--------------------------------------------------------------------------------
  display_off( );
  clear_graphic();
  clear_text();
  enable_display(); // DISP ON
}//OK
//#####################################################################
void OVERLAY( unsigned int8 ovlay )
{         send_msg( 0x5B, 1, 0, 1, 0 );  // C (start OVLAY settings)
  switch( ovlay )
  {
    case 1: send_msg( 0x01, 0, 0, 1, 0 );break; // P1 screen mode (text), style, 2 layers
    case 2: send_msg( 0x10, 0, 0, 1, 0 );break;  // P1 screen mode (grafik), style, 2 layers
  }
}//--------------------------OK
//####################################################################
void enable_display( void )
{    //установить мерцание блоков и курсора
  send_msg( 0x59, 1, 0, 1, 0 );  // разрешение instruction
// send_msg( 0x34, 1, 0, 1, 0 );  //представления двух наложенных графиков на экране
// send_msg( 0x56, 0, 0, 1, 0 );  // parameters (no flashing)
  send_msg( 0x16, 0, 0, 1, 0 );//два блока ,нет мерцания
  //send_msg( 0x55, 0, 0, 1, 0 );//три блока ,нет мерцания
  //send_msg( 0xac, 0, 0, 1, 0 );//три блока , мерцание 16Гц
  // send_msg( 0x3c, 0, 0, 1, 0 );//2 блока , мерцание 16Гц
  // send_msg( 0x58, 0, 0, 1, 0 );//2 блока , мерцание 16Гц
}//OK
//#####################################################################
void display_off( void )
{    //установить мерцание блоков и курсора
  send_msg( 0x58, 1, 0, 1, 0 );  // разрешение instruction
// send_msg( 0x59, 1, 0, 1, 0 );  // запрет instruction
// send_msg( 0x56, 0, 0, 1, 0 );  // parameters (no flashing)
//send_msg( 0x55, 0, 0, 1, 0 );//3 блока ,нет мерцания
  send_msg( 0x16, 0, 0, 1, 0 );//два блока ,нет мерцания
  //send_msg( 0xac, 0, 0, 1, 0 );//три блока , мерцание 16Гц
  // send_msg( 0x3c, 0, 0, 1, 0 );//2 блока , мерцание 16Гц
  // send_msg( 0x58, 0, 0, 1, 0 );//2 блока , мерцание 16Гц
}//OK
//#####################################################################
void clear_text( void )
{
  unsigned long  cnt  = 0x00;
  
  send_msg( 0x42, 1, 0, 1, 0 );
  Output_bit(LCD_A0, 0);
  for( cnt = 0x00; cnt < 1200; cnt++ )    // 680
  {
    write_data( 0x00 );
  }
}//OK
//#####################################################################
void clear_graphic( )
{
  unsigned  int16 cnt  = 0x0000;
  
  send_msg( 0x42, 1, 0, 1, 0 );
  #asm
      BCF  0x0F8D,2  //замена Output_bit(LCD_A0 ,0);
  #endasm
  for( cnt = 0x0000;cnt < 9600; cnt++ )    // всё чистит
  {
    write_data( 0x00 );//негатив
  }
}//OK
//#####################################################################
void write_data( unsigned char Data )
{
  Output_d(Data);
  #asm
      BCF    0x0F8B,3//Output_bit(LCD_CS,0);// замена
      BCF    0x0F8D,1//Output_bit(LCD_WR,0); //  
      BSF    0x0F8D,1//Output_bit(LCD_WR,1);//  
      BSF    0x0F8B,3//Output_bit(LCD_CS,1);//
  #endasm
}//OK
//#####################################################################
void send_msg( unsigned char Data, unsigned char A0, unsigned char WR,
                                     unsigned char RD, unsigned char CS )                                  
{  
  Output_bit(LCD_A0,A0);
  Output_bit(LCD_WR,WR);
  Output_bit(LCD_RD,RD);
  Output_bit(LCD_CS,CS);
  write_data( Data );
}//OK
//#####################################################################
// Purpose:    Set the cursor address
// Inputs:     A 16 bit integer containing the new cursor address
void setCursorAddress(unsigned int16 addr) { //CSRW Установка адреса курсора
     send_msg( 0x46, 1, 0, 1, 0 );
#asm
    BCF    0x0F8D,2//Output_bit(LCD_A0 ,0);
#endasm
     write_data( (addr) & 0x00ff );
     write_data( (addr >> 8) & 0x00ff );  
}//OK
//#####################################################################
int8 lcd_readByte()
{char data;
           set_tris_d(0xFF);
#asm
  BCF    0x0F8B,3//Output_bit(LCD_CS,0);
  BSF    0x0F8D,2//Output_bit(LCD_A0,1); // new line дополнен
#endasm
           delay_us(1);
#asm
  BCF    0x0F8D,0// Output_bit(LCD_RD,0);
#endasm
           delay_us(2);
           data = input_d();
#asm
BSF    0x0F8D,0//Output_bit(LCD_RD,1);  
BSF    0x0F8B,3//Output_bit(LCD_CS,1);
#endasm
   return data;
}//--------------------------OK
//####################################################################
int8 getData(unsigned int16 addr)
{
          setCursorAddress(addr);
          send_msg( 0x43, 1, 0, 1, 0 );//MREAD чтение из памяти дисплея
#asm
BCF    0x0F8D,2//Output_bit(LCD_A0 ,0);
#endasm
   return lcd_readByte();
}//--------------------------OK
//####################################################################
// Purpose:    Set a byte of display data at an address
// Inputs:     1) A 16 bit address
//             2) 8 bits worth
//MWRITE 1 0 1 0 1 0 0 0 0 1 0 42 Запись в память дисплея
void setData(unsigned int16 addr,unsigned int8 data)
{
   setCursorAddress(addr);
   send_msg( 0x42, 1, 0, 1, 0 );//
#asm
    BCF    0x0F8D,2//Output_bit(LCD_A0 ,0);
#endasm
   write_data(data);
}//--------------------------OK
//####################################################################
// Purpose: Turn a pixel on a graphic LCD on or off
// Inputs: x - the x coordinate of the pixel
// y - the y coordinate of the pixel
// color - ON or OFF
void pixel(unsigned int16 x,unsigned int16 y, int1 color)
{
  unsigned int8  data;
  unsigned int16 addr;
   // расчитать байт адреса, содержащего пиксель
  // addr = GLCD_GRAPHICS_ADDR + (GLCD_WIDTH/8 * y + x/8);
  // addr =1200 + (40 * y + x/8);//если первый слой текстовый
    addr = 40 * y + x/8 + 9601;//если первый слой графический
    data = getData(addr);//считать байт данных в адресе
   if(color == 1) bit_set(data, 7 - x%8);//нарисовать пиксель
   else           bit_clear(data, 7 - x%8);//стереть пиксель
       setData(addr , data); //записать новый байт данных в память дисплея
}//
//#####################################################################
void pixel_(unsigned int16 x,unsigned int16 y, int1 color)
{
  unsigned int8  data;
  unsigned int16 addr;
   // расчитать байт адреса, содержащего пиксель
      addr = 40 * y + x/8;//
      data = getData(addr);//считать байт данных в адресе
   if(color == 1) bit_set(data, 7 - x%8);//нарисовать пиксель
   else           bit_clear(data, 7 - x%8);//стереть пиксель
       setData(addr , data); //записать новый байт данных в память дисплея
}//
//#####################################################################
void flash_textcursor( unsigned char flashing )
{
  switch( flashing )
  {
    case 1:
    {
      send_msg( 0x59, 1, 0, 1, 0 );
      Output_bit(LCD_A0,0);
      write_data( 0x05 );
    }break;
    
    case 2:
    {
      send_msg( 0x59, 1, 0, 1, 0 );
      Output_bit(LCD_A0, 0);
      write_data( 0x06 );
    }break;

    case 3:
    {
      send_msg( 0x59, 1, 0, 1, 0 );
      Output_bit(LCD_A0,0);
      write_data( 0x07 );
    }break;
  }
}//OK
//#####################################################################
#endif
тут полный проект с рисунком печатной платы в СПРИНТе5.0
dosikus
Цитата(Илья @ Apr 20 2008, 05:55) *
Долго мучался как научить ваш CCS иметь прямой доступ к регистрам, и наконец-то у меня получилось!!!!
Вот бы я этим писателям компилятора smile3009.gif !!!! Все приходиться делать через задний проход... maniac.gif twak.gif


Ни причем здесь писатели компилятора... biggrin.gif
-Дело было не в бобине...
Код
------
#byte LATD  =0xF8C
#bit  LED   = LATD.3
------

LED=0;

LED=1;



"Исчо" пример:


Код
....................    SDA=test;
04B0:  BCF    F8C.7
04B2:  BTFSC  31.7
04B4:  BSF    F8C.7
....................    SCLK=1;
04B6:  BSF    F8C.6
....................    SCLK=0;
04B8:  BCF    F8C.6
....................    buf<<=1;
04BA:  BCF    FD8.0
04BC:  RLCF   31,F
Ilya_A
Цитата(dosikus @ Nov 23 2008, 19:53) *
Ни причем здесь писатели компилятора... biggrin.gif
-Дело было не в бобине...
Код
------
#byte LATD  =0xF8C
#bit  LED   = LATD.3
------

LED=0;
LED=1;


Пасибо за пример - буду знать на будующее. сходу такого трюка мне найти не удалось - а с компилятором этим я ни разу в жизни не работал. И сейчас не работаю. - Просто хотелось человеку помочь smile.gif - ну нашел же всетаки способ решить проблему beer.gif

Но все-таки! Как ни крутите, но директивы #bit и #byte нифига не являются классическими, и посто догадаться о них - невозможно (без изучения компилятора).
Так что определение "через задний проход" - остается в силе. smile.gif (ведь можно же было сделать по человечески....)
Herz
Отличная тема. Снимаю шляпу - немало сделано за год энтузиастами.
Как раз вовремя попалась на глаза - сейчас в руки мне попало несколько LCD модулей Olimex DMF-628 с контроллерами на SED1330. Немножко не такие (256х128) и немножко устаревшие, но практически бесплатно. По большому счёту совместимы с рассматриваемыми.Тоже хотелось бы разобраться и запустить, так что последуют вопросы. Вот первый: в ds насчёт подсветки сказано - 100V RMS, 400 Hz (максимум 150V RMS, 800 Hz). Уже собрался было запитать лампу стандартным DC-AC инвертором (как у автора) но обнаружил, что частота преобразования - 30 KHz, назначение: CCFL - лампы. Видимо, в моём случае (EL - лампа) это нечто другое. Просветите вкратце, насколько существенны различия. Нажмите для просмотра прикрепленного файла
Herz
Цитата(SAMAEL @ May 7 2008, 15:02) *
Большое спасибо, понял, сделал, увидел....
Есть вопросы конкретно по схеме. help.gif

Всё нарисовал на вашей же схеме. Если не затруднит прошу ответить.
У меня не такой большой опыт в электронике, так что задаю кучу глупых вопросов 05.gif ОБЪЯСНИТЕ ДИТЮ НЕРАЗУМНОМУ

Действительно, на этот вопрос так ответа и не последовало. Выложите, пожалуйста, реальную схемку. А то не понятно, например, откуда у PIC18F4550 на порте D взялось 8 разрядов.
petrd
Цитата(Herz @ Dec 31 2008, 01:31) *
А то не понятно, например, откуда у PIC18F4550 на порте D взялось 8 разрядов.

Сколько Microchip сделал, столько и есть. Что Новый год наступил раньше или перетрудились?
Herz
Цитата(petrd @ Dec 31 2008, 07:26) *
Сколько Microchip сделал, столько и есть. Что Новый год наступил раньше или перетрудились?
Видимо, что-то вроде. smile.gif
И всё-таки, подробности хотелось бы увидеть на окончательном варианте схемы.
Fire Starter
День добрый и с новым годом всех.

Спасибо создателю этого проекта за такие старания и классный код.
Если я правильно вижу то выложенные files не имеют реальной схемы. На картинках есть схема в которой кое-чего не хватает.
Просьба для аndreichk: если вы не будете вылаживать схемы то сообщите это в форуме что-бы не было ненужных запросов.
Без реальной схемы трудно расчитать стоимость всего и вообще построить.

Fire Starter
Fire Starter
Цитата(andreichk @ Jan 3 2009, 17:57) *
я эту схему также по кускам составлял из даташитов на компоненты.Что именно вызывает затруднение у вас? постараюсь прояснить...

Спасибо за столь быстрый ответ и ваше желание помочь. Я не буду у вас все детали расспрашивать.
На первый взгляд мне непонятен этот блок "Syncronisation", который находится в файле "OSZILLOGRAF.JPG" и его распиковка насчёт XC9572. И потом эти красные перемычки под PIC18F4685, насколько я понимаю это типа Jumper?

Fire Starter
andreichk
Цитата(Fire Starter @ Jan 3 2009, 21:41) *
Спасибо за столь быстрый ответ и ваше желание помочь. Я не буду у вас все детали расспрашивать.
На первый взгляд мне непонятен этот блок "Syncronisation", который находится в файле "OSZILLOGRAF.JPG" и его распиковка насчёт XC9572. И потом эти красные перемычки под PIC18F4685, насколько я понимаю это типа Jumper?

Fire Starter
первоначально предполагалось сделать аппаратную синхронизацию,но обошлись программной,поэтому этот блок отсутствует,забудьте про него.Красные перемычки,это Jumper
Fire Starter
Цитата(andreichk @ Jan 4 2009, 17:13) *
первоначально предполагалось сделать аппаратную синхронизацию,но обошлись программной,поэтому этот блок отсутствует,забудьте про него.Красные перемычки,это Jumper
Спасибо, видно я просмотрел этот момент в дискуссиях. Интересный проект у вас.
Другая точка зрения чисто экономическая. Кажется что если все компоненты приобрести из продажи то выйдет почти цена готового дивайса. Тут надо-бы иметь дешёвую доставку как я понимаю.

Fire Starter
Fire Starter
Цитата(andreichk @ Jan 4 2009, 22:34) *
Вы купить хотите или сами сделать?
Конечно хотел-бы сам сделать длё чего я и рассматриваю стоимость компонентов. Работаю сам в проектах с мобильной электроникой, больше в области твёрдого товара (Hardware). smile.gif

Добрый вечер.

Fire Starter
and06
to andreichk
поражен проделанной работе.... этож до какой степени нужно любить "радио" biggrin.gif biggrin.gif
правда в печатке нашел несколько ошибок, это недочёт или специально? проэкт очень интересный и заслуживает очень большого внимания. Для всех желающих могу заказать платы здесь(не первый год здесь заказываю, благо от меня это всего в 60 км) http://www.etal.ua/ru/catalog/part107/group253 не сочтите за рекламу, не в коем разе... цена в среднем 2 доллара за квадратный дэциметр(односторонняя) всё зависит от колличества.
с разрешения andreichk а также наверное администрации форума хотел бы попросить разрешения сделать народный проэкт. ???!!!
B.R. Andrey
andreichk
Цитата(and06 @ Jan 13 2009, 21:59) *
to andreichk
поражен проделанной работе.... этож до какой степени нужно любить "радио" biggrin.gif biggrin.gif
правда в печатке нашел несколько ошибок, это недочёт или специально? проэкт очень интересный и заслуживает очень большого внимания. Для всех желающих могу заказать платы здесь(не первый год здесь заказываю, благо от меня это всего в 60 км) http://www.etal.ua/ru/catalog/part107/group253 не сочтите за рекламу, не в коем разе... цена в среднем 2 доллара за квадратный дэциметр(односторонняя) всё зависит от колличества.
с разрешения andreichk а также наверное администрации форума хотел бы попросить разрешения сделать народный проэкт. ???!!!
B.R. Andrey

да делайте уже, только скажите,где ошибки-то? 1111493779.gif
Maks321
просветите пожалуйста новичка, - что записывается в памяти фифо если она на нижних пределах измерений(625кгц) тактируется в 128 раз медленнее ацп? если ошибся поправте,но помоему за один такт записи(на 625кгц) ацп на шине меняет значение 128 раз, тоесть получаем мы некое усреднение(мусорение) на шине данных? конечно при условии что меряем мы сигнал выше 625кгц.
Maks321
еще коечто наклюнулось- перечитывая датащит на фифо.
после сброса, начиная чтение может нужно отключить строб записи иначе прочитаем только что записавшийся адрес?
соответственно на малых частотах тактирования адреса считывания будут перескакивать через адрес записи и могут появиться глюки в синхронизации? или я опять чет не допонял.
в схеме(та что в Sплане и джипеге) ресет fifo подключен к 19 ноге плиски хотя на ней по исходникам находится кнопка.
вопросик по плиске - в этой 9572 нету не одного элемента на 3 состояния?и может кто подскажет как попроще одно пяти разрядное двоичное число разложить на два четырех,нужно для управления двумя мультиплексорами,ато у меня при разложении декодерами и логикой закончились ресурсы плиски blink.gif
по плате - помоему нет смысла ее заказывать в том виде в каком она есть,поскольку в снг нету памяти в плсс корпусе,все что удалось найти эт в минидипе в Питере. да и без анальной части этот прибор очень узкопрофильный.(почему дорожки отгорают быстрей чем высокоскоростная защита от перенапрежений? 07.gif )
andreichk
Цитата(Maks321 @ Jan 20 2009, 03:16) *
еще коечто наклюнулось- перечитывая датащит на фифо.
после сброса, начиная чтение может нужно отключить строб записи иначе прочитаем только что записавшийся адрес?
соответственно на малых частотах тактирования адреса считывания будут перескакивать через адрес записи и могут появиться глюки в синхронизации? или я опять чет не допонял.
в схеме(та что в Sплане и джипеге) ресет fifo подключен к 19 ноге плиски хотя на ней по исходникам находится кнопка.
вопросик по плиске - в этой 9572 нету не одного элемента на 3 состояния?и может кто подскажет как попроще одно пяти разрядное двоичное число разложить на два четырех,нужно для управления двумя мультиплексорами,ато у меня при разложении декодерами и логикой закончились ресурсы плиски blink.gif
по плате - помоему нет смысла ее заказывать в том виде в каком она есть,поскольку в снг нету памяти в плсс корпусе,все что удалось найти эт в минидипе в Питере. да и без анальной части этот прибор очень узкопрофильный.(почему дорожки отгорают быстрей чем высокоскоростная защита от перенапрежений? 07.gif )

банальные ошибки в коментариях исходника.На плате и растровых рисунках ошибок нет
Цитата
//###### УПРАВЛЕНИЕ РЕЖИМОМ ЧТЕНИЯ. ПОРТ С НА ВЫХОД ########################
#ifndef PLCD_FIFO_RES
#define PLCD_FIFO_RES PIN_C0//сброс перед чтением k 25 ножкe FIFO А,В
#endif
//--------------------------
#ifndef READ_FIFO_B
#define READ_FIFO_B PIN_C1////к 18 ножки IDT7205 канал В
#endif
//--------------------------
#ifndef READ_FIFO_A
#define READ_FIFO_A PIN_C2////к 18 ножки IDT7205 канал А
#endif
//###### ЭТИ КНОПКИ МЕНЯЮТ ПОКАЗАНИЯ SEC/DIV
#ifndef OUT_A_UP
#define OUT_A_UP PIN_A0//от 22 ножки XС9572
#endif
//--------------------------
#ifndef OUT_A_DOWN
#define OUT_A_DOWN PIN_A1//от 24 ножки XС9572
#endif
//--------------------------
#ifndef OUT_B_UP
#define OUT_B_UP PIN_A2//от 25 ножки XС9572
#endif
//--------------------------
#ifndef OUT_B_DOWN
#define OUT_B_DOWN PIN_A3//от 26 ножки XС9572
#endif
//--------------------------
dosikus
Цитата(Илья @ Dec 19 2008, 22:34) *
Пасибо за пример - буду знать на будующее. сходу такого трюка мне найти не удалось - а с компилятором этим я ни разу в жизни не работал. И сейчас не работаю. - Просто хотелось человеку помочь smile.gif - ну нашел же всетаки способ решить проблему beer.gif

Но все-таки! Как ни крутите, но директивы #bit и #byte нифига не являются классическими, и посто догадаться о них - невозможно (без изучения компилятора).
Так что определение "через задний проход" - остается в силе. smile.gif (ведь можно же было сделать по человечески....)


Дык да , прав ты, все через ж...
Особенно посмотреть как для 18 пиков указатели на ROM пользовать.
Но все же на сей компиль достаточно много инфы и примеров и складывается впечатление что у буржуев он в особом почете.

А вам мужики огромный респект , такую работу проделали..
Inversiya
Вопрос по данному проэкту.
1. Есть ли у данного устройства порт для подклячения к ПК, и какой?
2. Где можно найти дешовые дисплеи для данного устройства?
3. Подойдёт ли дисплей с контроллером "HD64646/MSM6255/SED1330"?
andreichk
1.нет
2. смотря где вы живёте
3.с SED1330 подойдёт, с остальными не знаю...
Kabron
Цитата(Transon @ Mar 12 2008, 16:18) *
a14.gif
Это самая лучшая разработка одного человека какую я видел за последнее время.
Я сам пытался разработать цифровой осциллограф, но так до конца не доделал, АЦП не заработал (AD9283 100Msps), сделал его только как логический анализатор через LPT порт с частотой дискретизации 48MHz и 8 каналов, потом забросил, щас снова интерес появился, я хочу повторить ваш осциллограф для себя.
Аналогов такого осциллографа со схемами я не нашёл.

А я чета схемы и этого осцилла не вижу wassat.gif
....
Виноват, схемы нашел. Но это же было на 3й странице.
DL36
Цитата(Kabron @ Mar 13 2009, 11:59) *
Виноват, схемы нашел. Но это же было на 3й странице.

Так автор зарабатывал пропуск в свои. biggrin.gif И я считаю честно заработал.
andreichk
Цитата(DL36 @ Mar 13 2009, 21:40) *
Так автор зарабатывал пропуск в свои. biggrin.gif И я считаю честно заработал.
спасибо за высокую награду beer.gif
Left Radio
Пожалуйста обьясните какие функции выполняет ПЛИС в этой схеме, тактирует ФИФО?
А чем обусловлена нижняя частота в 625Кгц?
Ведь как я понимаю в оригинале - http://www.eosystems.ro/eoscope/eoscope_en.htm есть развертка вплоть до 1сек/дел,
причем память там стоит на 512 байт, а здесь на 8Кбайт.......
andreichk
Цитата(Left Radio @ Mar 22 2009, 01:31) *
Пожалуйста обьясните какие функции выполняет ПЛИС в этой схеме, тактирует ФИФО?
А чем обусловлена нижняя частота в 625Кгц?
Ведь как я понимаю в оригинале - http://www.eosystems.ro/eoscope/eoscope_en.htm есть развертка вплоть до 1сек/дел,
причем память там стоит на 512 байт, а здесь на 8Кбайт.......

а вы схему и программу посмотрите повнимательнее, тогда такие вопросы сразу отпадут, но чтобы не утруждать вас ,напомню, что в нашей модели встроен ещё и спектроанализатор с преобразованием Фурье, для которого как раз и понадобилась ФИФО на 8к
Left Radio
Цитата
а вы схему и программу посмотрите повнимательнее, тогда такие вопросы сразу отпадут,
но чтобы не утруждать вас....


Ну зачем же сразу так..... smile.gif Я ж без претензий или наездов, просто действительно интересно досконально разобраться как этот осциллограф работает.
Скажите АЦП и ФИФО тактируются без задержек между тактами
относительно друг друга?
То есть можно ли сделать так, убрать плис, все кнопки повесить на МК, а тактировать АЦП и ФИФО например от DS1086?
С ПЛИС только начинаю работать, потому и такие вопросы smile.gif
Буду очень благодарен вам за ответы.
Павел Рябцов
andreichkА может всё таки заказать десяток плат для твоего устройства,мне очень осцилограф понравился,хочу повторить его.Но я в этом деле новичек...так что будет много вопросов.
gapkrd
Память пришла (7205 фифо из ЭФО), жду индикатор и пик-контроллер.
Как будет все в куче буду пробовать повторять. Плату использую от
eOscope с небольшими переделками, а то в оригинале очень сложно
повторить , тем более 2 стороны.

Вопрос кто повторял конструкцию какие подводные камни???
andreichk
Цитата(Left Radio @ Mar 22 2009, 19:33) *
Ну зачем же сразу так..... smile.gif Я ж без претензий или наездов, просто действительно интересно досконально разобраться как этот осциллограф работает.
Скажите АЦП и ФИФО тактируются без задержек между тактами
относительно друг друга?
То есть можно ли сделать так, убрать плис, все кнопки повесить на МК, а тактировать АЦП и ФИФО например от DS1086?
С ПЛИС только начинаю работать, потому и такие вопросы smile.gif
Буду очень благодарен вам за ответы.
на самом деле с ПЛИС вообще никаких проблем нет, программная среда для Ксайлинкс есть тут на ФТП, шнурок для програмирования делается элементарно просто,ПЛИСка програмируется за 5 секунд.Не вижу смысла выкидывать её из схемы и переделывать весь код,тем более, что для такта нужно мегагерц больше, чем может выдать ПИК.Так что осваивайте ПЛИС, в жизни пригодится... Ну если очень хочется в коде поковыряться на предмет переноса опроса кнопок, то флаг вам в руки,а тактировать АЦП и ФИФО ну наверное можно и от DS1086


Цитата(Left Radio @ Mar 22 2009, 19:33) *
Ну зачем же сразу так..... smile.gif Я ж без претензий или наездов, просто действительно интересно досконально разобраться как этот осциллограф работает.
Скажите АЦП и ФИФО тактируются без задержек между тактами
относительно друг друга?
То есть можно ли сделать так, убрать плис, все кнопки повесить на МК, а тактировать АЦП и ФИФО например от DS1086?
С ПЛИС только начинаю работать, потому и такие вопросы smile.gif
Буду очень благодарен вам за ответы.
Вы у меня хотите заказать? или я неправильно понял, а зачем вам десяток плат? подзаработать решили на чужих харчах? biggrin.gif


Цитата(gapkrd @ Mar 22 2009, 20:26) *
Память пришла (7205 фифо из ЭФО), жду индикатор и пик-контроллер.
Как будет все в куче буду пробовать повторять. Плату использую от
eOscope с небольшими переделками, а то в оригинале очень сложно
повторить , тем более 2 стороны.

Вопрос кто повторял конструкцию какие подводные камни???
нифига себе с небольшими переделками.... unsure.gif
gapkrd
нифига себе с небольшими переделками.... unsure.gif
[/quote]

Я имел ввиду аналоговую часть
andreichk
Цитата(gapkrd @ Mar 22 2009, 22:38) *
нифига себе с небольшими переделками.... unsure.gif


Я имел ввиду аналоговую часть

я кстати сам у него передрал аналоговую часть
заодно привожу чертёж обновлённой печатной платы.Изменил питание цифровой части...
gapkrd
Цитата(andreichk @ Mar 23 2009, 00:51) *
я кстати сам у него передрал аналоговую часть
заодно привожу чертёж обновлённой печатной платы.Изменил питание цифровой части...



за чертеж платы спасибо, но я не сделаю такую в в домашних условиях. я ЛУТом пробовал делать
стороны не смог совместить.
(до фотоспособа не дошел еще, хотя фоторезист листовой, лампа есть. технологию осваивать надо)
Павел Рябцов
andreichk Да почемуж сразу заработать,просто дешевле будет,я ведь не один хочу собрать этот дивайс.Думаю что 400-500 рублей платка выйдет,это приемлимо.
Если не сложно выложи полное название микрух,всё до циферки и буковки,а то при заказе через интернет их не видно...
Керя
Собрал этот девайс,но не до конца.Осталось впаять АЦП,жду когда привезут.Но уже рисует разные графики от наводок.
Автору большая похвала и респект,отличный прибор получился.
Я использовал дисплей BG320240F с контролером RA8835 работает на ура.Пришлось только плату чуток изменить.Плату кстати по ЛУТ изготавливал,получилось отлично,только метализацию пришлось проволочками делать,но это мелочи.
Вопрос к автору.
На сегодняшний день имеются какие нибудь изменения в прошивках для ПИКА и ПЛИСА ?
Павел Рябцов
Сегодня закинул удочку по поводу возможности изготовления плат,вырисовалась цена от 450-600 р,надо заказывать 10 штук,ну может всётаки наберётся народ.Думаю что ЛУТ способом получается чуть дешевле но не совсем красиво...
andreichk
Цитата(Керя @ Mar 23 2009, 12:09) *
На сегодняшний день имеются какие нибудь изменения в прошивках для ПИКА и ПЛИСА ?

нет

Цитата(Павел Рябцов @ Mar 23 2009, 10:39) *
andreichk Да почемуж сразу заработать,просто дешевле будет,я ведь не один хочу собрать этот дивайс.Думаю что 400-500 рублей платка выйдет,это приемлимо.
Если не сложно выложи полное название микрух,всё до циферки и буковки,а то при заказе через интернет их не видно...
да собирайте на здоровье, мне не жалко. Только не пытайте меня вопросами по поводу названий деталек, там все детальки в схеме нарисованы с названиями. По питанию дисплея всё как у румынца. Точное название ПИКа в ветке найдёте, короче мне лениво ковыряться и времени нету....сорри
Павел Рябцов
andreichk Тада просто выложи фотку платы твоего дивайса,там бут видно название микрух.
andreichk
Цитата(Павел Рябцов @ Mar 23 2009, 18:13) *
andreichk Тада просто выложи фотку платы твоего дивайса,там бут видно название микрух.
лениво мне фоткать
IDT7205
XC9572 pc44aem0029
ADS831e
sed1335f
ICL7660
LM2575–5 ( В НОВОЙ ВЕРСИИ) 7805 В СТАРОЙ
7812
HM628128
PIC18F4685
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.