-
- Можно CS формировать модулем CCP NickB(68 знак., 11.08.2008 15:26)
- Тем более что ЦАП обычно требует точных временных интервалов - NickB(11.08.2008 15:46)
- Спасибо, буду разбираться с этим режимом. Сейчас перерыв. Все-таки прав mse - микрочиповская среда требует негуманна и вызывает противление злу :) Во всяком случае нужно привыкать, начиная с констант в хедерах. - Vladimir Ljaschko(11.08.2008 17:04)
- Тут, наверное, пральней будет так: по таймерному прерыванию сперва(!) ЦС в "1", потом в "0", а потом передача. Т.е. засчолкиваться будет предыдущее значение. В ряде случаев на это можно спокойно забить. А потери тактов минимальны, если цап допускает mse(45 знак., 13.08.2008 13:41)
- В PIC24-DSPIC модуль ССР это сделает без применения чаловеческой силы - NickB(13.08.2008 17:46)
- Ну это запросто, тока, наверняка надо учесть некоторыи тонкости. Если заставить его, например, тупо генерить сигнал ЦС, а работу с СПИ начинать по событию от ССР(ЦС->"0"), то можно получить в дыню, если будут ещё какие прерывания. Т.е. ССР придёцца mse(148 знак., 15.08.2008 09:36)
- Ну так надо использовать макс приоритет прерывания - NickB(15.08.2008 13:02)
- Не, не надо. Пусть его(СПИ) колбасит внутри ЦС="0", главное, чтобы запас был на прерывания. - mse(15.08.2008 13:37)
- Я бы попробовал поиграться с SPI (16 битн режим) в SLAVE + DMA. А внешние сигналы слепил бы на неск. каналах OC. Один таймер на частоту тактового сигнала SPI - выход через ОС. Эту же частоту - на внешнюю синхр. другого таймера, период повт. которого на st232bd(219 знак., 15.08.2008 10:49)
- Ну так надо использовать макс приоритет прерывания - NickB(15.08.2008 13:02)
- Ну это запросто, тока, наверняка надо учесть некоторыи тонкости. Если заставить его, например, тупо генерить сигнал ЦС, а работу с СПИ начинать по событию от ССР(ЦС->"0"), то можно получить в дыню, если будут ещё какие прерывания. Т.е. ССР придёцца mse(148 знак., 15.08.2008 09:36)
- В PIC24-DSPIC модуль ССР это сделает без применения чаловеческой силы - NickB(13.08.2008 17:46)
- Тут, наверное, пральней будет так: по таймерному прерыванию сперва(!) ЦС в "1", потом в "0", а потом передача. Т.е. засчолкиваться будет предыдущее значение. В ряде случаев на это можно спокойно забить. А потери тактов минимальны, если цап допускает mse(45 знак., 13.08.2008 13:41)
- Спасибо, буду разбираться с этим режимом. Сейчас перерыв. Все-таки прав mse - микрочиповская среда требует негуманна и вызывает противление злу :) Во всяком случае нужно привыкать, начиная с констант в хедерах. - Vladimir Ljaschko(11.08.2008 17:04)
- Тем более что ЦАП обычно требует точных временных интервалов - NickB(11.08.2008 15:46)
- CS нету, но есть Frame Mode, в которой Frame Sync вырабатывается аппаратно (правда, CLK выдаются тогда непрерывно). С DMA тоже нет CS, поэтому DMA-трансферы с SPI несколько теряют свою привлекательность - MBedder(11.08.2008 12:59)
- надо же, какое безобразие, один такт ногой махнуть. А как вы себе представляете тогда управление несколькими девайсами (т.е. несколько CS), если CS аппаратный? - Alex B.(11.08.2008 12:16)
- А мне не нужно несколько, нужно один быстро и с фреймовой синхронизацией. И ждать окончания передачи точно некогда. Разве что дернуть вывод вверх и вниз перед отправкой. Два такта. Но с DMA как? - Vladimir Ljaschko(11.08.2008 13:15)
- я таки не понял, у вас есть дма или нет? с DMA очень просто - сбросил CS и запустил канал. Все остальное оно сделает само. В прерывании от DMA (транзакция закончена) - поднял CS. Alex B.(103 знак., 11.08.2008 13:24)
- У большинства SPI ЦАПов по фронту или спаду CS ведется защелкивание принятого слова в выходной регистр, поэтому CS должен дергаться после каждого слова, а не раз за блок - MBedder(11.08.2008 13:49)
- Нужно формирование непрерывного синуса внешним DAC. Сейчас тренируюсь на 4012, хотя он точно не годится (нужен CAN + SPI, а они на тех же контактах). То есть контроллер менять, и предполагал, что применю с DMA. Можно формирование одного периода Vladimir Ljaschko(241 знак., 11.08.2008 13:41)
- Дык есть dsPIC33 со встроенным ЦАП 16 бит * 2 канала, 100 кГц max AU_(697 знак., 11.08.2008 14:10)
- Мало 100 кГц, хотелось бы 300. - Vladimir Ljaschko(11.08.2008 14:08)
- dsPIC'овский ЦАП особо не разгонишь - он тактируется от 256*Fsample, т.е. даже на 100КСПС это уже 25.6 МГЦ - MBedder(11.08.2008 14:15)
- Дык я сразу на внешний ориентировался. - Vladimir Ljaschko(11.08.2008 14:26)
- А какая разрадность требуется? - AU_(11.08.2008 14:12)
- Около 14. 8 - мало, а больше 8 уже все равно - SPI или 8-разрядный или 16 - разрядный. - Vladimir Ljaschko(11.08.2008 14:25)
- dsPIC'овский ЦАП особо не разгонишь - он тактируется от 256*Fsample, т.е. даже на 100КСПС это уже 25.6 МГЦ - MBedder(11.08.2008 14:15)
- Я сейчас как раз с таким играюсь - dsPIC33FJ128MC804. ЦАП там весьма своеобразный, дельта-сигма - MBedder(11.08.2008 14:01)
- что значит своеобразный? =) - Alex B.(11.08.2008 14:24)
- Своеобразный = интерполирующий дельта-сигма, заточенный сугубо под аудио - MBedder(11.08.2008 14:28)
- а они ж так и пишут - audio DAC - Alex B.(11.08.2008 14:33)
- Именно это я и сказал для AU_ - MBedder(11.08.2008 14:34)
- а они ж так и пишут - audio DAC - Alex B.(11.08.2008 14:33)
- Своеобразный = интерполирующий дельта-сигма, заточенный сугубо под аудио - MBedder(11.08.2008 14:28)
- что значит своеобразный? =) - Alex B.(11.08.2008 14:24)
- Мало 100 кГц, хотелось бы 300. - Vladimir Ljaschko(11.08.2008 14:08)
- DAC какой? - MBedder(11.08.2008 13:46)
- AD5543, точно, нужен CS на каждый фрейм. - Vladimir Ljaschko(11.08.2008 13:53)
- Дык есть dsPIC33 со встроенным ЦАП 16 бит * 2 канала, 100 кГц max AU_(697 знак., 11.08.2008 14:10)
- я таки не понял, у вас есть дма или нет? с DMA очень просто - сбросил CS и запустил канал. Все остальное оно сделает само. В прерывании от DMA (транзакция закончена) - поднял CS. Alex B.(103 знак., 11.08.2008 13:24)
- А мне не нужно несколько, нужно один быстро и с фреймовой синхронизацией. И ждать окончания передачи точно некогда. Разве что дернуть вывод вверх и вниз перед отправкой. Два такта. Но с DMA как? - Vladimir Ljaschko(11.08.2008 13:15)
- Можно CS формировать модулем CCP NickB(68 знак., 11.08.2008 15:26)