
Anastasia
06.02.2018
12:28:21
я доказала

Андрій
06.02.2018
12:28:40
ты жмахаешь Tools->Design Rule Check?
или полагаешься на интерактивный?
я ему уже давно не доверяю))

Google

Андрій
06.02.2018
12:30:34

John
06.02.2018
12:30:44

Roman
06.02.2018
12:30:48
@KamiNeko
I2C у меня свой, мало чем отличается от HAL
i2c_write

John
06.02.2018
12:31:27

Roman
06.02.2018
12:31:30
-указатель на данные
-количество байт
-адрес слейва
замени на свою от HAL

Anastasia
06.02.2018
12:31:43

Андрій
06.02.2018
12:31:54
а вот западло когда непрорисованный нет совпадает с сеткой)) было такое пару раз, чуть не пропустил. пожтому всегда в конце делают DRC вручную

k
06.02.2018
12:32:01

Anastasia
06.02.2018
12:32:56
вот это странно
он только на маску ругается, окаянный, а неты не видит, я даже специально еще поудаляла

John
06.02.2018
12:34:02

Google

John
06.02.2018
12:34:30
замени на свою от HAL
в моей либе с HAL есть вот такое
HAL_I2C_Master_Transmit_DMA(&hi2c1, address, data, count);

Anastasia
06.02.2018
12:34:32

John
06.02.2018
12:36:55
ладно. пока что мы остановимся на том, что у других всё работает, а у меня не работает, потому что я тупой, других объяснений пока нет, я так понимаю.
как удобно :)

Anastasia
06.02.2018
12:37:33
Крч, человечина с форума спасла пол дня моей жизни, http://www.altium.com/documentation/3.0/display/VAULT/Altium+Vault+-+Details+for+IT+Departments вольт не сдох, но хз почему перестал откликаться на локальный айпи, а если прописать localhost:9780 то все ок)

John
06.02.2018
12:38:06

Андрій
06.02.2018
12:38:50
вот такое выдает?

Anastasia
06.02.2018
12:39:53

Андрій
06.02.2018
12:40:48
кароч это из-за твоих хитрых полукруглых полигонов

Anastasia
06.02.2018
12:41:03
так в другой плате тоже такое есть

k
06.02.2018
12:41:58
область хала связанная с и2ц напоминает минное поле, многое освещено в эрратах

John
06.02.2018
12:44:56
фукнция ничего не отправляет по i2c

k
06.02.2018
12:45:20
?
ввернул свои пять копеек в твою лирику

Андрій
06.02.2018
12:45:45

John
06.02.2018
12:45:51
функция которая должна DMA жарить

Google

k
06.02.2018
12:45:59
тупость логанализатором не посмотришь, а вот шину с дма настроить мог бы

John
06.02.2018
12:46:31
ну вот обратно до компа доберусь, тогда можно будет мучать железки дальше


