Перейти к содержанию

    

alexf

Свой
  • Публикаций

    420
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о alexf

  • Звание
    Местный

Посетители профиля

2 243 просмотра профиля
  1. I2C ATTiny214

    Попробовал совсем простой код. // write addr to start write op TWI0.MADDR = slave_adr << 1; while((TWI0_MSTATUS & TWI_WIF_bm) == 0); // wait to write done TWI0.MDATA = 0; // addr 0 while((TWI0_MSTATUS & TWI_WIF_bm) == 0); // wait to write done TWI0.MCTRLB |= TWI_ACKACT_NACK_gc; //? TWI0.MADDR = slave_adr << 1 | 1; // addr to read while((TWI0_MSTATUS & TWI_RIF_bm) == 0); // wait for read done data = TWI0.MDATA; TWI0.MCTRLB |= TWI_ACKACT_NACK_gc; TWI0.MCTRLB |= TWI_MCMD_STOP_gc; // end TWI0.MSTATUS |= (TWI_RIF_bm | TWI_WIF_bm); TWI0.MCTRLA &= ~(TWI_RIEN_bm | TWI_WIEN_bm); Даже работает. Понятно что бесконечных циклов делать не следует, но вроде флаги WIF и RIF всегда устанавливаются. При одном клиенте на линии вроде бы ошибок ждать не приходится. А если совсем зависнет, Watchdog все равно перезапустит. Господа гуру: какие подводные камни ожидать?
  2. I2C ATTiny214

    Искал я чип для очень простой задачи и обнаружил новые ATTiny серий 0 и 1. Вроде ATTiny214 как раз мне подойдет. Там есть аппаратная поддержка I2C, но в даташите больше не публикуют примеров использования. А драйвер I2C на сайте весьма громозкий - поддерживает multiple masters, lost arbitration и т.д. что мне ни к чему. Один мастер, один слейв. Кто нибуть видел примеры очень простого драйвера I2C для этих чипов?
  3. захват с обнулением таймера?

    Цитата(scifi @ Apr 20 2018, 01:29) DMA - здравая идея. А вот "не надо было бы вычитать" - это напрасно. Неужели так трудно вычесть? К тому же эти обнуления могут привести к неочевидным побочным эффектам, там нужно хорошенько подумать. Вычитать не жалко, благо не в столбик Но делать это надо сразу, чтобы записывать в память только 8 бит. Если импульсы приходят очень часто, не хочется интерапт на каждый. В крайнем случае можно конечно писать по DMA в буффер, отдельно в цикле вычитать и писать в другой буффер, но если можно заставить железо все делать, почему бы и нет? Можно поподробнее какие грабли возможны с обнулением? Цитата(adnega @ Apr 19 2018, 20:10) Конечно можно. Читать RM в районе полей SMS и TS регистра SMCR. Да, я смотрел на slave mode, но не понял. можно ли и capture, и reset делать по одному и тому же фронту. Попробую, спасибо.
  4. захват с обнулением таймера?

    Вопрос к знатокам. Мне надо сохранять интервалы времени между приходящими импульсами. F407 CPU. Настроил таймер, интерапт по capture ch1, читаю count, вычитаю предыдущий. Все хорошо. Но хотелось бы еще лучше. Можно ли настроить таймер так, чтобы он при поступлении импульса сохранял счетчик (скажем по DMA) и автоматом обнулял? Тогда бы не надо было вычитать и не надо прерывания на каждый импульс.
  5. >>подавляющее большинство транзюков в SOt23 идёт 1-gate, 2-source, 3-drain. да я в курсе. Говорю же дурака свалял - не посмотрел в спешке. А какие есть где 3-gate? Даже если 1 source?
  6. такая дуратская история: поставил очередной "любой" MOSFET (BSS138) и не посмотрел что у библиотечного элемента не там ножки. Должно быть 1 - gate, 3 - drain а у меня они перепутаны. К сожалению уже сделано много плат и не хотелось бы переделывать. Теперь собственно вопрос: бывают ли транзисторы в корпусе SOT23, где gate на 3-й ноге, а drain на 1й?
  7. Цитата(Aner @ Jan 24 2017, 02:41) Вопрос: кто-то делал что то такое подобное? Есть ли "подводные камни", насколько большие? Что то подобное делал. Плата на STM32F401 и от микро USB заряжается батарея. DM, DP идут к PA11, PA12. Которые так же могут быть USART6 TX, RX. Так что даже комутатора не надо.
  8. TM32F091 - StopMode

    Цитата(toweroff @ Jan 24 2017, 08:32) По ТЗ мне хватит, но есть ощущение, что что-то я пропустил Stop mode - просыпается от любого внешнего прерывания (Any EXTI line configured in the EXTI registers) Standby - минимальное потребление. просыпается от фронта на пине WKUP а так же RTC alarm. И, кстати, можно просыпаться от ножек EXTI но НЕ входить в прерывание (event mode).
  9. Коммутация 3 ГГЦ

    PIN диодами, наверное.
  10. Цитата(novikovfb @ Jan 10 2017, 01:47) обеспечить устойчивость источника тока, нагруженного дросселем - та еще задача... A может просто резистор последовательно с источником тока? При мах. 10 мА упадет скажем 5 В на 500 ом...
  11. Вопрос по I2C

    Если я раз в секунду читаю пару датчиков за 1 мсек, много энергии не с'экономить. Тем более питание от USB. Но неожиданно оказалось что в HAL, который я не особо жаловал, есть именно то что надо: общая форма чтения/записи Н байт по адресу М. HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout) HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout) Даже можно задать размер адреса: иногда 1 байт, иногда 2.
  12. Вопрос по I2C

    Бывают ситуации когда CPU нечего делать пока идет обмен по I2C и можно без прерываний. У меня в текущем проекте на шине несколько устройств, в то числе разветвитель, которому надо всего один байт в единственный регистр. Все работает, но я довольно криво написал отдельные функции для обмена 1 и 2 байта с адресом и без. Есть где-нибуть пример универсальной функции с параметрами?
  13. SТ-LINK V2 и AC6 Workbench

    Цитата(uriy @ Nov 12 2016, 11:22) Но дебаг мне не удалось запустить на двух компах. На обоих win8 64 bit. ST-LINK два оригинальных и один китайский. С IAR и KEIL они отлично работают. Оригинальные запускаются прекрасно и на Win 7, Win 10, и на Линуксе. Out of the box, что называется. Раньше использовал стандартный Eclipse с плагином для STM32 и были проблемы с драйвером для ST-Link. Кокос работал, Atollic - тоже. А теперь и AC6 без проблем.
  14. SТ-LINK V2 и AC6 Workbench

    После экспериментов с разными IDE остановился на AC6 System Workbench. Все прекрасно работает и под Линуксом и под Win 10. Включая дебагер через настоящий SТ-LINK V2. Но мне захотелось отлаживать сразу два проца и я прикупил китайский свисток - клон SТ-LINK V2. Он опознается системой и работает для заливки под ST Visual Programmer, так что провода подключены правильно, но отказывается работать под System Workbench (Open OCD). Кто нибуть пробовал? Взял DISCO в качестве второго SТ-LINK, но хотелось бы понять что за фигня.
  15. Цитата(RusikOk @ Oct 10 2016, 14:27) ох только увидел. думал уже, что в этом разделе толковых советов не бывает. за ждущий режим спасибо. Еще один совет. Для таких целей очень полезен логический анализатор. Не обязательно профессиональный, сойдет и такой. И недорого. Тем более когда понадобится смотреть например на SPI или I2C сигналы. От древнего аналогового скопа толку не много. http://www.ebay.com/itm/Free-shipping-1-se...%3D291910492928