roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 10:12

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




Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Кто использовал DAC8552 ?
СообщениеДобавлено: 03 июн 2007, 10:41 
Не в сети

Зарегистрирован: 16 фев 2007, 16:33
Сообщения: 161
Откуда: Петропавловск-Камчатский
Подскажите каким образом можно подключить ЦАП DAC8552 к ATmega16?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 03 июн 2007, 11:13 
Не в сети
Аватара пользователя

Зарегистрирован: 24 ноя 2004, 12:36
Сообщения: 195
Откуда: Харьков
По SPI интерфейсу

MCU      DAC

CLK ---- SCK
SS-------SYNC
MOSI----DI

Выдвигаеш по три байта 1й -Команда 2й-3й - Данные
Дальше в соответствии с даташитом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 03 июн 2007, 11:24 
Не в сети

Зарегистрирован: 16 фев 2007, 16:33
Сообщения: 161
Откуда: Петропавловск-Камчатский
Спасибо !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 10 июн 2007, 17:18 
Не в сети

Зарегистрирован: 16 фев 2007, 16:33
Сообщения: 161
Откуда: Петропавловск-Камчатский
Подключил ЦАП к микроконтроллеру а как превельно на него данные передавать что то неполучается?
Можно так ?

SPI_MasterTransmit(0x34ffff)
или SPI_MasterTransmit(0b001101001111111111111111)  Если я правельно понял при правельной передачи информации в ЦАП на выходе будут Vref ???


В даташите на Мега16 передача по SPI

void SPI_MasterTransmit(char cData)
{
/* Start transmission */
SPDR = cData;
/* Wait for transmission complete */
while(!(SPSR & (1<<SPIF)))
;
}

строчку while(!(SPSR & (1<<SPIF))) можно заменить на while(!(SPSR.7)) ???


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 11 июн 2007, 10:58 
Не в сети
Аватара пользователя

Зарегистрирован: 24 ноя 2004, 12:36
Сообщения: 195
Откуда: Харьков
Смотри внимательнее - void SPI_MasterTransmit(char cData)

1. CHAR это ОДИН байт А ты сколько ему даешь?
2. SS-ом  кто управляет? По диаграмме его нужно держать в ЛОУ пока все три байта не передадутся.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 11 июн 2007, 15:01 
Не в сети

Зарегистрирован: 16 фев 2007, 16:33
Сообщения: 161
Откуда: Петропавловск-Камчатский
Спасибо действительно я не управлял SS.
Как я понял при передаче трёх байт SS - LOW остальное в HIGHT состоянии.
Сперва передаю три байта первого канала, потом три байта второго канала.
Вроде работает.
PORTB.4=0;
SPI_MasterTransmit(команда)
SPI_MasterTransmit(байт1)
SPI_MasterTransmit(байт2)
PORTB.4=1;

Ещё один вопрос а что за режим в высокоимпедансном состоянии ??? Это резистор чтоль на +Vcc цепляют ??? Для чего он ???


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 11 июн 2007, 15:03 
Не в сети
Аватара пользователя

Зарегистрирован: 24 ноя 2004, 12:36
Сообщения: 195
Откуда: Харьков
Теплее  :wink:

Высокоимпедансное состояние или режим Z нужно чтобы устройства сидящие на общей шине могли отключаться от нее и не влиять на сигнылы проходящие там
Ты же на SPI можеш повесить кучу устройств и выбирать их посредством SS


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 11 июн 2007, 15:22 
Не в сети

Зарегистрирован: 16 фев 2007, 16:33
Сообщения: 161
Откуда: Петропавловск-Камчатский
Ясно спасибо. Интересно))) :!:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 июн 2007, 09:00 
Не в сети

Зарегистрирован: 16 фев 2007, 16:33
Сообщения: 161
Откуда: Петропавловск-Камчатский
Попробовал вывести на него WAV файл через USART с компа. Что то неполучается одни шумы выходят.
В вав файле (моно) после заголовка идут непосредственно данные сделал 16-ти битные с частотой дискретизации 7100Гц. Скорость USARTа установил 115200бит/сек. Поидее должны были пройти 16*7100=113600бит/сек :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 июн 2007, 16:26 
Не в сети
Аватара пользователя

Зарегистрирован: 24 ноя 2004, 12:36
Сообщения: 195
Откуда: Харьков
Найди три отличия в словах USART и SPI

Ты посмотри на протокол USARTа и на протокол SPI  :lol:
Или уточни что куда ты выводил Я чтото не врубился


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 июн 2007, 09:01 
Не в сети

Зарегистрирован: 16 фев 2007, 16:33
Сообщения: 161
Откуда: Петропавловск-Камчатский
В общем взял МК ATmega16 (тактируется кварцем 14,31Мгц) подключил его по USART(скорость 115,2кбит) к ПК, а на SPI(клок рэйтэ =894кГц) повесил DAC.
С ПК отсылаю из WAV файла данные и в МК тут же вывожу их на DAC.
Параметры WAV частота дескритизации 7100Гц 16бит.
Вместо звука слышен шум (((.
И сделал что бы каждый цикл приёма- передачи данных светодиод мигал. Померял частоту его мигания всего 1кГц (((


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 июн 2007, 11:48 
Не в сети
Аватара пользователя

Зарегистрирован: 24 ноя 2004, 12:36
Сообщения: 195
Откуда: Харьков
А с какой скоростью ты свои 16 бит заносиш в DAC?
Ты на 115к предаешь их в МК и сразу на DAC?
Если запись с дискретизацией 7к то заносить их надо с той же скоростью Т.е DAC должен получать 7к слов (16 бит) в сек.
Согласуй скорости.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 июн 2007, 14:04 
Не в сети

Зарегистрирован: 16 фев 2007, 16:33
Сообщения: 161
Откуда: Петропавловск-Камчатский
Параметры SPI задавал через код визард(как в примерах на avr123) там установил клок рэйт 894кГц это и есть скорость передачи по SPI ???
Принимаю 16 бит с юсарт и сразу же передаю па ДАС чарез SPI.
В файле вав 16 бит данных как хронится ? Сперва первые 8 потом вторые ??? Или местами поменяны как например поля длины файла ???


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 июн 2007, 14:35 
Не в сети
Аватара пользователя

Зарегистрирован: 24 ноя 2004, 12:36
Сообщения: 195
Откуда: Харьков
C WAV не работал знаю что вроде как просто тупая оцифровка в них Может и ошибаюсь
Но в любом случае подход один

1. 115К /20(старт+8бит+стоп+старт+8бит+стоп)=5К7 - маловато :о(

2. 894К / 24 (3 байта) = 37КСлов/с
А оцифровка 7КСлов/с
Почуствуйте разницу

3. Ввод буферируется?

4.(или 1)Вообще каналы
MCU->PC, MCU->DAC проверены? на примерчиках попроще чем сразу ВАВы гнать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 июн 2007, 14:59 
Не в сети

Зарегистрирован: 16 фев 2007, 16:33
Сообщения: 161
Откуда: Петропавловск-Камчатский
Завтро досконально буду тестить ... синусоиду гнать по каналу.
Частоту дискретизации менял от 7,1кГц до 2кГц.


По поводу пункта 1 и пункта 2. На юсатр не учёл стоповые и стартовые биты. Частоту специально подбирал 7,1 равную скорости передачи (ошибся нуна 5,1было брать ) при условии что скорость передачи по SPI много больше и ей можно пренебреч для начала.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2  След.

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


Кто сейчас на конференции

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


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

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO