Hello All,
I have used Altera (now Intel) FPGA. Part number EP4CE22F17C8N. For hardware description please check out this post.
Project prepared and compiled in Intel Quartus Prime Lite Edition 16.1. This is the free version and it can be downloaded here.
You can build firmware from source code (check instructions below) or download pre-compiled firmware.
Here are the step-by-step instructions for cooking up the firmware:
git checkout https://github.com/aospan/joker-tv-fpga
After compilation you can program firmware into SPI flash on “Joker TV” device. There are two ways to do this.
This method is used by developers or by end-users for debricking device if the firmware is faulty. You need a USB byte-blaster in order to do this. It can be ordered on eBay for about $5.
This method is default for firmware upgrades and does not require any special hardware tools. Just run the following command:
joker-tv -w joker_tv.bin
Powering off the device is required. Just reconnect it to the USB port.
Here is a compilation status and used FPGA resources:
Quartus Prime Version 16.1.0 Build 196 10/24/2016 SJ Lite Edition Revision Name joker_tv Top-level Entity Name joker_tv Family Cyclone IV E Device EP4CE22F17C8 Timing Models Final Total logic elements 3,062 / 22,320 ( 14 % ) Total registers 1595Total pins 146 / 154 ( 95 % ) Total virtual pins 0 Total memory bits 313,856 / 608,256 ( 52 % ) Embedded Multiplier 9-bit elements 0 / 132 ( 0 % ) Total PLLs 1 / 4 ( 25 % )
All usb related code lives inside the usb folder. The code is based on Daisho project.
I have implemented USB Iscohronous transfers. End Point 3 (EP3 IN) is Transport Stream endpoint that contains media data (raw transport stream). We send 1024 bytes data packets every microframe (every 125 usecs). This allows us to reach total speed:
1024 bytes * 1/0.000125 = 8192000 bytes/sec or 62.5 Mbit/sec
Also, USB standby signalling implemented. This functionality important for using “Joker TV” device under Windows and Mac (OSx) because of enabled “standby” by default in this OS’s. And for Windows OS special USB\MS_COMP_WINUSB compatibility ID implemented, so we don’t need to install special drivers. Built-in winusb.sys/winusb.dll drivers will be used.
You don’t need to install special drivers under Windows OS
Transport Stream (TS) processing module lives inside the ts folder. TS deserializer, TS selector and FIFO (In-memory 32KB) is a main parts of this module. For testing purposes I have implemented Transport Stream generator with predefined pattern. So, we can use tscheck utility for data correctness check.
I have used OpenCores I2C and SPI implementations. They lives inside opencores_i2c and spi folders respectively.
Simple protocol for host-device commands implemented. It lives in joker_control folder.
Also, testbenches are prepared for some modules.
I use "Floridian Unlimited" prototype in this video. 400W and 1000W models are planned. For instance, 1000W model can gives…
Open eCar Open Source Software for Electric Vehicle (EV) Open eCar project is open source software for electric car. The…
Joker TV hardware functional testing with OpenHTF Functional Testing of PCBs is always used as a final manufacturing step. Functional…
Following TS dumps created on January 2018 in Changsha, Hunan Province, China. DTMB dump (722MHz) sands-722mhz.ts (50MB) This stream plays without problems…
Hello everybody! This post describes satellite transponders (DVB-S/S2) blind scan with Joker TV’s universal USB DTV receiver. Firstly, I will…
Hello everybody, this post describes data transfer over USB from Joker TV to a host using high bandwidth USB isochronous transfers…