Download presentation
Presentation is loading. Please wait.
1
Instrument Interface FPGA
Hello, everyone. I’m SEO working on FPGA. I’ll briefly go over the works I have been doing so far in Berkeley. this presentation mainly going to be about I2C module and registers staying right beside to I2C. Yongmyung Seo School of Space Research Kyung Hee University TRIO-CINEMA 1 KHU, 08/10/2010
2
Agenda Introduction I2C & Register module
Test with ACTEL DEV board & test with IIB Current work status & Future plan Here is the agenda for today. First of all, I’ll talk a little about the introduction of the IIF, and then I’ll go over to I2C & Register module. After that, I’ll present about test have been done so far. and, I’m ending up with current work status and future plan. TRIO-CINEMA 2 KHU, 08/10/2010
3
Introduction Introduction
- Instrument Interface FPGA (IIF) serves as a bridge between the Pumpkin Processor and various other components - acts as a data buffer and command interface for MAGIC and STEIN instruments - acts as a buffer and Framer for the Telemetry system - IIF communicates with the Pumpkin Processor through I2C and SPI interface Before I start over, let me clarify two acronyms. IIB is instrument interface board, and IIF is instrument interface FPGA located on IIB. This is brief description of the IIF. Basically, IIF serves as a “bridge” between PIC micro controller and the other components, and the meaning of the bridge which represents IIF is described below. It will act as a big data buffer and command interface for MAGIC and STEIN and Telemetry as well. And, there are two primary communication interfaces between IIF and DS-PIC 33, those are I2C and SPI, TRIO-CINEMA 3 KHU, 08/10/2010
4
I2C & Register module I2C interface Registers Module interface
- serial communication data transfer bus - communicate with CPU and transfer data to be read and written to 25 registers Registers - 10 read-able and write-able, 11 read only and 2 write only registers out of 25 registers - 20 of 8 bit registers, 2 of 16 bit registers, 2 of 24bit registers and 1 of 32 bit registers out of 25 registers Module interface - once one of register is read or written as long as a transaction is valid, it sends data to modules or receives data from modules As for I2C & register module, it is consisted of I2C interface, registers and module interface. I2C is serial communication data transfer bus in order to communicate with CPU. And through the I2C, CPU is able to read and write to 25 registers. There are 10 read-able and write-able, 11 read only and 2 write only registers out of 25 registers. From the point of view of size, they can be distinguished by 20 of 8 bit registers, 2 of 16 bit registers, 2 of 24bit registers and 1 of 32 bit registers out of 25 registers once one of register is read or written as long as a transaction is valid, it sends or receives data through the module interface. TRIO-CINEMA 4 KHU, 08/10/2010
5
I2C & Register module Those red lines and arrows represent the work I just finished. Also, it represent the things I’ll mainly talk about today. TRIO-CINEMA 5 KHU, 08/10/2010
6
I2C & Register module Example of data transfer through I2C
This is an example of data transfer using I2C. The first incoming byte should be address, and after receiving 8 bit, the receiver device should send ACK bit. After this restart signal, the first coming byte is also address. And the transmission should be finished with stop signal. TRIO-CINEMA 6 KHU, 08/10/2010
7
This table shows you the information in terms of registers such as size, address, Read or write-able, and so forth.
8
I2C & Register module MAGIC_ready I2C_MAGIC_ready I2C & Register
MAGDATA MAGIC module MAGCMD This picture represents how the interface look like between registers and other instrument modules. I only put the case of MAGIC module as an instance. BOOMARM BOOMDEP BOOMOUT MAGICFLT TRIO-CINEMA 8 KHU, 08/10/2010
9
I2C Module Interface 25 Registers I2C & Register module MAGIC
MAGIC_ready I2C & Register module MAGIC I2C_MAGIC_ready MAGDATA MAGCMD BOOMARM BOOMDEP BOOMOUT MAGICFLT Module Interface I2C 25 Registers So, in this slide, I tried to explain what those lines and arrows represent at one time.
10
I2C & Register module And, all the codes are tested through simulation. TRIO-CINEMA 10 KHU, 08/10/2010
11
Test with ACTEL DEV board
Test procedure 1. Test program is coded in C – code work done by Seyoung Yoon, FSW team 2. Compile and build test program From now on, I’ll talk about how the codes are tested through hardware. Test procedure is like this. For the first, test program was coded in C for DS-PIC side, and I’d like to say thanks to Seyoung to make this test code. Then compile and build the code, MPLAB IDE V8.56 Interface TRIO-CINEMA 11 KHU, 08/10/2010
12
Test with ACTEL DEV board
3. Program the test code into DS-PIC33 DEV board 4. Program the I2C code into ACTEL DEV board DS-PIC 33 DEV board And program the test code into DS-PIC33 DEV board. Also, I programmed I2C & registers code into ACTEL DEV board Commercial ACTEL DEV board TRIO-CINEMA 12 KHU, 08/10/2010
13
Test with ACTEL DEV board
5. Inter-connect DS-PIC33 DEV board and ACTEL DEV board Inter-connection between DS-PIC33 DEV board and ACTEL DEV board and overall test environment After that, I hooked up corresponding input and output ports through wires. TRIO-CINEMA 13 KHU, 08/10/2010
14
Test with ACTEL DEV board
6. Send command through RS-232 serial communication terminal Then, I was able to send a command through RS-232 serial communication terminal. And the test result is coming up little bit later. Sending command through RS-232 serial communication terminal interface TRIO-CINEMA 14 KHU, 08/10/2010
15
test with IIB Test procedure
1. Program the test code into DS-PIC33 DEV board 2. Power up IIB I also did the same test with KHU version IIB. I’d like to say thanks to Dr chae as well dedicated on this IIB. Likewise before, I program the test code into DS-PIC33 DEV board and then powered up the IIB. TRIO-CINEMA 15 KHU, 08/10/2010
16
test with IIB 3. Program the I2C code into IIB and connect with DS-PIC33 DEV board 4. Send command through RS-232 serial communication terminal Inter-connection between DS-PIC33 DEV board and IIB and overall test environment And I hooked up with wires and sent commands. RS-232 serial communication interface TRIO-CINEMA 16 KHU, 08/10/2010
17
Test result - Read-able & write -able registers
Write 1 to a register and read the register value 1 Write 241 to a register and read the register value 241 Here are the test results. As I said before, in the register module, there are 3 kinds of registers. read-able and write-able, read only and write only registers. And this is Read-able & write-able registers case. First, I Wrote a value 1 to a register and read(레드) the register value 1. Then, I Wrote a value 241 to a register and read(레드) the register value 241. TRIO-CINEMA 17 KHU, 08/10/2010
18
Test result- Read only registers
If a command is write operation, IIF sends an error bit to CPU As for Read only registers, If a command is write operation, IIF sends an error bit to CPU. In this case, only read operation is available. Only read operation is available TRIO-CINEMA 18 KHU, 08/10/2010
19
Test result- write only registers
If a command is read operation, IIF sends an error bit to CPU Only write operation is available In case of write only registers, If a command is read operation, IIF sends an error bit to CPU, and Only write operation is available TRIO-CINEMA 19 KHU, 08/10/2010
20
Test result - Reset Once reset is done,
all register values are reset to all 0 Bug on STEINCMD register It suppose to be 0, but it is 255 And I2C & register module has reset function. If reset is done, all register values are reset to all 0. At this moment, I have one bug on STEINCMD register. It suppose to be a value 0 on the second byte of the register, but it is 255. This error occurs only when the CPU try to access to all registers at one time. If the command is targeting to individual register, it doesn’t happen. But it only happens CPU try to access to all register at one time. TRIO-CINEMA 20 KHU, 08/10/2010
21
Test result - Read all registers
Read all register value operation Still a bug on STEINCMD register It suppose to be 0, but it is 255 At this time, CPU tries to read all registers value at one time. In this case, write only registers were not read. Other values were read properly, but still there was a bug on STEINCMD register TRIO-CINEMA 21 KHU, 08/10/2010
22
Test result - Write all registers to 1
Write all register value to 1 Data in read-able, write-able and write only registers are changed to 1, and rest of registers still remain with 0 are read only registers Still a bug on STEINCMD register At this time, CPU tries to write to all registers value 1 at one time. In this case, read only registers were not read. Data in read-able, write-able and write only registers were changed to 1, and rest of read only registers still remain as 0. TRIO-CINEMA 22 KHU, 08/10/2010
23
Test result - Write all registers to 241
Write all register value to 241 Data in read-able, write-able and write only registers are changed to 241, and rest of registers still remain with 0 are read only registers Still a bug on STEINCMD register. However, if I access to individual STEINCOM register, it is ok. It only occurs do accessing all registers, Weird! CPU tries to write to all registers value 241 at one time. In this case, read only registers were not read as well. Data in read-able, write-able and write only registers were changed to 241, and rest of read only registers still remain as 0. TRIO-CINEMA 23 KHU, 08/10/2010
24
Current issues & Future plan
Current work status (coded in VHDL) (works are done in software & tested through simulation , tested in hardware as well) - I2C & Register module is finished - tested in ACTEL DEV board and IIB Future plan - connect with MAGIC module - go on to telemetry part I2C & Register module is finished, and it is tested through ACTEL DEV board and IIB. My future plan is moving on to telemetry part. And I’ll have a test connected to MAGIC module and ETU with David clriaino tomorrow. TRIO-CINEMA 24 KHU, 08/10/2010
25
Current issues & Future plan
KHU version IIB will be left in Berkeley - Currently FPGA parts work, same test was conducted - LVPS parts for MAGIC is not soldered yet - Which Berkeley IIB would KHU take? One is being tested? One extra proto- type? Or both? At last, Dr chae will leave KHU IIB in Berkeley. Currently FPGA parts are working, and same test was conducted , so Berkeley and KHU would have same hardware version for test. And I think it’s gonna be helpful to each other when we debug the problems because we have same version of hardware. However, LVPS parts for MAGIC is not soldered yet for this board. The reason for that is LVPS parts of KHU IIB hasn’t tested yet, so we are not sure wether LVPS parts are work at this moment. Then, I ed Thomas regarding bringing extra Berkeley IIB board. So, Which Berkeley IIB would KHU take? One is being tested? One extra proto-type? Or both? TRIO-CINEMA 25 KHU, 08/10/2010
26
Thank you Thank you. TRIO-CINEMA 26 KHU, 08/10/2010
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.