URL
https://opencores.org/ocsvn/oms8051mini/oms8051mini/trunk
Subversion Repositories oms8051mini
Compare Revisions
- This comparison shows the changes necessary to convert path
/
- from Rev 30 to Rev 31
- ↔ Reverse comparison
Rev 30 → Rev 31
/oms8051mini/trunk/verif/run/run_irun
13,7 → 13,7
set all_testsx = 0; |
|
set misc_tests=(uart_test_1 spi_test_1 i2cm_test_1) |
set risc_int_tests=(fib divmul sort gcd cast xram) |
set risc_int_tests=(fib divmul sort gcd cast xram i2cm_burst_wrrd) |
|
|
echo " Compiling with cadence tools - irun " |
/oms8051mini/trunk/verif/run/run_modelsim
11,7 → 11,7
set misc_tests=(uart_test_1 spi_test_1) |
#set misc_tests=( ) |
|
set risc_int_tests=(fib divmul sort gcd cast xram ) |
set risc_int_tests=(fib divmul sort gcd cast xram i2cm_burst_wrrd) |
#set risc_int_tests=(fib divmul sort gcd cast xram all_instr) |
|
echo " Compiling with MODELSIM " |
/oms8051mini/trunk/verif/sw/C/i2cm_burst_wrrd.c
0,0 → 1,112
/* |
* I2C Master Burst Write and Read Test |
* |
* I2C Master Write to Slave Chip with Id: 0x20 |
* |
* Burst 4 Byte Write to address starting from 0x66 with 0x12, 0x34, 0x56 and 0x78 |
* Read Back in Burst mode and verify the expected data |
*/ |
|
/*---------------------------------------------------------------------------*/ |
|
#include <8051.h> |
|
char cErrCnt; |
/*---------------------------------------------------------------------------*/ |
|
__xdata __at (0xA000) unsigned char i2c_prescale_low; |
__xdata __at (0xA001) unsigned char i2c_prescale_high; |
__xdata __at (0xA002) unsigned char i2c_control; |
volatile __xdata __at (0xA003) unsigned char i2c_data; |
volatile __xdata __at (0xA004) unsigned char i2c_cmd; |
|
void main() { |
int ErrCnt = 0; |
|
//Wrire Prescale registers |
i2c_prescale_low = 0xC7; |
i2c_prescale_high = 0x00; |
|
// Core Enable |
i2c_control = 0x80; |
|
// Writing Data |
i2c_data = 0x20; // Slave Addr + WR |
i2c_cmd = 0x90; |
while(i2c_cmd & 0x2); |
|
// Memory Address |
i2c_data = 0x66; |
i2c_cmd = 0x10; |
while(i2c_cmd & 0x2); |
|
/* Byte1: 12 */ |
i2c_data = 0x12; |
i2c_cmd = 0x10; |
while(i2c_cmd & 0x2); |
|
/* Byte2: 34 */ |
i2c_data = 0x34; |
i2c_cmd = 0x10; |
while(i2c_cmd & 0x2); |
|
/* Byte3: 56 */ |
i2c_data = 0x56; |
i2c_cmd = 0x10; |
while(i2c_cmd & 0x2); |
|
/* Byte4: 78 */ |
i2c_data = 0x78; |
i2c_cmd = 0x50; // Stop + Write |
while(i2c_cmd & 0x2); |
|
//Reading Data |
// Slave Address + Write |
i2c_data = 0x20; |
i2c_cmd = 0x90; |
while(i2c_cmd & 0x2); |
|
// Memorry Address |
i2c_data = 0x66; |
i2c_cmd = 0x50; // Stop |
while(i2c_cmd & 0x2); |
|
//Burst Read |
i2c_data = 0x21; |
i2c_cmd = 0x90; |
while(i2c_cmd & 0x2); |
|
/* BYTE-1 : 0x12 */ |
i2c_cmd = 0x20; |
while(i2c_cmd & 0x2); |
if(i2c_data != 0x12) ErrCnt++; |
|
|
|
/* BYTE-2 : 0x34 */ |
i2c_cmd = 0x20; |
while(i2c_cmd & 0x2); |
if(i2c_data != 0x34) ErrCnt++; |
|
/* BYTE-3 : 0x56 */ |
i2c_cmd = 0x20; |
while(i2c_cmd & 0x2); |
if(i2c_data != 0x56) ErrCnt++; |
|
/* BYTE-4 : 0x78 */ |
i2c_cmd = 0x68; // STOP + RD + NACK |
while(i2c_cmd & 0x2); |
if(i2c_data != 0x78) ErrCnt++; |
|
if(ErrCnt !=0) { |
P2 = 0x55; // Test Fail |
P3 = ErrCnt; |
|
} else { |
P2 = 0xAA; // Test PASS |
P3 = 0xAA; // Test PASS |
} |
|
while(1); |
|
} |
/oms8051mini/trunk/verif/sw/hex/i2cm_burst_wrrd.hex
0,0 → 1,34
:03000000020006F5 |
:03005F0002000399 |
:0300030002006296 |
:100062007E007F0090A00074C7F090A001E4F090A1 |
:10007200A0027480F090A0037420F090A004749009 |
:10008200F090A004E0FD20E1F890A0037466F090E7 |
:10009200A0047410F090A004E0FD20E1F890A00309 |
:1000A2007412F090A0047410F090A004E0FD20E11E |
:1000B200F890A0037434F090A0047410F090A0049F |
:1000C200E0FD20E1F890A0037456F090A0047410B3 |
:1000D200F090A004E0FD20E1F890A0037478F09085 |
:1000E200A0047450F090A004E0FD20E1F890A00379 |
:1000F2007420F090A0047490F090A004E0FD20E140 |
:10010200F890A0037466F090A0047450F090A004DC |
:10011200E0FD20E1F890A0037421F090A00403F028 |
:1001220090A004E0FD20E1F890A0047420F090A0DB |
:1001320004E0FD20E1F890A003E0FDBD120280047E |
:100142007E017F0090A0047420F090A004E0FD20C6 |
:10015200E1F890A003E0FDBD340280050EBE00016F |
:100162000F90A0047420F090A004E0FD20E1F8902C |
:10017200A003E0FDBD560280050EBE00010F90A057 |
:10018200047468F090A004E0FD20E1F890A003E080 |
:10019200FDBD780280050EBE00010FEE4F600775AF |
:0E01A200A0558EB0800675A0AA75B0AA80FE8A |
:06003500E478FFF6D8FD9F |
:100013007900E94400601B7A009001B4780175A06F |
:1000230000E493F2A308B8000205A0D9F4DAF2754C |
:02003300A0FF2C |
:10003B007800E84400600A790175A000E4F309D860 |
:10004B00FC7800E84400600C7900900001E4F0A318 |
:04005B00D8FCD9FAFA |
:0D0006007581081201B0E58260030200035D |
:0401B0007582002232 |
:00000001FF |
/oms8051mini/trunk/verif/testcase/dat/i2cm_burst_wrrd.dat
0,0 → 1,444
/// |
/// created by oc8051 rom maker |
/// author: Simon Teran (simont@opencores.org) |
/// |
/// source file: F:\i2cm_burst_wrrd.hex |
/// date: 07-01-2017 |
/// time: 21:57:45 |
/// |
02 |
00 |
06 |
02 |
00 |
62 |
75 |
81 |
08 |
12 |
01 |
B0 |
E5 |
82 |
60 |
03 |
02 |
00 |
03 |
79 |
00 |
E9 |
44 |
00 |
60 |
1B |
7A |
00 |
90 |
01 |
B4 |
78 |
01 |
75 |
A0 |
00 |
E4 |
93 |
F2 |
A3 |
08 |
B8 |
00 |
02 |
05 |
A0 |
D9 |
F4 |
DA |
F2 |
75 |
A0 |
FF |
E4 |
78 |
FF |
F6 |
D8 |
FD |
78 |
00 |
E8 |
44 |
00 |
60 |
0A |
79 |
01 |
75 |
A0 |
00 |
E4 |
F3 |
09 |
D8 |
FC |
78 |
00 |
E8 |
44 |
00 |
60 |
0C |
79 |
00 |
90 |
00 |
01 |
E4 |
F0 |
A3 |
D8 |
FC |
D9 |
FA |
02 |
00 |
03 |
7E |
00 |
7F |
00 |
90 |
A0 |
00 |
74 |
C7 |
F0 |
90 |
A0 |
01 |
E4 |
F0 |
90 |
A0 |
02 |
74 |
80 |
F0 |
90 |
A0 |
03 |
74 |
20 |
F0 |
90 |
A0 |
04 |
74 |
90 |
F0 |
90 |
A0 |
04 |
E0 |
FD |
20 |
E1 |
F8 |
90 |
A0 |
03 |
74 |
66 |
F0 |
90 |
A0 |
04 |
74 |
10 |
F0 |
90 |
A0 |
04 |
E0 |
FD |
20 |
E1 |
F8 |
90 |
A0 |
03 |
74 |
12 |
F0 |
90 |
A0 |
04 |
74 |
10 |
F0 |
90 |
A0 |
04 |
E0 |
FD |
20 |
E1 |
F8 |
90 |
A0 |
03 |
74 |
34 |
F0 |
90 |
A0 |
04 |
74 |
10 |
F0 |
90 |
A0 |
04 |
E0 |
FD |
20 |
E1 |
F8 |
90 |
A0 |
03 |
74 |
56 |
F0 |
90 |
A0 |
04 |
74 |
10 |
F0 |
90 |
A0 |
04 |
E0 |
FD |
20 |
E1 |
F8 |
90 |
A0 |
03 |
74 |
78 |
F0 |
90 |
A0 |
04 |
74 |
50 |
F0 |
90 |
A0 |
04 |
E0 |
FD |
20 |
E1 |
F8 |
90 |
A0 |
03 |
74 |
20 |
F0 |
90 |
A0 |
04 |
74 |
90 |
F0 |
90 |
A0 |
04 |
E0 |
FD |
20 |
E1 |
F8 |
90 |
A0 |
03 |
74 |
66 |
F0 |
90 |
A0 |
04 |
74 |
50 |
F0 |
90 |
A0 |
04 |
E0 |
FD |
20 |
E1 |
F8 |
90 |
A0 |
03 |
74 |
21 |
F0 |
90 |
A0 |
04 |
03 |
F0 |
90 |
A0 |
04 |
E0 |
FD |
20 |
E1 |
F8 |
90 |
A0 |
04 |
74 |
20 |
F0 |
90 |
A0 |
04 |
E0 |
FD |
20 |
E1 |
F8 |
90 |
A0 |
03 |
E0 |
FD |
BD |
12 |
02 |
80 |
04 |
7E |
01 |
7F |
00 |
90 |
A0 |
04 |
74 |
20 |
F0 |
90 |
A0 |
04 |
E0 |
FD |
20 |
E1 |
F8 |
90 |
A0 |
03 |
E0 |
FD |
BD |
34 |
02 |
80 |
05 |
0E |
BE |
00 |
01 |
0F |
90 |
A0 |
04 |
74 |
20 |
F0 |
90 |
A0 |
04 |
E0 |
FD |
20 |
E1 |
F8 |
90 |
A0 |
03 |
E0 |
FD |
BD |
56 |
02 |
80 |
05 |
0E |
BE |
00 |
01 |
0F |
90 |
A0 |
04 |
74 |
68 |
F0 |
90 |
A0 |
04 |
E0 |
FD |
20 |
E1 |
F8 |
90 |
A0 |
03 |
E0 |
FD |
BD |
78 |
02 |
80 |
05 |
0E |
BE |
00 |
01 |
0F |
EE |
4F |
60 |
07 |
75 |
A0 |
55 |
8E |
B0 |
80 |
06 |
75 |
A0 |
AA |
75 |
B0 |
AA |
80 |
FE |
75 |
82 |
00 |
22 |