Я правильно понял, исходя из информации на предыдущей странице, что имея две lgt-шки(в форм-факторе нано, зелёные), одну можно превратить в программатор просто влив в неё LGTISP.hex от братца Яна, к примеру таким вот образом:
Я правильно понял, исходя из информации на предыдущей странице, что имея две lgt-шки(в форм-факторе нано, зелёные), одну можно превратить в программатор просто влив в неё LGTISP.hex от братца Яна, к примеру таким вот образом:
Подскажите, а сон случайно не изучали на этой плате и режимы его?
Пытался разобраться и столкнулся со следующим: (1) битовые маски режимов не совпадают, (2) из режима power save по прерыванию от clock2 не выходит ни в обычном режиме (как вроде должна выходит мега328) ни в асинхронном режиме на частоте кварца 12 МГц.
Все попытки писать на чистом Си и следуя даташиту не привели к успеху. Засыпает намертво. Варианты использования модуля PMU не предлагать! Не подходит.
Если знаете как, перейдем в личку.
ЗЫ: Для себя, подписчиков и просто читателей темы причесываю перевод даташит на сабж с индексацией по заголовкам. Если не терпится, выложу обработанный примерно на 40% вариант. Остальное переведено, но находится некоей "каше" китайского с английским и плохо проиндексировано.
MartynovElectric, по поводу режима PWM в другой теме уже написали вам, выбирайте нужный режим, ставьте корректно WGM биты.
У вас в скетче 15-й режим, про него в datasheet прямо так и написано "Когда WGM3 равен 15: сигнал OC3A переключается во время сравнения, а OC3B выключается" Т.е. работает именно так, как вы его запрограммировали. Самые удобные режимы где TOP=ICR3, тогда регистром ICR задаёте частоту, регистрами OCR скважность.
По поводу "Важно, вначале необходимо загрузить верхний регистр!!! Затем нижний, Нельзя как для Atmega328 - OCR3A = topValue;"
ставьте корректно аддон Давида, там нет такой проблемы. Недавно ж про это же писали, сообщение #559
Всем привет, столкнулся с проблемой в tone(pin, frequency, duration), при попытке проиграть мелодию, она сжовывается, ощущение что duration игнорируется, кто нибудь сталкивался?
Тестовую программу я написал на C и скомпилировал avr-gcc. Программа успешно записывается в lgt8f328p через программатор и работает, как положено. А, вот, eeprom не хочет записываться - при верификации записанного пишет о несовпадении уже с первого байта.
Может быть, кто-то сталкивался? Или подскажет другой способ заливки eeprom без загрузчика?
Neon_1, они всегда поддерживались, ничего не надо добавлять. Если тактирование не от кварца - должно работать.
а какие цифры использовать? 27 и 28 не работают...хотя с блинком не проверял, у меня к этим пинам подключена max7219 и после прошивки они просто висят в воздухе
и может есть где-то чип со подписанными выводами , как у атмег? пока нашел только готовые платы
проверил 27 и 28 блинком - не работает
апдейт - 36 на LGT8F328 - PB7, 42 на LGT8F328 - PB6
Neon_1, а вот оно чё. Ну тогда как вариант можно попробовать дописать нужные определения в те секции массивов имён портов и бит, что относятся к (__LGT8FX8P__)
После 343 строки вставить
PB, /* 28 */
PB, /* 29 */
После 397 строки вставить
_BV(6), /* 28, port B6 */
_BV(7), /* 29, port B7 */
Хотя формально арду-пины 28 и 29 заняты (строки 203..209), но подозреваю что одно другому мешать не будет.
Находил ли кто-то информацию о внутреннем сопротивлении выходов этого МК? Или, например, электрические характеристики, как для атмеги (в ее даташите в разделе 31.8.8 Pin Driver Strength)?
В документации на lgt8t328p я нашел только, что ток портов ввода-вывода то ли 12мА, то ли 30мА (мне так и не стало понятно сколько, все же...). И для нескольких линий можно установить режим до 80мА.
подскажите пожалуйста как на этой поделке использовать одновременно сдвоенные пины поключил по картинке экран от simens a55 соединил пины экрана перемычками которые попадают на сдвоенный пин (8-9 , 10-11) и ничего не заработало
В 107 посте было написано, как затактироваться таймером 1 на частоте 64 мГц.
Тактирование таймера1 от 64 МГц
#include "lgtx8p.h"
TCKSR|=1<<F2XEN;
TCKSR|=1<<TC2XS1;
Попробовал это сделать и похоже тактирование при этом происходит на RC внутреннем генераторе. По блок схеме умножение на 2 вроде доступно только для внутреннего генератора?
То есть как я правильно понял если на плате стоит внешний кварц на 16 мгц то таймер 1 может работать максимум на 16 мгц а сам процессор на 32 мгц?
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 откорректирован
Величины не знаю, но проверяю практически: программно включаю подтяжку, подключаю резистор килоом на 50-т к общему проводу. Измеряю падение напряжения на этом резисторе, затем расчитываю внутренний резистор. Его величина может изменяться в зависимости от экземпляра микроконтроллера.
Здравствуйте ув. ФорумчАне! Помогите подружить библиотеку 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.
Всем доброго времени суток!
Столкнулся с проблемой по аналоговым портам LGT8F328P Pro Mini.
Заливал скетч с записью pinMode(A4, INPUT_PULLUP); // подключаем фоторезистор к А4
В результате 1-2 платы из десяти отказали. На всех аналоговых портах напряжение 0.1 вольта.
Перепрошивка без PULLUP положительного результата не дает.
Подпайка к аналоговым портам подтягивающего резистора 15 кОм результата не дает, на портах остается низкое напряжение. Впечатление такое что PULLUP пробивает аналоговые порты.
Кто сталкивался с такой проблемой и как ее решить?
Здравствуйте, проблема с работой кода на LGT8F328P, точнее полная не работа кода. Пример "Adafruit ILI9341 graphicstest" нормально работает на arduino nano. При компиляции и заливки этого примера в LGT8F328P на ILI9341 белый экран. На базе примера Adafruit нарисовал картинку, которая на arduino работает, а на LGT8F328P не работает. Плату для LGT8F328P установил, другой проект - часы из дисплея покупателя на ней работает. Что посоветуете? Оставить плату для мигания светодиодом, или есть варианты? Просто arduino тратить только для показа картинки жалко. В коде после каждой палки вывожу в монитор - в мониторе программа работает, а на ILI9341 белый экран. Уровни согласованы. Пробовал питать всё от 3,3 V - бесполезно. В нете похожей проблемы не нашёл. Год назад делал осциллограф на ардуино (так, игрушка) эта плата работала не как надо.
Спасибо всем УВАЖАЕМЫМ ФОРУМЧАНАМ за восстановление фиолетовой LGT8F328P!!!
Записал прошивальщик на UNO и потом прошил скетч на плату. Блинк обычный. Как по видео Ув.Асиличенко о прошивке про мини версии.
Причем при записи нужно обязательно переподключать сам программатор (UNO) в комп. Иначе писать не хочет.
Кондер ставил, а вот сопротивление нет. Так прошилось.
После блинка попробовал прошить сам загрузчик.
ИДЕ ругнулось на адреса, но загрузчик прошило.
Ещё раз СПАСИБО всем за науку!!! А то уж думал выкидывать контроллер!
Я правильно понял, исходя из информации на предыдущей странице, что имея две lgt-шки(в форм-факторе нано, зелёные), одну можно превратить в программатор просто влив в неё LGTISP.hex от братца Яна, к примеру таким вот образом:
1
avrdude -p atmega328p -b 57600 -c arduino -P COM3 -U flash:w:LGTISP.hex
А затем, соединив соответствующие пины, прошить уже вторую, изменив командную строку на:
1
avrdude -p atmega328p -b 57600(115200?) -c stk500v1 -P COM3 -U flash:w:my-firmware.hex
Или я слишком наивен и не всё так просто? Знающие и опытные, подскажите, пожалуйста.
Я правильно понял, исходя из информации на предыдущей странице, что имея две lgt-шки(в форм-факторе нано, зелёные), одну можно превратить в программатор просто влив в неё LGTISP.hex от братца Яна, к примеру таким вот образом:
1
avrdude -p atmega328p -b 57600 -c arduino -P COM3 -U flash:w:LGTISP.hex
А затем, соединив соответствующие пины, прошить уже вторую, изменив командную строку на:
1
avrdude -p atmega328p -b 57600(115200?) -c stk500v1 -P COM3 -U flash:w:my-firmware.hex
Или я слишком наивен и не всё так просто? Знающие и опытные, подскажите, пожалуйста.
да, но можно и UNO или nano, только хэкс будет другой, это не отменяет установки поддержки этих плат, далее выбирать придётся нужную вам плату
Подскажите пожалуйста, а как в коде вызвать ресет программы?
Хочу отработать в коде по прерыванию, кладу контроллер в сон, но он из него по прерыванию с ноги d2 начинает вроде просыпаться и зависает на WK
01
switch
(Pstate) {
02
case
1:
03
Pstate = 0;
04
Serial
.println(
"timer"
);
//спать
05
delay(100);
06
digitalWrite(PUpin, LOW);
07
radio.powerDown();
08
pinMode(PUpin, INPUT);
09
digitalWrite(A3, LOW);
10
delay(150);
11
digitalWrite(A3, HIGH);
12
delay(500);
13
digitalWrite(A3, LOW);
14
delay(150);
15
digitalWrite(A3, HIGH);
16
delay(1000);
17
attachInterrupt(0, wkp, HIGH);
18
PMU.sleep(PM_POFFS1, SLEEP_FOREVER);
19
break
;
20
}
Сам спросил - сам отвечу)
01
switch
(Pstate) {
02
case
1:
03
Pstate = 0;
04
Serial
.println(
"timer"
);
//спать
05
delay(100);
06
LDOCR_reg = LDOCR;
07
CLKPR_reg = CLKPR;
08
MCUSR_reg = MCUSR;
09
SREG_reg = SREG;
10
digitalWrite(PUpin, LOW);
11
radio.powerDown();
12
pinMode(PUpin, INPUT);
13
digitalWrite(A3, LOW);
14
delay(150);
15
digitalWrite(A3, HIGH);
16
delay(500);
17
digitalWrite(A3, LOW);
18
delay(150);
19
digitalWrite(A3, HIGH);
20
delay(1000);
21
attachInterrupt(0, wkp, HIGH);
22
PMU.sleep(PM_POFFS1, SLEEP_FOREVER);
23
break
;
24
}
25
26
void
wkp() {
//проснись
27
detachInterrupt(0);
28
LDOCR = 0x80;
29
LDOCR = LDOCR_reg;
30
CLKPR = 0x80;
31
CLKPR = CLKPR_reg;
32
MCUSR = 0x80;
33
MCUSR = MCUSR_reg;
34
SREG = SREG_reg;
35
Serial
.print(
"WKPstart"
);
36
pinMode(PUpin, OUTPUT);
37
digitalWrite(PUpin, HIGH);
38
digitalWrite(A3, LOW);
39
delay(150);
40
digitalWrite(A3, HIGH);
41
radio.powerUp();
//начать работу
42
radio.startListening();
//начинаем слушать эфир, мы приёмный модуль
43
}
Прочитал эту ветку, но так и не смог настроить ШИМ на D2 (F2). Сильно хочется высокотоковый выход.
Тему уже создал отдельно: https://arduino.ru/forum/programmirovanie/lgt8f328p-nastroika-shim-na-pd2int0oc3b#comment-656948
Можно здесь ответить, можно там. Вот кусочек кода:
01
void
SHIMWrite(
byte
val)
02
{
03
DDRF |= (1<<PF2) | (1<<PF1);
04
OCR3AH = 0x00;
// Важно, вначале необходимо загрузить верхний регистр!!!
05
OCR3AL = val;
// затем нижний, Нельзя как для Atmega328 - OCR3A = topValue;
06
OCR3BH = 0x00;
07
OCR3BL = val;
08
TCCR3A |= (1 <<COM3A0) | (1 << COM3B0) | (1 << WGM31) | (1 << WGM30);
// ПИН D2
09
TCCR3B = (1 << WGM33) | (1 << WGM32) | 5;
// Режим СТС WGM3[3:0]=4 или 12
10
}
11
12
SHIMWrite(100);
Меняет не скважность, а часту и то только на TX (что не нужно).
DENNIS, Если выбрать как нано, то будет работать на 4 МГц, всё правильно. Ставь аддон https://github.com/dbuezas/lgt8fx
Подскажите, а сон случайно не изучали на этой плате и режимы его?
Пытался разобраться и столкнулся со следующим: (1) битовые маски режимов не совпадают, (2) из режима power save по прерыванию от clock2 не выходит ни в обычном режиме (как вроде должна выходит мега328) ни в асинхронном режиме на частоте кварца 12 МГц.
Все попытки писать на чистом Си и следуя даташиту не привели к успеху. Засыпает намертво. Варианты использования модуля PMU не предлагать! Не подходит.
Если знаете как, перейдем в личку.
ЗЫ: Для себя, подписчиков и просто читателей темы причесываю перевод даташит на сабж с индексацией по заголовкам. Если не терпится, выложу обработанный примерно на 40% вариант. Остальное переведено, но находится некоей "каше" китайского с английским и плохо проиндексировано.
ЗЗЫ: На английском
Всем привет, столкнулся с проблемой в tone(pin, frequency, duration), при попытке проиграть мелодию, она сжовывается, ощущение что duration игнорируется, кто нибудь сталкивался?
Проверял http://arduino.ru/forum/apparatnye-voprosy/obzor-klona-megi328-lgt8f328p?page=7#comment-591258
Плата... редкий случай, у родных пенатов есть интереснее, но дороже
Очки ... Это вторые...
Сделал самодельный переходник. Пришлось у отца очки напрокат взять, чтобы припаять этот чип... но вроде получилось. Буду проверять
Хотел фото прилепить, но чёт не разобрался, как...
dimax, Спасибо! теперь всё понятно )))
может быть у кого -то получилось запустить библиотеку sdfat на этой плате?
Добрый день. Ищу помощи.
Мне необходимо записать eeprom программатором через SWD-интерфейс (я использую lgt8f328p без бутлодера).
Программатор я сделал из ардуинки lgt8f328p с помощью скетча LGTISP (https://github.com/SuperUserNameMan/LGTISP). И использую avrdude.
Тестовую программу я написал на C и скомпилировал avr-gcc. Программа успешно записывается в lgt8f328p через программатор и работает, как положено. А, вот, eeprom не хочет записываться - при верификации записанного пишет о несовпадении уже с первого байта.
Может быть, кто-то сталкивался? Или подскажет другой способ заливки eeprom без загрузчика?
01
vk@debian:~/lgt8f/tests$ avrdude -v -p m328p -c stk500v1 -P /dev/ttyUSB0 -U eeprom:w:_eep:r
02
03
avrdude: Version 6.3-20171130
04
Copyright (c) 2000-2005 Brian Dean, <a href=
"http://www.bdmicro.com/"
title=
"http://www.bdmicro.com/"
rel=
"nofollow"
>http://www.bdmicro.com/</a>
05
Copyright (c) 2007-2014 Joerg Wunsch
06
07
System wide configuration file
is
"/etc/avrdude.conf"
08
User configuration file
is
"/home/vk/.avrduderc"
09
User configuration file does not exist or
is
not a regular file, skipping
10
11
Using Port : /dev/ttyUSB0
12
Using Programmer : stk500v1
13
AVR Part : ATmega328P
14
Chip Erase delay : 9000 us
15
PAGEL : PD7
16
BS2 : PC2
17
RESET disposition : dedicated
18
RETRY pulse : SCK
19
serial program mode : yes
20
parallel program mode : yes
21
Timeout : 200
22
StabDelay : 100
23
CmdexeDelay : 25
24
SyncLoops : 32
25
ByteDelay : 0
26
PollIndex : 3
27
PollValue : 0x53
28
Memory Detail :
29
30
Block Poll Page Polled
31
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
32
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
33
eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
34
flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
35
lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
36
hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
37
efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
38
lock
0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
39
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
40
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
41
42
Programmer Type : STK500
43
Description : Atmel STK500 Version 1.x firmware
44
Hardware Version: 3
45
Firmware Version: 5.1
46
Topcard : Unknown
47
Vtarget : 0.0 V
48
Varef : 0.0 V
49
Oscillator : Off
50
SCK period : 0.1 us
51
52
avrdude: AVR device initialized and ready to accept instructions
53
54
Reading | ################################################## | 100% 0.01s
55
56
avrdude: Device signature = 0x1e950f (probably m328p)
57
avrdude: safemode: lfuse reads
as
FF
58
avrdude: safemode: hfuse reads
as
FF
59
avrdude: safemode: efuse reads
as
FF
60
avrdude: reading input file
"_eep"
61
avrdude: writing eeprom (1 bytes):
62
63
Writing | ################################################## | 100% 0.43s
64
65
avrdude: 1 bytes of eeprom written
66
avrdude: verifying eeprom memory against _eep:
67
avrdude: load data eeprom data from input file _eep:
68
avrdude: input file _eep contains 1 bytes
69
avrdude: reading on-chip eeprom data:
70
71
Reading | ################################################## | 100% 0.01s
72
73
avrdude: verifying ...
74
avrdude: verification error, first mismatch at
byte
0x0000
75
0xff != 0x20
76
avrdude: verification error; content mismatch
77
78
avrdude: safemode: lfuse reads
as
FF
79
avrdude: safemode: hfuse reads
as
FF
80
avrdude: safemode: efuse reads
as
FF
81
avrdude: safemode: Fuses OK (E:FF, H:FF, L:FF)
82
83
avrdude done. Thank you.
подскажите как добавить в файл pins_arduino.h поддержку выводов 7 (PB6) и 8 (PB7) ?
Neon_1, они всегда поддерживались, ничего не надо добавлять. Если тактирование не от кварца - должно работать.
Neon_1, они всегда поддерживались, ничего не надо добавлять. Если тактирование не от кварца - должно работать.
а какие цифры использовать? 27 и 28 не работают...хотя с блинком не проверял, у меня к этим пинам подключена max7219 и после прошивки они просто висят в воздухе
и может есть где-то чип со подписанными выводами , как у атмег? пока нашел только готовые платы
проверил 27 и 28 блинком - не работает
апдейт - 36 на LGT8F328 - PB7, 42 на LGT8F328 - PB6
Neon_1, в описании ног аддона есть все дефайны.. https://github.com/dbuezas/lgt8fx/blob/master/lgt8f/variants/standard/pi...
Neon_1, в описании ног аддона есть все дефайны.. https://github.com/dbuezas/lgt8fx/blob/master/lgt8f/variants/standard/pi...
спасибо, этот файл смотрел
PB6 и PB7 есть только в #if defined(__LGT8FX8P48__)
если правильно понимаю , то это только для LGT8FX8P48
Neon_1, а вот оно чё. Ну тогда как вариант можно попробовать дописать нужные определения в те секции массивов имён портов и бит, что относятся к (__LGT8FX8P__)
спасибо, попробую
блинк работает с 36 и 42, а вот max7219 пока не хочет, ставлю lgt8f328 вместо atmega328, дорожки уже разведены
спасибо большое, заработало, сам бы не разобрался :)
Находил ли кто-то информацию о внутреннем сопротивлении выходов этого МК? Или, например, электрические характеристики, как для атмеги (в ее даташите в разделе 31.8.8 Pin Driver Strength)?
В документации на lgt8t328p я нашел только, что ток портов ввода-вывода то ли 12мА, то ли 30мА (мне так и не стало понятно сколько, все же...). И для нескольких линий можно установить режим до 80мА.
Подскажите по SPI для LGT8T328p.
Есть проверенная на ATMega328p функция:
01
void
SPI_MasterTransmit(
char
Data)
02
{
03
SPDR = Data;
04
while
(!(SPSR & (1<<SPIF)));
//для LGT8T328p не работает
05
_delay_us(2);
//кастыль для LGT8T328p
06
07
//строб перезаписи в вых. регистры
08
PORT|=(1 << ST_CP);
09
asm volatile(
"nop"
);
10
asm volatile(
"nop"
);
11
PORT&=~(1 << ST_CP);
12
}
ATMega328P
LGT8F328P (без костыля)
while(!(SPSR & (1<<SPIF))); Не ждет окончания передачи. Пришлось ставить задержку, чтобы строб передать по окончанию передачи.
Подскажите как поправить код для LGT8F328P
Подскажите как поправить код для LGT8F328P
В файле SPI.h для LGT, функция transfer не использует флаг SPIF для _LGT8FX8P_
Почему сделано именно так пока не разобрался
01
inline
static
uint8_t transfer(uint8_t data) {
02
uint8_t rcvd;
03
SPDR = data;
04
asm volatile(
"nop"
);
05
#if defined(__LGT8FX8P__)
06
while
((SPFR & _BV(RDEMPT)));
07
rcvd = SPDR;
08
SPFR = _BV(RDEMPT) | _BV(WREMPT);
09
#else
10
while
(!(SPSR & _BV(SPIF)));
11
rcvd = SPDR;
12
#endif
13
return
rcvd;
14
}
RDEMPT - флаг пустого буфера (данные не получены).
while
((SPFR & _BV(RDEMPT))) -
Получается ждем приема байта.А как определить конец передачи из сдвигового регистра (не опустошение буфера)?
PS Немного затупил.
Флаг приема выставляется и после окончания передачи.
Проверил.
01
void
SPI_MasterTransmit(
char
data)
02
{
03
SPDR = data;
04
05
asm volatile(
"nop"
);
06
#if defined(__LGT8FX8P__)
07
while
((SPFR & _BV(RDEMPT)));
08
09
SPFR = _BV(RDEMPT) | _BV(WREMPT);
10
#else
11
while
(!(SPSR & _BV(SPIF)));
12
13
#endif
14
15
//строб перезаписи в вых. регистры
16
PORT|=(1 << ST_CP);
17
asm volatile(
"nop"
);
18
asm volatile(
"nop"
);
19
PORT&=~(1 << ST_CP);
20
}
Работает корректно.
3-й бит CLK какой-то кривой
3-й бит CLK - это с конца?
Возможно не корректно измерил Logic
3-й бит CLK какой-то кривой
Простой китайский 8 канальный 24МГц.
Нормальных Российских за такую цену не нашел.
kvn234
Нормальных Российских за такую цену не нашел.
А какие есть ненормальные российские ЛА?
Про Российские я пошутил.
Не при нашей жизни.
Понял.
подскажите плиз почему данный МК нельзя прошить через SPI?
подскажите пожалуйста как на этой поделке использовать одновременно сдвоенные пины поключил по картинке экран от simens a55 соединил пины экрана перемычками которые попадают на сдвоенный пин (8-9 , 10-11) и ничего не заработало

