-
Постов
2 224 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Весь контент Obam
-
STM32L151 и STM32F411 потребление
Obam ответил MiklPolikov тема в ARM
MSP432 пока в стадии PREVIEW, нет их живьём. -
:) Вот только без перехода на личности, пожалуйста Просто ради спортивного интереса: "power good (PG) (TPS774xx) The PG terminal is an open drain, active high output that indicates the status of Vout (output of the LDO). When Vout reaches 82% of the regulated voltage, PG will go to a high-impedance state. It will go to a low-impedance state when Vout falls below 82% (i.e. over load condition) of the regulated voltage. The open drain output of the PG terminal requires a pullup resistor. reset (RESET) (TPS773xx) The RESET terminal is an open drain, active low output that indicates the status of Vout. When Vout reaches 95% of the regulated voltage, RESET will go to a high-impedance state after a 220-ms delay. RESET will go to a low-impedance state when Vout is below 95% of the regulated voltage. The open-drain output of the RESET terminal requires a pullup resistor." есть некое различие…
-
"Коэффициенты не расчитывал. Заполнил поле структуры…" Во времена настали… "Астролябия сама меряет, было бы чего мерять " :)
-
От как обернулось :) Но назначение PG не для сброса "проца" (к примеру TPS773xx имеют ~RST, а TPS774xx - PG), а для индикации "кондиционности" питания.
-
Ну вы бы хоть расчёты, коэффициенты привели…
-
По моему, экспериментов - достаточно; настал момент ещё раз, но медленно и внимательно, прочитать RM0038 (понятно о чём я?) стр.741-767. Там есть чудесные диаграммы как ведут себя флаги в SPI_SR.
-
Не " наложились" а придвинулись; если датчика нет то просто наводка синхроимпульсов на вход.
-
Вам можно!!! Данные 8-разрядные, детский сад - штаны на лямках! Убирайте задержки.
-
http://electronix.ru/forum/index.php?showt...t&p=1347675 На приём почему 16бит?
-
Ни фига не правильную! А "сообщение" не двигать, а SPI 8-битный должен быть.
-
"Вот хоть убейте…" " SPI_InitStructure.SPI_DataSize=SPI_DataSize_16b; " Из солёного огурца пристрелить разве что… Да ё-ж-моё!!! 8-битный интерфейс!!! Читать после 0x8F в ваших 0x8F00 чем будете?
-
Это одна команда SPI2->DR = 0x8F? Вот что хотите делайте, но на диаграмме 16-битовый обмен: 0x008F. "Сейчас юзаю такой код, чисто отсылаю и не опрашиваю " Нельзя так делать: цикл шины датчика должен быть завершённым; впрочем так и есть - запись по адресу 0x00 числа 0x8F что запрещено. Изнасилованный HTS221 :crying:
-
Какой смысл вашего сообщения? Запись в датчик по адресу 0x00? При том что: Reserved - 0x00..0x0E - Do not modify.
-
Ну что? SPI2->CR1 |= SPI_CR1_CPOL; //исходное состояние SCK==1 SPI2->CR1 |= SPI_CR1_CPHA; //capture 0-->1 не судьба?
-
Данные у вас меняются по заднему фронту SCL, фиксируются по переднему фронту. Всё нормально.
-
"но у меня выставлен формат данных 8, и вроде он должен отправлять и принимать по 8 импульсов, но на самом деле как я понял по его работе, он первую половину воспринимает как отправляемое сообщение, а вторую часть как получаемое" Во-первых, кто он? Во-вторых, первый байт - адрес в датчике, а второй байт - данные (если запись в датчик) или ответ датчика (если чтение из него). "SPI2->DR = 0x8F" команда, дающая передачу первого байта; "SPI2->CR1 &= ~ SPI_CR1_BIDIOE" команда, дающая прием второго байта. Если бы надо было записать данные в датчик, то использовалась бы вторая команда "SPI2->DR = 0x**".
-
А что не так? 00101010b==0x2A старшим битом вперёд. Всё нормально.
-
Из описания (SLAU208M, Chapter 2, стр 99-101) не очень следует, что PMM должен вкдючать "…Backup Supply при выключении основного питания…". Или цитата подразумевает что-то иное? PS: отставить! стр 126 "The switch is controlled by the high-side SVS that supervises the primary supply, DVCC."
-
• 8- or 16-bit transfer frame format selection
-
SPI2->CR1 |= SPI_CR1_BIDIOE; //BIDIOE передача SPI2->DR = 0x8F; //Пишем в буфер передатчика SPI1. while(!(SPI2->SR & SPI_SR_TXE));// Ожидаем окончания передачи данных SPI2->CR1 |= SPI_CR1_BIDIOE; //BIDIOE передача for(uint32_t i=0; i<0x000FFFFF; i++); //Прием данных. SPI2->CR1 &= ~ SPI_CR1_BIDIOE; //BIDIOE прием while(!(SPI2->SR & SPI_SR_RXNE));//приняли данные bufPr1 = SPI2->DR;//Считываем данные из приемного буфера SPI1. При этой операции происходит очистка буфера и сброс флага RXNE SPI2->CR1 |= SPI_CR1_BIDIOE; //BIDIOE передача Ну откуда??? 8 синхроимпульсов от "SPI2->DR = 0x8F" и 8 синхроимпульсов от "SPI2->CR1 &= ~ SPI_CR1_BIDIOE"
-
Шутки шутками, но доку (DS на датчик и контроллер и RefMan на контроллер) - курить до просветления. Данные в датчик должны "вдуваться" старшим (MSB) битом вперёд: R\~Wбит это старший, AD5..AD0 - записаны от старшего к младшему => 10001111b. Зачем это преворачивать? "Так ведь чтобы что то передать это что то надо записать в DR, оттуда и считать что пришло, разве нет?" Так вы и писали в DR 0x8F при BIDIOE==1, а как этот байт был отправлен, то BIDIOE 1-->0 переключит SPI на приём и автоматически вычитает (R\~W==1 не забыли?) из датчика данные по только что переданному адресу, их вы увидите тоже в DR. И ещё: если не будет выполнено "This line is driven at the falling edge of SCL and should be captured at the rising edge of SCL." то не правильно будут тактироваться данные. CPOL, CPHA соответствуют требуемому?
-
А сообществу рассказать что да как…
-
Стоять!!!!! Назад!!!!! В DR 0xBC писать не надо. Это датчик во втором байте должен вернуть (т.е. процессор вычитать). Вот примерно так: По поводу плавного спада: надо разобраться с исходным уровнем и активным фронтом SCK.
-
DataRegister ;) "bufPr1 = SPI2->DR;//Считываем данные из приемного б…" 0xBC должен ответить датчик. Данные SPI-блоком в контроллере могут двигаться по переднему или по заднему фронту синхроимпульсов. Вот ответ датчика с правильным ID и будет признаком правильной настройки интерфейса. Наличие синхроимпульсов во время плавного спада данных не годится.