RSS
people

Mazda MP3 Player — Continue

Und weiter gehts...

Nach dem wir die wichtigste Infromation herausgefunden haben, kann man sich an der Hardware konzentrieren.

Als ich schon im Annonce erwähnt habe, dass ist schon die dritte Version des Players, also ich habe da nicht viel Neues im Bereich Hardware getan. Nur aus der zweite Version einpaar unnötige Teile herausgeschmiessen, und die Platine neu gelayoutet, um an die Göße der 2.5 Zoll Festplatte anzupassen. Die Schaltung des Player sebls kann man hier runterladen. Und hier liegt die Schaltung des Display-Modules

Gehen wird durch die wichtigste Blöcke.

Auf der ersten Seite ist die Blockschaltung des ganzen Player dargestelt.

Блок-схема

Wie man sieht, der Player ist eigentlich ganz einfach. Auf der Blockschaltung sind volgende Module dargestellt:

  • Power — unser Netzteil
  • M-Bus — Autoradio interface
  • Button — Bedienungseinheit — Dreheimpulsgeber
  • CPU— Hier ist allec klar — Das Gehirn useres Players — ATMega128
  • VLSI — Audio — MP3 Decoder
  • Display — Nokia 3310 Display
  • USB — UART <-> USB <-> Serielle Converter
  • FPGA — Programmierbares Logick Xilinx XC95144XL
  • RAM — 512 kB SRAM von Samsung — K6X4008C1F.
  • CF, IDE — Compact Flash und Festplatte 2.5 Zoll

Es kommen Fragen an, warum CF und nicht, zum Beispiel, SD/MMC Karten. Hier sind Antworten:

  • Erstens, ich habe viel CF Konnetktoren gefunden. Und für CF/MMC musste ich die noch kaufen.
  • Zweitens, Programmmässig, es gibd keinen Unterschied zwischen CF und IDE. Man muss nur die Zugriffsadresse beachten, alles anderes ist gleich. Für SD/MMC musste ich noch den Treiber neu schreiben.

Fangen wir von den einfachen Blöcken an:

* Power — Netzteil. die Stromversorgnung bekommte der vom M-Bus Konnektor — 12 Volts. Und wandelt die in 3.3 Volts für CPLD und VLS MP3 Dekoder, und 5 Volts für alles anderes. Gebaut auf der Basis von der LM2575-T-5 Schaltung und Linealer Regler MC33275.

* Button — Normales Impulsdrehegeber mit Fasenkodierung der Dreherichtung.

* USB — der alte gute FTDI FT232BM USB-Seriel Konverter

* M-Bus — Hier wird es schon interessant. Der Datasignal ist TTL 5 Volts Signal. Über den Protokol sprechen wir in anderem Artikel. Also gibt es an ACC Signal — wenn Zündschlüssel eingesteckt und auf eine Raste gedreht. In dem Fall wird Extraanlagen (Accessories) eingeschaltet. Dieser Signal ist 12 Volts, desswegen musste ich den Spannungsteiler machen:

Схема M-Bus коннектора

Mit diesen Werten werden 12 Volts in ca. 4.5 Volts konvertiert. Wenn die Spannung am Eingang plotzlich bis 16 Volts springt, dann am Ausgang werden 5.5 Volts, was für unserem Mikrokontroller noch akzeptabel ist. Dioden müssen solche Sprünge begrenzen.

Warum brauchen wir überhaupt den ACC Signal zu überwachen. Desswegen, weil es in dem Protokol selbel nichts gibt, was uns sagen kann, wann wir «schalfen» gehen müssem und nicht mehr die Musick abspeilen ( Wenn ist der Fahrer den Schlüßell rausgesteckt hat). Nur diesen Signal haben wir dafür.

*Display, VLSI — hier ist alles, wie in Datenblätter.

* Mit dem RAM ist auch interessant, weil  das 512 kB Speicher sind. Aber laut Datenblatt von Atmel, ATMega128 kann nur 64 kB externen Speicher adressieren, dafür aber auch müssen einige Sachen gemacht werden, sonst kann er nur 60 kB sehen. Um diese Begrenzung umzugehen, brauchen wird CPLD, in dem ganze adressierungs-Prozess gemacht wird. Es werden Speicher-Banks eingfuhgt. Jede Bank ist 16384 kBytes groß. Insgesamt 32 Banks. Super!

Die Schaltung der Speicherverwaltung ist von dem EtherNut Projekt entnommen wurde. Ich bin der Meinung, dass da die Entwicklern einiges nicht ganz richtig gemacht haben, und Bank mit Nummer 0 ist gleche Bank, wie der Bank mit Nummer 31. Ich habe sehr tief in die Details nicht reingegangen, habe einfach 31. Bank aus Benutzung ausgeschloßen.

Селектор банков памяти в CPLD

*СF/IDE — der Anschluß mach keine Problemme und da gibt es nicht viel zu sagen. Wirkliche Schwierigkeiten werden später — in der Software. Ganze Zugriffskontrol zu dem CF und Festplatte ist durch CPLD gesteuert. Für die Software sind die Festplatte und CF nur die Adresse in RAM. CF's Base-Adress ist 0xD000. Und für Festplate — 0xF000. Dass heisst, dass man in CPLD können muss, die Adresse zu verwalten. Das macht die VHDL — Datei — FPGA_IoControl_VHDL.Vhd (Alle Sourcen werden am Ende des Atikles ausefürt). Also in CPLD wird die Konvertierung von 16 Bit zu 8 Bit Datenbreite und zurück gemacht:

Data In and Out

Es bleiben eigentlich die interessanteste Blöcke — CPLD (auf der Schaltung heisst der Block FPGA ) und CPU

* Teil des CPLD's haben wird schon angeschaut. Weitere kann man in der Sourcen anschauen. Ich sage nur, dass das Umbau von einem alterem Projekt ist, und ich habe versucht so wenig wie möglich das schon funktionierende Projekt anfassen, aber man kann da im Projekt enige unnötige Teile sehen, die man umbenennen kann, oder komplett rausschmeisen. Aber Sie wissen ja. Fass ja nicht an das funktionierende Software!

Also ins CPLD kommt CLK Signal ein, der von Oscillator, der mit 32 MHz getrieben wird. Und in CPLD selber habe ich einen Element AND2 eingebaut, um den weiteren Durchgang des Signales zu verhindern. Das hat mir... nicht viel gebracht, als ich rewartet habe — nur 1 mA Stromersparniss.

Clk Enable

Die Ausgänge des CPLD's habe ich so platziert, dass es den Layouting Prozess erleichtert, und bringen weniger Durchkontaktierungen auf der Platine. 

* Und CPU Block ist geblieben. Da gibt es aber nicht viel interessantes. Viele Leitungen und Kondesatoren. Das interessanteste in innen drin, in der Software. Darüber srechen wir aber in der nächsten Folge

Und hier ist die Lister der Datein, die in der Artikel vorgeführt wurde

Оставить комментарий или два

Пожалуйста, зарегистрируйтесь для комментирования.