Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: C8051F340 и Аtmel DataFlash
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > MCS51
DVasiliev
Здравствуйте!
Дано: C8051F340 и AT45DB161D, которые должны работать по SPI, но что-то ничего не получается.

В оригинальной версии схемы /RESET и /WP сидели на +VCC, затем я их оторвал и повесил на порты - в предыдущей схеме на AtMega именно так все и работало (по уверениям)
Кстати до этого из SPI0DAT упорно читалось только 0xFF, теперь читается 0х00
Я, на самом деле, конструктор плат, так что с C у меня проблэмы - фунция возвращает 0, хотя поставленные на контроль регистры показывают значения, правда совсем-совсем не ID Atmel, а вообще непонятно что и все врямя разное.
К MOSI, SCK, /RESET и /CS у меня подключены внутренние подтягивающие резисторы контроллера (push-pull)
Еще в начале вся схема работала от +5В от программатора, потом я ограничил до +3.6
При +3.3 флеш тоже не очень работает, только это еще и трудно контролировать: микросхема в консольном кабеле глючит от низкого напряжения.

Есть мнение, что неправильно запущен кварц - что бы обойтись без SCK написана функция следующего вида:

CODE
BYTE SPI_Byte_RW (BYTE OPCODE)
{
BYTE i,ret3 = 0;
for(i=0;i<8;i++)
{
MOSI = (OPCODE & 0x80) ? 1 : 0;
SCLK = 0;
OPCODE <<= 1;
ret3 <<= 1;
SCLK = 1;
ret3 |= MISO;
}
OPCODE = 0;
for(i=0;i<8;i++)
{
MOSI = (OPCODE & 0x80) ? 1 : 0;
SCLK = 0;
OPCODE <<= 1;
ret3 <<= 1;
SCLK = 1;
ret3 |= MISO;
}
return ret3;

}

Однако и тут никакого результата, кроме 0
В приложении схема и проект в Silabs IDE
Спасибо!
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
uriy
Цитата
Есть мнение, что неправильно запущен кварц - что бы обойтись без SCK написана функция следующего вида:
Интересная у вас стратегия. Что значит неправильно запущен кварц? И что значит обойтись без SCK? Суда по названиям пинов на вашем контроллере есть аппаратный SPI, зачем же тогда пытаетесь навалять программный? В даташите указано максимальное питание 3,6В может после 5В уже микросхема и не работает.
DVasiliev
Цитата(uriy @ Nov 1 2009, 17:53) *
Интересная у вас стратегия. Что значит неправильно запущен кварц? И что значит обойтись без SCK? Суда по названиям пинов на вашем контроллере есть аппаратный SPI, зачем же тогда пытаетесь навалять программный? В даташите указано максимальное питание 3,6В может после 5В уже микросхема и не работает.


У меня есть аппаратный SPI, программный я пытаюсь написать именно потому, что есть аппаратный, в котором надо конфигурировать регистр, задающий частоту на SCK, а он зависит от конфигурации SCLK, a она зависит от конфигурации кварца. А если написать собственную функцию, то как бы и не важно, что там как сконфигурировано.

Вопрос в том, что сейчас уже 3.6В. Интересно, могла выгореть? Теоретически указано All Input Voltages (including NC Pins)
with Respect to Ground -0.6V to +6.25V, т.е. не должна была.
DVasiliev
Пардон почтенной публике за беспокойство - вопрос решился переконфигурацией SPI на тактирование по спадающему фронту и использованием внутреннего генератора.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.