Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2025:iotelea:ana_maria.ailiesei [2025/05/28 00:11]
ana_maria.ailiesei [Software Design]
pm:prj2025:iotelea:ana_maria.ailiesei [2025/05/28 00:35] (current)
ana_maria.ailiesei [Bibliography and Sources]
Line 281: Line 281:
 == Why those hex commands? == == Why those hex commands? ==
  
-0x01 Clear Display, 0x02 Return Home, 0x06 Entry-Mode Set, 0x0C Display ON/OFF, 0x28 Function Set – their op-codes and bit-fields are listed in Table 6 Instructions” of the datasheet. ​+0x01 Clear Display, 0x02 Return Home, 0x06 Entry-Mode Set, 0x0C Display ON/OFF, 0x28 Function Set – their op-codes and bit-fields are listed in Table 6 "Instructions" ​of the datasheet. ​
  
-The Function Set constant 0x28 is 0010 1000b ⇒ DL = 0 (4-bit), N = 1 (2-line), F = 0 (5×8 font). You must send this after forcing the controller into 4-bit mode so it knows the final interface width.+The Function Set constant 0x28 is 0010 1000b => DL = 0 (4-bit), N = 1 (2-line), F = 0 (5x8 font). You must send this after forcing the controller into 4-bit mode so it knows the final interface width.
  
-=== Power-up initialisation (Figure 24 flow) ===+== Power-up initialisation (Figure 24 flow) ==
 <​code>​ <​code>​
-0x30 → 0x30 → 0x30 → 0x20+0x30 -> 0x30 -> 0x30 -> 0x20
 </​code>​ </​code>​
-Send the 0x30 three times” handshake (still in 8-bit mode) and finally 0x20 to drop DL=0. This is the exact 4-bit initialisation sequence shown in Figure 24 4-Bit Interface Initializing by Instruction” (under Initializing by Instruction). ​+Send the "0x30 three times" ​handshake (still in 8-bit mode) and finally 0x20 to drop DL=0. This is the exact 4-bit initialisation sequence shown in Figure 24 "4-Bit Interface Initializing by Instruction" ​(under Initializing by Instruction). ​
  
-==== 4-bit write cycle (Figure 9) ====+== 4-bit write cycle (Figure 9) ==
 In 4-bit mode each byte is split: high nibble first, low nibble second. Figure 9 labels the bus cycles: In 4-bit mode each byte is split: high nibble first, low nibble second. Figure 9 labels the bus cycles:
  
Line 298: Line 298:
 | 1 | 1 | DR read | Fetch data from DDRAM/CGRAM via Data Register | | 1 | 1 | DR read | Fetch data from DDRAM/CGRAM via Data Register |
  
-See Figure 9 4-Bit Transfer Example” for the two Enable pulses per byte. +See Figure 9 "4-Bit Transfer Example" ​for the two Enable pulses per byte. 
  
-=== What the bit-flags in lcd_send_half() do ===+== What the bit-flags in lcd_send_half() do ==
  
 | Bit mask | PCF8574 pin → LCD | Why it’s set | | Bit mask | PCF8574 pin → LCD | Why it’s set |
 | 0xF0 | P4-P7 -> DB4-DB7 | Carry the nibble you’re transmitting | | 0xF0 | P4-P7 -> DB4-DB7 | Carry the nibble you’re transmitting |
-| 0x01 | P0 -> RS | 0 = command, 1 = data (selects IR or DR)  +| 0x01 | P0 -> RS | 0 = command, 1 = data (selects IR or DR) |
- |+
 | 0x00 | P1 → R/W kept low | We only write; reads would need a separate read routine | | 0x00 | P1 → R/W kept low | We only write; reads would need a separate read routine |
-| 0x04 | P2 -> E | Toggling E high->​low latches the nibble; kept >450 ns with delayMicroseconds(2) +| 0x04 | P2 -> E | Toggling E high->​low latches the nibble; kept >450 ns with delayMicroseconds(2) |
- |+
 | 0x08 | P3 -> LED+ | Turns the backpack back-light on | | 0x08 | P3 -> LED+ | Turns the backpack back-light on |
   ​   ​
Line 349: Line 347:
 <​html>​ <​html>​
   <iframe width="​560"​ height="​315"​   <iframe width="​560"​ height="​315"​
-     ​src="​https://​www.youtube.com/​embed/​058uTZwySFo"+     ​src="​https://​www.youtube.com/​embed/​1_WvuHkVgRU"
      ​title="​YouTube video player"​ frameborder="​0"​ allow="​accelerometer;​ autoplay; clipboard-write;​ encrypted-media;​ gyroscope; picture-in-picture;​ web-share"​ referrerpolicy="​strict-origin-when-cross-origin"​ allowfullscreen>​      ​title="​YouTube video player"​ frameborder="​0"​ allow="​accelerometer;​ autoplay; clipboard-write;​ encrypted-media;​ gyroscope; picture-in-picture;​ web-share"​ referrerpolicy="​strict-origin-when-cross-origin"​ allowfullscreen>​
   </​iframe>​   </​iframe>​
Line 372: Line 370:
  
 [[https://​www.flipkart.com/​tumtafa-best-quality-labyrinth-game-ball-in-a-maze-round-wooden-kids-adults-party-fun-games-board/​p/​itm10a21ca18e84c?​pid=BDGGGSTBHPG2E3WZ |Ball maze photo]] [[https://​www.flipkart.com/​tumtafa-best-quality-labyrinth-game-ball-in-a-maze-round-wooden-kids-adults-party-fun-games-board/​p/​itm10a21ca18e84c?​pid=BDGGGSTBHPG2E3WZ |Ball maze photo]]
 +
 +[[https://​cdn.sparkfun.com/​assets/​9/​5/​f/​7/​b/​HD44780.pdf | HD44780 Datasheet]]
  
  
pm/prj2025/iotelea/ana_maria.ailiesei.1748380293.txt.gz · Last modified: 2025/05/28 00:11 by ana_maria.ailiesei
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0