Обзор клона меги328 -LGT8F328P

at111
Offline
Зарегистрирован: 06.10.2017

Спасибо всем УВАЖАЕМЫМ ФОРУМЧАНАМ за восстановление фиолетовой LGT8F328P!!!

Записал прошивальщик на UNO и потом прошил скетч на плату. Блинк обычный. Как по видео Ув.Асиличенко о прошивке про мини версии.

Причем при записи нужно обязательно переподключать сам программатор (UNO) в комп. Иначе писать не хочет.

Кондер ставил, а вот сопротивление нет. Так прошилось.

После блинка попробовал прошить сам загрузчик.

ИДЕ ругнулось на адреса, но загрузчик прошило.

Ещё раз СПАСИБО всем за науку!!! А то уж думал выкидывать контроллер!

alexmk
Offline
Зарегистрирован: 27.05.2022

Я правильно понял, исходя из информации на предыдущей странице, что имея две lgt-шки(в форм-факторе нано, зелёные), одну можно превратить в программатор просто влив в неё LGTISP.hex от братца Яна, к примеру таким вот образом:

avrdude -p atmega328p -b 57600 -c arduino -P COM3 -U flash:w:LGTISP.hex

А затем, соединив соответствующие пины, прошить уже вторую, изменив командную строку на:

avrdude -p atmega328p -b 57600(115200?) -c stk500v1 -P COM3 -U flash:w:my-firmware.hex

Или я слишком наивен и не всё так просто? Знающие и опытные, подскажите, пожалуйста.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

alexmk пишет:

Я правильно понял, исходя из информации на предыдущей странице, что имея две lgt-шки(в форм-факторе нано, зелёные), одну можно превратить в программатор просто влив в неё LGTISP.hex от братца Яна, к примеру таким вот образом:

avrdude -p atmega328p -b 57600 -c arduino -P COM3 -U flash:w:LGTISP.hex

А затем, соединив соответствующие пины, прошить уже вторую, изменив командную строку на:

avrdude -p atmega328p -b 57600(115200?) -c stk500v1 -P COM3 -U flash:w:my-firmware.hex

Или я слишком наивен и не всё так просто? Знающие и опытные, подскажите, пожалуйста.

да, но можно и UNO или nano, только хэкс будет другой, это не отменяет установки поддержки этих плат, далее выбирать придётся нужную вам плату

demoss
Offline
Зарегистрирован: 03.12.2019

Подскажите пожалуйста, а как в коде вызвать ресет программы?

Хочу отработать в коде по прерыванию, кладу контроллер в сон, но он из него по прерыванию с ноги d2 начинает вроде просыпаться и зависает на WK

 switch (Pstate) {
    case 1:
      Pstate = 0;
      Serial.println("timer"); //спать
      delay(100);
      digitalWrite(PUpin, LOW);
      radio.powerDown();
      pinMode(PUpin, INPUT);
      digitalWrite(A3, LOW);
      delay(150);
      digitalWrite(A3, HIGH);
      delay(500);
      digitalWrite(A3, LOW);
      delay(150);
      digitalWrite(A3, HIGH);
      delay(1000);
      attachInterrupt(0, wkp, HIGH);
      PMU.sleep(PM_POFFS1, SLEEP_FOREVER);
      break;
  }
void wkp() {    //проснись
 // Serial.print("WKPstart");
//pinMode(PUpin, OUTPUT);
 // digitalWrite(PUpin, HIGH);
 // digitalWrite(A3, LOW);
 // delay(150);
//  digitalWrite(A3, HIGH);
  detachInterrupt(0);
}
demoss
Offline
Зарегистрирован: 03.12.2019

