|
замена AT45DB161B-RI на AT45DB161D-SU, проблема с отсутствием ноги RDY/~BUSY |
|
|
|
 |
Ответов
|
Mar 30 2007, 10:17
|
Частый гость
 
Группа: Свой
Сообщений: 80
Регистрация: 3-08-06
Пользователь №: 19 287

|
Вот они: Код #define SPI_MODE 0x38 // MSTR CPOL CPHA = 111 #define SPI_RATE 0x08
// SPI Initialization void SPI_Init( void ) { S0SPSR; S0SPINT = 0x01; S0SPCCR = SPI_RATE; S0SPCR = SPI_MODE; S0SPDR; S0SPSR; }
// SPI Read byte unsigned char SPI_ReadByte( void ) { unsigned char bTmp;
S0SPSR; S0SPCCR = SPI_RATE; S0SPCR = SPI_MODE; S0SPDR = 0; do { bTmp = S0SPSR; if( (bTmp & 0x10) != 0 ) // if MODF = 1 S0SPCR = SPI_MODE; if( (bTmp & 0x40) != 0 ) // if WCOL = 1 S0SPDR; } while( (bTmp & 0x80) == 0 );
return( S0SPDR ); }
// SPI Write byte void SPI_WriteByte( unsigned char bData ) { unsigned char bTmp;
S0SPSR; S0SPCCR = SPI_RATE; S0SPCR = SPI_MODE; S0SPDR = bData; do { bTmp = S0SPSR; if( (bTmp & 0x10) != 0 ) // if MODF = 1 S0SPCR = SPI_MODE; if( (bTmp & 0x40) != 0 ) // if WCOL = 1 S0SPDR; } while( (bTmp & 0x80) == 0 ); } Раньше на чтение/запись по SPI была одна функция, но когда начались непонятные пляски, пришлось разделить на всякий случай.
Сообщение отредактировал Ykidia - Mar 30 2007, 10:24
|
|
|
|
|
Mar 30 2007, 12:53
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(Ykidia @ Mar 30 2007, 09:17)  Вот они: Ха! Батенька! #define SPI_MODE 0x38 Цитата 6 LSBF LSB First controls which direction each byte is shifted when transferred. When 1, SPI data is transferred LSB (bit 0) first. When 0, SPI data is transferred MSB (bit 7) first. Вы же данные не тем концом суете. Цитата All instructions, addresses, and data are transferred with the most significant bit (MSB) first. Код { __spcr_bits Tmp; Tmp.CPHA = 1; Tmp.CPOL = 1; Tmp.MSTR = 1; Tmp.LSBF = 0; Tmp.SPIE = 0; S0SPCR_bit = Tmp; } В остальном не вижу криминала. Единственное, у меня IAR строчки вида S0SPSR; просто выкидывает. Хотя это явная ошибка, по стандарту должно быть чтение. Поэтому я делаю { volatile uint8_t tmp = S0SPSR; }. Не смотрели листинг, может то же самое?
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
Сообщений в этой теме
plombir замена AT45DB161B-RI на AT45DB161D-SU Nov 17 2006, 12:33 prottoss Цитата(plombir @ Nov 17 2006, 19:33) Добр... Nov 17 2006, 12:41 VDG Цитата(plombir @ Nov 17 2006, 15:33) Если... Nov 17 2006, 12:42 prottoss Раз уж создана тема про ДатаФлэш, хотелось бы спро... Nov 17 2006, 15:14 zltigo Цитата(prottoss @ Nov 17 2006, 17:14) Раз... Nov 17 2006, 19:36 rezident Цитата(prottoss @ Nov 17 2006, 20:14) Раз... Nov 17 2006, 20:23  prottoss Цитата(rezident @ Nov 18 2006, 03:23) На ... Nov 18 2006, 16:17 vesago Я из экономии ног и 28 ноговую db161 опрашивал чер... Nov 17 2006, 19:29 Ykidia ЦитатаНичего сложного там нет. Читаете даташит и с... Mar 28 2007, 12:41 Сергей Борщ Цитата(Ykidia @ Mar 28 2007, 11:41) Так ч... Mar 28 2007, 13:05 Ykidia Спасибо за ответ. У меня примерно такой же код (со... Mar 28 2007, 13:25 Сергей Борщ Цитата(Ykidia @ Mar 28 2007, 12:25) однак... Mar 28 2007, 13:47 add Работал с AT45DB041 в soic8 корпусе. Там нет ножк... Mar 28 2007, 13:35 Ykidia Да, фиктивную передачу делаю, иначе просто бит око... Mar 28 2007, 14:38 Сергей Борщ Цитата(Ykidia @ Mar 28 2007, 13:38) Да, ф... Mar 29 2007, 13:46 Itch Насколько я понял из даташита, читать весь статусн... Mar 28 2007, 21:42 Artem_Petrik Цитатаdo {
DF_ChipSelect_Start();
... Mar 28 2007, 22:30 sensor_ua ЦитатаЕдинственное, у меня IAR строчки вида S0SPSR... Mar 31 2007, 10:00 Сергей Борщ Цитата(sensor_ua @ Mar 31 2007, 09:00) Вс... Mar 31 2007, 13:24  zltigo Цитата(Сергей Борщ @ Mar 31 2007, 12:24) ... Mar 31 2007, 16:32   Сергей Борщ Цитата(zltigo @ Mar 31 2007, 15:32) Да не... Mar 31 2007, 16:45    zltigo Цитата(Сергей Борщ @ Mar 31 2007, 15:45) ... Mar 31 2007, 17:03 Ykidia ЦитатаВы же данные не тем концом суете.
Вообще-то ... Mar 31 2007, 20:59 Сергей Борщ Цитата(Ykidia @ Mar 31 2007, 19:59) Ну а ... Mar 31 2007, 22:57 defunct Цитата(Ykidia @ Mar 31 2007, 19:59) Вообщ... Apr 1 2007, 04:56  zltigo Цитата(defunct @ Apr 1 2007, 03:56) Я бы ... Apr 1 2007, 09:18 sensor_ua ЦитатаЯ бы так ни в жизнь не написал
А меня задолб... Apr 1 2007, 08:27 Ykidia ЦитатаЯ бы попробовал с таким максимально простым ... Apr 1 2007, 23:48 defunct Цитата(Ykidia @ Apr 1 2007, 22:48) и оказ... Apr 2 2007, 00:08 Ykidia Доброе утро!
ЦитатаV32 это естьtypedef volati... Apr 2 2007, 00:18 Ykidia Господа! Прошу простить меня за беспокойство... Apr 3 2007, 16:37 Ykidia Забыл сказать всем ответившим - большое спасибо за... Apr 3 2007, 22:34
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|