k
06.02.2018
12:46:42
I2cHandle.Instance = I2Cx;
I2cHandle.Init.Timing = I2Cx_TIMING; // 50 KHz;
I2cHandle.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
I2cHandle.Init.DualAddressMode = I2C_DUALADDRESS_DISABLED;
I2cHandle.Init.GeneralCallMode = I2C_GENERALCALL_DISABLED;
I2cHandle.Init.NoStretchMode = I2C_NOSTRETCH_ENABLED;
I2cHandle.Init.OwnAddress1 = I2Cx_SLAVE_ADDRESS;
I2cHandle.Init.OwnAddress2 = 0xFF;
I2cHandle.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
@endcode
*/
void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c)
{
GPIO_InitTypeDef GPIO_InitStruct;
static DMA_HandleTypeDef hdma_tx;
static DMA_HandleTypeDef hdma_rx;
// RCC_PeriphCLKInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2Cx;
// RCC_PeriphCLKInitStruct.I2c2ClockSelection = RCC_I2CxCLKSOURCE_SYSCLK;
// HAL_RCCEx_PeriphCLKConfig(&RCC_PeriphCLKInitStruct);
/*##-2- Enable peripherals and GPIO Clocks #################################*/
/* Enable GPIO TX/RX clock */
I2Cx_SCL_GPIO_CLK_ENABLE();
I2Cx_SDA_GPIO_CLK_ENABLE();
/* Enable I2Cx clock */
I2Cx_CLK_ENABLE();
/* Enable DMAx clock */
I2Cx_DMA_CLK_ENABLE();
/*##-3- Configure peripheral GPIO ##########################################*/
/* I2C TX GPIO pin configuration */
GPIO_InitStruct.Pin = I2Cx_SCL_PIN;
GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
GPIO_InitStruct.Pull = GPIO_NOPULL; //GPIO_PULLUP; //GPIO_NOPULL; //GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
GPIO_InitStruct.Alternate = I2Cx_SCL_SDA_AF;
HAL_GPIO_Init(I2Cx_SCL_GPIO_PORT, &GPIO_InitStruct);
/* I2C RX GPIO pin configuration */
GPIO_InitStruct.Pin = I2Cx_SDA_PIN;
GPIO_InitStruct.Alternate = I2Cx_SCL_SDA_AF;
HAL_GPIO_Init(I2Cx_SDA_GPIO_PORT, &GPIO_InitStruct);
/*##-4- Configure the DMA channels ##########################################*/
/* Configure the DMA handler for Transmission process */
hdma_tx.Instance = I2Cx_DMA_CHANNEL_TX;
hdma_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
hdma_tx.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_tx.Init.MemInc = DMA_MINC_ENABLE;
hdma_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
hdma_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
hdma_tx.Init.Mode = DMA_NORMAL;
hdma_tx.Init.Priority = DMA_PRIORITY_LOW;
HAL_DMA_Init(&hdma_tx);
/* Associate the initialized DMA handle to the the I2C handle */
__HAL_LINKDMA(hi2c, hdmatx, hdma_tx);
/* Configure the DMA handler for Transmission process */
hdma_rx.Instance = I2Cx_DMA_CHANNEL_RX;
hdma_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
hdma_rx.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_rx.Init.MemInc = DMA_MINC_ENABLE;
hdma_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
hdma_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
hdma_rx.Init.Mode = DMA_NORMAL;
hdma_rx.Init.Priority = DMA_PRIORITY_HIGH;
HAL_DMA_Init(&hdma_rx);
/* Associate the initialized DMA handle to the the I2C handle */
__HAL_LINKDMA(hi2c, hdmarx, hdma_rx);
/*##-5- Configure the NVIC for DMA #########################################*/
/* NVIC configuration for DMA transfer complete interrupt (I2Cx_TX) */
HAL_NVIC_SetPriority(I2Cx_DMA_TX_IRQn, I2C_LVL, I2C_PRI);
HAL_NVIC_EnableIRQ(I2Cx_DMA_TX_IRQn);
/* NVIC configuration for DMA transfer complete interrupt (I2Cx_RX) */
HAL_NVIC_SetPriority(I2Cx_DMA_RX_IRQn, I2C_LVL, I2C_PRI);
HAL_NVIC_EnableIRQ(I2Cx_DMA_RX_IRQn);
HAL_NVIC_SetPriority(I2Cx_ER_IRQn, I2C_LVL, I2C_PRI);
HAL_NVIC_EnableIRQ(I2Cx_ER_IRQn);
HAL_NVIC_SetPriority(I2Cx_EV_IRQn, I2C_LVL, I2C_PRI);
HAL_NVIC_EnableIRQ(I2Cx_EV_IRQn);
}
/
* @brief Деинициализация аппаратных ресурсов I2C
* @param *hi2c - указатель на структуру драйвера I2C
*/
void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c)
{
/*##-1- Reset peripherals ##################################################*/
I2Cx_FORCE_RESET();
I2Cx_RELEASE_RESET();
/*##-2- Disable peripherals and GPIO Clocks #################################*/
/* Configure I2C Tx as alternate function */
HAL_GPIO_DeInit(I2Cx_SCL_GPIO_PORT, I2Cx_SCL_PIN);
/* Configure I2C Rx as alternate function */
HAL_GPIO_DeInit(I2Cx_SDA_GPIO_PORT, I2Cx_SDA_PIN);
/*##-3- Disable the NVIC for I2C ##########################################*/
HAL_NVIC_DisableIRQ(I2Cx_ER_IRQn);
HAL_NVIC_DisableIRQ(I2Cx_EV_IRQn);
}
/
* @brief Инициализация интерфейса I2C
*/
void I2C_INIT( void )
{
I2cHandle.Instance = I2Cx;
I2cHandle.Init.Timing = I2Cx_TIMING; // 50000 KHz;
I2cHandle.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
I2cHandle.Init.DualAddressMode = I2C_DUALADDRESS_DISABLED;
I2cHandle.Init.GeneralCallMode = I2C_GENERALCALL_DISABLED;
I2cHandle.Init.NoStretchMode = I2C_NOSTRETCH_ENABLED;
I2cHandle.Init.OwnAddress1 = I2Cx_SLAVE_ADDRESS;
I2cHandle.Init.OwnAddress2 = 0xFF;
I2cHandle.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
HAL_I2C_Init(&I2cHandle);
//HAL_I2CEx_AnalogFilter_Config(&I2cHandle, I2C_ANALOGFILTER_ENABLED);
}
чот такое должно быть


