Desvendando Mitos: Memórias 3,3V em Consoles 5V

Introdução:

Recentemente veio à tona, a conversa sobre memórias 3,3V em consoles 5V sem os devidos ajustes no design. Tentarei esclarecer de forma definitiva as dúvidas técnicas existentes ao integrar memórias operando a 3,3V em consoles de 5V, com foco  especialmente no processador W65C816(o modelo Ricoh 5A22 é uma variação desse processador) e na memória S29GL064.

Ao examinar as especificações de ambos os componentes, destaca-se uma questão crítica relacionada à corrente máxima do processador e à tensão máxima permitida na memória.

Processador W65C816:

Conforme indicado no datasheet do W65C816 [1], os parâmetros elétricos revelam uma corrente máxima de 2~6mA para o processador. Esta informação torna-se crucial ao integrar memórias que operam em 3,3V, como a S29GL064, em consoles de 5V. É relevante observar que os datasheets de alguns processadores, como o Zilog Z80 e o Motorola 68000, não apresentam detalhes específicos sobre a corrente máxima de saída dos pinos de entrada/saída (I/O) e por este motivo, foi utilizada a corrente máxima global do chip, que precisa ser maior do que a corrente máxima de cada pino de I/O individualmente.

A corrente máxima do chip está intimamente ligada à sua habilidade de dissipar calor e manter-se dentro das condições operacionais estabelecidas pelo fabricante. Quando o chip é operado além dessas especificações, ocorre um estresse na pastilha de silício, que pode levar a uma redução na vida útil do chip e, em casos extremos, causar falhas permanentes. Portanto, é fundamental operar os chips dentro dos limites estabelecidos pelo fabricante para garantir um desempenho confiável e duradouro.. Exploraremos mais adiante as razões desse fenômeno, juntamente com cálculos simplificados no final do post.

Memória Flash S29GL064:

O datasheet da memória [2] apresenta um dado intrigante nas especificações de tensão. A nota (Nota 1, página 58) destaca que, durante transições de tensão, as entradas ou saídas podem ultrapassar VCC+2,0V por até 20ns. Este fenômeno, conhecido como “Maximum Positive Overshoot” pode ter implicações significativas quando integrado com dispositivos que operam em diferentes níveis de tensão.

Nota 4 final, da mesma tabela traduzido: “Esforços acima dos valores listados sob Tensões Máximas Absolutas podem causar danos permanentes ao dispositivo. Este é apenas um rating de estresse; a operação funcional do dispositivo nessas condições, ou em quaisquer outras condições acima das indicadas nas seções operacionais deste datasheet, não é implícita. A exposição do dispositivo a condições de tensão máxima absoluta por períodos prolongados pode afetar a confiabilidade do dispositivo.”

Essa declaração significa que as informações fornecidas são referentes a limites de estresse, conhecidos como “Absolute Maximum Ratings” (Tensões Máximas Absolutas). Esses valores representam limites além dos quais o dispositivo pode sofrer danos permanentes. A frase “Este é apenas um rating de estresse” indica que esses valores são apenas para informar sobre os limites máximos que o dispositivo pode suportar sem dano permanente.

A segunda parte da declaração destaca que a capacidade de operação funcional do dispositivo não é garantida quando operando nessas condições de estresse ou em qualquer outra condição que exceda os valores indicados nas seções operacionais do datasheet. Em outras palavras, embora esses limites de estresse sejam fornecidos, o funcionamento normal e confiável do dispositivo não é assegurado se esses limites forem ultrapassados. É fundamental operar o dispositivo dentro dos parâmetros especificados nas seções operacionais do datasheet para garantir seu funcionamento adequado e confiável.

Ocorrências do Positive Overshoot:

Durante a operação normal do console, há momentos em que a cpu acessa os dispositivos existentes no cartuchos, esse acesso utiliza pinos de endereçamento, data e controle.

Todos esses pinos operam na voltagem da CPU, neste caso, 5V. E é aqui que ocorre o problema do positive overshoot, durante o acesso alguns pinos de endereçamento vão a nível lógico alto 5V, os pinos de controle vão a 0V.

Porém, fora do acesso, ou seja, quando o console não está acessando o cartucho, e sim os dispositivos internos do console, os pinos de controle inerentes ao cartucho vão para o nível lógico alto 5V, sendo assim, o overshoot ocorre durante todo o tempo de funcionamento. Significa dizer que o console esta consumindo mais corrente que o projetado, gerando estresse no processador, consequentemente gerando mais calor, reduzindo a vida útil do processador..

Conclusão:

Ao analisar ambos os casos, notamos que ultrapassamos os valores estipulados pelo fabricante tanto da memória quanto do processador. Na memória, observamos um overshoot de tensão de 1.7V, enquanto no processador, há um aumento contínuo de corrente ao longo de todo o tempo de operação.

No entanto, é importante notar que há outros componentes envolvidos, como o regulador de voltagem do console, geralmente o LM7805. Muitas vezes, esse regulador acaba sendo sobrecarregado com uma corrente superior àquela calculada pela equipe de engenharia responsável pelo desenvolvimento do projeto do console.

A escolha de memórias operando em 3,3V em vez de 5V, ou a decisão de não implementar a correção de níveis de tensão, levanta questionamentos sobre a qualidade do design. Há várias razões que podem justificar essas escolhas, mas é importante avaliar se são fundamentadas.

As memórias de 5V com 4MB disponíveis no mercado são acessíveis, mas muitas vezes apresentam custos elevados Ex.: 29F033. Alternativas como as EEPROMs, Ex.: 27C322, podem ser mais econômicas, embora tenha o inconveniente da demora no processo de gravação e apagamento. Além disso, existem arranjos viáveis, como a utilização de duas memórias de 2MB, 5V, como a 29F1615, que são mais facilmente encontradas.

Então, por que optar por memórias 3,3V sem implementar level shift? O custo de um level shift é relativamente baixo (2~3 reais), e mesmo assim não é utilizado em alguns projetos. Há alternativas mais econômicas, como o uso de buffers, que oferecem resultados semelhantes por custos mínimos, literalmente centavos.

Para jogos que demandam funções adicionais, como mappers, existe a opção de utilizar um CPLD desde que tolerantes a 5.0V para realizar a correção de voltagem parcial ou integral nos pinos de endereçamento, data e controle é uma prática de qualidade e um uso exemplar dos componentes, como evidenciado em Demons of Asteborg/Astebros da Neofid.

https://twitter.com/Voultar/status/1426206341052387328/photo/1

A última referência enfrentou críticas de indivíduos com influência, mas sem conhecimento substancial. Isso destaca um desafio prevalente em nossa sociedade atual: pessoas sem expertise discorrendo para amplas audiências, resultando em desinformação disseminada. Para mais aqui, aqui e aqui.

A pergunta inevitável é: por que não realizar essa correção de níveis de tensão? Certamente não é por questões financeiras relevantes, dado o baixo custo das soluções disponíveis. A ironia reside no fato de que, mesmo com soluções acessíveis, a resistência à implementação persiste, sugerindo que, por vezes, a economia de alguns centavos pode ter um preço mais alto em termos de qualidade e integridade técnica.

Agora, uma reflexão crucial: para aqueles que acreditam que cartuchos produzidos sem a devida correção dos níveis de tensão exigidos pelos fabricantes dos componentes são considerados de “qualidade”, como classificar então os projetos que adotam práticas corretas?

A resposta a essa pergunta lança luz sobre a importância de se preocupar não apenas com o custo, mas também com a integridade técnica e a qualidade nos projetos de hardware.

Em um momento posterior, planejo criar um post mais técnico, incluindo testes de laboratório para proporcionar uma abordagem mais aprofundada sobre o assunto.

“If somebody is willing to spend time and negative energy on trying to insult me or trying to diss me or trying to discredit what  I’ve said and what you know other engineers I’ve agreed with, fine, waste your time doing that, I’m gonna waste my time replying right i’ve got better things to do”[4]

Calculos:

A fórmula para calcular a corrente (Imemória) nos pinos é:

Tendo Rtotal valores entre 20 e 100 Ohms isso depende de vários fatores e incluindo tamanho de trilha na pcb e portanto vou calcular com os dois extremos, Vcc-console 5.0v e VCC-console 3.3V, substituindo os valores teremos:

Para Rtotal = 20 Ohms:

Para Rtotal = 100 Ohms:

Nota sobre os Cálculos e Valores:

Os cálculos realizados acima fornecem uma estimativa da corrente nos pinos da memória e uma comparação do tempo de acesso com o tempo de overshoot máximo permitido. É crucial observar que esses cálculos são baseados em valores típicos e suposições razoáveis sobre as resistências envolvidas.

Margens de Segurança:

A variação das resistências (Rtotal) de 20 a 100 ohms destaca a importância de considerar diferentes cenários elétricos. A margem de segurança é maior quando (Rtotal) é maior, indicando uma redução na corrente nos pinos da memória.

Esses cálculos proporcionam uma visão inicial, mas a atenção cuidadosa aos detalhes do circuito e a realização de testes experimentais são essenciais para garantir uma integração bem-sucedida de memórias 3,3V em consoles 5V, preservando a estabilidade e confiabilidade do sistema.