Фоторамка-метеостанция на stm32f103ve + SSD1963 4.3" 480x272
- Реклама
- Сообщения: 26
- Зарегистрирован: Чт янв 30, 2020 11:46:55
прежде всего хотела поздравить авторов GFX и radioandrei74 за столь интересную конструкцию
вопросы по проекту,
1. где вы расположили датчики bmp280 и DS18b20? абсурдно предполагать что внутри метеостанции! ведь на то и метеостанция чтобы отражать значения температуры и влажности не помещения а уличные значения !
Если все-таки датчики выведены на улицу поделитесь опытом исполнения
2. возможно добавить функционал метеостанции и в место картинок выводить изображение с камеры? например такой https://aliexpress.ru/item/32969609187. ... 41-_ePNSNV
вопросы по проекту,
1. где вы расположили датчики bmp280 и DS18b20? абсурдно предполагать что внутри метеостанции! ведь на то и метеостанция чтобы отражать значения температуры и влажности не помещения а уличные значения !
Если все-таки датчики выведены на улицу поделитесь опытом исполнения
2. возможно добавить функционал метеостанции и в место картинок выводить изображение с камеры? например такой https://aliexpress.ru/item/32969609187. ... 41-_ePNSNV
1. может для вас и важна влажность на улице, но у меня есть квартира там и живу, зачем мне влажность на улице? DS18b20 нужно вывести см на 10-15, чтобы измерял именно в комнате. bmp280 внутри. на улице можно что-то измерять при желании, но это геморно- северная сторона здания, правильное устройство, беспроводная надежная экономная передача данных... была идея где-то взять готовые данные по улице (например, с яндекса), но пока забил, уличные значения итак телефон показывает.
2. ну в целом конечно можно, только это не добавить функционал, а сделать заново печатку и прошивку, пока не интересно. цеплять ее на проводах? или беспроводную камеру? все это требовательно к производительности и примененный МК не потянет этого, у него оперативной памяти гулькин нос для работы с jpeg и ничего аппаратного нет.
2. ну в целом конечно можно, только это не добавить функционал, а сделать заново печатку и прошивку, пока не интересно. цеплять ее на проводах? или беспроводную камеру? все это требовательно к производительности и примененный МК не потянет этого, у него оперативной памяти гулькин нос для работы с jpeg и ничего аппаратного нет.
- Сообщения: 194
- Зарегистрирован: Чт авг 30, 2012 16:25:53
по мне так и необходимо измерять температуру на улице и в квартире,
у меня датчики bmp280 и DS18b20 установлены на улице, смонтированы в отдельном корпусе. метеостанция и датчики соединены между собой витой парой, длина витой пары 1,5 метра, для надежности плату с датчиком bmp280 аккуратно обмазал лаком по дереву. Из за длины кабеля пришлось непосредственно на выводы DS18b20 запаять еще один выводной резистор подтяжки номиналом 10 ком, все выводы датчика одел в термо-усадку и также обмазал лаком.
из функционала я бы добавил еще один датчик DS18b20 для измерения температуры в квартире
у меня датчики bmp280 и DS18b20 установлены на улице, смонтированы в отдельном корпусе. метеостанция и датчики соединены между собой витой парой, длина витой пары 1,5 метра, для надежности плату с датчиком bmp280 аккуратно обмазал лаком по дереву. Из за длины кабеля пришлось непосредственно на выводы DS18b20 запаять еще один выводной резистор подтяжки номиналом 10 ком, все выводы датчика одел в термо-усадку и также обмазал лаком.
из функционала я бы добавил еще один датчик DS18b20 для измерения температуры в квартире
- Сообщения: 26
- Зарегистрирован: Чт янв 30, 2020 11:46:55
так в чем проблема? на один пин можно подключить как только Один, если нужно то два, так и несколько датчиков DS18B20.
- Реклама
Вопрос к автору, кусок кода где инициализация дисплея можно?
- Сообщения: 26
- Зарегистрирован: Чт янв 30, 2020 11:46:55
можно, смотрите статью Индикатор - шилд с TFT 4.3 на stm32f103vet6 https://www.radiokot.ru/artfiles/6511/
veranika, там нигде не расписана инициализация (мне нужен код), исходников нет, только прошивка.
Alex_Megavolt_79,
Спойлер
Код: Выделить всё
LCD_FSMC_Config_low_speed();
// uint16_t HDP=799;
// uint16_t VDP=479;
uint16_t HDP=480-1;
uint16_t VDP=272-1;
WriteComm(0x00E2); //PLL multiplier, set PLL clock to 120M
WriteData(0x0023); //N=0x36 for 6.5M, 0x23 for 10M crystal
WriteData(0x0002);
WriteData(0x0054);
WriteComm(0x00E0); // PLL enable
WriteData(0x0001);
delay_ms(10);
WriteComm(0x00E0);
WriteData(0x0003); // now, use PLL output as system clock
delay_ms(10);
WriteComm(0x0001); // software reset
delay_ms(20);
WriteComm(0x00E6); //PLL setting for PCLK, depends on resolution
//Set LSHIFT freq, i.e. the DCLK with PLL freq 120MHz set previously
//Typical DCLK for TY700TFT800480 is 33.3MHz(datasheet), experiment shows 30MHz gives a stable result
//30MHz = 120MHz*(LCDC_FPR+1)/2^20
//LCDC_FPR = 262143 (0x3FFFF)
//Time per line = (DISP_HOR_RESOLUTION+DISP_HOR_PULSE_WIDTH+DISP_HOR_BACK_PORCH+DISP_HOR_FRONT_PORCH)/30 us = 1056/30 = 35.2us
// WriteData(0x03);
// WriteData(0xff);
// WriteData(0xff);
WriteData(0x0003);
WriteData(0x0033);
WriteData(0x0033);
//Set LSHIFT freq, i.e. the DCLK with PLL freq 120MHz set previously
//Typical DCLK for TY430TFT480272 is 9MHz
//9MHz = 120MHz*(LCDC_FPR+1)/2^20
//LCDC_FPR = 78642 (0x13332)
// WriteData(0x01);
// WriteData(0x33);
// WriteData(0x32);
WriteComm(0x00B0); //LCD SPECIFICATION
WriteData(0x0008); //18 bit TFT panel
WriteData(0x0000); //Hsync+Vsync +DE mode TFT mode
WriteData((HDP>>8)); //Set HDP
WriteData(HDP);
WriteData(VDP>>8); //Set VDP
WriteData(VDP);
WriteData(0x0000);
WriteComm(0x00B4);//HSYNC
WriteData(0x04); //Set HT
WriteData(0x1f);
WriteData(0x00); //Set HPS
WriteData(0xd2);
WriteData(0x00); //Set HPW
WriteData(0x00); //Set HPS
WriteData(0x00);
WriteData(0x00);
WriteComm(0x00B6); //VSYNC
WriteData(0x02); //Set VT
WriteData(0x0c);
WriteData(0x00); //Set VPS
WriteData(0x22);
WriteData(0x00); //Set VPW
WriteData(0x00); //Set FPS
WriteData(0x00);
WriteComm(0x00B8);
WriteData(0x000f); //GPIO is controlled by host GPIO[3:0]=output GPIO[0]=1 LCD ON GPIO[0]=1 LCD OFF
WriteData(0x0001); //GPIO0 normal
WriteComm(0x00BA);
WriteData(0x0001); //GPIO[0] out 1 --- LCD display on/off control PIN
WriteComm(0x0036); //rotation
WriteData(0x00C0);//RGB=BGR
WriteComm(0x003A); //Set the current pixel format for RGB image data
WriteData(0x0060);//18-bit/pixel
WriteComm(0x00F0); //Pixel Data Interface Format
WriteData(0x0003);//16-bit(565 format) data
WriteComm(0x00BC);
WriteData(0x0040);//contrast value
WriteData(0x0080);//brightness value
WriteData(0x0040);//saturation value
WriteData(0x0001);//Post Processor Enable
delay_ms(5);
WriteComm(0x0029); //display on
WriteComm(0x00BE); //set PWM for B/L
WriteData(0x0006);
WriteData(0x0080);
WriteData(0x0001);
WriteData(0x00f0);
WriteData(0x0000);
WriteData(0x0000);
WriteComm(0x00d0);
WriteData(0x000d);
LCD_FSMC_Config();GFX, благодарю, но не помогло, у меня экран всё равно не корректно инициализируется.
Alex_Megavolt_79, частота кварца и разрешение совпадает? Если разрешение другое-то и инициализация другая. плюс может непропай где?
GFX, на ардуине всё нормально, специально на алике купил плату переходник, под этот дисплей. Две недели уже бьюсь. То цвета не те, тут даже не в простом перемене RGB-BGR и их вариации, то инициализация неустойчивая, при этом красный очень тёмно красный. Либо устойчивая, красного вообще нет. Все комбинации перепробовал с передачей пикселей, понял одно, что неправильно инициализация тактирования и настройки синхронизации. В Вашей инициализации, фон жёлтый как и должен быть, а буквы вместо красного - жёлтые ближе к песочному. А у Вас на сколько кварц стоит? У меня три экрана 4,3" с разрешением 480х272 , 5" 800х480 и с 7" 800х480 . С 7" проблем нет, а с первыми двумя не получается. И из примеров ардуины брал именно тем с разрешением, что под один и что другой экран.
Alex_Megavolt_79, кварц на 10 Мгц стоит, разрешение 480х272.
GFX, ну да и у меня так же. Буду дальше ковырять.
Alex_Megavolt_79, а скорость FMS меняли? при инициализации ее нужно ставить на очень медленную.
GFX, у меня сейчас вот так
задержки по максимуму. Единственное контроллер f407 и частота 168 МГц
P.S.
Аааааааа!!!!!
Нашёл!!! А дело не в бобине!!! На некоторых вариантах инициализации, экран всё таки отображал цвета почти правильно, но тускло и под разным углом обзора по разному цветовые тона отображались(вплоть до того, что жёлтый становился белым, но красный как красны, а вот когда под другим углом жёлтый жёлтый, красный на почти чёрный). Я внимательно сравнил и увидел, что этих вариантах не зедействуется регистр set_post_proc 0xBC, в котором выставляются настройки яркости контрастности и насыщенности. Те параметры которые использовались в Вашей инициализации и в некоторых других, мне почему-то не подходят. Почему, я пока объяснить не могу. Но сейчас уже очень близко по цветовым тонам, что должно отображаться и под разным углом (нужно ещё чуток подобрать, просто бегло, попробовал)
Спойлер
Код: Выделить всё
// Настройка FSMC
FSMC_NORSRAMTimingInitStructure.FSMC_AddressSetupTime = 0x0f;
FSMC_NORSRAMTimingInitStructure.FSMC_AddressHoldTime = 0x01;
FSMC_NORSRAMTimingInitStructure.FSMC_DataSetupTime = 0x0f;
FSMC_NORSRAMTimingInitStructure.FSMC_BusTurnAroundDuration = 0x00;
FSMC_NORSRAMTimingInitStructure.FSMC_CLKDivision = 0x0f;
FSMC_NORSRAMTimingInitStructure.FSMC_DataLatency = 0x00;
FSMC_NORSRAMTimingInitStructure.FSMC_AccessMode = FSMC_AccessMode_A;P.S.
Аааааааа!!!!!
Нашёл!!! А дело не в бобине!!! На некоторых вариантах инициализации, экран всё таки отображал цвета почти правильно, но тускло и под разным углом обзора по разному цветовые тона отображались(вплоть до того, что жёлтый становился белым, но красный как красны, а вот когда под другим углом жёлтый жёлтый, красный на почти чёрный). Я внимательно сравнил и увидел, что этих вариантах не зедействуется регистр set_post_proc 0xBC, в котором выставляются настройки яркости контрастности и насыщенности. Те параметры которые использовались в Вашей инициализации и в некоторых других, мне почему-то не подходят. Почему, я пока объяснить не могу. Но сейчас уже очень близко по цветовым тонам, что должно отображаться и под разным углом (нужно ещё чуток подобрать, просто бегло, попробовал)