John
06.02.2018
12:47:32
билят как многабукаф, со смарта неудобно >_<

k
06.02.2018
12:48:01
доберешься сверь

John
06.02.2018
12:49:46
кстати, ты это из откуда выковырял?

Anastasia
06.02.2018
12:54:00

Андрій
06.02.2018
12:54:48
@IAnotherRealityI сделай, плз, Tools->Polygon Pours->Restore 1 shelved polygon
и там жмахни leave as is

Anastasia
06.02.2018
13:01:48

Kirill
06.02.2018
13:02:51
Вообще там интересный глюк, в плане что после скрытия полигона остается он как бы нивидимый, но если полегон восстановить и опять скрыть то все уже нормально.

Anastasia
06.02.2018
13:03:18
ну облажалась
но баг то есть

k
06.02.2018
13:06:45

Андрій
06.02.2018
13:09:17

John
06.02.2018
13:11:57

Roman
06.02.2018
13:15:34
Снова вонючий HAL ?

Google

Roman
06.02.2018
13:16:29

Valentin
06.02.2018
13:17:12
Бльо, ну кто код скидывает сообщениями(

Anastasia
06.02.2018
13:24:44
инспектор говорит что не хватает 0.027мм)))
спасибо блин)
там две идентичные микросхемы с обеих сторон
но если присмотрееееться
там маленькая штучка
спасибо, блин, альтиум, заботливый ты наш
это не мой проект
не надо кидаться, я просто переделываю за одним умником
я няшка

Valentin
06.02.2018
13:46:58
https://www.youtube.com/watch?v=s-MKhffuPzM
#SDR

k
06.02.2018
13:52:29
и да, в зависимости от версии хала забыты те или иные иниты, это норма
в старом хале на f3 вон перманентно забыты клоки, ибо они кубиком генерились в файл настройки тактирования, а модули то подключаются обычно уже не кубиком.
итог - дописывание включения клоков в иниты
и всякая такая чепушня

John
06.02.2018
13:56:20
надо проверить, как у меня с инитами в том проекте с рабочим дма

Google

k
06.02.2018
13:56:20
кодеры хала честно пытались найти нечто общее что можно генерить массивом, но увы
проверь тактируется ли он, сцепился ли он с и2ц структурой, что делает дма трансмит внутри потрохов и что возвращает
обычный дебаг
90% кодинга это дебаг либ

John
06.02.2018
13:58:31
ыыы

k
06.02.2018
13:58:40
потому что всё написано до нас. тока криво
ещё 10% кодинга это осмысление того совпадает ли задача для которой создана либа с твоей, ага
вызовы функций хала я за кодинг не считаю

Roman
06.02.2018
13:59:53
По-моему половина кодинга - это размышление

k
06.02.2018
13:59:53
а алгоритмы поумнее обычно не в мк а в компе уже
аналитическое тупление

Roman
06.02.2018
14:00:55
Ну нанизать поверх программный код поверх хорошо продуманного алгоритма - дело техники

k
06.02.2018
14:01:23
да, и я именно это дело техники ща по времени разделил
на подбор либ и их дебаг

Roman
06.02.2018
14:01:53
Тоже верно

k
06.02.2018
14:03:16
в биокаде вон судя по слухам питонопрограммисты так сильны что кодеры мк просто кидают им сырые снятые данные и принимают назад команды на выводы. мк - тонкие клиенты для питона на компах