jcxz 184 15 апреля, 2015 Опубликовано 15 апреля, 2015 · Жалоба Не знаю какие у вас там синяки, но я вроде ясно написал выше: повесьте хотя-бы светодиоды на все линии (CS, SCLK, MOSI, MISO) и по шагам отладьте. Если уж и это непонятно, то и не знаю как ещё советовать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
djeker 0 15 апреля, 2015 Опубликовано 15 апреля, 2015 · Жалоба Не знаю какие у вас там синяки, но я вроде ясно написал выше: повесьте хотя-бы светодиоды на все линии (CS, SCLK, MOSI, MISO) и по шагам отладьте. Если уж и это непонятно, то и не знаю как ещё советовать. Да понятно, чего тут может быть непонятного.Куплю подходящий контроллер и дожму эту озу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
djeker 0 15 июля, 2015 Опубликовано 15 июля, 2015 · Жалоба Да понятно, чего тут может быть непонятного.Куплю подходящий контроллер и дожму эту озу. Ну чтож, все оказалось просто. Принцип следующий : CS = 0 0х1 opcode (byte,page,sequential) CS =1 --- CS = 0 0х2 ; запись adr adr data CS = 1 ---==== CS = 0 0х3 ; чтение adr adr 8 impulses CLK ; на MISO появл data CS = 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ostroukhovio 0 19 января, 2017 Опубликовано 19 января, 2017 · Жалоба Всем привет. Тоже начал знакомство с этой микросхемой на 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; } Кто хорошо знаком с данным чипом, помогите пожалуйста. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 26 19 января, 2017 Опубликовано 19 января, 2017 (изменено) · Жалоба Всем привет. Тоже начал знакомство с этой микросхемой на XMega128A1. Потыкал осциллографом при попытках чтения SPI и тактируется по CLK и данные идут из MOSI но ответа от чипа нет. . . . Кто хорошо знаком с данным чипом, помогите пожалуйста. Юзал я давненько этот девайс но на на XMmega а на MSP430. Оно как-то "завелось" сразу, даже и воспоминаний не осталось. 0. Проверьте аппаратную часть (разводка-подключение, обрывы и сопли, питание, отсутствие помех итд ) 1. Проверьте что настройки SPI процессора (полярность и фаза) соотв-ют требуемым для 23k256 2. Возможно что причина - в некорректной работе приемника SPI процессора из-за настроек или в софте драйвера, обеспечивающего работу узла SPI. Для начала отключите 23k256 от SPI и соедините MOSI - MISO. Проверите и правильность "улета" и "прилета" по SPI. 3. Как ОНО работает - подробнейшим образом расписано выше. ps - эти мс есть на разное питание. Проверьте соотв-ие. Изменено 19 января, 2017 пользователем k155la3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
djeker 0 22 мая, 2017 Опубликовано 22 мая, 2017 (изменено) · Жалоба Кто хорошо знаком с данным чипом, помогите пожалуйста. ostroukhovio вы ввели два байта адреса для считывания, и не продолжили вводить третий байт (пустой), во время введения которого из озу исходит байт данных. Адрес для теста лучше писать первый байт 0, второй (младший) - какой то до 10.Так проще. Изменено 22 мая, 2017 пользователем jukebox Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться