Stefan Schuermans
initial commit after making CF identify work
Stefan Schuermans commited e8658d5 at 2012-04-15 19:57:57
/* flaneth - flash and ethernet - dartboard mod
* version 0.1 date 2008-11-09
* Copyright (C) 2007-2008 Stefan Schuermans <stefan@schuermans.info>
* Copyleft: GNU public license V2 - http://www.gnu.org/copyleft/gpl.html
* a BlinkenArea project - http://www.blinkenarea.org/
*/
#include <avr/io.h>
#include "bus.h"
#include "cf.h"
#include "config.h"
#include "debug.h"
#include "macros.h"
#include "status.h"
#include "timing.h"
// IO pins of compact flash
#define CF_DDR_nCD (DDRB)
#define CF_PORT_nCD (PORTB)
#define CF_PIN_nCD (PINB)
#define CF_BIT_nCD (4)
#define CF_DDR_nRST (DDRB)
#define CF_PORT_nRST (PORTB)
#define CF_BIT_nRST (5)
#define CF_DDR_RDY (DDRB)
#define CF_PORT_RDY (PORTB)
#define CF_PIN_RDY (PINB)
#define CF_BIT_RDY (7)
#define CF_DDR_nCE (DDRB)
#define CF_PORT_nCE (PORTB)
#define CF_BIT_nCE (6)
// special pin commands
#define CF_IS_DETECT( ) (is_bit_clear( CF_PIN_nCD, CF_BIT_nCD ))
#define CF_RESET_ACT( ) (bit_clear( CF_PORT_nRST, CF_BIT_nRST ))
#define CF_RESET_IDLE( ) (bit_set( CF_PORT_nRST, CF_BIT_nRST ))
#define CF_IS_READY( ) (is_bit_set( CF_PIN_RDY, CF_BIT_RDY ))
#define CF_CE_ACT( ) (bit_clear( CF_PORT_nCE, CF_BIT_nCE ))
#define CF_CE_IDLE( ) (bit_set( CF_PORT_nCE, CF_BIT_nCE ))
// compact flash registers
#define CF_REG_DATA (0x00)
#define CF_REG_ERR (0x01)
#define CF_REG_SEC_CNT (0x02)
#define CF_REG_SEC_NO (0x03)
#define CF_REG_CYL_L (0x04)
#define CF_REG_CYL_H (0x05)
#define CF_REG_HEAD (0x06)
#define CF_REG_STATUS (0x07)
#define CF_REG_CMD (0x07)
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX