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

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

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

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

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

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

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

 
Опции темы

USI - есть проскилованные?

Непрочитано 09.12.2018, 02:44  
parovoZZ
Почётный гражданин KAZUS.RUN
 
Регистрация: 15.11.2010
Сообщений: 2,376
Сказал спасибо: 337
Сказали Спасибо 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.RUN
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,457
Сказал спасибо: 3,225
Сказали Спасибо 3,511 раз(а) в 2,392 сообщении(ях)
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
Адрес: Москва СЗАО/МО
Сообщений: 12,276
Сказал спасибо: 11,858
Сказали Спасибо 4,158 раз(а) в 3,176 сообщении(ях)
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.RUN
 
Регистрация: 15.11.2010
Сообщений: 2,376
Сказал спасибо: 337
Сказали Спасибо 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.RUN
 
Регистрация: 15.11.2010
Сообщений: 2,376
Сказал спасибо: 337
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
parovoZZ на пути к лучшему
По умолчанию Re: USI - есть проскилованные?

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


Блин, такое ощущение, что все сидят в абдуринах-онлайнах, хоть и не признают этого.))))
parovoZZ вне форума  
Непрочитано 12.12.2018, 00:28  
ForcePoint
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,457
Сказал спасибо: 3,225
Сказали Спасибо 3,511 раз(а) в 2,392 сообщении(ях)
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
Адрес: Москва СЗАО/МО
Сообщений: 12,276
Сказал спасибо: 11,858
Сказали Спасибо 4,158 раз(а) в 3,176 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: USI - есть проскилованные?

parovoZZ, для практической проверки тут самое место той arduino в паре с логическим анализатором.
Ещё много интересного в примерах, библиотеках и на форуме производителя. Там как минимум полнее изучили всю совокупность DS, AN и errata…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 12.12.2018, 11:26  
parovoZZ
Почётный гражданин KAZUS.RUN
 
Регистрация: 15.11.2010
Сообщений: 2,376
Сказал спасибо: 337
Сказали Спасибо 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.RUN
 
Регистрация: 08.10.2007
Сообщений: 2,758
Сказал спасибо: 1,100
Сказали Спасибо 1,033 раз(а) в 568 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: USI - есть проскилованные?

Разбирался когда-то с USI - да, сильно там накручено. Ассемблер.
Но я не понимаю что такое "проскилованый" поэтому ничего писать не буду. Доширак, то есть даты щит, нет, дошик? А, вспомнил: ДАТАШИТ в помощь. Мне хватило. Какой контроллер, я тоже писать не буду.
makakus вне форума  
Сказали "Спасибо" makakus
mike-y-k (12.12.2018)
Непрочитано 12.12.2018, 11:40  
makakus
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.10.2007
Сообщений: 2,758
Сказал спасибо: 1,100
Сказали Спасибо 1,033 раз(а) в 568 сообщении(ях)
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
Интеллектуалы, есть задача по ТБ - помогите. Rishelie2 Автоматика и аппаратура связи 15 05.11.2008 20:29
Вы родом из 70-80х если: baskervil Отвлекитесь, эмбеддеры! 163 23.10.2008 22:26


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.