Сам спросил - сам отвечу)

  switch (Pstate) {
    case 1:
      Pstate = 0;
      Serial.println("timer"); //спать
      delay(100);
      LDOCR_reg = LDOCR;
      CLKPR_reg = CLKPR;
      MCUSR_reg = MCUSR;
      SREG_reg = SREG;
      digitalWrite(PUpin, LOW);
      radio.powerDown();
      pinMode(PUpin, INPUT);
      digitalWrite(A3, LOW);
      delay(150);
      digitalWrite(A3, HIGH);
      delay(500);
      digitalWrite(A3, LOW);
      delay(150);
      digitalWrite(A3, HIGH);
      delay(1000);
      attachInterrupt(0, wkp, HIGH);
      PMU.sleep(PM_POFFS1, SLEEP_FOREVER);
      break;
  }

void wkp() {    //проснись
  detachInterrupt(0);
  LDOCR = 0x80;
  LDOCR = LDOCR_reg;
  CLKPR = 0x80;
  CLKPR = CLKPR_reg;
  MCUSR = 0x80;
  MCUSR = MCUSR_reg;
  SREG = SREG_reg;
  Serial.print("WKPstart");
  pinMode(PUpin, OUTPUT);
  digitalWrite(PUpin, HIGH);
  digitalWrite(A3, LOW);
  delay(150);
  digitalWrite(A3, HIGH);
  radio.powerUp(); //начать работу
  radio.startListening();  //начинаем слушать эфир, мы приёмный модуль
}

 

MartynovElectric
Offline
Зарегистрирован: 08.06.2022

Прочитал эту ветку, но так и не смог настроить ШИМ на D2 (F2).  Сильно хочется высокотоковый выход.

Тему уже создал отдельно:   https://arduino.ru/forum/programmirovanie/lgt8f328p-nastroika-shim-na-pd2int0oc3b#comment-656948

Можно здесь ответить, можно там. Вот кусочек кода:

void SHIMWrite(byte val)
{
  DDRF |= (1<<PF2) | (1<<PF1);
  OCR3AH = 0x00;          // Важно, вначале необходимо загрузить верхний регистр!!!
  OCR3AL = val;          // затем нижний, Нельзя как для Atmega328 -  OCR3A = topValue;
  OCR3BH = 0x00;
  OCR3BL = val;
  TCCR3A |= (1 <<COM3A0) | (1 << COM3B0) | (1 << WGM31) | (1 << WGM30);     // ПИН D2
  TCCR3B = (1 << WGM33) | (1 << WGM32) | 5;   // Режим СТС WGM3[3:0]=4 или 12
}

SHIMWrite(100);

Меняет не скважность, а часту и то только на TX (что не нужно).

Ramses2
Offline
Зарегистрирован: 08.12.2020

demoss пишет:

dimax пишет:

DENNIS, Если выбрать как нано, то будет работать на 4 МГц, всё правильно. Ставь аддон https://github.com/dbuezas/lgt8fx

Подскажите, а сон случайно не изучали на этой плате и режимы его?

Пытался разобраться и столкнулся со следующим: (1) битовые маски режимов не совпадают, (2) из режима power save по прерыванию от clock2 не выходит ни в обычном режиме (как вроде должна выходит мега328) ни в асинхронном режиме  на частоте кварца 12 МГц.

Все попытки писать на чистом Си и следуя даташиту не привели к успеху. Засыпает намертво. Варианты использования модуля PMU не предлагать! Не подходит.

Если знаете как, перейдем в личку.

ЗЫ: Для себя, подписчиков и просто читателей темы причесываю перевод даташит на сабж с индексацией по заголовкам. Если не терпится, выложу обработанный примерно на 40% вариант. Остальное переведено, но находится некоей "каше" китайского с английским и плохо проиндексировано.

ЗЗЫ: На английском

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013
MartynovElectric, по поводу режима PWM в другой теме уже написали вам, выбирайте нужный режим, ставьте корректно WGM биты.
У вас в скетче 15-й режим, про него в datasheet прямо так и написано "Когда WGM3 равен 15: сигнал OC3A переключается во время сравнения, а OC3B выключается" Т.е. работает именно так, как вы его запрограммировали. Самые удобные режимы где TOP=ICR3, тогда регистром ICR задаёте частоту, регистрами OCR скважность. 
 
