Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@3:764ccaf29ce9, 2012-09-20 (annotated)
- Committer:
- liangzhen
- Date:
- Thu Sep 20 23:45:05 2012 +0000
- Revision:
- 3:764ccaf29ce9
- Parent:
- 2:42e8a4eb3c00
- Child:
- 4:fc56fa8aa794
changes for speed binnning
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| liangzhen | 0:c928c2d8bd02 | 1 | #include "power_up.h" |
| liangzhen | 0:c928c2d8bd02 | 2 | #include "scan.h" |
| liangzhen | 1:acf14b6dd1be | 3 | #include "master_i2c.h" |
| liangzhen | 1:acf14b6dd1be | 4 | #include "JTAG.h" |
| liangzhen | 0:c928c2d8bd02 | 5 | using namespace std; |
| liangzhen | 0:c928c2d8bd02 | 6 | |
| liangzhen | 0:c928c2d8bd02 | 7 | DigitalOut RESET (p21); |
| liangzhen | 0:c928c2d8bd02 | 8 | |
| liangzhen | 0:c928c2d8bd02 | 9 | Serial s(USBTX, USBRX); |
| liangzhen | 3:764ccaf29ce9 | 10 | DigitalOut finish_flag (LED3); |
| liangzhen | 1:acf14b6dd1be | 11 | |
| liangzhen | 3:764ccaf29ce9 | 12 | int main() |
| liangzhen | 3:764ccaf29ce9 | 13 | { |
| liangzhen | 0:c928c2d8bd02 | 14 | s.printf("DDRO_software starts ...\r\n"); |
| liangzhen | 3:764ccaf29ce9 | 15 | double voltage = 1; |
| liangzhen | 0:c928c2d8bd02 | 16 | PLL clk; |
| liangzhen | 3:764ccaf29ce9 | 17 | JTAG jtag; |
| liangzhen | 3:764ccaf29ce9 | 18 | int* ro_readings = new int [64]; |
| liangzhen | 3:764ccaf29ce9 | 19 | FILE *outFile = fopen("/local/test.out", "a"); |
| liangzhen | 3:764ccaf29ce9 | 20 | for (int i=0; i<7; i++) { |
| liangzhen | 3:764ccaf29ce9 | 21 | voltage = 1 - 0.05*i; |
| liangzhen | 3:764ccaf29ce9 | 22 | powerReset(); |
| liangzhen | 3:764ccaf29ce9 | 23 | powerUp(voltage); |
| liangzhen | 3:764ccaf29ce9 | 24 | fprintf(outFile, "Voltage: %f\n", voltage); |
| liangzhen | 3:764ccaf29ce9 | 25 | RESET = 0; |
| liangzhen | 3:764ccaf29ce9 | 26 | wait_us(10); |
| liangzhen | 3:764ccaf29ce9 | 27 | RESET = 1; |
| liangzhen | 3:764ccaf29ce9 | 28 | master_write(); |
| liangzhen | 3:764ccaf29ce9 | 29 | master_read(ro_readings); |
| liangzhen | 3:764ccaf29ce9 | 30 | |
| liangzhen | 3:764ccaf29ce9 | 31 | for (int ii=0; ii<64; ii++) { |
| liangzhen | 3:764ccaf29ce9 | 32 | fprintf(outFile, "RO %d %d\n", ii, ro_readings[ii]); |
| liangzhen | 3:764ccaf29ce9 | 33 | } |
| liangzhen | 3:764ccaf29ce9 | 34 | int fmax; |
| liangzhen | 3:764ccaf29ce9 | 35 | int lower = 51; |
| liangzhen | 3:764ccaf29ce9 | 36 | int higher = 199; |
| liangzhen | 3:764ccaf29ce9 | 37 | int frequency = (lower+higher)/2; |
| liangzhen | 3:764ccaf29ce9 | 38 | clk.setPLL(frequency)) |
| liangzhen | 3:764ccaf29ce9 | 39 | RESET = 0; |
| liangzhen | 3:764ccaf29ce9 | 40 | wait_us(10); |
| liangzhen | 3:764ccaf29ce9 | 41 | RESET = 1; |
| liangzhen | 3:764ccaf29ce9 | 42 | while (higher - lower >1) { |
| liangzhen | 3:764ccaf29ce9 | 43 | if(jtag.JTAG_test()) { |
| liangzhen | 3:764ccaf29ce9 | 44 | lower = frequency; |
| liangzhen | 3:764ccaf29ce9 | 45 | frequency = (lower+higher)/2; |
| liangzhen | 3:764ccaf29ce9 | 46 | clk.setPLL(frequency); |
| liangzhen | 3:764ccaf29ce9 | 47 | RESET = 0; |
| liangzhen | 3:764ccaf29ce9 | 48 | wait_us(10); |
| liangzhen | 3:764ccaf29ce9 | 49 | RESET = 1; |
| liangzhen | 3:764ccaf29ce9 | 50 | } else { |
| liangzhen | 3:764ccaf29ce9 | 51 | higher = frequency; |
| liangzhen | 3:764ccaf29ce9 | 52 | frequency = (lower+higher)/2; |
| liangzhen | 3:764ccaf29ce9 | 53 | clk.setPLL(frequency); |
| liangzhen | 3:764ccaf29ce9 | 54 | RESET = 0; |
| liangzhen | 3:764ccaf29ce9 | 55 | wait_us(10); |
| liangzhen | 3:764ccaf29ce9 | 56 | RESET = 1; |
| liangzhen | 3:764ccaf29ce9 | 57 | } |
| liangzhen | 3:764ccaf29ce9 | 58 | } |
| liangzhen | 3:764ccaf29ce9 | 59 | fprintf(outFile, "fmax %d\n", lower*5); |
| liangzhen | 3:764ccaf29ce9 | 60 | powerDown(); |
| liangzhen | 0:c928c2d8bd02 | 61 | } |
| liangzhen | 3:764ccaf29ce9 | 62 | fclose(outFile); |
| liangzhen | 0:c928c2d8bd02 | 63 | s.printf("DDRO_software ends.\r\n"); |
| liangzhen | 3:764ccaf29ce9 | 64 | while(1) { |
| liangzhen | 3:764ccaf29ce9 | 65 | finish_flag = !finish_flag; |
| liangzhen | 3:764ccaf29ce9 | 66 | wait(1); |
| liangzhen | 3:764ccaf29ce9 | 67 | } |
| liangzhen | 0:c928c2d8bd02 | 68 | } |