?
 

worklog: STM32F746 I2C через DMA, чтение из устройства.

About Уничтожить всех уродов

Previous Entry worklog: STM32F746 I2C через DMA, чтение из устройства. 4 ноя, 2017 @ 00:04 Next Entry
Таки наврал - чтение отличается от записи и разбить его так просто на две фазы (адрес, потом всё остальное) не позволяет сама железяка.
Хотя это, видимо, и не нужно.
Просто я не совсем ещё врубился в то, как именно отрабатываются ошибки - если настроить транзакцию и запустить её, но удалённое устройство не ответит или вернёт NACK, то как аппаратура это воспримет? пока не ясно.

Но уже понятно, что изначальная идея с разбиванием на две фазы, по-видимому, это излишнее усложнение.

Промежду тем, Microchip отличился и выпустил PIC32 со встроенной графикой и, что гораздо интереснее, со встроенной памятью SDRAM аж до 32 мегабайт.
Оставить комментарий
From:oopk
Date:Ноябрь, 3, 2017 22:38 (UTC)
(Link)
Я не в теме; а откуда берутся экранчики как на иллюстрации (для виртуальной приборной панели же; иначе зачем графика?; или я не понял и это только к обычным дисплейчикам?), сколько могут стоить?
[User Picture Icon]
From:kincajou
Date:Ноябрь, 3, 2017 23:00 (UTC)
(Link)
какие экранчики, не понял
From:oopk
Date:Ноябрь, 4, 2017 17:44 (UTC)
(Link)
PIC32MZ DA. Я так понял по картинке на сайте, что градусник справа — виртуальная панель (типа https://www.youtube.com/watch?v=_LaKArbY_pw ). Это я размечтался, или для такого они тоже годятся?

А про экранчики спросил непрямоугольные (как у градусника): распространены ли они?
[User Picture Icon]
From:kincajou
Date:Ноябрь, 4, 2017 19:30 (UTC)
(Link)
не знаю, может быть кастомный дизайн

а из неквадратных я видел только круглый дисплей и это выглядит тупо и убого, как по мне.
[User Picture Icon]
From:mbr
Date:Ноябрь, 4, 2017 05:54 (UTC)
(Link)
Скажем так, это нужно не всегда. Некоторые I2c-шные смарт-карты требуют первым байтом вычитать размер получаемых данных, далее идут сами данные. Если вовремя не ответить NACK, смарт-карта отвалится.
[User Picture Icon]
From:kincajou
Date:Ноябрь, 4, 2017 14:41 (UTC)
(Link)
значит, с ними можно работать только битбанг-I2C, потому что аппаратный устроен так, что все настройки (включая длину прдполагаемых данных) задаются в самом начале.

Или же хитрожопо обойти, играя с флагами AUTORELOAD и всё такое - вообще это рассчитано на применение, когда длина пакета данных превышает 255 байт, но я не вижу указаний на то, что это обязательно должно быть так. Можно указать NBYTES=1, считать 1 байт, модуль войдёт в SCL stretch, затем прописать уже новый NBYTES и дочитать пакет до конца.
[User Picture Icon]
From:mbr
Date:Ноябрь, 4, 2017 14:46 (UTC)
(Link)
Я делал на F0 без DMA. У F1 оно как-то совсем черезжопно устроено, но тоже, вроде, делали.
(Оставить комментарий)
Top of Page Разработано LiveJournal.com