По поводу "Важно, вначале необходимо загрузить верхний регистр!!! Затем нижний, Нельзя как для Atmega328 -  OCR3A = topValue;"
ставьте корректно аддон Давида, там нет такой проблемы. Недавно ж про это же писали, сообщение #559
totalab
Offline
Зарегистрирован: 09.06.2022

Всем привет, столкнулся с проблемой в tone(pin, frequency, duration), при попытке проиграть мелодию, она сжовывается, ощущение что duration игнорируется, кто нибудь сталкивался?

tm-svc
Offline
Зарегистрирован: 27.04.2022

OK0 пишет:

Проверял  http://arduino.ru/forum/apparatnye-voprosy/obzor-klona-megi328-lgt8f328p?page=7#comment-591258

Плата... редкий случай, у родных пенатов  есть интереснее, но дороже 

Очки ... Это вторые...

 

 

Сделал самодельный переходник. Пришлось у отца очки напрокат взять, чтобы припаять этот чип... но вроде получилось. Буду проверять

tm-svc
Offline
Зарегистрирован: 27.04.2022

Хотел фото прилепить, но чёт не разобрался, как...

MartynovElectric
Offline
Зарегистрирован: 08.06.2022

dimax, Спасибо! теперь всё понятно )))

olegue
Offline
Зарегистрирован: 23.09.2020

может быть у кого -то получилось запустить библиотеку sdfat на этой плате?

vklimk
Offline
Зарегистрирован: 13.08.2022

Добрый день. Ищу помощи.

Мне необходимо записать eeprom программатором через SWD-интерфейс (я использую lgt8f328p без бутлодера).

Программатор я сделал из ардуинки lgt8f328p с помощью скетча LGTISP (https://github.com/SuperUserNameMan/LGTISP). И использую avrdude.

Тестовую программу я написал на C и скомпилировал avr-gcc. Программа успешно записывается в lgt8f328p через программатор и работает, как положено. А, вот, eeprom не хочет записываться - при верификации записанного пишет о несовпадении уже с первого байта.

Может быть, кто-то сталкивался? Или подскажет другой способ заливки eeprom без загрузчика?

vk@debian:~/lgt8f/tests$ avrdude -v -p m328p -c stk500v1 -P /dev/ttyUSB0 -U eeprom:w:_eep:r

avrdude: Version 6.3-20171130
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/etc/avrdude.conf"
         User configuration file is "/home/vk/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyUSB0
         Using Programmer              : stk500v1
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 3
         Firmware Version: 5.1
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as FF
avrdude: safemode: efuse reads as FF
avrdude: reading input file "_eep"
avrdude: writing eeprom (1 bytes):

Writing | ################################################## | 100% 0.43s

avrdude: 1 bytes of eeprom written
avrdude: verifying eeprom memory against _eep:
avrdude: load data eeprom data from input file _eep:
avrdude: input file _eep contains 1 bytes
avrdude: reading on-chip eeprom data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0xff != 0x20
avrdude: verification error; content mismatch

avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as FF
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK (E:FF, H:FF, L:FF)

avrdude done.  Thank you.

 

Neon_1
Offline
Зарегистрирован: 20.08.2022

подскажите как добавить в файл pins_arduino.h поддержку выводов 7 (PB6) и 8 (PB7) ?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Neon_1, они всегда поддерживались, ничего не надо добавлять. Если тактирование не от кварца - должно работать.

Neon_1
Offline
Зарегистрирован: 20.08.2022

dimax пишет:

Neon_1, они всегда поддерживались, ничего не надо добавлять. Если тактирование не от кварца - должно работать.

а какие цифры использовать? 27 и 28 не работают...хотя с блинком не проверял, у меня к этим пинам подключена max7219 и после прошивки они просто висят в воздухе

и может есть где-то чип со подписанными выводами , как у атмег? пока нашел только готовые платы

 

проверил 27 и 28 блинком - не работает

апдейт - 36 на LGT8F328 - PB7,  42 на LGT8F328 - PB6

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Neon_1, в описании ног аддона есть все дефайны..  https://github.com/dbuezas/lgt8fx/blob/master/lgt8f/variants/standard/pi...

Neon_1
Offline
Зарегистрирован: 20.08.2022

dimax пишет:

Neon_1, в описании ног аддона есть все дефайны..  https://github.com/dbuezas/lgt8fx/blob/master/lgt8f/variants/standard/pi...

 

спасибо, этот файл смотрел

PB6 и PB7 есть только в #if defined(__LGT8FX8P48__)

если правильно понимаю , то это только для LGT8FX8P48

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Neon_1, а вот оно чё. Ну тогда как вариант можно попробовать дописать нужные определения в те секции массивов имён портов и бит, что относятся к (__LGT8FX8P__)

После 343 строки вставить
PB, /* 28 */
PB, /* 29 */
После 397 строки вставить
_BV(6), /* 28, port B6 */
_BV(7), /* 29, port B7 */
 
Хотя формально арду-пины 28 и 29 заняты (строки 203..209), но подозреваю что одно другому мешать не будет.
 
Neon_1
Offline
Зарегистрирован: 20.08.2022

спасибо, попробую

блинк работает с 36 и 42, а вот max7219 пока не хочет, ставлю lgt8f328 вместо atmega328, дорожки уже разведены

Neon_1
Offline
Зарегистрирован: 20.08.2022

dimax пишет:

После 343 строки вставить
PB, /* 28 */
PB, /* 29 */
После 397 строки вставить
_BV(6), /* 28, port B6 */
_BV(7), /* 29, port B7 */

спасибо большое, заработало, сам бы не разобрался :)

