68K ou coisa assim, again

Software e Hardware para uC da Qualcomm, NXP, FreeScale e Motorola

Moderadores: 51, guest2003

Mensagempor mastk » 06 Out 2010 22:31

A resolução 320x200 não é CGA? Como seu monitor VGA esta apresentando esta imagem? Qual freq. de horizontal tu tá usando?


To emulando, o hardware roda VGA 640x480, mas jogo CGA na tela.

Demo no osc, bacana hein rs. Estou passando o hardware a limpo e quero ver se consigo manda fazer a placa em alguma empresa. Vamos deixar tudo certo no video, para centar o dedo no coldfire.
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Mensagempor msamsoniuk » 11 Out 2010 02:48

e a parte de audio? o amiga fazia maravilhas com 4 canais de audio:

http://www.youtube.com/watch?v=E6jNosHmHG8

o esquema dele era relativamente simples: 4 timers controlavam 4 canais de DMA independentes, que apontavam para 4 buffers diferentes de audio, que convergiam para 4 DAs de 8 bits e mixados 2 a 2, para gerar audio stereo. para evitar processar o conteudo dos buffers, cada canal possuia um master volume de 6 bits.

como o MCF5270 eh 100x mais veloz que o 68000, tudo isso poderia ser feito por software usando as mesmas tecnicas de processamento de audio para voip. a ideia neste caso eh packetizar o audio, assim no lugar de vc ter uma interrupcao de 44.1kHz para processar o audio amostra a amostra, vc pode ter uma interrupcao de 100Hz e processar frame a frame, o que otimiza bastante a execucao. como o tamanho do frame seria fixo, digamos, em 441 amostras stereo, vc precisaria fazer conversao de rate e depois mixar, o que nao eh complexo, se vc quiser posso dar uma ajuda nessa parte.

preparado um frame, ele eh programado no controlador de DMA e entao um DMA timer configurado para a gerar 44.1kHz. o controlador de DMA faz entao a transferencia do frame segundo essa cadencia, sem intervencao do processador e no final gera uma interrupcao (aquela interrupcao de 100Hz) pedindo um novo frame.

e com isso ainda sobram 3 canais de DMA para usar no video hehehe

mastk escreveu:
A resolução 320x200 não é CGA? Como seu monitor VGA esta apresentando esta imagem? Qual freq. de horizontal tu tá usando?


To emulando, o hardware roda VGA 640x480, mas jogo CGA na tela.

Demo no osc, bacana hein rs. Estou passando o hardware a limpo e quero ver se consigo manda fazer a placa em alguma empresa. Vamos deixar tudo certo no video, para centar o dedo no coldfire.
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor mastk » 04 Dez 2010 20:34

Imagem

Bem, ja esta pronta faz alguns meses, devo agradecer profundamente ao Guest2003, que apeser de branco, tem o coracao de preto rs, concerteza ele vai achar varias coisas erradas que poderiam reduzir a placa soh de bater o olho rs.

Infelizmente, estou com minha conta bancaria bloqueada e acho que nao vou conseguir ter as placas em maos ate o ano que vem.

A FURIA DOS DEUSES, TA CHEGANDO.
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Mensagempor enigmabox » 20 Fev 2011 11:16

enigmabox
 

Mensagempor mastk » 16 Jun 2011 22:01

Imagem

Agora pelo menos tenho um pouco de conforto para trabalhar rs.

Estou tendo problemas com o DMA do coldfire, sempre que tento acessar uma GPIO com o DMA, ocorrer um erro no barramento.

Uma droga que esse Kit, nao tem nada de alta velocidade externado...
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Mensagempor msamsoniuk » 17 Jun 2011 00:16

eu chutaria que eh isso aqui:

http://forums.freescale.com/t5/68K-Cold ... td-p/55009

o forum dos caras eh violento! :D
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor mastk » 17 Jun 2011 14:01

Na lata Sam, pensei que as restrições de acesso eram referentes apenas a CPU, me impressiona o quão completos são os ColdFire, sera que os ARMs tem essas capacidades e flexibilidade?

Bem, no final do teste consegui uma banda de 10MB/s o que não me atente minhas nescessidades.

Pode parecer estupido, mas me esqueci que tinha feito a placa de video do topicos acima, pqp, mandei agora mesmo para um fabricante de placa, mesmo que tenha que ficar com fome alguns dias.
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Mensagempor msamsoniuk » 17 Jun 2011 17:28

nao sei se eh possivel, mas... voce nao consegue quadriplicar essa performance programando o port do ponteiro fonte para 32 bits e o port do ponteiro destino para 8 bits? em teoria ele iria fazer uma unica leitura na memoria, puxar 32 bits e entao fazer 4 escritas de 8 bits.

outra ideia seria usar o mini-flex bus tb... acho que jah falamos sobre, mas nao lembro qual era o problema... sei que numa placa do 52259 tem uma MRAM de 2MB, mas talvez fosse possivel fazer um xunxo, separando 1MB para a MRAM e 1MB para IO.

