|
Виж темите без отговор | Виж активните теми
Дата и час: Пет Авг 21, 2026 10:45 am
|
Страница 1 от 1
|
[ 10 мнения ] |
|
Търсим си програмист за контролери
| Автор |
Съобщение |
|
Pif
Ранг: Форумен бог
Регистриран на: Чет Сеп 26, 2013 2:24 pm Мнения: 1785
|
 Търсим си програмист за контролери
Търсим си човек дето да пише на С за микроконтролери и поразбирва от регистри и малко асемблер. За вътрешни цели понякога ни трябват специфични инструменти които лесно стават с микроконтролер. Като цяло ще са прибори за подпомагане на развоя и за тестване на някакви устройства в производството. Примерно мери напрежения, пуска някакви неща с някакъв сикуенс и т.н. Като пример днес ни трябваше да анализираме I2C комуникация и това да го разнасяме насам натам. Решихме си проблема с логически анализатор, лаптоп и разни скриптове но като цяло ако е малко изделие с дисплейче което да показва тези 3 параметъра които ни трябват ще ни облекчи доста работата. Друго нещо което ни трябва е честотомер/периодомер дето мери тайминги между хоризонтална и вертикална синхронизация както и брой редове и кадри в секунда. Като цяло работа за контролер. Трябва да направим и емулатор на един сензор - на паралелна шина ще изкарване разни данни.
Човека трябва да знае от коя страна се гледа осцилоскопа и да може да мисли.
Работата не е натоварена, така че ако някой иска може и на половин щат. Като начало може да идва в офиса през ден а като влязат нещата в релси може и по-рядко. Ако иска и всеки ден. Имаме си безплатен топъл обяд.
Сложното на позицията е, че понякога ще се налага да се изцежда периферията на микроконтролера до дупка. Да се подкара всичко през ДМА и да се смятат циклите на процесора за да се гарантират тайминги. Но тези неща ще са рядко. Микроконтролери - кой с каквото е свикнал. Аз лично предпочитам СТ. Имат хубава периферия и ги знам. Но ако човека е свикнал с друго - ще ползваме него. Ограничения нямаме. Стига да може да се купи.
|
| Сря Сеп 27, 2023 8:34 pm |
|
 |
|
HCL
Ранг: Форумен бог
Регистриран на: Вто Дек 14, 2004 1:31 pm Мнения: 3850
|
 Re: Търсим си програмист за контролери
Само като идея, тези задачи са подходящи и за някои ФПГА дизайнер.
|
| Сря Сеп 27, 2023 10:04 pm |
|
 |
|
Pif
Ранг: Форумен бог
Регистриран на: Чет Сеп 26, 2013 2:24 pm Мнения: 1785
|
 Re: Търсим си програмист за контролери
Има 2-3 неща дето лесно могат да се направят с ФПГА. Останалите 99% са по лесни на микроконтролер. Ако трябва на ФПГА да правим декодер на и2ц който динамично да променя разни неща и да пише по дисплей или да мерим някакви напрежения и да правим някакъв сикуенс на захранванията и да променяме товарите ... много ще се замотаме. Трябва си ни контролерджия дето успешно да се оправя с периферията на контролерите.
|
| Сря Сеп 27, 2023 10:09 pm |
|
 |
|
HCL
Ранг: Форумен бог
Регистриран на: Вто Дек 14, 2004 1:31 pm Мнения: 3850
|
 Re: Търсим си програмист за контролери
Периферията по контролерите, че и самите ядра я има и по ФПГА-тата, ако не като твърдо ядро, то като меко. Ако не от производителя то от opencores. Като цяло един добър дизайнер за месец може да репликира всеки един контролер на пазара. Работата стана малко като редене на лего блокчета. А ако разбира и от архитектура ще го направи така, че да с скалируемо за години напред. Но добри дизайнери се намират по-трудно от добри фирмуеристи, спор няма. За опитни архитекти да не говорим. Извинявам се ако, приемаш писането ми за спам.
|
| Сря Сеп 27, 2023 10:57 pm |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
 Re: Търсим си програмист за контролери
|
| Нед Окт 01, 2023 10:00 pm |
|
 |
|
Pif
Ранг: Форумен бог
Регистриран на: Чет Сеп 26, 2013 2:24 pm Мнения: 1785
|
 Re: Търсим си програмист за контролери