vklimk
Offline
Зарегистрирован: 13.08.2022

Находил ли кто-то информацию о внутреннем сопротивлении выходов этого МК? Или, например, электрические характеристики, как для атмеги (в ее даташите в разделе 31.8.8 Pin Driver Strength)?

В документации на lgt8t328p я нашел только, что ток портов ввода-вывода то ли 12мА, то ли 30мА (мне так и не стало понятно сколько, все же...). И для нескольких линий можно установить режим до 80мА.

kvn234
Offline
Зарегистрирован: 29.09.2022

Подскажите по SPI для LGT8T328p.

Есть проверенная на ATMega328p функция:

void SPI_MasterTransmit(char Data)
{
	SPDR = Data;
	while(!(SPSR & (1<<SPIF)));//для LGT8T328p не работает
	_delay_us(2);//кастыль для LGT8T328p
	
	//строб перезаписи в вых. регистры
	PORT|=(1 << ST_CP);
	asm volatile("nop"); 
	asm volatile("nop"); 
	PORT&=~(1 << ST_CP);
}

ATMega328P

LGT8F328P (без костыля)

while(!(SPSR & (1<<SPIF))); Не ждет окончания передачи. ​Пришлось ставить задержку, чтобы строб передать по окончанию передачи.

Подскажите как поправить код для LGT8F328P

Upper
Offline
Зарегистрирован: 23.06.2020

kvn234 пишет:

Подскажите как поправить код для LGT8F328P

В файле SPI.h для LGT, функция transfer не использует флаг SPIF для _LGT8FX8P_
Почему сделано именно так пока не разобрался

inline static uint8_t transfer(uint8_t data) {
    uint8_t rcvd;
    SPDR = data;
    asm volatile("nop");
#if defined(__LGT8FX8P__)
    while((SPFR & _BV(RDEMPT)));
    rcvd = SPDR;
    SPFR = _BV(RDEMPT) | _BV(WREMPT);
#else
    while(!(SPSR & _BV(SPIF)));
    rcvd = SPDR;
#endif
    return rcvd;
  } 

 

kvn234
Offline
Зарегистрирован: 29.09.2022

RDEMPT - флаг пустого буфера (данные не получены).

while((SPFR & _BV(RDEMPT))) - Получается ждем приема байта.

