Перейти к содержанию
    

ostroukhovio

Новичок
  • Постов

    1
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный
  1. 23k256

    Всем привет. Тоже начал знакомство с этой микросхемой на XMega128A1. Потыкал осциллографом при попытках чтения SPI и тактируется по CLK и данные идут из MOSI но ответа от чипа нет. Вот код для SRAM. /*Привязка к линиям микроконтроллера*/ #define SRAM_SPI SPIC //Регистр SPI #define SRAM_PORT PORTC //PORT SPI #define SRAM_CS_PORT PORTC //Доступ к чипу #define SRAM_CS_PIN 3 #define SRAM_HOLD_PORT PORTC //Запрет записи #define SRAM_HOLD_PIN 4 #define SRAM_MOSI_PORT PORTC //MOSI #define SRAM_MOSI_PIN 5 #define SRAM_MISO_PORT PORTC //MISO #define SRAM_MISO_PIN 6 #define SRAM_SCK_PORT PORTC //SCK #define SRAM_SCK_PIN 7 void SRAM_Init(void){ SRAM_SPI.DATA = 0; SRAM_PORT.DIR &= ~(1 << SRAM_MISO_PIN); SRAM_PORT.DIR |= (1 << SRAM_HOLD_PIN) | (1 << SRAM_MOSI_PIN) | (1 << SRAM_SCK_PIN) | (1 << SRAM_CS_PIN); SRAM_SPI.CTRL = SPI_ENABLE_bm | SPI_MASTER_bm | SPI_MODE_0_gc | SPI_PRESCALER_DIV128_gc; SRAM_HOLD_PORT.OUT |= (1 << SRAM_HOLD_PIN); SRAM_CS_PORT.OUT &= ~(1 << SRAM_CS_PIN); _delay_us(1); SRAM_SPI.DATA = 0x1; while(!(SPIC.STATUS & (1<<7))); SRAM_SPI.DATA = 0x0; while(!(SPIC.STATUS & (1<<7))); SRAM_CS_PORT.OUT |= (1 << SRAM_CS_PIN); } uint8_t SRAM_Write(uint16_t addr, uint8_t data){ SRAM_CS_PORT.OUT &= ~(1 << SRAM_CS_PIN); _delay_us(1); SRAM_SPI.DATA = 0x2; while(!(SPIC.STATUS & (1<<7))); SRAM_SPI.DATA = addr >> 8; while(!(SPIC.STATUS & (1<<7))); SRAM_SPI.DATA = addr & 0xFF; while(!(SPIC.STATUS & (1<<7))); SRAM_SPI.DATA = data; while(!(SPIC.STATUS & (1<<7))); SRAM_CS_PORT.OUT |= (1 << SRAM_CS_PIN); return SPIC.DATA; } uint8_t SRAM_Read(uint16_t addr){ SRAM_CS_PORT.OUT &= ~(1 << SRAM_CS_PIN); _delay_us(1); SRAM_SPI.DATA = 3; while(!(SPIC.STATUS & (1<<7))); SRAM_SPI.DATA = addr >> 8; while(!(SPIC.STATUS & (1<<7))); SRAM_SPI.DATA = addr & 0xFF; while(!(SPIC.STATUS & (1<<7))); SRAM_CS_PORT.OUT |= (1 << SRAM_CS_PIN); return SRAM_SPI.DATA; } Кто хорошо знаком с данным чипом, помогите пожалуйста.
×
×
  • Создать...