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

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

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

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

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

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

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 09.12.2018, 02:44  
parovoZZ
Почётный гражданин KAZUS.RU
 
Регистрация: 15.11.2010
Сообщений: 2,378
Сказал спасибо: 338
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
parovoZZ на пути к лучшему
Счастье USI - есть проскилованные?

Смотрю в книгу - вижу фигу =)

Не понимаю, как тактируется эта канитель? Например, режим SPI, тактируемся так:
Код:
   
    USICR |= (Bit(USIWM0) | Bit(USICS1) | Bit(USICLK)); // В секции инициализации

 //... Установим флаг начала передачи                   
    USISR |= Bit(USIOIF);

    //... В цикле следим за флагом
    while(!(USISR & Bit(USIOIF)))
    {
        USICR |= ( Bit(USITC));        // Режим SPI, тактируем шину сами

    }
Смотрим дашик и видим, что в такой комбинации счетчик тактируется программно битом USITC. Но смотрим структурную - а как же тогда всё тактируется, если в бит USITC мы всегда записываем "1"? Код рабочий, но бесит, что не понимаю как оно аппаратно работает. И да - цикл забирает 10 тактов из жизни процессора. Т.е. при кварце в 8 МГц на выходе SPI всего 800 кГц.

Второй способ тактирования самый быстрый, но кода многА)
Код:
uint8_t clk0 = Bit(USIWM0) | Bit(USITC);
    uint8_t clk1 = Bit(USIWM0) | Bit(USITC) | Bit(USICLK);

    USICR = clk0;            // Режим SPI, тактируем шину сами
    USICR = clk1;
    USICR = clk0;
    USICR = clk1;
    USICR = clk0;
    USICR = clk1;
    USICR = clk0;
    USICR = clk1;
    USICR = clk0;
    USICR = clk1;
    USICR = clk0;
    USICR = clk1;
    USICR = clk0;
    USICR = clk1;
    USICR = clk0;
    USICR = clk1;
И по нему вопросов нет - вручную дергаем бит USICLK и на выходе получаем честные CLK/2.
Миниатюры:
Нажмите на изображение для увеличения
Название: usicr.png
Просмотров: 0
Размер:	109.5 Кб
ID:	135861   Нажмите на изображение для увеличения
Название: USI.png
Просмотров: 0
Размер:	146.8 Кб
ID:	135862  
Реклама:

Последний раз редактировалось parovoZZ; 09.12.2018 в 02:47.
parovoZZ вне форума  
Непрочитано 09.12.2018, 12:44  
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,793
Сказал спасибо: 2,913
Сказали Спасибо 3,120 раз(а) в 2,111 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: USI - есть проскилованные?

Сообщение от parovoZZ Посмотреть сообщение
Смотрим дашик и видим, что в такой комбинации счетчик тактируется программно битом USITC. Но смотрим структурную - а как же тогда всё тактируется, если в бит USITC мы всегда записываем "1"?
..........
Сообщение от ATtiny2313
Writing a one to this bit location toggles the USCK/SCL value either from 0 to 1, or from 1 to 0.
__________________
Экзорцист 40-го уровня.
ForcePoint вне форума  
Эти 2 пользователя(ей) сказали Спасибо ForcePoint за это сообщение:
laser532 (09.12.2018), mike-y-k (09.12.2018)
Непрочитано 09.12.2018, 13:25  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: USI - есть проскилованные?

parovoZZ, структурная там несколько смутная/общая - функции квадратиков таки не расписаны, а там и прячется нужный функционал…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Сказали "Спасибо" mike-y-k
laser532 (09.12.2018)
Непрочитано 09.12.2018, 17:01  
parovoZZ
Почётный гражданин KAZUS.RU
 
Регистрация: 15.11.2010
Сообщений: 2,378
Сказал спасибо: 338
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
parovoZZ на пути к лучшему
Восклицание Re: USI - есть проскилованные?

Сообщение от ForcePoint Посмотреть сообщение
Writing a one to this bit location toggles the USCK/SCL value either from 0 to 1, or from 1 to 0.
Там в квадратике Т-триггер? И от него же сдвиговый регистр тактируется?

Интересно, если вместо этого
Код:
uint8_t clk0 = Bit(USIWM0) | Bit(USITC);
    uint8_t clk1 = Bit(USIWM0) | Bit(USITC) | Bit(USICLK);
написать 8 раз
Код:
USICR |= ( Bit(USITC));
и забить болт на бит переполнения USIOIF (мы же мастер, а не слейв)), взлетит? Ничего не выигрываем, но код уменьшится.
parovoZZ вне форума  
Непрочитано 12.12.2018, 00:07  
parovoZZ
Почётный гражданин KAZUS.RU
 
