Например TDA7294

Форум РадиоКот • Просмотр темы - Помогите с SPI и цифровым резистром
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт июн 19, 2025 11:59:01

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Помогите с SPI и цифровым резистром
СообщениеДобавлено: Чт ноя 19, 2015 07:31:11 
Открыл глаза

Зарегистрирован: Сб ноя 29, 2014 21:20:52
Сообщений: 42
Рейтинг сообщения: 0
Мяу. :))

Не работает вот эта штука, не могу понять из-за чего ((
Даташиты поковырял и ничего не нашел, по идее должно работать, но реальность упертая штука :shock:

Код:
#include <io.h>

// Declare your global variables here

#include <delay.h>

unsigned char cData=90;

/* Макросы для кнопок:  */
#define DDR_Button  DDRB
#define Button_0    0
/* - - - - - - - - - - - - - - - - - - - - - - - */

/* Макросы для SPI % Используем аппаратный SPI % */
#define DDR_SPI     DDRB
#define DD_PB1      1
#define DD_SS       2
#define DD_MOSI     3
#define DD_MISO     4
#define DD_SCK      5
/* - - - - - - - - - - - - - - - - - - - - - - - */

void SPI_MasterInit(void){
/* Включили SPI, мастер, установили частоту Fck/128 */
SPCR=(0<<SPIE)|(1<<SPE)|(0<<DORD)|(1<<MSTR)|(0<<CPOL)|(0<<CPHA)|(1<<SPR1)|(1<<SPR0);
SPSR=(0<<SPI2X);
/* Установили MOSI и SCK выход, все остальные вход */
DDR_SPI=(1<<DD_MOSI)|(1<<DD_SCK)|(0<<DD_MISO);
}

void SPI_MasterTransmit(unsigned char cData){
/* Команда писать данные в нулевой потенциометр */
SPDR=0b00010001; while(!(SPSR & (1<<SPIF)));
/* Старт передачи */
SPDR=cData; while(!(SPSR & (1<<SPIF)));
}

void main(void){
/* Установили кнопки как вход */
DDR_Button=(0<<Button_0)|(1<<DD_PB1)|(1<<DD_SS);

SPI_MasterInit();

 while(1)
          {
          if(PINB.0==1){PORTB.1=0; cData=cData+10; SPI_MasterTransmit(cData);}else{PORTB.1=1;       
          }
         
          }
}


Вложения:
н44.png [12.14 KiB]
Скачиваний: 414
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с SPI и цифровым резистром
СообщениеДобавлено: Чт ноя 19, 2015 08:12:07 
Держит паяльник хвостом
Аватар пользователя

Карма: 9
Рейтинг сообщений: 40
Зарегистрирован: Сб апр 02, 2011 17:59:22
Сообщений: 995
Откуда: Город-герой Севастополь
Рейтинг сообщения: 0
Так. А что это у Вас происходит с выводом SS? Как вход используется, непонятно.
Где сброс CS потенциометра перед выходом на передачу данных? Тоже не видать мне..

_________________
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с SPI и цифровым резистром
СообщениеДобавлено: Чт ноя 19, 2015 08:29:39 
Мудрый кот
Аватар пользователя

Карма: 3
Рейтинг сообщений: 60
Зарегистрирован: Пн ноя 29, 2010 15:58:43
Сообщений: 1816
Рейтинг сообщения: 0
на http://www.arduino-projekte.de есть библиотеки для MCP41010/MCP41050/MCP42010/MCP42050.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с SPI и цифровым резистром
СообщениеДобавлено: Чт ноя 19, 2015 09:09:06 
Открыл глаза

Зарегистрирован: Сб ноя 29, 2014 21:20:52
Сообщений: 42
Рейтинг сообщения: 0
SubDia писал(а):
Так. А что это у Вас происходит с выводом SS? Как вход используется, непонятно.
Где сброс CS потенциометра перед выходом на передачу данных? Тоже не видать мне..

SS МК сконфигурирован на вход и на него подвешено питание +5В.

CS:
Код:
 if(PINB.0==1){PORTB.1=0;...

если нажата кнопка, то низкий уровень, иначе высокий


Вернуться наверх
 
В продаже новые LED-драйверы XLC компании MEAN WELL с диммингом нового поколения

Компания MEAN WELL пополнила ассортимент своей широкой линейки светодиодных драйверов новым семейством XLC для внутреннего освещения. Главное отличие – поддержка широкого спектра проводных и беспроводных технологий диммирования. Новинки представлены в MEANWELL.market моделями с мощностями 25 Вт, 40 Вт и 60 Вт. В линейке есть модели, работающие как в режиме стабилизации тока (СС), так и в режиме стабилизации напряжения (CV) значением 12, 24 и 48 В.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Помогите с SPI и цифровым резистром
СообщениеДобавлено: Чт ноя 19, 2015 10:06:41 
Держит паяльник хвостом
Аватар пользователя

Карма: 9
Рейтинг сообщений: 40
Зарегистрирован: Сб апр 02, 2011 17:59:22
Сообщений: 995
Откуда: Город-герой Севастополь
Рейтинг сообщения: 0
panya писал(а):
если нажата кнопка, то низкий уровень, иначе высокий

Вижу. Наверное, это я еще очи не разлепил с утра)
Честно говоря, я бы эти манипуляции внес в функцию передачи данных. Опустили CS - подняли CS.
Впрочем, ладно.
Еще я бы попробовал (коль совсем непонятно, почему не работает) для эксперимента реализовать программный SPI.
Ибо в принципе работа с MCP41xx/42xx элементарна, "не работать" тут нечему.
Кстати говоря, в чем проявляется неработоспособность? У Вас кнопка отрабатывает? По мне, так в Вашей схеме не хватает подтяжки вывода (который к кнопке подключен, PB0) к "земле". Возможно, конечно, в Протеусе и так работать должно. =)
Что вообще показывает напряжометр?

_________________
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с SPI и цифровым резистром
СообщениеДобавлено: Чт ноя 19, 2015 14:25:12 
Открыл глаза

Зарегистрирован: Сб ноя 29, 2014 21:20:52
Сообщений: 42
Рейтинг сообщения: 0
SubDia писал(а):
Что вообще показывает напряжометр?

Напряжометр показывает падение напруги. Сопротивление больше - падение больше, меньше - меньше. Поставил чтоб контролировать работу сопротивлялки.

SubDia писал(а):
Кстати говоря, в чем проявляется неработоспособность?

Если зажать кнопку и запустить протеус, то сопротивление меняется (показания вольтметра меняются, в момент отжатия кнопки, разное время с момента пуска - разные показания вольтметра. Тоесть вроде работает). Если запустить с отжатой кнопкой то ничего не меняется. Хотя осциллограф показывает что что-то отправляется.

Может:
================
/* Установили кнопки как вход */
DDR_Button=(0<<Button_0)|(1<<DD_PB1)|(1<<DD_SS);

POTR.DD_PB1=1;

а потом уже:

if(PINB.0==1){
PORTB.1=0; cData=cData+10; SPI_MasterTransmit(cData);
}else{PORTB.1=1;}

Так как изначально состояние порта не задано.


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Помогите с SPI и цифровым резистром
СообщениеДобавлено: Чт ноя 19, 2015 16:39:57 
Держит паяльник хвостом
Аватар пользователя

Карма: 9
Рейтинг сообщений: 40
Зарегистрирован: Сб апр 02, 2011 17:59:22
Сообщений: 995
Откуда: Город-герой Севастополь
Рейтинг сообщения: 0
panya писал(а):
Напряжометр показывает падение напруги. Сопротивление больше - падение больше, меньше - меньше. Поставил чтоб контролировать работу сопротивлялки.

Да это понятно. Я имел в виду какие конкретно значения он показывает. По идее, после запуска с отжатой кнопкой он должен показать 2,5 В (MCP41010 устанавливает среднее значение (от номинала) сопротивления после сброса).
panya писал(а):
POTR.DD_PB1=1;

Пробуйте.

panya писал(а):
Если зажать кнопку и запустить протеус, то сопротивление меняется (показания вольтметра меняются, в момент отжатия кнопки, разное время с момента пуска - разные показания вольтметра. Тоесть вроде работает). Если запустить с отжатой кнопкой то ничего не меняется.

Потому что при запуске с зажатой кнопкой у Вас в любом случае выполняется условие
if(PINB.0==1)
А если нет, то на выводе может быть что угодно, вывод-то PB0 в воздухе висит. Притяните его к земле на всякий случай. Приблизительно так.

Изображение

_________________
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с SPI и цифровым резистром
СообщениеДобавлено: Чт ноя 19, 2015 16:53:19 
Мучитель микросхем
Аватар пользователя

Карма: 8
Рейтинг сообщений: 28
Зарегистрирован: Вс авг 10, 2008 19:35:49
Сообщений: 411
Откуда: Евпатория
Рейтинг сообщения: 0
Вот, может быть чем-то поможет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с SPI и цифровым резистром
СообщениеДобавлено: Чт ноя 19, 2015 18:06:22 
Потрогал лапой паяльник

Карма: 1
Рейтинг сообщений: 13
Зарегистрирован: Чт авг 08, 2013 01:06:54
Сообщений: 359
Рейтинг сообщения: 0
SubDia писал(а):
Приблизительно так.

Изображение

Схема неправильная. Нажатие кнопки никоим образом не повлияет на уровень напряжения на ножке МК. Там всегда будет потенциал земли (0 Вольт).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с SPI и цифровым резистром
СообщениеДобавлено: Чт ноя 19, 2015 19:10:17 
Открыл глаза

Зарегистрирован: Сб ноя 29, 2014 21:20:52
Сообщений: 42
Рейтинг сообщения: 0
Всем спасибо. работает. Разрешения толкового не было, сделал разрешение от кнопки, когда вкл. кнопка то подтягивает землю на порт и на CS. И завелся резюк.
мяу


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с SPI и цифровым резистром
СообщениеДобавлено: Пт ноя 20, 2015 08:30:42 
Держит паяльник хвостом
Аватар пользователя

Карма: 9
Рейтинг сообщений: 40
Зарегистрирован: Сб апр 02, 2011 17:59:22
Сообщений: 995
Откуда: Город-герой Севастополь
Рейтинг сообщения: 0
Пока_без_кота писал(а):
Схема неправильная.

Точно. Я всегда настраиваю срабатывание по низкому уровню, схема там чуть друга, вот и накосячил в спешке)
panya писал(а):
работает.

Ну вот и отлично.

_________________
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y