[tuxdroid-svn] r689 - firmware/tuxaudio/trunk
Status: Beta
Brought to you by:
ks156
From: jaguarondi <c2m...@c2...> - 2007-11-12 14:42:24
|
Author: jaguarondi Date: 2007-11-12 15:42:25 +0100 (Mon, 12 Nov 2007) New Revision: 689 Modified: firmware/tuxaudio/trunk/AT26F004.c firmware/tuxaudio/trunk/PC_communication.c firmware/tuxaudio/trunk/flash.c firmware/tuxaudio/trunk/hardware.h Log: * read_data was not handling the HOLD signal of the flash, now fixed. Also renamed some macros. Modified: firmware/tuxaudio/trunk/AT26F004.c =================================================================== --- firmware/tuxaudio/trunk/AT26F004.c 2007-11-12 14:36:27 UTC (rev 688) +++ firmware/tuxaudio/trunk/AT26F004.c 2007-11-12 14:42:25 UTC (rev 689) @@ -51,10 +51,10 @@ { uint8_t status; - FLASH_CS_ON; + flash_select(); spiSend(READ_STATUS_REG); /* Send Read Status Command */ status = spiSend(NOP); /* Read status on spi */ - FLASH_CS_OFF; + flash_unselect(); return status; } /** @@ -64,9 +64,9 @@ */ void write_enable(void) { - FLASH_CS_ON; + flash_select(); spiSend(WRITE_EN); /* Send Write Enable Command */ - FLASH_CS_OFF; + flash_unselect(); } /** * \ingroup at26f004 @@ -75,9 +75,9 @@ */ void write_disable(void) { - FLASH_CS_ON; + flash_select(); spiSend(WRITE_DIS); /* Send Write Disable Command */ - FLASH_CS_OFF; + flash_unselect(); } /** @@ -87,10 +87,10 @@ */ void write_status(uint8_t const status) { - FLASH_CS_ON; + flash_select(); spiSend(WRITE_STATUS_REG); /* Send Write Status Command */ spiSend(status); /* Send status */ - FLASH_CS_OFF; + flash_unselect(); } /** * \ingroup at26f004 @@ -102,13 +102,13 @@ */ void unprotect_sector(uint8_t const ad2, uint8_t const ad1, uint8_t const ad0) { - FLASH_CS_ON; + flash_select(); spiSend(UNPROTECT_SECTOR); /* Send unprotect sector command */ /* Send Adress */ spiSend(ad2); spiSend(ad1); spiSend(ad0); - FLASH_CS_OFF; + flash_unselect(); } /** * \ingroup at26f004 @@ -127,9 +127,9 @@ write_enable(); /* Enable the writing */ - FLASH_CS_ON; + flash_select(); spiSend(CHIP_ERASE); /* Send Erase Bulk command */ - FLASH_CS_OFF; + flash_unselect(); } /** @@ -146,14 +146,14 @@ while (read_status() & BUSY) ; /* Wait Page Program Cycle */ write_enable(); - FLASH_CS_ON; + flash_select(); spiSend(BYTE_PROGRAM); /* Send Page Byte Command */ /* Send adress */ spiSend(ad2); spiSend(ad1); spiSend(ad0); spiSend(data); /* Write data in flash */ - FLASH_CS_OFF; + flash_unselect(); } /** @@ -168,14 +168,16 @@ { uint8_t data1; - FLASH_CS_ON; + flash_enable(); // Set the HOLD signal + flash_select(); spiSend(READ_ARRAY_LOW_F); /* Send Read Page Command */ /* Send address */ spiSend(ad2); spiSend(ad1); spiSend(ad0); data1 = spiSend(NOP); /* Wait response */ - FLASH_CS_OFF; + flash_unselect(); + flash_onhold(); // Reset the HOLD signal return data1; } Modified: firmware/tuxaudio/trunk/PC_communication.c =================================================================== --- firmware/tuxaudio/trunk/PC_communication.c 2007-11-12 14:36:27 UTC (rev 688) +++ firmware/tuxaudio/trunk/PC_communication.c 2007-11-12 14:42:25 UTC (rev 689) @@ -38,8 +38,6 @@ spi_count = 0; // Reset spi counter spi_slave = HEADERS; // Set state machine spi_master = HEADERM; - if (programmingFlash || flashPlay) - HOLD_ON; // Reset SPI to fix strange bug on the spi SPCR = 0x50; SPSR = 0x00; Modified: firmware/tuxaudio/trunk/flash.c =================================================================== --- firmware/tuxaudio/trunk/flash.c 2007-11-12 14:36:27 UTC (rev 688) +++ firmware/tuxaudio/trunk/flash.c 2007-11-12 14:42:25 UTC (rev 689) @@ -165,7 +165,7 @@ { uint8_t count, i; uint8_t adp1, adp0, sounds_stored; // Address pointer varaible - HOLD_OFF; + flash_enable(); sounds_stored = read_data(0x00, 0x00, 0x00); if (sounds_stored == 0xFF) /* if unprogrammed we have 0xFF stored in flash */ { @@ -192,7 +192,7 @@ count++; } - FLASH_CS_ON; // Chip Select + flash_select(); // Chip Select spiSend(READ_ARRAY_LOW_F); // Send Read Page Command spiSend(0x00); // Send Address @@ -204,7 +204,7 @@ ad[i] = spiSend(NOP); // Read start and stop sound address } - FLASH_CS_OFF; // Chip Deselect + flash_unselect(); // Chip Deselect /* Check adresses */ if (ad[0] > TOP_A2) @@ -249,13 +249,13 @@ } } resetFifo(&PWMFifo); - FLASH_CS_ON; // Chip Select + flash_select(); // Chip Select spiSend(0x03); // Send Read Page Command spiSend(ad[0]); // Send Address spiSend(ad[1]); spiSend(ad[2]); - HOLD_ON; // Reset the HOLD signal + flash_onhold(); // Reset the HOLD signal OCR0A = 250; // Normal operation for PWM if fifo adaptative is on flash_state = 0; @@ -273,7 +273,7 @@ static void playingSound(void) { uint8_t sound; - HOLD_OFF; + flash_enable(); while (!spi_start && !isFifoFull(&PWMFifo)) { sound = spiSend(0x00); // Wait response @@ -302,7 +302,7 @@ break; } } - HOLD_ON; + flash_onhold(); } /* Static functions */ @@ -405,7 +405,7 @@ { flash_state = 0; write_enable(); - FLASH_CS_ON; + flash_select(); spiSend(SEQU_PROGRAM); spiSend(ad2); spiSend(ad1); @@ -422,7 +422,7 @@ else flash_state = 0; } - FLASH_CS_OFF; // Chip Deselect + flash_unselect(); // Chip Deselect } /** @@ -438,10 +438,10 @@ { if (!isFifoEmpty(&PWMFifo)) // Fifo not empty { - FLASH_CS_ON; // Chip Select + flash_select(); // Chip Select spiSend(SEQU_PROGRAM); // Send Sequencial Program Command spiSend(pullFifo(&PWMFifo)); // Write data in flash - FLASH_CS_OFF; // Chip DeselecT + flash_unselect(); // Chip DeselecT ad0++; // Increment address byte if (ad0 == 0x00) { Modified: firmware/tuxaudio/trunk/hardware.h =================================================================== --- firmware/tuxaudio/trunk/hardware.h 2007-11-12 14:36:27 UTC (rev 688) +++ firmware/tuxaudio/trunk/hardware.h 2007-11-12 14:42:25 UTC (rev 689) @@ -21,21 +21,17 @@ #include <avr/io.h> -#ifndef HARDWARE_H -#define HARDWARE_H +#ifndef _HARDWARE_H_ +#define _HARDWARE_H_ /* Flash memory port */ -#define FLASH_PORT PORTB -#define FLASH_CS_PIN _BV(PB1) -#define FLASH_HOLD_PIN _BV(PB0) +#define FLASH_PORT PORTB +#define FLASH_CS_PIN _BV(PB1) +#define FLASH_HOLD_PIN _BV(PB0) /* Flash memory commands */ -#define FLASH_CS_ON FLASH_PORT &= ~FLASH_CS_PIN -#define FLASH_CS_OFF FLASH_PORT |= FLASH_CS_PIN -#define HOLD_ON FLASH_PORT &= ~FLASH_HOLD_PIN -#define HOLD_OFF FLASH_PORT |= FLASH_HOLD_PIN +#define flash_select() (FLASH_PORT &= ~FLASH_CS_PIN) +#define flash_unselect() (FLASH_PORT |= FLASH_CS_PIN) +#define flash_onhold() (FLASH_PORT &= ~FLASH_HOLD_PIN) +#define flash_enable() (FLASH_PORT |= FLASH_HOLD_PIN) - -#endif - - - +#endif /* _HARDWARE_H_ */ |