Как послать 10 бит по SPI? (CodeVision AVR)

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1269
Зарегистрирован: Пт июл 21, 2006 15:05:19
Откуда: плод воображения

Сообщение KT315B »

Всем привет! Мучаюсь тут с цифровым потенциометром AD8402A10 в связке с ATMEGA8535. Потенциометр управляется по SPI следующим образом: посылается 10 битное слово в таком формате: номер потенциометра (2 бита) и значение положения "движка" (8 бит). Собственно вопрос: каким образом можно послать по SPI 10 бит?
R2AIV 73!
Контактная информация:
Реклама
Мучитель микросхем
Аватара пользователя
Сообщения: 413
Зарегистрирован: Пт мар 10, 2006 12:23:05
Откуда: Moscow

Сообщение Mozart »

два раза по восемь...
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Контактная информация:
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1269
Зарегистрирован: Пт июл 21, 2006 15:05:19
Откуда: плод воображения

Сообщение KT315B »

Не прокатит - нужно именно одним пакетом:

Изображение
Вложения
spi10bit.GIF
(5.78 КБ) 381 скачивание
R2AIV 73!
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 413
Зарегистрирован: Пт мар 10, 2006 12:23:05
Откуда: Moscow

Сообщение Mozart »

мда не получится два раза по 8мь... наверно но геморройно отсылать первые 8мь а CS включать на последних двух а потом посылать вторые 8мь...

вообще легко делается на АРМах...

а может быть есть какая нить интерфейсная микруха... которая из параллельного преобразует в спи? надо искать...

да мануал я тоже открыл...
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Мучитель микросхем
Аватара пользователя
Сообщения: 413
Зарегистрирован: Пт мар 10, 2006 12:23:05
Откуда: Moscow

Сообщение Mozart »

идея появилсь...
завести ногу на инт0... sda или sck... наверно лучше сцк.. и посылать так значит первые 8мь 101010хх отсчитать 6штук... потом включить чип селект... а потом посылать вторые 8мь бит... xxxxxxxx
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Контактная информация:
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1269
Зарегистрирован: Пт июл 21, 2006 15:05:19
Откуда: плод воображения

Сообщение KT315B »

Попробовал сделать полностью программно - протеусовский SPI Debugger все прекрасно видит и понимает, однако на деле AD8402 категирически отказывается находить общий язык с МК :(
R2AIV 73!
Контактная информация:
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1269
Зарегистрирован: Пт июл 21, 2006 15:05:19
Откуда: плод воображения

Сообщение KT315B »

Mozart писал(а):идея появилсь...
завести ногу на инт0... sda или sck... наверно лучше сцк.. и посылать так значит первые 8мь 101010хх отсчитать 6штук... потом включить чип селект... а потом посылать вторые 8мь бит... xxxxxxxx
А идея-то, в принципе хороша, спасибо! Надо будет проверить на досуге!
R2AIV 73!
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 413
Зарегистрирован: Пт мар 10, 2006 12:23:05
Откуда: Moscow

Сообщение Mozart »

Попробовал сделать полностью программно - протеусовский SPI Debugger все прекрасно видит и понимает, однако на деле AD8402 категирически отказывается находить общий язык с МК
а вы правильно настроили спи?... там же целых 4ре режима есть... полярность данные передаются по фронту по срезу... что-то ещё есть...
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1269
Зарегистрирован: Пт июл 21, 2006 15:05:19
Откуда: плод воображения

Сообщение KT315B »

Mozart писал(а):а вы правильно настроили спи?... там же целых 4ре режима есть... полярность данные передаются по фронту по срезу... что-то ещё есть...
Все один-в-один, согласно даташита и временных диаграмм, только все равно не помогает :( Завтра еще на другой микросхеме попробую, можт или экземпляр кривой попался, или я что-то с ней напортачил и запорол :(
R2AIV 73!
Контактная информация:
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

Выложите плиз, проект PROTEUS .dsn и код для симуляции.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 413
Зарегистрирован: Пт мар 10, 2006 12:23:05
Откуда: Moscow

Сообщение Mozart »

а вы чип селект в 1 или в ноль ставите? посмотрите осциллом что творится на ногах...

вообще приз в студио т.е. код в студию...
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1269
Зарегистрирован: Пт июл 21, 2006 15:05:19
Откуда: плод воображения

Сообщение KT315B »

Кидаю ) Прошу за код строго не судить, ибо сделано "на коленке", но суть, вроде ясна =) Код тупо шлет 10 нулей по SPI...

2Mozart: /CS, естественно в ноль ставлю =)
Вложения
SPITest.rar
(46.65 КБ) 326 скачиваний
R2AIV 73!
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 413
Зарегистрирован: Пт мар 10, 2006 12:23:05
Откуда: Moscow

Сообщение Mozart »

у вас сцк не совсем правильно работает.... надо ещё строчку написать...

Код: Выделить всё

while (1)
      {
    PORTB.0=0; // /SS=0
      for(i=0;i<10;i++)
        {  
        PORTB.5=0; // MOSI=0
        
        PORTB.7=0; // Тактирование (SCK)
        delay_us(50);
        PORTB.7=1;        

        delay_us(50);//вот эту строчку...
 
       }
      PORTB.0=1; // /SS=1
      delay_ms(1000); 
      };
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1269
Зарегистрирован: Пт июл 21, 2006 15:05:19
Откуда: плод воображения

Сообщение KT315B »

Всмысле SCK в "0" cбросить опосля всего? Спасибо, не приметил что-то )
R2AIV 73!
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 413
Зарегистрирован: Пт мар 10, 2006 12:23:05
Откуда: Moscow

Сообщение Mozart »

у вас получались импульсы вот такие
__|-|____|-|___
а надо такие
_|-|_|-|_|-|_
потом... я не читал даташит... данные переключабтся по срезу или фронту? тоже посмотрите...

подключите виртуальный осцилл к сцк!!! и посмотрите...
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Контактная информация:
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

В PROTEUS линия данных не шевелится.
вот проект PROTEUS с осциллографом.
Вложения
oscil_spitest.rar
(10.64 КБ) 249 скачиваний
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1269
Зарегистрирован: Пт июл 21, 2006 15:05:19
Откуда: плод воображения

Сообщение KT315B »

2Тыч: дык она и не будет шевелиться - там-же одни нули передаются...

Сейчас переделал программу, с учетом рекомендаций Моцарта - вроде как все зашевелилось в железе =) По крайней мере, сопротивление меняется... Сейчас попробую более серьезно "поиграться" с микрухой...
R2AIV 73!
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 413
Зарегистрирован: Пт мар 10, 2006 12:23:05
Откуда: Moscow

Сообщение Mozart »

В PROTEUS линия данных не шевелится.
она в начале проги в ноль сброшена...
я думаю это специально???
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1269
Зарегистрирован: Пт июл 21, 2006 15:05:19
Откуда: плод воображения

Сообщение KT315B »

Как раз специально =) Сейчас ткнулся мультиметром - перед срабатыванием кода (дописал в начало задержку 10 сек. сопротивление между "полюсами" потенциометра и движком - по 5К, как и обещано в даташите. После срабатывания кода - 10К и 0, так что все идет по плану ) Спасибо всем ответившим - будем развивать код дальше )
R2AIV 73!
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 413
Зарегистрирован: Пт мар 10, 2006 12:23:05
Откуда: Moscow

Сообщение Mozart »

т.е. заработало?...
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Контактная информация:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»