roboforum.ru

Технический форум по робототехнике.

Кто использовал DAC8552 ?

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Кто использовал DAC8552 ?

Сообщение The_Kurs » 03 июн 2007, 10:41

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

Сообщение Tracer » 03 июн 2007, 11:13

По SPI интерфейсу

MCU      DAC

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

Выдвигаеш по три байта 1й -Команда 2й-3й - Данные
Дальше в соответствии с даташитом.
Аватара пользователя
Tracer
 
Сообщения: 195
Зарегистрирован: 24 ноя 2004, 12:36
Откуда: Харьков

Сообщение The_Kurs » 03 июн 2007, 11:24

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

Сообщение The_Kurs » 10 июн 2007, 17:18

Подключил ЦАП к микроконтроллеру а как превельно на него данные передавать что то неполучается?
Можно так ?

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)) ???
The_Kurs
 
Сообщения: 161
Зарегистрирован: 16 фев 2007, 16:33
Откуда: Петропавловск-Камчатский

Сообщение Tracer » 11 июн 2007, 10:58

Смотри внимательнее - void SPI_MasterTransmit(char cData)

1. CHAR это ОДИН байт А ты сколько ему даешь?
2. SS-ом  кто управляет? По диаграмме его нужно держать в ЛОУ пока все три байта не передадутся.
Аватара пользователя
Tracer
 
Сообщения: 195
Зарегистрирован: 24 ноя 2004, 12:36
Откуда: Харьков

Сообщение The_Kurs » 11 июн 2007, 15:01

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

Ещё один вопрос а что за режим в высокоимпедансном состоянии ??? Это резистор чтоль на +Vcc цепляют ??? Для чего он ???
The_Kurs
 
Сообщения: 161
Зарегистрирован: 16 фев 2007, 16:33
Откуда: Петропавловск-Камчатский

Сообщение Tracer » 11 июн 2007, 15:03

Теплее  :wink:

Высокоимпедансное состояние или режим Z нужно чтобы устройства сидящие на общей шине могли отключаться от нее и не влиять на сигнылы проходящие там
Ты же на SPI можеш повесить кучу устройств и выбирать их посредством SS
Аватара пользователя
Tracer
 
Сообщения: 195
Зарегистрирован: 24 ноя 2004, 12:36
Откуда: Харьков

Сообщение The_Kurs » 11 июн 2007, 15:22

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

Сообщение The_Kurs » 13 июн 2007, 09:00

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

Сообщение Tracer » 13 июн 2007, 16:26

Найди три отличия в словах USART и SPI

Ты посмотри на протокол USARTа и на протокол SPI  :lol:
Или уточни что куда ты выводил Я чтото не врубился
Аватара пользователя
Tracer
 
Сообщения: 195
Зарегистрирован: 24 ноя 2004, 12:36
Откуда: Харьков

Сообщение The_Kurs » 15 июн 2007, 09:01

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

Сообщение Tracer » 15 июн 2007, 11:48

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

Сообщение The_Kurs » 15 июн 2007, 14:04

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

Сообщение Tracer » 15 июн 2007, 14:35

C WAV не работал знаю что вроде как просто тупая оцифровка в них Может и ошибаюсь
Но в любом случае подход один

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

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

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

4.(или 1)Вообще каналы
MCU->PC, MCU->DAC проверены? на примерчиках попроще чем сразу ВАВы гнать?
Аватара пользователя
Tracer
 
Сообщения: 195
Зарегистрирован: 24 ноя 2004, 12:36
Откуда: Харьков

Сообщение The_Kurs » 15 июн 2007, 14:59

Завтро досконально буду тестить ... синусоиду гнать по каналу.
Частоту дискретизации менял от 7,1кГц до 2кГц.


По поводу пункта 1 и пункта 2. На юсатр не учёл стоповые и стартовые биты. Частоту специально подбирал 7,1 равную скорости передачи (ошибся нуна 5,1было брать ) при условии что скорость передачи по SPI много больше и ей можно пренебреч для начала.
The_Kurs
 
Сообщения: 161
Зарегистрирован: 16 фев 2007, 16:33
Откуда: Петропавловск-Камчатский

След.

Вернуться в Микроконтроллеры

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

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

cron