3 раза одно и то же отправило и как это теперь удалить
и это
Всем привет.
Нужна высокоскоростная ШИМ для ЗУ. Подскажите ссылку.
Как я понимаю нужно использовать PLL.
В 107 посте было написано, как затактироваться таймером 1 на частоте 64 мГц.
Тактирование таймера1 от 64 МГц
#include "lgtx8p.h"
TCKSR|=1<<F2XEN;
TCKSR|=1<<TC2XS1;
Попробовал это сделать и похоже тактирование при этом происходит на RC внутреннем генераторе. По блок схеме умножение на 2 вроде доступно только для внутреннего генератора?
То есть как я правильно понял если на плате стоит внешний кварц на 16 мгц то таймер 1 может работать максимум на 16 мгц а сам процессор на 32 мгц?
Neon_1, а вот оно чё. Ну тогда как вариант можно попробовать дописать нужные определения в те секции массивов имён портов и бит, что относятся к (__LGT8FX8P__)
сегодня решил прошить LGT8... но плат этих в ардуино не оказалось, как то сами удалились, поставил снова , но теперь опять порты PB6 и PB7 не работают, хотя файл pins_arduino.h откорректирован
поставил предыдущую версию платы - работает
В русском даташите (стр.251)есть описание калибровки АЦП.
Если кто делал, напишите насколько она повышает точность измерений АЦП и если не жалко исходник.
А кто то знает сопротивление внутренней подтяжки?
Слыхал, что у Атмега 30к. А у ЛГТшки меньше. Но нигде не могу найти значение.
Величины не знаю, но проверяю практически: программно включаю подтяжку, подключаю резистор килоом на 50-т к общему проводу. Измеряю падение напряжения на этом резисторе, затем расчитываю внутренний резистор. Его величина может изменяться в зависимости от экземпляра микроконтроллера.
Здравствуйте ув. ФорумчАне! Помогите подружить библиотеку 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.
Всем доброго времени суток!
Столкнулся с проблемой по аналоговым портам LGT8F328P Pro Mini.
Заливал скетч с записью pinMode(A4, INPUT_PULLUP); // подключаем фоторезистор к А4
В результате 1-2 платы из десяти отказали. На всех аналоговых портах напряжение 0.1 вольта.
Перепрошивка без PULLUP положительного результата не дает.
Подпайка к аналоговым портам подтягивающего резистора 15 кОм результата не дает, на портах остается низкое напряжение. Впечатление такое что PULLUP пробивает аналоговые порты.
Кто сталкивался с такой проблемой и как ее решить?
Здравствуйте, проблема с работой кода на LGT8F328P, точнее полная не работа кода. Пример "Adafruit ILI9341 graphicstest" нормально работает на arduino nano. При компиляции и заливки этого примера в LGT8F328P на ILI9341 белый экран. На базе примера Adafruit нарисовал картинку, которая на arduino работает, а на LGT8F328P не работает. Плату для LGT8F328P установил, другой проект - часы из дисплея покупателя на ней работает. Что посоветуете? Оставить плату для мигания светодиодом, или есть варианты? Просто arduino тратить только для показа картинки жалко. В коде после каждой палки вывожу в монитор - в мониторе программа работает, а на ILI9341 белый экран. Уровни согласованы. Пробовал питать всё от 3,3 V - бесполезно. В нете похожей проблемы не нашёл. Год назад делал осциллограф на ардуино (так, игрушка) эта плата работала не как надо.
01
#include "SPI.h"
02
#include "Adafruit_GFX.h"
03
#include "Adafruit_ILI9341.h"
04
05
#define TFT_CS 10
06
#define TFT_DC 9
07
#define TFT_RST 8
08
//#define TFT_MOSI 11 // Data out
09
//#define TFT_SCLK 13 // Clock out
10
//#define TFT_MISO 12 // Data in
11
12
//Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST, TFT_MOSI, TFT_SCLK, TFT_MISO);
13
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);
14
15
void
setup
() {
16
Serial
.begin(9600);
17
Serial
.println(
"ILI9341 Test!"
);
18
19
tft.begin();
20
tft.setRotation(3);
//поворот экрана
21
tft.fillScreen(ILI9341_BLACK);
//заливка экрана можно цвет в RGB (0x0000) - чёрный, (0xFFFF) - белый
22
Serial
.println(
"ILI9341_BLACK 1!"
);
23
int
w, i, i2, x, y,
24
z = tft.width(),
25
h = tft.height(),
26
cx = tft.width() / 2 - 1,
27
cy = tft.height() / 2 - 1;
28
29
for
(y=0; y<h; y+=5) tft.drawFastHLine(0, y, z, h);
30
for
(x=0; x<z; x+=5) tft.drawFastVLine(x, 0, z, h);
31
Serial
.println(
"ILI9341 2!"
);
32
delay(200);
33
34
w = min(tft.width(), tft.height());
35
36
for
(i=0; i<w; i+=6) {
37
i2 = i / 2;
38
tft.drawRoundRect(cx-i2, cy-i2, i, i, i/6, tft.color565(i, 0, 0));
39
}
40
Serial
.println(
"ILI9341 3!"
);
41
delay(400);
42
43
tft.setCursor(140,13);
44
tft.setTextColor(ILI9341_CYAN);
45
tft.setTextSize(6);
46
tft.println(
"|"
);
47
48
tft.setCursor(140,46);
49
tft.setTextColor(ILI9341_CYAN);
50
tft.setTextSize(6);
51
tft.println(
"|"
);
52
53
delay(200);
54
55
tft.setCursor(153,13);
56
tft.setTextColor(ILI9341_CYAN);
57
tft.setTextSize(6);
58
tft.println(
">"
);
59
60
delay(200);
61
62
tft.setCursor(153,46);
63
tft.setTextColor(ILI9341_CYAN);
64
tft.setTextSize(6);
65
tft.println(
">"
);
66
67
delay(200);
68
69
tft.setCursor(123,26);
70
tft.setTextColor(ILI9341_CYAN);
71
tft.setTextSize(7);
72
tft.println(
">"
);
73
Serial
.println(
"ILI9341 4!"
);
74
delay(200);
75
76
tft.setCursor(53,100);
77
//tft.setTextColor(ILI9341_BLUE);
78
tft.setTextColor(0x81ff);
79
tft.setTextSize(4);
80
tft.println(
"Bluetooth"
);
81
Serial
.println(
"ILI9341 5!"
);
82
delay(100);
83
84
tft.setCursor(53,140);
85
tft.setTextColor(ILI9341_GREEN);
86
tft.setTextSize(4);
87
tft.println(
"ACTIVATED"
);
88
Serial
.println(
"ILI9341 6!"
);
89
delay(100);
90
91
tft.setCursor(97,195);
92
tft.setTextColor(ILI9341_CYAN);
93
tft.setTextSize(3);
94
tft.println(
"XFW-M18"
);
95
Serial
.println(
"ILI9341 ВСЁ!"
);
96
}
97
98
void
loop
() {
99
}