Guest User

KSZ8051MLL NAND test

a guest
Jul 11th, 2013
163
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  * KszNandTest.h
  3.  *
  4.  *  Created on: 8 Aug 2012
  5.  *      Author: andy
  6.  */
  7.  
  8. #pragma once
  9.  
  10. #include "gpio/GpioPort.h"
  11. #include "config/stdperiph.h"
  12. #include "timing/MillisecondTimer.h"
  13.  
  14.  
  15. using namespace stm32plus;
  16.  
  17.  
  18. struct KszNandTest {
  19.  
  20.     void run() {
  21.  
  22.         GpioPort pa(GPIOA), pb(GPIOB), pc(GPIOC), pd(GPIOD), pe(GPIOE);
  23.  
  24.         pa.initialise(GPIO_Speed_50MHz,GPIO_Mode_Out_PP,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_3|GPIO_Pin_8);
  25.         pb.initialise(GPIO_Speed_50MHz,GPIO_Mode_Out_PP,GPIO_Pin_8|GPIO_Pin_14|GPIO_Pin_12|GPIO_Pin_15|GPIO_Pin_13|GPIO_Pin_10|GPIO_Pin_1);
  26.         pc.initialise(GPIO_Speed_50MHz,GPIO_Mode_Out_PP,GPIO_Pin_1|GPIO_Pin_3|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);
  27.         pd.initialise(GPIO_Speed_50MHz,GPIO_Mode_Out_PP,GPIO_Pin_3);
  28.         pe.initialise(GPIO_Speed_50MHz,GPIO_Mode_Out_PP,GPIO_Pin_0|GPIO_Pin_4|GPIO_Pin_6);
  29.  
  30.         pe.initialise(GPIO_Speed_50MHz,GPIO_Mode_IPD,GPIO_Pin_2);
  31.  
  32.         Gpio *tree[19];
  33.  
  34.         tree[0]=&pb[8];
  35.         tree[1]=&pb[14];
  36.         tree[2]=&pb[12];
  37.         tree[3]=&pb[15];
  38.         tree[4]=&pb[13];
  39.         tree[5]=&pc[6];
  40.         tree[6]=&pa[8];
  41.         tree[7]=&pb[10];
  42.         tree[8]=&pa[0];
  43.         tree[9]=&pc[7];
  44.         tree[10]=&pb[1];
  45.         tree[11]=&pe[0];
  46.         tree[12]=&pc[5];
  47.         tree[13]=&pa[3];
  48.         tree[14]=&pa[1];
  49.         tree[15]=&pc[3];
  50.         tree[16]=&pc[1];
  51.         tree[17]=&pe[6];
  52.         tree[18]=&pe[4];
  53.  
  54.         reset(tree,pe[2],pd[3]);
  55.  
  56.         test(tree,pe[2]);
  57.     }
  58.  
  59.  
  60.     void test(Gpio **tree,Gpio& crs) {
  61.  
  62.         int i;
  63.         bool results[19];
  64.  
  65.         for(i=0;i<19;i++)
  66.             tree[i]->set();
  67.  
  68.         for(i=0;i<19;i++) {
  69.             tree[i]->reset();
  70.             results[i]=crs.read();
  71.         }
  72.  
  73.         for(;;);
  74.     }
  75.  
  76.  
  77.     void reset(Gpio **tree,Gpio& crs,Gpio& resetPin) {
  78.  
  79.         resetPin.reset();
  80.  
  81.         tree[2]->set();                 // RXD3
  82.         tree[3]->reset();               // RXD2
  83.         tree[4]->reset();               // RXD1
  84.         tree[5]->set();                 // RXD0
  85.         tree[6]->reset();               // RXDV
  86.         tree[7]->reset();               // RXC
  87.         tree[8]->reset();               // RXER
  88.         tree[9]->reset();               // INTRP (/NAND)
  89.         tree[16]->set();                // LED0
  90.         tree[17]->set();                // LED1
  91.         tree[18]->reset();          // COL
  92.         //crs.reset();                      // CRS
  93.  
  94.         MillisecondTimer::delay(10);
  95.         resetPin.set();
  96.         MillisecondTimer::delay(10);
  97.     }
  98. };
RAW Paste Data