mastk escreveu:Na lata Sam, pensei que as restrições de acesso eram referentes apenas a CPU, me impressiona o quão completos são os ColdFire, sera que os ARMs tem essas capacidades e flexibilidade?

Bem, no final do teste consegui uma banda de 10MB/s o que não me atente minhas nescessidades.

Pode parecer estupido, mas me esqueci que tinha feito a placa de video do topicos acima, pqp, mandei agora mesmo para um fabricante de placa, mesmo que tenha que ficar com fome alguns dias.
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor msamsoniuk » 19 Jun 2011 02:25

link interessante, tem descricao de alguns blocos de hardware dos chipsets de video do amiga:

http://gega.homelinux.net/AmigaDevDocs/ ... anual.html
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor mastk » 19 Jul 2011 12:10

Os ports estão organizados em registros de 8 Bits e sim pelo FlexBus seria possivel ter uma performace melhor e ainda com a ajuda da MRAM do kit.

No caso, para qualquer coisa que vc queira fazer com o FlexBus, é precisso passar por um CPLD, há alguns meses perguntei a Freescale sobre o mapa de memoria do citado e a resposta foi:

Niguem aqui faz a ideia do que tem gravado ali, porem fica o codigo fonte do CPLD.

Fiquei tão puto com isso e deixei de lado a ideia de usar esse recurso. Agora que já vi que DMA+GPIO não vai virar vou trair o movimento xilinx e ver no que dá.
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Mensagempor mastk » 19 Jul 2011 13:25

Peguei o codigo fonte, parece que esta em Verilog, nao entendo bem, mas pelo o que entendi, os pinos de expansão estão sendo usados para debug do CF e os de LCD não são utilizados.

Código: Selecionar todos
//*******************************************************************************************************************************************
  // Minibus CPLD
  // 8-bit Non-Muxed Mode
//*******************************************************************************************************************************************
//Top module

module cpld_8bit(
            address,
            data,
            reset,
            ale,
            rw_b,
            clk,
            oe,
            cf_ce,               //Active low Card select signal
            cf_oe,              //Active low Output enable strobe
            cf_reset,           //Reset the compact flash card
            cf_reg,             //Low during I/O operations,in memory mode used to distinguish betwen common and attribute memory
            cf_we,              //Active low signal used for writing configuration registers
            cf_address,
            cf_data,
            cf_cd
            );
       
        output [10:0] cf_address;
        output [7:0] cf_data;

        input [19:0] address;
        input reset;
        input ale;
        input rw_b;
        input clk;
        input oe;
        input [1:0] cf_cd;

        output [7:0] data;
        output cf_ce;
        output cf_we;
        output cf_reg;
        output cf_oe;
        output cf_reset;
       
        reg  cf_we;
        reg  cf_ce;
        reg  [7:0] data_reg;
       
// initial settings
initial
    begin
        cf_we = 1;
        cf_ce = 1;
        data_reg  = 8'b10101101; // card is not connected (173 dec)
    end
       
// connect reset directly
assign cf_reset = ~reset;

// on every cs1 change cf_ce and cf_we generation
always @(ale) begin
    // if active ce1- then connect rw to cf_we signal
    if ((rw_b == 0) && (ale == 0)) begin    //write
        cf_we = 0;
    end else begin                          //read or cs1 was changed to 1
        cf_we = 1;
    end
    cf_ce = ale;
end

// card detection
always @(cf_cd) begin
    if (~cf_cd[0] & ~cf_cd[1]) begin
        data_reg  = 8'b11100101; // card is connected send (229 dec)
    end else begin
        data_reg  = 8'b10101101; // card is not connected (173 dec)
    end
end

// addr n.13 is used for card detecting
assign data = (~ale & ~oe & address[13])  ? data_reg : 8'bz;

// connect directly oe for (active - zero during read)
assign cf_oe = oe;

// connect first 11 addr bytes directly on output
assign cf_address = address[10:0];

// connect addr bit n.12 directly on reg cf pin
assign cf_reg = address[12];



//Debug signals on J19
assign cf_data[0]=cf_reset;
assign cf_data[1]=cf_oe;
assign cf_data[2]=cf_we;
assign cf_data[3]=cf_ce;
assign cf_data[4]=cf_reg;
assign cf_data[5]=address[12];
assign cf_data[7:6]=2'b11;

endmodule


Não tenho opções no caso, terei de pegar o quartus e fazer um ByteBlaster.
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Mensagempor msamsoniuk » 20 Jul 2011 00:11

eh verilog sim... o cara deve programar em vhdl, pq usou a maldita notacao redundante (povo de vhdl curte escrever a mesma coisa 3x).

eu nao entendi sobre que card ele esta falando. mas, basicamente, se separar as entradas e saidas temos:

Código: Selecionar todos
module clpd_8bit(

        input [19:0] address, // endereco que vem do CF
        input reset, // reset que vem do CF
        input ale,  // ale que vem do CF
        input rw_b, // rw que vem do CF
        input clk, // clk que vem do CF
        input oe, // oe que vem do CF
        input [1:0] cf_cd, // card detection... que diabo de sinal eh esse?

        output [10:0] cf_address, // == address[10:0]
        output [7:0] cf_data, // um monte de sinais... pq?!?
        output [7:0] data, // logica do card detection... que card eh esse?
        output reg cf_ce, // == ale
        output reg cf_we, // = rw + ale
        output cf_reg, // address[12]
        output cf_oe, // == oe
        output cf_reset // == !reset
);


a questao eh: o que eh esse tal de card nessa placa?
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor luisf.rossi » 28 Ago 2011 15:40

Apenas para ajudar... esse código de verilog que ta no CPLD é realtivamente simples... ele criar uma lógica para acessar uma CompactFlash com o FlexBUS do Coldfire... o Card que que ele fala é o CompactFlash, cujo kit em questão tem um conector.. De qualquer maneira se vocês bão querem conectar o ColdFile à uma Compat Flash esse código tem utilidade zero para vocês..

Apenas um comentário.. se eu fosse vocês eu usaria Altera sem pensar... O Quartus II é bem melhor que o ISE.. e o principal de tudo .. o LogicTap da Altera não tem icensa.. ou seja você pode debugar um FPGA com o USBBlaster no Quartus II (que ajuda MUITO).

Além disso tem USBBLaster vendendo no ebay por 15 dolares haha....

A única vantagem que eu vejo no ISE é o Simulador integrado .. coisa que foi removido no Quartus.. agora so com o MultiSim

Abs
luisf.rossi
Byte
 
Mensagens: 109
Registrado em: 28 Nov 2010 12:48
Localização: São Paulo, SP

Mensagempor msamsoniuk » 29 Ago 2011 14:21

ah entendi... tinha que dar uma olhada no esquematico, pq tipo, se bobear rola usar esse conector da compact flash para plugar uma placa de expansao com uma FPGA ou CPLD. e fazendo, acho que fica facil plugar qq especie de logica rapida neste barramento, inclusive memorias.

quanto a quartus vs ise, acho que eh questao de gosto e praticidade: eu acho a representacao esquematica e as simulacoes do ise muito mais coerentes e profissionais que os equivalentes do quartus... pelos esquematicos gerados eu consigo conferir se a logica esta de acordo ou se pode ser mais compacta. e quanto as simulacoes, na pratica o que acho que tanto um quanto outro vao usar modelos temporais precisos que descrevem a FPGA... mas no meu caso acho que faz diferenca usar algo leve e simples como o isim, pois eh comum eu colocar processadores rodando software nas simulacoes para gerar interacoes dinamicas com os perifericos simulados. apesar de ter o chipscope aqui, realmente nunca precisei usar na pratica. normalmente a maioria dos blocos roda de primeira e, quando alguma coisa empaca, eh meio rapido de achar a falha no simulador mesmo.

mas isso apenas ateh a versao 10 do ise: depois simplesmente copiaram a salada do quartus e eu achei que ficou uma m****. o resultado eh que hoje em dia eh faco a logica para FPGAs menores no ise 10, debugo e depois mando para o ise mais novo apenas para produzir :P
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor luisf.rossi » 29 Ago 2011 15:18

Quanto à geração do esquemático concordo com você ... ISE é melhor... Simulação também é muito boa. E o principal que a Xilinx tem de melhor em relação à Altera na minha opinião é o .UCF... PQP o arquivo da Altera é horrivel para escrever ... e ficar fazendo na unha no Assignment Editor é triste... Mas não sei .. sou mais acostumado com o Quartus II.. acho ele mais ágil e intuitivo.

Quanto à usar simulações... claro para toda a lógica interna do FPGA simulação é o seu melhor amigo.. debugar direto no FPGA é perda de tempo .... Porémpara sinais assincrons externos eu tenho um serio problema com simulações... muito difícil cobrir todas as possibilidades.. e como você faz para simular jitter?

Um bom exemplo de como o Chipscop/LogicTap podem ser muito úteis. Recentemente eu estava trabalhando em uma placa em que um Cyclone II estava conversando com um Spartan-3. Não estava funcionando direito... o problema era um spike em uma dada situação com uma duração de 3-6ns... Eu acabei pegando esse spike com um scope de 4Gsps e 1GHz de banda.. porém não é tão comum encontrar um...

Com o LogicTap usando um clock de 200mhz eu consegui ver o mesmo spike..

Pelo menos para mim 99% dos meus problemas com FPGAs são com os sinais externos.. e nisso sim essas ferramentas ajudam em muito...

Mas de qualquer forma tenho que admitir que Xilinx anda mandando melhor de modo geral nos dispositivos.. pelo menos o Zynq eu acho que vai ser o bixo..


Abs
luisf.rossi
Byte
 
Mensagens: 109
Registrado em: 28 Nov 2010 12:48
Localização: São Paulo, SP

AnteriorPróximo

Voltar para NXP (ex-FreeScale (ex-Motorola))

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x