Регистрация: 15.11.2010
Сообщений: 2,378
Сказал спасибо: 338
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
parovoZZ на пути к лучшему
По умолчанию Re: USI - есть проскилованные?

А возможно ли в этом USI пин SCK/SCL отлучить от выходного буфера в виде ОИ? У меня датчик хоть и I2C, но на линию SCK/SCL не воздействует никак. Соответственно и мне со стороны мастера ОИ с подтягивающим резиком вроде как и не нужен.


Блин, такое ощущение, что все сидят в абдуринах-онлайнах, хоть и не признают этого.))))
parovoZZ вне форума  
Непрочитано 12.12.2018, 00:28  
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,793
Сказал спасибо: 2,913
Сказали Спасибо 3,120 раз(а) в 2,111 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: USI - есть проскилованные?

Сообщение от parovoZZ Посмотреть сообщение
А возможно ли в этом USI пин SCK/SCL отлучить от выходного буфера в виде ОИ?
Давно это было... и на ассемблере. Но режим two-wire (т.е. I2C) недвусмысленно намекает на открытый сток.

Сообщение от parovoZZ Посмотреть сообщение
Соответственно и мне со стороны мастера ОИ с подтягивающим резиком вроде как и не нужен.
А потом скопируешь в новый проект (хули - отлаженный мастер!)и будешь думать "чё это ведомый не даёт ACK?". Делай всегда как надо, а криво - само получится.
__________________
Экзорцист 40-го уровня.
ForcePoint вне форума  
Сказали "Спасибо" ForcePoint
mike-y-k (12.12.2018)
Непрочитано 12.12.2018, 03:12  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: USI - есть проскилованные?

parovoZZ, для практической проверки тут самое место той arduino в паре с логическим анализатором.
Ещё много интересного в примерах, библиотеках и на форуме производителя. Там как минимум полнее изучили всю совокупность DS, AN и errata…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 12.12.2018, 11:26  
parovoZZ
Почётный гражданин KAZUS.RU
 
Регистрация: 15.11.2010
Сообщений: 2,378
Сказал спасибо: 338
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
parovoZZ на пути к лучшему
По умолчанию Re: USI - есть проскилованные?

Сообщение от ForcePoint Посмотреть сообщение
открытый сток.
да, да, да))) телефон исправляет))

Сообщение от ForcePoint Посмотреть сообщение
А потом скопируешь в новый проект
Неа, неа. Датчик специфический и под него сделаю драйвер спецом.

Сообщение от mike-y-k Посмотреть сообщение
для практической проверки тут самое место той arduino в паре с логическим анализатором.
ЛА - есть, абдурины - нет. Даже не знаю для чего она здесь. Тут даже больше интерес лежит в другой плоскости - смогу ли я?

Сообщение от mike-y-k Посмотреть сообщение
Ещё много интересного в примерах, библиотеках и на форуме производителя.
У sensirion не нашел. Но даже если и есть, сомневаюсь что это будет USI от atmel. Сейчас в тренде STM32.

Сообщение от mike-y-k Посмотреть сообщение
DS, AN и errata…
DS изучен вдоль и поперек. AN у атмела по USI скудны. Тоже тактирование от таймера - кода очень много, а по сути одна вода.
parovoZZ вне форума  
Непрочитано 12.12.2018, 11:37  
makakus
Почётный гражданин KAZUS.RU
 
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,106
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: USI - есть проскилованные?

Разбирался когда-то с USI - да, сильно там накручено. Ассемблер.
Но я не понимаю что такое "проскилованый" поэтому ничего писать не буду. Доширак, то есть даты щит, нет, дошик? А, вспомнил: ДАТАШИТ в помощь. Мне хватило. Какой контроллер, я тоже писать не буду.
makakus вне форума  
Сказали "Спасибо" makakus
mike-y-k (12.12.2018)
Непрочитано 12.12.2018, 11:40  
makakus
Почётный гражданин KAZUS.RU
 
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,106
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: USI - есть проскилованные?

Сообщение от mike-y-k Посмотреть сообщение
для практической проверки тут самое место той arduino
А оно там написано как задумал ATMEL? Или всё тупо врукопашную софтом реализовано?
makakus вне форума  
 

Закладки

Метки
abdurino must die
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прикупил пирометр Fluke 62 MAX - есть вопросы sobyninsk Измерительное оборудование 16 29.11.2018 12:43
Анекдот, анекдот ... (часть 2 - 3) Chelovek-OM Отвлекитесь, эмбеддеры! 6906 20.08.2014 23:45
Интеллектуалы, есть задача по ТБ - помогите. Rishelie2 Автоматика и аппаратура связи 15 05.11.2008 20:29
Вы родом из 70-80х если: baskervil Отвлекитесь, эмбеддеры! 163 23.10.2008 22:26


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


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