А как определить конец передачи из сдвигового регистра (не опустошение буфера)?

PS Немного затупил. 

Флаг приема выставляется и после окончания передачи.

kvn234
Offline
Зарегистрирован: 29.09.2022

Проверил. 

void SPI_MasterTransmit(char data)
{
	SPDR = data; 
	
	asm volatile("nop");
#if defined(__LGT8FX8P__)
	while((SPFR & _BV(RDEMPT)));
	
	SPFR = _BV(RDEMPT) | _BV(WREMPT);
#else
	while(!(SPSR & _BV(SPIF)));
	
#endif
	
	//строб перезаписи в вых. регистры
	PORT|=(1 << ST_CP);
	asm volatile("nop"); 
	asm volatile("nop"); 
	PORT&=~(1 << ST_CP);
}

Работает корректно.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

3-й бит CLK какой-то кривой

kvn234
Offline
Зарегистрирован: 29.09.2022

3-й бит CLK - это с конца?

Возможно не корректно измерил Logic

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

ua6em пишет:

3-й бит CLK какой-то кривой

Он же округляет до ближайшего целого периода. Соответственно, округления случаются как в одну, так и в другую сторону.

kvn234
Offline
Зарегистрирован: 29.09.2022

Простой китайский 8 канальный 24МГц. 

Нормальных Российских за такую цену не нашел.

Electrobit
Offline
Зарегистрирован: 19.09.2021

kvn234

Electrobit
Offline
Зарегистрирован: 19.09.2021

Нормальных Российских за такую цену не нашел.

А какие есть ненормальные российские ЛА?

kvn234
Offline
Зарегистрирован: 29.09.2022

Про Российские я пошутил. 

Не при нашей жизни.

Electrobit
Offline
Зарегистрирован: 19.09.2021

Понял.

olegue
Offline
Зарегистрирован: 23.09.2020

подскажите плиз почему данный МК нельзя прошить через SPI?

Hans_Schwarz_true
Offline
Зарегистрирован: 18.10.2022

подскажите пожалуйста как на этой поделке использовать одновременно сдвоенные пины поключил по картинке экран от simens a55 соединил пины экрана перемычками которые попадают на сдвоенный пин (8-9 , 10-11)  и ничего не заработало 1625840365553_bulletin2KPOLN91DrakFq_54JhrffdEKl3_24xxji_9FiBn

Hans_Schwarz_true
Offline
Зарегистрирован: 18.10.2022

3 раза одно и то же отправило и как это теперь удалить

Hans_Schwarz_true
Offline
Зарегистрирован: 18.10.2022

и это 

kvn234
Offline
Зарегистрирован: 29.09.2022

Всем привет.

Нужна высокоскоростная ШИМ для ЗУ. Подскажите ссылку. 

Как я  понимаю нужно  использовать PLL.

Buldakov
Offline
Зарегистрирован: 17.01.2016

В 107 посте было написано, как затактироваться таймером 1 на частоте 64 мГц.

Тактирование таймера1 от 64 МГц
#include "lgtx8p.h"
TCKSR|=1<<F2XEN;
TCKSR|=1<<TC2XS1;

Попробовал это сделать и похоже тактирование при этом происходит на RC внутреннем генераторе. По блок схеме умножение на 2 вроде доступно только для внутреннего генератора?

То есть как я правильно понял если на плате стоит внешний кварц на 16 мгц то таймер 1 может работать максимум на 16 мгц а сам процессор на 32 мгц?

Neon_1
Offline
Зарегистрирован: 20.08.2022

dimax пишет:

Neon_1, а вот оно чё. Ну тогда как вариант можно попробовать дописать нужные определения в те секции массивов имён портов и бит, что относятся к (__LGT8FX8P__)

После 343 строки вставить
PB, /* 28 */
PB, /* 29 */
После 397 строки вставить
_BV(6), /* 28, port B6 */
_BV(7), /* 29, port B7 */
 
