Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Аватара пользователя
nbo
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Вт май 06, 2008 20:14:37
Откуда: Ukraine

Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12

Сообщение nbo »

Здравствуйте.
Вопрос к сообществу такого плана: собрал версию m16-20180501 с гитхаба в конфигурации мега16-TDA7313-LM7001. Прошивка собирается, в редакторе EEPROM (редактор для меги8) поменял конфигурацию на TDA7313 и LM7001. Так вот TDA7313 работает очень хорошо, а тюнер нет. Перестройка на экране идет, такое впечатление что нет обмена с LM7001. Сам тюнер заведомо рабочий, на прошивке от dt-andrew работал. Что я делаю не так?
Реклама
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12

Сообщение WiseLord »

С подключением точно всё правильно?

Код: Выделить всё

// EXT outputs definitions
#define EXT_0               C
#define EXT_0_LINE          (1<<2)
#define EXT_1               C
#define EXT_1_LINE          (1<<3)
#define EXT_2               C
#define EXT_2_LINE          (1<<4)

// Software SPI definitions
#define SPISW_DI            EXT_0
#define SPISW_DI_LINE       EXT_0_LINE
#define SPISW_CLK           EXT_1
#define SPISW_CLK_LINE      EXT_1_LINE
#define SPISW_CE            EXT_2
#define SPISW_CE_LINE       EXT_2_LINE
Я такой тюнер уже очень давно не подключал, поэтому лучше бы ещё у кого-нибудь спросить, если пользуется кто-то, рабочий ли. Мало ли, что-то могло сломаться.

P.S. Ещё попробуйте в функцию SPIswInit() (spisw.c) добавить вызов SPIswInitLines(). Похоже, что действительно забыт перевод пинов в режим выхода.

P.P.S. Похоже, аналогичный баг и в ATmega8 варианте. На ATmega32 всё ОК. В общем, для ATmega8 и ATmega16 поправил код и залил на Github.
Реклама
Аватара пользователя
nbo
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Вт май 06, 2008 20:14:37
Откуда: Ukraine

Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12

Сообщение nbo »

Отчет о проделанной работе:
Попробовал собрать исправленную версию. Выдает ошибки:

Severity Code Description Project File Line
Error implicit declaration of function 'SPIswInitLines' [-Werror=implicit-function-declaration] main D:\!Downloads\ampcontrol-m16\main\Debug\main.c 20

Severity Code Description Project File Line
Error 'extFunc' undeclared (first use in this function) main D:\!Downloads\ampcontrol-m16\main\Debug\main.c 20

Severity Code Description Project File Line
Error recipe for target 'build/main.o' failed main D:\!Downloads\ampcontrol-m16\main\Debug\Makefile 151

В файл main.c вставил

Код: Выделить всё

#include "spisw.h"
стало:

Severity Code Description Project File Line
Error 'extFunc' undeclared (first use in this function) main D:\!Downloads\ampcontrol-m16\main\Debug\main.c 20

Severity Code Description Project File Line
Error recipe for target 'build/main.o' failed main D:\!Downloads\ampcontrol-m16\main\Debug\Makefile 151

Тогда просто сделал:

Код: Выделить всё

#ifdef _SPISW
//    SPIswInitLines(extFunc);

 OUT(SPISW_DI);
 OUT(SPISW_CLK);
 OUT(SPISW_CE);

#endif
и проект стал собираться нормально, ну и самое главное радио на LM7001 заработало - УРААА!
Проект собираю в Atmel Studio 7.
WiseLord спасибо за помощь :beer:
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12

Сообщение WiseLord »

Да, допустил ошибку, и забыл проверить, компилируется.

Чуть поправил код. Попробуйте, если не сложно.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
nbo
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Вт май 06, 2008 20:14:37
Откуда: Ukraine

Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12

Сообщение nbo »

Только что попробовал - все собирается и отлично работает. Ещё раз спасибо за помощь :beer:
Реклама
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12

Сообщение WiseLord »

Сегодня в разрабатываемом под STM32F103 варианте полностью поменял формат шрифтов.

