Nokia 5110 LCD и ENC28J60 Ethernet

Nickalaich
Nickalaich аватар
Offline
Зарегистрирован: 07.04.2013

Извините за откровенно нубский вопрос, но я могу подключить эти две штуковины к одной Nano?
MiNi ENC28J60 Ethernet LAN Network Module For Arduino SPI AVR PIC LPC STM32
84 * 48 84x84 LCD модуль белого подсветки адаптер PCB для Nokia 5110 Arduino

emc-problem.net
Offline
Зарегистрирован: 10.03.2015

Я не возражаю, подключайте :)

А если серьезно, то что, по-вашему, может этому помешать?

Nickalaich
Nickalaich аватар
Offline
Зарегистрирован: 07.04.2013

Немного почитал вики, и понял, что ничего. Оба девайса подключаются по SPI, верно?

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

5110 ногодрыганьем запускай и делов. зачем именно хардварный, если он туда вообще подойдет. там вроде 9бит SPI

Nickalaich
Nickalaich аватар
Offline
Зарегистрирован: 07.04.2013

Ногодрыганьем? Что это?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

например

digitalWrite(CS, HIGH);

digitalWrite(CS, LOW);

понял?

 

Nickalaich
Nickalaich аватар
Offline
Зарегистрирован: 07.04.2013

А. Это для переключения между двумя устройствами на одной шине?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

нет. ногодрыганьем ты можешь делать тоже что и SPI просто медленнее. и софтварно все

Nickalaich
Nickalaich аватар
Offline
Зарегистрирован: 07.04.2013

Так я кроме мороки ничего не получу. Да и памяти больше потребует, чем с готовой библиотекой.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

Ну как скажешь.но софтварный spi не проблема.либы должны быть.ты уверен что этому дисплею нужен 8 битный spi? Если да то через сs можно хоть десять устройств повесить на spi.но тогда тебе еще лиду для эзернета править.а это еще тяжелее будет для тебя

Nickalaich
Nickalaich аватар
Offline
Зарегистрирован: 07.04.2013

Библиотеку нашел, но она использует 5ый цифровой пин, который мне жизненно необходим для управления светодиодным драйвером. На дисплей я хочу выводить только пару строчек текста, постоянно обновляющихся. Как тогда подключать?

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

 ну да. беда и ничего не сделать

// Software SPI (slower updates, more flexible pin options):
// pin 7 - Serial clock out (SCLK)
// pin 6 - Serial data out (DIN)
// pin 5 - Data/Command select (D/C)
// pin 4 - LCD chip select (CS)
// pin 3 - LCD reset (RST)
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);

 

Nickalaich
Nickalaich аватар
Offline
Зарегистрирован: 07.04.2013

Есть знакомый, неплохо программирующий на ассемблере. Язык ардуины позволяет делать вставки на асме, как в обычном С?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

да. не помню только как. гугли

а можно вопрос сколько тебе лет?

Nickalaich
Nickalaich аватар
Offline
Зарегистрирован: 07.04.2013

18.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

я так и думал. причина твоей упертости) намеков не понимаешь и не читаешь

// Software SPI (slower updates, more flexible pin options):
// pin 7 - Serial clock out (SCLK)
// pin 6 - Serial data out (DIN)
// pin 5 - Data/Command select (D/C)
// pin 4 - LCD chip select (CS)
// pin 3 - LCD reset (RST)
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);

это запуск дисплея на софтварном spi (из примера). пины можно назначить любые

Nickalaich
Nickalaich аватар
Offline
Зарегистрирован: 07.04.2013

Причина моей упёртости скорее в том, что я нуб. Интересно, сколько памяти потребует такое решение. Пока не могу проверить, т.к. мой комплект железа ещё не приехал.

Ethernet контроллер может использовать те же пины?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ты же хотел разнести по отдельным пинам вроде. теперь знаешь как. откуда снова теже пины

памяти жрет много. у тебя модуль такой. много чего делается в самой ардуине программно, а не в Ethernet контроллере

если бы взял W5100 потребовалось бы меньше

Nickalaich
Nickalaich аватар
Offline
Зарегистрирован: 07.04.2013

Я не говорил, что хочу по разным пинам разнести. Мне наоборот надо оставить 5 и 6 пины свободными, и любой другой для температурного датчика. Т.е. лучше, если и дисплей и контроллер будут на одних пинах висеть.

W5100 дороже, и с ненужными фичами. Мне же только сам контроллер и разъем нужен. 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ну как знаешь. можно и на одни пины. надо будет только допилить 

Nickalaich
Nickalaich аватар
Offline
Зарегистрирован: 07.04.2013

В чем заключается допил?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

если на одних пинах ардуина должна управлять к кому обращается и от кого инфу получает. устройства не будут работать одновременно а по очереди

Nickalaich
Nickalaich аватар
Offline
Зарегистрирован: 07.04.2013

 А, да. На CS ведомого устройства должен быть логический 1 для начала работы, верно?

F0rtis
Offline
Зарегистрирован: 01.11.2015

Здравствуйте.
я столкнулся с такой же загвоздкой: arduino mini+enc28j60+lcd nokia5110
Использую библиотеки LCD5110_Graph и EtherCard

При этом enc28j60 подключен к хардварному spi:
SCK - Pin 13
SO  - Pin 12
SI  - Pin 11
CS  - Pin  8

А lcd через софтварный:
SCK  - Pin 3
MOSI - Pin 4
DC   - Pin 5
RST  - Pin 7
CS   - Pin 6

При этом все как бы работает, но крайне нестабильно. через какое то время все подвисает или  ethernet модуль отправляет всякую фигню. Предположение с питанием я исключил, т.к. все начинает отправляться  стоит только закоментить код для lcd
Подозреваю что дело в библиотеках, но в какое место в них лезть у меня совсем мыслей. В чем может быть дело и куда копнуть?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

оперативка может закончилась. проверь сколько компилятор говорит, а потом еще 

http://microsin.net/programming/avr/arduino-determining-amount-free-and-...

 

F0rtis
Offline
Зарегистрирован: 01.11.2015

Похоже что вы правы.
Компилятор выдает мне вот что:

ketch uses 20,348 bytes (66.2%) of program storage space. Maximum is 30,720 bytes.
Global variables use 1,913 bytes (93.4%) of dynamic memory, leaving 135 bytes for local variables. Maximum is 2,048 bytes.

А скетч Freememory c начала своей работы число 83, (я правильно понимаю что это значение в байтах?). Но в ходе работы значение свободной памяти принимает например такие значения:

83 83 83.............. 2172 2172 2172 2172 2172 2172..........-28982 -28982 -27956 -27956 -27956 -27956 -27956 -27956 
83 83 83 83 83 83 83 83 .............. 2249 2249 2249 2249 2249 

И на последнием значении скетч через некоторое время завис. Но если принять отрицательные значения за переполнение Ram то конечное число 2249, ведь говорит о том что все имеющиеся 2Кб (Atmega238) свободны? Как правильно трактовать такой результат?

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

да нет. все. оперативки мало. начни с выбора другой либы для дисплея. и почитай статью