Хотя формально арду-пины 28 и 29 заняты (строки 203..209), но подозреваю что одно другому мешать не будет.
 

сегодня решил прошить LGT8... но плат этих в ардуино не оказалось, как то сами удалились, поставил снова , но теперь опять порты PB6 и PB7 не работают, хотя файл pins_arduino.h откорректирован

поставил предыдущую версию платы - работает

kvn234
Offline
Зарегистрирован: 29.09.2022

В русском даташите (стр.251)есть описание калибровки АЦП.

Смещение процедуры калибровки:  
1. Установить модуль VDS, выбранный источник входного сигнала 
аналогового VDS мощность (AVCC)  
2. Выбор АЦП опорного напряжения в аналоговый источник питания 
(AVCC)  
3. ADCSRC [СПН] = 0, АЦП чтение 4 / 5VDO канала  Преобразованное 
значение записывается как PVAL  
4. ADCSRC [SPN] = 1, АЦП считывает канал 4 / 5VDO, бит записи с 
преобразованной величиной NVAL  
5. Сохраняет значение (NVAL - PVAL) >> 1 - регистр OFR0  
6. ADCSRC [SPN]  = 1, АЦП считывает канал 1 / 5VDO, результат 
преобразования записывается как NVAL  
7. ADCSRC [SPN] = 0, АЦП читает канал 1 / 5VDO, бит записи результата 
преобразования PVAL  
8. Будет ли значение (NVAL - PVAL) >> 1  Сохранить в регистр OFR1  
9. Установите ADCSRC [OFEN] = 1, чтобы включить функцию компенсации 
смещения.

Если кто делал, напишите насколько она повышает точность измерений АЦП и если не жалко исходник.

Andry Smart
Offline
Зарегистрирован: 06.09.2016

А кто то знает сопротивление внутренней подтяжки?

Слыхал, что у Атмега 30к. А у ЛГТшки меньше. Но нигде не могу найти значение.

gena
Offline
Зарегистрирован: 04.11.2012

Величины не знаю, но проверяю практически: программно включаю подтяжку, подключаю резистор килоом на 50-т к общему проводу. Измеряю падение напряжения на этом резисторе, затем расчитываю внутренний резистор. Его величина может изменяться в зависимости от экземпляра микроконтроллера.

grass
Offline
Зарегистрирован: 08.04.2018

Здравствуйте ув. ФорумчАне! Помогите  подружить библиотеку TFT_ST7735( https://github.com/Bodmer/TFT_ST7735?ysclid=m0sadjgopy189183293) и соответсвенно дисплей 1.77 синий и 1.8 красный с 328P-LQFP32. Весь функционал вышеуказанной библиотеки прекрасно работает на близнеце 328P-LQFP32  по распиновкне Ардуино Нано с резистивными делителями. Т.е чистота эксперимента по аппаратной и программной части соблюдается. При работе 328P-LQFP32 с примерами из папки TFT_ST7735 белый экран с мерцанием, иногда появляются или артефакты или небольшие части изображения из скетча примеров.  И еще, с LQFP32 работает скетч TFTPong.ino из папки C:\Program Files (x86)\Arduino\libraries\TFT\examples\Arduino,  пины соответственно поправлены для библиотеки TFT_ST7735. 

rx6kr@mail.ru
Offline
Зарегистрирован: 08.12.2020

Всем доброго времени суток!
Столкнулся с проблемой по аналоговым портам LGT8F328P Pro Mini.
Заливал скетч с записью  pinMode(A4, INPUT_PULLUP);          // подключаем фоторезистор к А4

В результате 1-2 платы из десяти отказали. На всех аналоговых портах напряжение 0.1 вольта.
Перепрошивка без PULLUP положительного результата не дает.
Подпайка к аналоговым портам подтягивающего резистора 15 кОм результата не дает, на портах остается низкое напряжение. Впечатление такое что PULLUP пробивает аналоговые порты.

Кто сталкивался с такой проблемой и как ее решить?