Update board Dataflash_Init() functions to automatically configure the appropriate communication interface.
This commit is contained in:
		
							parent
							
								
									6d58628e85
								
							
						
					
					
						commit
						f7b9ebea02
					
				
					 16 changed files with 37 additions and 20 deletions
				
			
		| 
						 | 
				
			
			@ -24,6 +24,7 @@
 | 
			
		|||
  *   - Updated the Android Accessory Class to accept version 2 protocol devices (with version 1 functionality)
 | 
			
		||||
  *   - All board drivers now implement dummy functions and constants when BOARD is set to NONE
 | 
			
		||||
  *   - Added missing LEDs to the XMEGA A3BU Xplained board LED driver (thanks to Michael Janssen)
 | 
			
		||||
  *   - Changed board Dataflash drivers to automatically configure the appropriate SPI interface for the selected board
 | 
			
		||||
  *
 | 
			
		||||
  *  <b>Fixed:</b>
 | 
			
		||||
  *  - Core:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,7 +11,8 @@
 | 
			
		|||
 *  areas relevant to making older projects compatible with the API changes of each new release.
 | 
			
		||||
 *
 | 
			
		||||
 *  \section Sec_MigrationXXXXXX Migrating from 130303 to XXXXXX
 | 
			
		||||
 *  There is no migration information for this version.
 | 
			
		||||
 *  <b>Non-USB Library Components</b>
 | 
			
		||||
 *    - The Board Dataflash \c Dataflash_Init() function now automatically configures the appropriate communication interface.
 | 
			
		||||
 *
 | 
			
		||||
 *  \section Sec_Migration130303 Migrating from 120730 to 130303
 | 
			
		||||
 *  <b>Device Mode</b>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -45,7 +45,7 @@
 | 
			
		|||
 *  <table>
 | 
			
		||||
 *    <tr><th>Name</th><th>Info</th><th>Select Pin</th><th>SPI Port</th></tr>
 | 
			
		||||
 *    <tr><td>DATAFLASH_CHIP1</td><td>AT45DB321C (4MB)</td><td>PORTE.6</td><td>SPI0</td></tr>
 | 
			
		||||
 *  </table> 
 | 
			
		||||
 *  </table>
 | 
			
		||||
 *
 | 
			
		||||
 *  @{
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			@ -90,12 +90,14 @@
 | 
			
		|||
 | 
			
		||||
		/* Inline Functions: */
 | 
			
		||||
			/** Initializes the dataflash driver so that commands and data may be sent to an attached dataflash IC.
 | 
			
		||||
			 *  The microcontroller's SPI driver MUST be initialized before any of the dataflash commands are used.
 | 
			
		||||
			 *  The appropriate SPI interface will be automatically configured.
 | 
			
		||||
			 */
 | 
			
		||||
			static inline void Dataflash_Init(void)
 | 
			
		||||
			{
 | 
			
		||||
				DATAFLASH_CHIPCS_DDR  |= DATAFLASH_CHIPCS_MASK;
 | 
			
		||||
				DATAFLASH_CHIPCS_PORT |= DATAFLASH_CHIPCS_MASK;
 | 
			
		||||
 | 
			
		||||
				SPI_Init(SPI_SPEED_FCPU_DIV_2 | SPI_ORDER_MSB_FIRST | SPI_SCK_LEAD_FALLING | SPI_SAMPLE_TRAILING | SPI_MODE_MASTER);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			/** Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -90,12 +90,14 @@
 | 
			
		|||
 | 
			
		||||
		/* Inline Functions: */
 | 
			
		||||
			/** Initializes the dataflash driver so that commands and data may be sent to an attached dataflash IC.
 | 
			
		||||
			 *  The microcontroller's SPI driver MUST be initialized before any of the dataflash commands are used.
 | 
			
		||||
			 *  The appropriate SPI interface will be automatically configured.
 | 
			
		||||
			 */
 | 
			
		||||
			static inline void Dataflash_Init(void)
 | 
			
		||||
			{
 | 
			
		||||
				DATAFLASH_CHIPCS_DDR  |= DATAFLASH_CHIPCS_MASK;
 | 
			
		||||
				DATAFLASH_CHIPCS_PORT |= DATAFLASH_CHIPCS_MASK;
 | 
			
		||||
 | 
			
		||||
				SPI_Init(SPI_SPEED_FCPU_DIV_2 | SPI_ORDER_MSB_FIRST | SPI_SCK_LEAD_FALLING | SPI_SAMPLE_TRAILING | SPI_MODE_MASTER);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			/** Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -90,12 +90,14 @@
 | 
			
		|||
 | 
			
		||||
		/* Inline Functions: */
 | 
			
		||||
			/** Initializes the dataflash driver so that commands and data may be sent to an attached dataflash IC.
 | 
			
		||||
			 *  The microcontroller's SPI driver MUST be initialized before any of the dataflash commands are used.
 | 
			
		||||
			 *  The appropriate SPI interface will be automatically configured.
 | 
			
		||||
			 */
 | 
			
		||||
			static inline void Dataflash_Init(void)
 | 
			
		||||
			{
 | 
			
		||||
				DATAFLASH_CHIPCS_DDR  |= DATAFLASH_CHIPCS_MASK;
 | 
			
		||||
				DATAFLASH_CHIPCS_PORT |= DATAFLASH_CHIPCS_MASK;
 | 
			
		||||
 | 
			
		||||
				SPI_Init(SPI_SPEED_FCPU_DIV_2 | SPI_ORDER_MSB_FIRST | SPI_SCK_LEAD_FALLING | SPI_SAMPLE_TRAILING | SPI_MODE_MASTER);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			/** Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -94,12 +94,14 @@
 | 
			
		|||
 | 
			
		||||
		/* Inline Functions: */
 | 
			
		||||
			/** Initializes the dataflash driver so that commands and data may be sent to an attached dataflash IC.
 | 
			
		||||
			 *  The microcontroller's SPI driver MUST be initialized before any of the dataflash commands are used.
 | 
			
		||||
			 *  The appropriate SPI interface will be automatically configured.
 | 
			
		||||
			 */
 | 
			
		||||
			static inline void Dataflash_Init(void)
 | 
			
		||||
			{
 | 
			
		||||
				DATAFLASH_CHIPCS_DDR  |= DATAFLASH_CHIPCS_MASK;
 | 
			
		||||
				DATAFLASH_CHIPCS_PORT |= DATAFLASH_CHIPCS_MASK;
 | 
			
		||||
 | 
			
		||||
				SPI_Init(SPI_SPEED_FCPU_DIV_2 | SPI_ORDER_MSB_FIRST | SPI_SCK_LEAD_FALLING | SPI_SAMPLE_TRAILING | SPI_MODE_MASTER);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			/** Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash.
 | 
			
		||||
| 
						 | 
				
			
			@ -223,7 +225,7 @@
 | 
			
		|||
				#if (DATAFLASH_TOTALCHIPS == 2)
 | 
			
		||||
					PageAddress >>= 1;
 | 
			
		||||
				#endif
 | 
			
		||||
				
 | 
			
		||||
 | 
			
		||||
				Dataflash_SendByte(PageAddress >> 5);
 | 
			
		||||
				Dataflash_SendByte((PageAddress << 3) | (BufferByte >> 8));
 | 
			
		||||
				Dataflash_SendByte(BufferByte);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -71,7 +71,7 @@
 | 
			
		|||
 | 
			
		||||
	/* Includes: */
 | 
			
		||||
		#include "../../../../Common/Common.h"
 | 
			
		||||
		
 | 
			
		||||
 | 
			
		||||
		#include "../../../Misc/AT45DB642D.h"
 | 
			
		||||
		#include "../../../Peripheral/SPI.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -113,12 +113,14 @@
 | 
			
		|||
 | 
			
		||||
		/* Inline Functions: */
 | 
			
		||||
			/** Initializes the dataflash driver so that commands and data may be sent to an attached dataflash IC.
 | 
			
		||||
			 *  The microcontroller's SPI driver MUST be initialized before any of the dataflash commands are used.
 | 
			
		||||
			 *  The appropriate SPI interface will be automatically configured.
 | 
			
		||||
			 */
 | 
			
		||||
			static inline void Dataflash_Init(void)
 | 
			
		||||
			{
 | 
			
		||||
				DATAFLASH_CHIPCS_DDR  |= DATAFLASH_CHIPCS_MASK;
 | 
			
		||||
				DATAFLASH_CHIPCS_PORT |= DATAFLASH_CHIPCS_MASK;
 | 
			
		||||
 | 
			
		||||
				SPI_Init(SPI_SPEED_FCPU_DIV_2 | SPI_ORDER_MSB_FIRST | SPI_SCK_LEAD_FALLING | SPI_SAMPLE_TRAILING | SPI_MODE_MASTER);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			/** Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -89,7 +89,7 @@
 | 
			
		|||
 | 
			
		||||
		/* Inline Functions: */
 | 
			
		||||
			/** Initializes the dataflash driver so that commands and data may be sent to an attached dataflash IC.
 | 
			
		||||
			 *  The microcontroller's SPI driver MUST be initialized before any of the dataflash commands are used.
 | 
			
		||||
			 *  The appropriate SPI interface will be automatically configured.
 | 
			
		||||
			 */
 | 
			
		||||
			static inline void Dataflash_Init(void)
 | 
			
		||||
			{
 | 
			
		||||
| 
						 | 
				
			
			@ -97,6 +97,12 @@
 | 
			
		|||
 | 
			
		||||
				PORTCFG.MPCMASK                = DATAFLASH_CHIPCS_MASK;
 | 
			
		||||
				DATAFLASH_CHIPCS_PORT.PIN0CTRL = PORT_INVEN_bm;
 | 
			
		||||
 | 
			
		||||
				SerialSPI_Init(&USARTD0, (USART_SPI_SCK_LEAD_RISING | USART_SPI_SAMPLE_LEADING | USART_SPI_ORDER_MSB_FIRST), (F_CPU / 2));
 | 
			
		||||
 | 
			
		||||
				PORTD.DIRSET   = PIN3_bm | PIN1_bm;
 | 
			
		||||
				PORTD.DIRCLR   = PIN2_bm;
 | 
			
		||||
				PORTC.PIN2CTRL = PORT_OPC_PULLUP_gc;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			/** Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -89,7 +89,7 @@
 | 
			
		|||
 | 
			
		||||
		/* Inline Functions: */
 | 
			
		||||
			/** Initializes the dataflash driver so that commands and data may be sent to an attached dataflash IC.
 | 
			
		||||
			 *  The microcontroller's SPI driver MUST be initialized before any of the dataflash commands are used.
 | 
			
		||||
			 *  The appropriate SPI interface will be automatically configured.
 | 
			
		||||
			 */
 | 
			
		||||
			static inline void Dataflash_Init(void)
 | 
			
		||||
			{
 | 
			
		||||
| 
						 | 
				
			
			@ -98,7 +98,12 @@
 | 
			
		|||
				PORTCFG.MPCMASK                = DATAFLASH_CHIPCS_MASK;
 | 
			
		||||
				DATAFLASH_CHIPCS_PORT.PIN0CTRL = PORT_INVEN_bm;
 | 
			
		||||
 | 
			
		||||
				PORTC.REMAP |= PORT_USART0_bm;
 | 
			
		||||
				SerialSPI_Init(&USARTC0, (USART_SPI_SCK_LEAD_RISING | USART_SPI_SAMPLE_LEADING | USART_SPI_ORDER_MSB_FIRST), (F_CPU / 2));
 | 
			
		||||
 | 
			
		||||
				PORTC.REMAP   |= PORT_USART0_bm;
 | 
			
		||||
				PORTC.DIRSET   = PIN7_bm | PIN5_bm;
 | 
			
		||||
				PORTC.DIRCLR   = PIN6_bm;
 | 
			
		||||
				PORTC.PIN6CTRL = PORT_OPC_PULLUP_gc;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			/** Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -108,7 +108,7 @@
 | 
			
		|||
			#define USART_SPI_SAMPLE_LEADING       0
 | 
			
		||||
 | 
			
		||||
			/** SPI data sample mode mask for \ref SerialSPI_Init(). Indicates that the data should be sampled on the trailing edge. */
 | 
			
		||||
			#define USART_SPI_SAMPLE_TRAILING      USART_UPCHA_bm
 | 
			
		||||
			#define USART_SPI_SAMPLE_TRAILING      (1 << 1)
 | 
			
		||||
			//@}
 | 
			
		||||
 | 
			
		||||
			/** \name SPI Data Ordering Configuration Masks */
 | 
			
		||||
| 
						 | 
				
			
			@ -117,7 +117,7 @@
 | 
			
		|||
			#define USART_SPI_ORDER_MSB_FIRST      0
 | 
			
		||||
 | 
			
		||||
			/** SPI data order mask for \ref SerialSPI_Init(). Indicates that data should be shifted out LSB first. */
 | 
			
		||||
			#define USART_SPI_ORDER_LSB_FIRST      USART_UDORD_bm
 | 
			
		||||
			#define USART_SPI_ORDER_LSB_FIRST      (1 << 2)
 | 
			
		||||
			//@}
 | 
			
		||||
 | 
			
		||||
		/* Inline Functions: */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue