User Tag List

Страница 31 из 50 ПерваяПервая ... 272829303132333435 ... ПоследняяПоследняя
Показано с 301 по 310 из 498

Тема: Денди тема

  1. #301
    HardWareMan
    Гость

    По умолчанию

    Цитата Сообщение от kox Посмотреть сообщение
    Как заказать платку?
    Очень просто. Берем герберы здесь, отсылаем их, например, сюда (для жителей столиц есть отечественные производители, нужно только не полениться и поискать), оплачиваем картой выставленный счет и ждем.

  2. #301
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #302

    Регистрация
    27.11.2010
    Адрес
    Пенза
    Сообщений
    332
    Спасибо Благодарностей отдано 
    23
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А если не острить? У вас все платы закончились?

  4. #303
    HardWareMan
    Гость

    По умолчанию

    Цитата Сообщение от kox Посмотреть сообщение
    А если не острить? У вас все платы закончились?
    А если читать что пишут а не только писать?
    http://zx-pk.ru/threads/6479-dendi-t...l=1#post884449

  5. #304
    HardWareMan
    Гость

    По умолчанию

    Платки в МСК.

  6. #305

    Регистрация
    14.10.2008
    Адрес
    Мытищи
    Сообщений
    55
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    14
    Поблагодарили
    8 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Платки приехали. KOX, остались лишь платы ревизии 1, без возможности установки рычага eject,
    и с одним кварцем (выбирать придется сразу, либо PAL/Dendy либо NTSC) такие устроят?

  7. #306

    Регистрация
    14.10.2008
    Адрес
    Мытищи
    Сообщений
    55
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    14
    Поблагодарили
    8 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

  8. #307

    Регистрация
    12.02.2008
    Адрес
    S-Posad
    Сообщений
    472
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    35 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Flamer Посмотреть сообщение
    - GARNIZON - 1 плата, rev2 передано адресату.
    Адресат доволен до соплей! Ребята - спасибо!

  9. #308

    Регистрация
    27.09.2016
    Адрес
    г. Москва
    Сообщений
    1
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Друзья, приветствую!

    А последняя плата rev.1 она всё еще *free* ?
    Я б забрал в Мск, если возможно)

  10. #309

    Регистрация
    22.01.2014
    Адрес
    г. Великий Новгород
    Сообщений
    169
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    9 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Может мне уже пора переводить денежные знаки?
    Или пока не до отправления посылок, тогда я подожду зеленого свистка в ЛС :-)
    С уважением,
    Александр.

  11. #310
    HardWareMan
    Гость

    По умолчанию

    Кстати, я тут уже говорил о принципах формирования видео у PPU. И уже провел все необходимые опыты (пока только NTSC, но скоро доберусь и до PAL). Сетап:

    Verilog кодера NTSC по правилам PPU (используется 9 уровней на 8битном ЦАП, и его можно упростить):
    Код:
    module PAL_NTSC_Gen(
        input       NTSC_Clk,     // 21.4772 MHz
        input       PAL_Clk,      // 53.2034 MHz
        output      [7:0]DAC,
        output      [3:0]COUT,
        output      [12:1]PHOUT
    );
    // For test purpose
    assign COUT[3:0] = HCOUNT[7:4];
    assign PHOUT[12:1] = PH[12:1];
    
    // Регистры
    reg [2:0]PH_PSC;        // Phase prescaler
    reg [12:1]PH;           // Color subcarrier phases
    reg [3:0]PIX_PSC;       // Pixelclock prescaler
    reg PIX_CLK;            // Pixelclock strobe
    reg [9:0]HCOUNT;        // Horizontal counter
    reg [9:0]VCOUNT;        // Vertical counter
    reg HSYNC;              // Horizontal sync
    reg BURST;              // Color burst
    reg HSCREEN;            // Active video in scanline
    reg VSYNC;              // Vertical sync
    reg VSCREEN;            // Active video in frame
    
    // used levels
    wire [7:0]L0;
    wire [7:0]L1;
    wire [7:0]L2;
    wire [7:0]L3;
    wire [7:0]L4;
    wire [7:0]L5;
    wire [7:0]L6;
    wire [7:0]L7;
    wire [7:0]L8;
    wire [7:0]L9;
    // NTSC
    assign L0 = 8'h00;
    assign L1 = 8'h10;
    assign L2 = 8'h18;
    assign L3 = 8'h20;
    assign L4 = 8'h32;
    assign L5 = 8'h36;
    assign L6 = 8'h3C;
    assign L7 = 8'h4E;
    assign L8 = 8'h55;
    assign L9 = 8'h6E;
    
    // Luma
    wire [7:0]LUMAL;
    wire [7:0]LUMAH;
    assign LUMAL[7:0] = (~VCOUNT[6]) ?
                            (~VCOUNT[5]) ? L2[7:0] : L3[7:0]
                        :
                            (~VCOUNT[5]) ? L5[7:0] : L8[7:0];
    assign LUMAH[7:0] = (~VCOUNT[6]) ?
                            (~VCOUNT[5]) ? L6[7:0] : L7[7:0]
                        : L9[7:0];
    
    // Chroma
    wire [7:0]CHROMA;
    assign CHROMA[7:0] =    (~HCOUNT[7]) ?
                                (~HCOUNT[6]) ?
                                    (~HCOUNT[5]) ?
                                        (~HCOUNT[4]) ?
                                            LUMAH[7:0]
                                            :
                                            (PH[1]) ? LUMAH[7:0] : LUMAL[7:0]
                                    :
                                        (~HCOUNT[4]) ?
                                            (PH[2]) ? LUMAH[7:0] : LUMAL[7:0]
                                            :
                                            (PH[3]) ? LUMAH[7:0] : LUMAL[7:0]
                                :
                                    (~HCOUNT[5]) ?
                                        (~HCOUNT[4]) ?
                                            (PH[4]) ? LUMAH[7:0] : LUMAL[7:0]
                                            :
                                            (PH[5]) ? LUMAH[7:0] : LUMAL[7:0]
                                    :
                                        (~HCOUNT[4]) ?
                                            (PH[6]) ? LUMAH[7:0] : LUMAL[7:0]
                                            :
                                            (PH[7]) ? LUMAH[7:0] : LUMAL[7:0]
                            :
                                (~HCOUNT[6]) ?
                                    (~HCOUNT[5]) ?
                                        (~HCOUNT[4]) ?
                                            (PH[8]) ? LUMAH[7:0] : LUMAL[7:0]
                                            :
                                            (PH[9]) ? LUMAH[7:0] : LUMAL[7:0]
                                    :
                                        (~HCOUNT[4]) ?
                                            (PH[10]) ? LUMAH[7:0] : LUMAL[7:0]
                                            :
                                            (PH[11]) ? LUMAH[7:0] : LUMAL[7:0]
                                :
                                    (~HCOUNT[5]) ?
                                        (~HCOUNT[4]) ?
                                            (PH[12]) ? LUMAH[7:0] : LUMAL[7:0]
                                            :
                                            LUMAL[7:0]
                                    :
                                        (~HCOUNT[4]) ?
                                            L3[7:0]
                                            :
                                            L3[7:0];
    // Video output
    assign DAC[7:0] = (VSYNC | HSYNC) ?
                         // This is correct composite sync
                         (VSYNC & HSYNC) ? L3[7:0] : L0[7:0]
                      :  (BURST) ?
                            // This is color burst
                            (PH[8]) ? L4[7:0] : L1[7:0]
                         :    (VSCREEN & HSCREEN) ?
                                  // this is picture
                                  CHROMA[7:0]
                              // Otherwise it is blank
                              : L3[7:0];
    
    // Because I don't have 42,9544 MHz generator and CPLD don't allow sync always block on both edge we update only even phases at negedge.
    always @(negedge NTSC_Clk) begin
        {PH[11],PH[9],PH[7],PH[5],PH[3],PH[1]} <= {PH[12],PH[11],PH[9],PH[7],PH[5],PH[3]};
    end
    // Video generator
    always @(posedge NTSC_Clk) begin
        // Color subcarrier phase prescaler
        if (PH_PSC[1] & !PH_PSC[0])
        begin
            PH_PSC[2:0] <= 3'h0; PH[12] <= !PH[12];
        end else PH_PSC[2:0] <= PH_PSC[2:0] + 3'h1;
        {PH[10],PH[8],PH[6],PH[4],PH[2]} <= {PH[12],PH[10],PH[8],PH[6],PH[4]};
       
        // Pixelclock prescaler
        PIX_PSC[3:0] <= PIX_PSC[3:0] + 4'h1;
        PIX_CLK <= !PIX_PSC[1] & !PIX_PSC[0];
    
        // HV COUNTERS: 341 pixels and 262 scanlines
        if (PIX_CLK)
        begin
            if (HCOUNT[9:0] == 9'd340)
            begin
                HCOUNT[9:0] <= 9'd000;
                if (VCOUNT[9:0] == 9'd261) VCOUNT[9:0] <= 9'd000; else VCOUNT[9:0] <= VCOUNT[9:0] + 9'd001;
            end else HCOUNT[9:0] <= HCOUNT[9:0] + 9'd001;
        end
    
        // Active video in scanline
        if (HCOUNT[9:0] == 9'd000) HSCREEN <= 1'b1;
        if (HCOUNT[9:0] == 9'd255) HSCREEN <= 1'b0;
        // Horizontal sync
        if (HCOUNT[9:0] == 9'd280) HSYNC <= 1'b1;
        if (HCOUNT[9:0] == 9'd305) HSYNC <= 1'b0;
        // Color burst
        if (HCOUNT[9:0] == 9'd309) BURST <= 1'b1;
        if (HCOUNT[9:0] == 9'd325) BURST <= 1'b0;
        // Vertical sync
        if (VCOUNT[9:0] == 9'd244) VSYNC <= 1'b1;
        if (VCOUNT[9:0] == 9'd248) VSYNC <= 1'b0;
        // Active video in frame
        if (VCOUNT[9:0] == 9'd000) VSCREEN <= 1'b1;
        if (VCOUNT[9:0] == 9'd240) VSCREEN <= 1'b0;
    end
    // end
    endmodule
    Этот код на частоте 21,47МГц формирует вот такую картинку:

    При этом, из главной частоты формируются 12 фаз поднесущей (6 прямых и 6 инверсных, мастерклок ровно в 6 раз больше поднесущей):


    И напоследок референс с оригинального NTSC PPU 2C02:

    Как видно, цвета полностью соответствуют. Теперь надо сделать то же самое, но для PAL.

    PS Спектрумостроителям на CPLD/FPGA на заметку.

Страница 31 из 50 ПерваяПервая ... 272829303132333435 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 26
    Последнее: 15.05.2020, 08:29
  2. Ответов: 23
    Последнее: 01.09.2007, 03:38
  3. как самому собрать спектрум (тема для новичков)
    от D-M в разделе Несортированное железо
    Ответов: 54
    Последнее: 26.02.2007, 17:39

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •