Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 07.01.2013, 03:22  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: Управление лазером, синхронизация потока данных

Синхронизацию можно сделать так. DMA обязательно. SPI в Slave моде. Клоки от TIM2. Работа TIM2 сначала запрещена.
Разрешение на работу для TIM2 поступает от события переполнения TIM1.
Для TIM1 клоки - внешние: импульсы начала новой строки от вертушки.
Перед стартом записываете в DMA начальный адрес буфера. Зануляете и запрещаете TIM2 и засылаете 0xFFFF в TIM1. Ждёте импульса начала строки.
С приходом импульса таймер TIM1 переполняется и разрешает работу TIM2, который сидел в нуле вместе со своим прескейлером. То есть синхронно со строкой TIM2 начинает генерить клоки для SPI.
И понеслось. DMA засылает байты в SPI, пока на достигнет конца буфера. Потом вырабатывает прерывание о завершении работы. В прерывании снова зануляем и запрещаем TIM2, в таймер TIM1 пишем 0xFFFF, в DMA - начальный адрес. И снова ждём импульс строки.
Миниатюры:
Нажмите на изображение для увеличения
Название: kazus_SPI.png
Просмотров: 78
Размер:	14.1 Кб
ID:	41982  
Реклама:
Yurkin2007 вне форума  
Сказали "Спасибо" Yurkin2007
nerozero (07.01.2013)
Непрочитано 07.01.2013, 11:48  
nerozero
Вид на жительство
 
Регистрация: 26.07.2007
Сообщений: 483
Сказал спасибо: 18
Сказали Спасибо 107 раз(а) в 68 сообщении(ях)
nerozero на пути к лучшему
По умолчанию Re: Управление лазером, синхронизация потока данных

Yurkin2007, да, именно так и думал, кроме обнуления Т2, тут хотел поставить внешний счетчик (сейчас паяю) делитель и делать сброс по приходу внешнего синхроимпульса. Т2 - › разогнать скажем в 4-8 раз быстрее чем требуется. Таким образом при сбросе получим ошибку максимум 1/4 - 1/8 периода от старта. Идея проделать тоже со внутренним таймером Т2 - очень понравилась!!!!! Большое спасибо!
nerozero вне форума  
Непрочитано 12.01.2013, 17:13  
nerozero
Вид на жительство
 
Регистрация: 26.07.2007
Сообщений: 483
Сказал спасибо: 18
Сказали Спасибо 107 раз(а) в 68 сообщении(ях)
nerozero на пути к лучшему
По умолчанию Re: Управление лазером, синхронизация потока данных

Нашел вот такую штуку:
65ALS543
nerozero вне форума  
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Управление лазером, 200-300mA, 200-300 ns nerozero Делимся опытом 15 04.01.2013 22:34
[Решено] Пульсация светового потока, как бороться? zxc5 Источники питания и свет 31 07.10.2010 17:56
Сохранение потока с USB на Compact Flash RALP Микроконтроллеры, АЦП, память и т.д 7 11.10.2007 13:05


Часовой пояс GMT +4, время: 13:49.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot