Wiki > Main > LyrePrototype (compare)
Difference: LyrePrototype (r47 vs. r46)
Show RockBox running on some Free/Open hardware. After we can go to Olimex and ask them (or any others) If they are still interested on assembly and sell the hardware as a gadget on their online shop. We had contacted Olimex on 11 January 2007 and they said they will probably be interested and they even suggest a possible hardware configuration and price: AT91SAM9260? + LCD NOKIA 6610 + 8MB flash + 8/16MB SDRAM + nRF24L01 wireless chip + audio CODEC + Li-ion battery + charger + miniUSB + buttons, price in range of 100 ¤.
Version 1 of the RockboxPlayer will be made on some development board having as base an ARM MCU. We should not seek to have exotic hardware, just simple and cheap, to try not spending time in coding drivers and spending money on some hardware that will change in future. Just do the necessary to have a functional hardware that plays audio from files stored on some kind of flash memory, and which displays files, audio information, on a display
Now there is a bootstrap code working that boots from DataFlash memory. There is also one test application flash_LED code that is started by the bootstrap. The application resides on DataFlash memory with the bootstrap. In the end, the application will be the Rockbox bootloader that will load the Rockbox firmware from the SD card FAT file system partition. Audio data files will also be loaded from SD card.
Some code and more information are hosted on code.google SVN page.
Active developing and discussing ideas are happening in forum and IRC. Please contribute!
There are an external page to host the initial experimental code with SVN at code.google.com/p/rockboxplayer. We are now trying to make some first code to be launched by U-Boot.
We will use two development boards, the Olimex SAM9-L9260 development board and a custom secondary board. The bloc diagram:
At red we have the main board - Olimex SAM9-L9260 development board. We will use the MCU + SDRAM + FLASH + SD card connector + USB port. There is also the Power section, JTAG connection and an RS232 port, that were not drawn.
We will connect to that main board one custom secondary board, assigned as green in the image. The secondary board will have buttons, IC audio codec + earphone jack and color LCD.
SAM9-L9260 is a development platform with ARM9 microcontroller, 64MB SDRAM and 512MB NAND Flash. The board have Ethernet 100Mbit controller, USB host, USB device, RS232 and 40 pin extension port with all unused SAM9260 ports available for add-on boards. Have a RTC clock which is backuped with 3V Li battery.
Microcontroller - Atmel AT91SAM9260?
The AT91SAM9260? is the first member of a pin-compatible ARM9-based microcontroller family that shares the same programming model as ARM7-based controllers, allowing direct migration between controllers based on different ARM cores. It supports deterministic, real-time operation, offers supervisory functions, and has third-party support comparable to that for 8-bit microcontrollers.
The AT91SAM9260? is based on the ARM926EJ?-S processor, with 8K byte instruction and 8K byte data cache memories. It operates at 210 MIPS with a 190 MHz clock. It features 8K bytes of SRAM and 32K bytes of ROM with single cycle access at maximum processor or bus speed, together with an external bus interface with controllers for SDRAM and static memories including NAND Flash and CompactFlash?. Its extensive peripheral set includes USB Full Speed Host and Device interfaces, a 10/100 Base T Ethernet MAC, Image Sensor Interface, Multimedia Card Interface (MCI), Synchronous Serial Controllers (SSC), USARTs, Master/Slave Serial Peripheral Interfaces (SPI), a three-channel 16-bit Timer Counter (TC), a Two Wire Interface (TWI) and four-channel 10-bit ADC. Three 32-bit Parallel I/O Controllers multiplex the pins to/from these peripherals in order to reduce the device pin count, and peripheral DMA channels maximize the data throughput between these interfaces and the on- and off-chip memories.
The AT91SAM9260? has a fully featured system controller for efficient system management, including a reset controller, shutdown controller, clock management, advanced interrupt controller (AIC), debug unit (DBGU), periodic interval timer, watchdog timer and real-time timer. It is available in a 217-ball LFBGA RoHS?-compliant package and in a 208-pin Green QFP package.
The minimum size of RAM memory (for an audio player), should be at least 4MB, 8MB a good choice.
The minimum size of Flash memory (for RockBox firmware), should be at least 4MB, 8MB is a good choice.
SD/MMC card connector will be used for host data, music files.
The development board has different extension ports. If possible we should only use connections from them. Nearly all Pins can also be General Purpose I/O (GPIO).
We decided to use the TLV320AIC23 IC AUDIO STEREO CODEC 28-TSSOP (datasheet) - cost $6,5 in Digikey. Good points of the TLV320AIC23?:
We will use the Nokia 6610 Color LCD 128x128 plus a carrier board, as show in images. The carrier board of the LCD will be connected with the SAM9-L9260 development board using SPI and +3.3V and GND. The carrier board have a voltage step-up converter to power also de 6-7 volts background light (leds) of the LCD.
We will use 8 buttons: 4 direction buttons (up/down/left/right), select, menu, play/pause and stop. Up and down buttons typical acts as volume up and down.
* Prices on 13.03.2008.
This section describes the RockBox port for the hardware.
The AT91SAM9260? will boot directly from NAND flash. The first 4kB bytes of the NAND flash are loaded into internal SRAM and executed by branching at address 0x0000_0000 after remap. This is automatically done by the AT91SAM9260? Boot Program - read more about on the section "NAND Flash Boot" at AT91SAM9260 datasheet.
We will use the AT91 Bootstrap bootloader provided on the SAM9-L9260 development board. This bootloader will initialize, at least, the SDRAM and flash memory controllers. After It will load a code binary image from flash memory to SDRAM and jump to It, in our case, the 2nd stage bootloader.
We will use U-Boot to launch our final application, the RockBox firmware. We will use the U-Boot version provided by SAM9-L9260 development board - here the patches and the binaries to U-Boot 1.2: u-boot-1.2.0-atmel.patch.bz2; u-boot-1.2.0-atmel-olimex.patch.bz2 and u-boot-1.2.0-atmel-olimex-binaries.tar.bz2.
See more about U-Boot at www.linux4sam.org - U-Boot.
U-Boot will help in development because we can communicate with him by ethernet and using TFTP, we can upload a new image of Rockbox to the NAND flash memory.
This bootloader is an application that will be launched by U-Boot.
At this stage, we need to use buttons, LCD and flash NAND memory. For flash NAND memory we must make an ATA driver, the functions: ata_init(), ata_read_sectors() and ata_write_sectors() - to initialize, read and write data to the flash NAND memory. We need to also to mount fat file system and for that we will re-use the code from others targets.
We will need to implement also the next tasks:
Keymap definitions for the various targets are in apps/keymaps/ - lines such as BUTTON_ON|BUTTON_UP indicate a button combination that the hardware allows. The keymap_h1x0_h3x0.c and keymap_gigabeat.c are probably most useful to look at, as they have a similar number of buttons. (note that BUTTON_REL and BUTTON_REPEAT aren't real buttons, they're used to indicate release and repeat events respectively).
This Nokia Color LCD 128x128 uses the Epson S1D15G10? Compatible Controller. There is drivers for the Epson S1D15E06? LCD Controller 2bit color 160x128 at IriverPort (IriverHardwareComponents), maybe the drivers for the Epson S1D15G10? Controller are similar.
There is the IriverH10Port that uses a 128x128 color LCD, should be nice to look at that code as example.
There is a lot of examples codes at the product page in SparkFun
Online Machine Shop - Download the software for free, design the case in 3d, and it tell you the price you will pay. This is ideal for a prototype or small quantities.
See here: RockboxPlayerPrototypeDevelopmentTools?.
r48 - 23 Mar 2009 - 08:31:17 - DanielStenbergRevision r47 - 22 Aug 2008 - 15:25 - JorgePinto
Revision r46 - 21 Aug 2008 - 21:14 - JorgePinto
Copyright © by the contributing authors.