Не можем да си те позволим финансово. А и времената са малко по-кратки от твоя стандарт. По принцип става дума за човек за постоянно а не на проектен принцип. Трябва да е при нас. Няма как отдалечено. За някои задачи се налага 1 седмица четене и 5 минути писане на код. Няма готово задание и инструкция как да се свърши работата. Трябва си мислене. Работата е творческа. ТНТМ само че на малко по-високо ниво.
|
| Нед Окт 01, 2023 10:15 pm |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
 Re: Търсим си програмист за контролери
За финанси не е ставало въпрос все още. Писах, че мога да поема нещата така, както са дефинирани.
|
| Нед Окт 01, 2023 10:21 pm |
|
 |
|
VPavlov
Ранг: Популярен
Регистриран на: Съб Апр 01, 2023 9:59 am Мнения: 308
|
 Re: Търсим си програмист за контролери
Здрасти. Мераклия съм. Меракът ми е повече от опита но съотношението е такова че да знам че не всичко което лети се яде. Имам малък опит с писане на драйвери с CMSIS, на нуклео бордове. Изкарах няколко курса на Израел Габти от Удеми, които включват I2C, UART\USART, SPI DMA, таймери и други. Сериозен съм в намерението си да се преквалифицирам и се записах да уча "Автоматика" задочно. Имам няколко завършни проекта, акселерометър и система за записване на цвят и други данни в интернет база данни, правени в Ардуино IDE. До тук със самохваленето. Реално не успявам да подкарам мои си проекти на ST много добре. Последно се опитвах да свържа техен акселометър с Нуклео борда и имах успехи с изпращането и четенето на регистри по I2C, в един момент обаче сензорът спря да проема и предава всякаква информация и позарязах нещата докато му взема подходящо разширение за Нуклео платката, тъй като си мисля че може би е от не добър контакт. Чета за и се интересувам от автоматични системи за управление, Калман филтър, ултразвук, фазирани решетки, математика и др. За съжаление все още не съм стигнал до момент в който да реализирам нещо от горните неща с ST продукти. Живея в Бургас, мога да пътувам на всякъде в България и мога да остана за продължителни периоди от време. Имам семейство и не бих могъл да се преместя в друг град. В случай че се интересувате от скромната ми кандидатура, изпратете един майл, където да пратя CV. Благодаря и поздрави!
|
| Пон Окт 02, 2023 10:54 am |
|
 |
|
s.ivanov
Ранг: Новодошъл
Регистриран на: Съб Юни 03, 2017 1:21 pm Мнения: 163
|
 Re: Търсим си програмист за контролери
ST имат проблем с I2C. При дебъг с ST-Link правя Reset след първоначалното зараждане и ползвам следния код (STM32F446): https://community.st.com/t5/stm32cubemx-mcus/stm32f103c6t6-i2c-busy/td-p/219673https://electronics.stackexchange.com/questions/267972/i2c-busy-flag-strange-behaviourhttps://electronics.stackexchange.com/questions/272427/stm32-busy-flag-is-set-after-i2c-initialization |  |  |  | Код: typedef struct { uint8_t address;
uint16_t sdaPin, sclPin; I2C_HandleTypeDef* instance; GPIO_TypeDef *sdaPort, *sclPort; } I2C_Module_t;
static void I2C_ClearBusyFlagErrata( I2C_Module_t* i2c, uint32_t timeout ) { GPIO_InitTypeDef GPIO_InitStructure; I2C_HandleTypeDef* handler = NULL; handler = i2c->instance; // 1. Clear PE bit. CLEAR_BIT(handler->Instance->CR1, I2C_CR1_PE); // 2. Configure the SCL and SDA I/Os as General Purpose Output Open-Drain, High level (Write 1 to GPIOx_ODR). HAL_I2C_DeInit(handler); GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_OD; GPIO_InitStructure.Pull = GPIO_NOPULL; GPIO_InitStructure.Pin = i2c->sclPin; HAL_GPIO_Init(i2c->sclPort, &GPIO_InitStructure); GPIO_InitStructure.Pin = i2c->sdaPin; HAL_GPIO_Init(i2c->sdaPort, &GPIO_InitStructure); // 3. Check SCL and SDA High level in GPIOx_IDR. HAL_GPIO_WritePin(i2c->sdaPort, i2c->sdaPin, GPIO_PIN_SET); HAL_GPIO_WritePin(i2c->sclPort, i2c->sclPin, GPIO_PIN_SET); wait_for_gpio_state_timeout(i2c->sclPort, i2c->sclPin, GPIO_PIN_SET, timeout); wait_for_gpio_state_timeout(i2c->sdaPort, i2c->sdaPin, GPIO_PIN_SET, timeout); // 4. Configure the SDA I/O as General Purpose Output Open-Drain, Low level (Write 0 to GPIOx_ODR). HAL_GPIO_WritePin(i2c->sdaPort, i2c->sdaPin, GPIO_PIN_RESET); // 5. Check SDA Low level in GPIOx_IDR. wait_for_gpio_state_timeout(i2c->sdaPort, i2c->sdaPin, GPIO_PIN_RESET, timeout); // 6. Configure the SCL I/O as General Purpose Output Open-Drain, Low level (Write 0 to GPIOx_ODR). HAL_GPIO_WritePin(i2c->sclPort, i2c->sclPin, GPIO_PIN_RESET); // 7. Check SCL Low level in GPIOx_IDR. wait_for_gpio_state_timeout(i2c->sclPort, i2c->sclPin, GPIO_PIN_RESET, timeout); // 8. Configure the SCL I/O as General Purpose Output Open-Drain, High level (Write 1 to GPIOx_ODR). HAL_GPIO_WritePin(i2c->sclPort, i2c->sclPin, GPIO_PIN_SET); // 9. Check SCL High level in GPIOx_IDR. wait_for_gpio_state_timeout(i2c->sclPort, i2c->sclPin, GPIO_PIN_SET, timeout); // 10. Configure the SDA I/O as General Purpose Output Open-Drain , High level (Write 1 to GPIOx_ODR). HAL_GPIO_WritePin(i2c->sdaPort, i2c->sdaPin, GPIO_PIN_SET); // 11. Check SDA High level in GPIOx_IDR. wait_for_gpio_state_timeout(i2c->sdaPort, i2c->sdaPin, GPIO_PIN_SET, timeout); // 12. Configure the SCL and SDA I/Os as Alternate function Open-Drain. GPIO_InitStructure.Mode = GPIO_MODE_AF_OD; GPIO_InitStructure.Alternate = GPIO_AF4_I2C2; GPIO_InitStructure.Pin = i2c->sclPin; HAL_GPIO_Init(i2c->sclPort, &GPIO_InitStructure); GPIO_InitStructure.Pin = i2c->sdaPin; HAL_GPIO_Init(i2c->sdaPort, &GPIO_InitStructure); // 13. Set SWRST bit in I2Cx_CR1 register. SET_BIT(handler->Instance->CR1, I2C_CR1_SWRST); asm("nop"); /* 14. Clear SWRST bit in I2Cx_CR1 register. */ CLEAR_BIT(handler->Instance->CR1, I2C_CR1_SWRST); asm("nop"); /* 15. Enable the I2C peripheral by setting the PE bit in I2Cx_CR1 register */ SET_BIT(handler->Instance->CR1, I2C_CR1_PE); asm("nop"); // Call initialization function. HAL_I2C_Init(handler); }
static uint8_t wait_for_gpio_state_timeout(GPIO_TypeDef *port, uint16_t pin, GPIO_PinState state, uint32_t timeout) { uint32_t Tickstart = HAL_GetTick(); uint8_t ret = 1; /* Wait until flag is set */ for(;(state != HAL_GPIO_ReadPin(port, pin)) && (1 == ret);) { /* Check for the timeout */ if (timeout != HAL_MAX_DELAY) { if ((timeout == 0U) || ((HAL_GetTick() - Tickstart) > timeout)) { ret = 0; } } asm("nop"); } return ret; } ... if( HAL_OK == HAL_I2C_Mem_Write( i2c->instance, i2c->address, address, I2C_MEMADD_SIZE_16BIT, data, len, timeout ) ) { return 0; } else { I2C_ClearBusyFlagErrata( i2c, 1000 ); } ...
|  |  |  |  |
|
| Пон Окт 02, 2023 10:10 pm |
|
 |
|
VPavlov
Ранг: Популярен
Регистриран на: Съб Апр 01, 2023 9:59 am Мнения: 308
|
 Re: Търсим си програмист за контролери
Благодаря S.Ivanov ще прегледам!
|
| Вто Окт 03, 2023 12:10 am |
|
|
|
Страница 1 от 1
|
[ 10 мнения ] |
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 21 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|