Теперь шрифт не ограничен 256 символами, имеется полноценная поддержка Unicode (в стандарте UTF-8).
То есть, если даже прямо в коде написать что-то кириллицей (или любым другим языком), то это будет выведено (естественно, если нужный unicode-символ есть в выбранном шрифте.

Такой подход позволит в дальнейшем сделать более простой локализацию на нужный язык. Возможно, при наличии места в Flash-памяти, все поддерживаемые языки будут в прошивке сразу, нужный будет выбираться в настройках. А если кто-то захочет поменять какие-то надписи под себя, будет оставлена возможность сделать это по аналогии с вариантом на ATmega32.

Основная причина всей этой замены формата шрифтов - надоело рисовать шрифты чуть ли не руками в коде, правя байтики-битики. Сейчас шрифты можно отредактировать или сгенерировать новые в программе LCD Image Converter - наверное самая лучшая и функциональная из всех, что я вообще видел. Плюс, с открытым исходным кодом и собирается (так как написана на QT) не только под Windows.

Судя по отсутствию активности в Github, автор, похоже, её немного подзабросил год назад, поэтому я утянул её к себе, поправил ошибки сборки, пофиксил пару мелких багов и добавил шаблоны для генерации шрифтов, которые подходят для Ampcontrol.

Если кому-то нужна готовая сборка под Windows - можно взять у меня на Github в релизах.

Сами исходники шрифтов в xml-формате и необходимые шаблоны для программы - в исходниках ampcontrol-f103

Также было бы здорово, если бы кто-то захотел взяться за рисование нормальных шрифтов для 320x240 (и выше) дисплеев. Всё-таки то, что есть сейчас - шрифты высотой 8, 24 и 32(цифры) - это хорошо для 128x64, но недостаточно для больших разрешений. Приходится масштабировать символы, и выглядит слишком уж пикселизированно. Было бы здорово иметь хорошие и гладкие шрифты покрупнее.

Лично я пока нахожу очень неплохим вариантом шрифт Terminus, который я сам планировал использовать как базовый в будущем. Но, может быть, кто-то предложит ещё что-то интересное. Например, шрифты а-ля семисегментник (для отображения частоты FM, например).

P. S. Да, иконки в программе тоже можно рисовать, так что если кто-то желает поиграться и с этим - welcome.
Реклама
mixa232323
Прорезались зубы
Сообщения: 217
Зарегистрирован: Вт окт 01, 2013 01:04:31
Откуда: Гомель

Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12

Сообщение mixa232323 »

WiseLord

Еще 3 дисплея на подходе. ILI9163, ST7735, MC2PA8201(nokia 6300, 5310 и тд).

Добавлено after 3 hours 23 minutes 11 seconds:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
WiseLord

вот еще 3 дисплея

последний коммит к которому всё прикрутил "Add fonts sources and templates for LCD Image Converter"
добавьте в гит
Вложения
ampcontrol-f103-master.rar
(13.21 КБ) 258 скачиваний
Последний раз редактировалось mixa232323 Сб сен 08, 2018 21:15:27, всего редактировалось 1 раз.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12

Сообщение WiseLord »

Добавил в редактор шрифтов / картинок функцию автоматической обрезки (по ширине, по высоте, или по обоим параметрам). Должно сильно упростить и ускорить работу с импортированными из системы шрифтами.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12

Сообщение WiseLord »

Добавил в редактор шрифтов функцию масштабирования, в том числе с неким аналогом сглаживания.

Без сглаживания:
Изображение

Со сглаживанием:
Изображение

Придуманный алгоритм сглаживания (добавлять в фоновый пиксел "уголки", если возле него есть и по горизонтали, и по вертикали заполненный пиксел) не идеален, но лучше пока в голову не пришло.
kloker
Вымогатель припоя
Сообщения: 558
Зарегистрирован: Ср сен 09, 2015 13:09:15

Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12

Сообщение kloker »

нашел тут пару шрифтов из старых завалов.
масштабируются, являясь векторными, в любой кегль.
тягал с сайта http://www.ffonts.net

для стилизованного под люминесцентные VFD матрицы шрифта были еще с затенением (отключенные эдементы матрицы).
ярко-зелёные буквы на темнозелёной ячейке знакогенерирующей матрицы смотрелось прикольно.
Вложения
DS-Digital-BoldA.png
(5.81 КБ) 609 скачиваний
DS-Digital-Bold.zip
(37.54 КБ) 217 скачиваний
DS-Digital-Bold-ItalicA.png
(6.9 КБ) 554 скачивания
DS-Digital-Bold-Italic.zip
(37.54 КБ) 181 скачивание
kloker
Вымогатель припоя
Сообщения: 558
Зарегистрирован: Ср сен 09, 2015 13:09:15

Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12

Сообщение kloker »

высоты шрифта 48 пикселей для матриц 320х240 хватит? если делать такие, то хотя-бы на цифрах остановиться с разделителями и спецсимволами. битовые поля полных шрифтов займут много места на флеше.

Добавлено after 5 hours 39 minutes 1 second:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
конвертер фонтов FontCvtST.exe от пакета Segger EmWin для STM32CubeMX. лежит в репе от куба (STM32Cube\Repository\STM32Cube_FW_F1_V1.6.1\Middlewares\ST\STemWin\Software)
формат выходного С++ файла заточен под EmWin, но подергать готовые битовые поля символов можно.
ну или проект совместить под структуру файла, если софт юзабельнее.
Вложения
Times New Roman40.rar
пример сгенерёного кода
(197.28 КБ) 231 скачивание
FontCvtST.zip
(227.47 КБ) 199 скачиваний
mixa232323
Прорезались зубы
Сообщения: 217
Зарегистрирован: Вт окт 01, 2013 01:04:31
Откуда: Гомель

Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12

Сообщение mixa232323 »

[uquote="kloker",url="/forum/viewtopic.php?p=3453859#p3453859"]высоты шрифта 48 пикселей для матриц 320х240 хватит? если делать такие, то хотя-бы на цифрах остановиться с разделителями и спецсимволами. битовые поля полных шрифтов займут много места на флеше.

Добавлено after 5 hours 39 minutes 1 second:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
конвертер фонтов FontCvtST.exe от пакета Segger EmWin для STM32CubeMX. лежит в репе от куба (STM32Cube\Repository\STM32Cube_FW_F1_V1.6.1\Middlewares\ST\STemWin\Software)
формат выходного С++ файла заточен под EmWin, но подергать готовые битовые поля символов можно.
ну или проект совместить под структуру файла, если софт юзабельнее.[/uquote]

Не вариант.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12

Сообщение WiseLord »

Добавил поддержку распаковки шрифтов, упакованных с помощью RLE (упаковку обеспечивает LCD Image Converter, упомянутый мною выше).

В итоге, на 320x240 дисплее, если ранее прошивка с тремя крупными шрифтами (два по 16 (для цифр) символов размерами ~80x40 и ~64x28 и один полный шрифт на 178 символов размером ~64x24) занимала 59 кБайт, то после упаковки - 33 кБайт. При этом базовый размер прошивки ориентировочно 20кБайт, то есть по сути шрифты вместо 39кБ стали занимать 13кБ, т.е. упаковались где-то в три раза.

Вот как это выглядит (шрифты на базе terminus) на ILI9320 (320x240):

Изображение

Все шрифты и шаблоны для конвертации (как со сжатием, так и без) лежат с исходниками в каталоге ./files/fonts/.
mixa232323
Прорезались зубы
Сообщения: 217
Зарегистрирован: Вт окт 01, 2013 01:04:31
Откуда: Гомель

Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12

Сообщение mixa232323 »

WiseLord

Размер шрифта не соответствует максимальному размеру вписанного в него символа. Это очень неудобно и занимает лишнее место в памяти. При расчетах остается неизвестный параметр ширина который постоянно надо подсматривать в коде.
Последний раз редактировалось mixa232323 Вт сен 11, 2018 11:35:06, всего редактировалось 2 раза.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12

Сообщение WiseLord »

В смысле не соответствует? И что Вы понимаете под размером шрифта?
mixa232323
Прорезались зубы
Сообщения: 217
Зарегистрирован: Вт окт 01, 2013 01:04:31
Откуда: Гомель

Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12

Сообщение mixa232323 »

[uquote="WiseLord",url="/forum/viewtopic.php?p=3454544#p3454544"]В смысле не соответствует? И что Вы понимаете под размером шрифта?[/uquote]

Символы в шрифте font-terminus-mod-64 имеют максимальный размер 40. 12 лишних точек сверху и 12 снизу.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12

Сообщение WiseLord »

Это не совсем так:

Изображение

В любом случае, пустые области шириной в 8пикселов сверху и снизу занимают в flash-памяти ровно по 2 байта каждая.

При добавлении в будущем поддержки других языков там могут быть и другие символы (всякие Â, Ů и прочая диакритика), использующие это "пустое" пространство. Поэтому эти области не обрезаны.

А вот в шрифтах, которые с префиксами -dig (минимальный набор - 10 цифр, точка, запятая, плюс, минус) - там всё обрезано.
Последний раз редактировалось WiseLord Вт сен 11, 2018 11:48:50, всего редактировалось 1 раз.
mixa232323
Прорезались зубы
Сообщения: 217
Зарегистрирован: Вт окт 01, 2013 01:04:31
Откуда: Гомель

Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12

Сообщение mixa232323 »

а в цифрах зачем зазор?
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12

Сообщение WiseLord »

Потому что все символы одного шрифта обязаны быть одной высоты.

P.S. иначе придётся обходить проблему вроде

Изображение
Последний раз редактировалось WiseLord Вт сен 11, 2018 12:12:49, всего редактировалось 1 раз.
mixa232323
Прорезались зубы
Сообщения: 217
Зарегистрирован: Вт окт 01, 2013 01:04:31
Откуда: Гомель

Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12

Сообщение mixa232323 »

я про шрифты цифр
Ответить

Вернуться в «Статьи»